diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-09-19 18:09:13 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-09-19 18:09:13 +0400 |
commit | 5c7b5c0b51f57ad19b79eac78e3e4afb263b23cc (patch) | |
tree | 28032da573c9366ab0d0f16ae1c93273108d13e4 /source/blender/blenfont/intern/blf_glyph.c | |
parent | 712e434a5f71fc4afc52e399af917d137c49308b (diff) |
Blenfont: fix use incorrect clear of ascii glyph cache, leading to crash
when toggling use antialising user preference. Also fix some other use of
uninitialized memory found by valgrind.
Diffstat (limited to 'source/blender/blenfont/intern/blf_glyph.c')
-rw-r--r-- | source/blender/blenfont/intern/blf_glyph.c | 17 |
1 files changed, 3 insertions, 14 deletions
diff --git a/source/blender/blenfont/intern/blf_glyph.c b/source/blender/blenfont/intern/blf_glyph.c index b661005b50b..99d41cd7abd 100644 --- a/source/blender/blenfont/intern/blf_glyph.c +++ b/source/blender/blenfont/intern/blf_glyph.c @@ -75,7 +75,7 @@ GlyphCacheBLF *blf_glyph_cache_new(FontBLF *font) { GlyphCacheBLF *gc; - gc= (GlyphCacheBLF *)MEM_mallocN(sizeof(GlyphCacheBLF), "blf_glyph_cache_new"); + gc= (GlyphCacheBLF *)MEM_callocN(sizeof(GlyphCacheBLF), "blf_glyph_cache_new"); gc->next= NULL; gc->prev= NULL; gc->size= font->size; @@ -131,10 +131,8 @@ void blf_glyph_cache_clear(FontBLF *font) blf_glyph_free(g); } } - } - if(font->glyph_cache) { - memset(font->glyph_cache->glyph_ascii_table, 0, sizeof(font->glyph_cache->glyph_ascii_table)); + memset(gc->glyph_ascii_table, 0, sizeof(gc->glyph_ascii_table)); } } @@ -250,20 +248,11 @@ GlyphBLF *blf_glyph_add(FontBLF *font, unsigned int index, unsigned int c) if (err || slot->format != FT_GLYPH_FORMAT_BITMAP) return NULL; - g= (GlyphBLF *)MEM_mallocN(sizeof(GlyphBLF), "blf_glyph_add"); - g->next= NULL; - g->prev= NULL; + g= (GlyphBLF *)MEM_callocN(sizeof(GlyphBLF), "blf_glyph_add"); g->c= c; g->idx= (FT_UInt)index; - g->tex= 0; - g->build_tex= 0; - g->bitmap= NULL; g->xoff= -1; g->yoff= -1; - g->uv[0][0]= 0.0f; - g->uv[0][1]= 0.0f; - g->uv[1][0]= 0.0f; - g->uv[1][1]= 0.0f; bitmap= slot->bitmap; g->width= bitmap.width; g->height= bitmap.rows; |