summaryrefslogtreecommitdiff
path: root/amiga
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2015-08-16 13:02:14 +0100
committerChris Young <chris@unsatisfactorysoftware.co.uk>2015-08-16 13:02:14 +0100
commitf9bb4ba71dde3586b0f77d7c4cd82fbcf6be1129 (patch)
tree9c04b67b41e157b444fb276df372cb3b395848b3 /amiga
parent9c2fbde9173fec32e60e69b5d6f8e0041d6e28f6 (diff)
downloadnetsurf-f9bb4ba71dde3586b0f77d7c4cd82fbcf6be1129.tar.gz
netsurf-f9bb4ba71dde3586b0f77d7c4cd82fbcf6be1129.tar.bz2
Fix memory leak
Diffstat (limited to 'amiga')
-rw-r--r--amiga/font.c20
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
}