render: glyph: extra NULL pointer protection
Even though it's probably never happening, but still better to protect from it, just in case. The extra cost of it hard to measure on today's machines. Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
This commit is contained in:
parent
37b7ea8f8a
commit
127294b50f
|
|
@ -123,6 +123,10 @@ FindGlyphRef(GlyphHashPtr hash,
|
||||||
CARD32 elt, step, s;
|
CARD32 elt, step, s;
|
||||||
GlyphPtr glyph;
|
GlyphPtr glyph;
|
||||||
GlyphRefPtr table, gr, del;
|
GlyphRefPtr table, gr, del;
|
||||||
|
|
||||||
|
if ((hash == NULL) || (hash->hashSet == NULL))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
CARD32 tableSize = hash->hashSet->size;
|
CARD32 tableSize = hash->hashSet->size;
|
||||||
|
|
||||||
table = hash->table;
|
table = hash->table;
|
||||||
|
|
@ -267,7 +271,7 @@ FreeGlyph(GlyphPtr glyph, int format)
|
||||||
gr = FindGlyphRef(&globalGlyphs[format], signature, TRUE, glyph->sha1);
|
gr = FindGlyphRef(&globalGlyphs[format], signature, TRUE, glyph->sha1);
|
||||||
if (gr - globalGlyphs[format].table != first)
|
if (gr - globalGlyphs[format].table != first)
|
||||||
DuplicateRef(glyph, "Found wrong one");
|
DuplicateRef(glyph, "Found wrong one");
|
||||||
if (gr->glyph && gr->glyph != DeletedGlyph) {
|
if (gr && gr->glyph && gr->glyph != DeletedGlyph) {
|
||||||
gr->glyph = DeletedGlyph;
|
gr->glyph = DeletedGlyph;
|
||||||
gr->signature = 0;
|
gr->signature = 0;
|
||||||
globalGlyphs[format].tableEntries--;
|
globalGlyphs[format].tableEntries--;
|
||||||
|
|
@ -384,6 +388,7 @@ AllocateGlyph(xGlyphInfo * gi, int fdepth)
|
||||||
static Bool
|
static Bool
|
||||||
AllocateGlyphHash(GlyphHashPtr hash, GlyphHashSetPtr hashSet)
|
AllocateGlyphHash(GlyphHashPtr hash, GlyphHashSetPtr hashSet)
|
||||||
{
|
{
|
||||||
|
assert(hashSet);
|
||||||
hash->table = calloc(hashSet->size, sizeof(GlyphRefRec));
|
hash->table = calloc(hashSet->size, sizeof(GlyphRefRec));
|
||||||
if (!hash->table)
|
if (!hash->table)
|
||||||
return FALSE;
|
return FALSE;
|
||||||
|
|
@ -418,10 +423,10 @@ ResizeGlyphHash(GlyphHashPtr hash, CARD32 change, Bool global)
|
||||||
glyph = hash->table[i].glyph;
|
glyph = hash->table[i].glyph;
|
||||||
if (glyph && glyph != DeletedGlyph) {
|
if (glyph && glyph != DeletedGlyph) {
|
||||||
s = hash->table[i].signature;
|
s = hash->table[i].signature;
|
||||||
gr = FindGlyphRef(&newHash, s, global, glyph->sha1);
|
if ((gr = FindGlyphRef(&newHash, s, global, glyph->sha1))) {
|
||||||
|
|
||||||
gr->signature = s;
|
gr->signature = s;
|
||||||
gr->glyph = glyph;
|
gr->glyph = glyph;
|
||||||
|
}
|
||||||
++newHash.tableEntries;
|
++newHash.tableEntries;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue