summaryrefslogtreecommitdiff
path: root/amiga
diff options
context:
space:
mode:
authorChris Young <chris@unsatisfactorysoftware.co.uk>2011-12-04 20:06:53 +0000
committerChris Young <chris@unsatisfactorysoftware.co.uk>2011-12-04 20:06:53 +0000
commitccbca43457cfe7b492a220845ad975abe8cf53ba (patch)
tree11e3061f12b28ae76979a158d0c62f65206c0a96 /amiga
parent2ff45272d0eb25f6a2e0ce1e38c6e6ff3d8d819a (diff)
downloadnetsurf-ccbca43457cfe7b492a220845ad975abe8cf53ba.tar.gz
netsurf-ccbca43457cfe7b492a220845ad975abe8cf53ba.tar.bz2
Avoid memory leak when requested font cannot be opened.
svn path=/trunk/netsurf/; revision=13243
Diffstat (limited to 'amiga')
-rw-r--r--amiga/font.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/amiga/font.c b/amiga/font.c
index 3bc72e1eb..7c45049b0 100644
--- a/amiga/font.c
+++ b/amiga/font.c
@@ -334,14 +334,8 @@ struct ami_font_node *ami_font_open(const char *font)
LOG(("Font cache miss: %s", font));
nodedata = AllocVec(sizeof(struct ami_font_node), MEMF_PRIVATE | MEMF_CLEAR);
-
- node = AddObject(ami_font_list, AMINS_FONT);
- if(!node) return NULL;
-
- node->objstruct = nodedata;
- node->dtz_Node.ln_Name = strdup(font);
-
nodedata->font = OpenOutlineFont(font, &ami_diskfontlib_list, OFF_OPEN);
+
if(!nodedata->font)
{
LOG(("Requested font not found: %s", font));
@@ -369,6 +363,13 @@ struct ami_font_node *ami_font_open(const char *font)
GetSysTime(&nodedata->lastused);
+ node = AddObject(ami_font_list, AMINS_FONT);
+ if(node)
+ {
+ node->objstruct = nodedata;
+ node->dtz_Node.ln_Name = strdup(font);
+ }
+
return nodedata;
}