diff options
author | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2015-08-16 13:02:14 +0100 |
---|---|---|
committer | Chris Young <chris@unsatisfactorysoftware.co.uk> | 2015-08-16 13:02:14 +0100 |
commit | f9bb4ba71dde3586b0f77d7c4cd82fbcf6be1129 (patch) | |
tree | 9c04b67b41e157b444fb276df372cb3b395848b3 /amiga/font.c | |
parent | 9c2fbde9173fec32e60e69b5d6f8e0041d6e28f6 (diff) | |
download | netsurf-f9bb4ba71dde3586b0f77d7c4cd82fbcf6be1129.tar.gz netsurf-f9bb4ba71dde3586b0f77d7c4cd82fbcf6be1129.tar.bz2 |
Fix memory leak
Diffstat (limited to 'amiga/font.c')
-rw-r--r-- | amiga/font.c | 20 |
1 files changed, 12 insertions, 8 deletions
diff --git a/amiga/font.c b/amiga/font.c index 4cef580ed..19cef604e 100644 --- a/amiga/font.c +++ b/amiga/font.c @@ -640,14 +640,18 @@ static inline int32 ami_font_plot_glyph(struct OutlineFont *ofont, struct RastPo #else /* On OS3 the glyph needs to be in chip RAM */ void *chip_glyph = AllocVec(glyph->glm_BMModulo * glyph->glm_BMRows, MEMF_CHIP); - CopyMem(glyphbm, chip_glyph, glyph->glm_BMModulo * glyph->glm_BMRows); - - BltTemplate(chip_glyph + (glyph->glm_BMModulo * glyph->glm_BlackTop) + - ((glyph->glm_BlackLeft >> 4) << 1), - glyph->glm_BlackLeft & 0xF, glyph->glm_BMModulo, rp, - x - glyph->glm_X0 + glyph->glm_BlackLeft, - y - glyph->glm_Y0 + glyph->glm_BlackTop, - glyph->glm_BlackWidth, glyph->glm_BlackHeight); + if(chip_glyph != NULL) { + CopyMem(glyphbm, chip_glyph, glyph->glm_BMModulo * glyph->glm_BMRows); + + BltTemplate(chip_glyph + (glyph->glm_BMModulo * glyph->glm_BlackTop) + + ((glyph->glm_BlackLeft >> 4) << 1), + glyph->glm_BlackLeft & 0xF, glyph->glm_BMModulo, rp, + x - glyph->glm_X0 + glyph->glm_BlackLeft, + y - glyph->glm_Y0 + glyph->glm_BlackTop, + glyph->glm_BlackWidth, glyph->glm_BlackHeight); + + FreeVec(chip_glyph); + } #endif } |