BYTE *buf;
TTPOLYGONHEADER *pph;
TTPOLYCURVE *ppc;
- GLdouble *vertices = NULL;
+ GLdouble *vertices = NULL, *vertices_temp = NULL;
int vertex_total = -1;
if(unicode)
buf = HeapAlloc(GetProcessHeap(), 0, needed);
+ if(!buf)
+ goto error;
+
if(unicode)
GetGlyphOutlineW(hdc, glyph, GGO_NATIVE, &gm, needed, buf, &identity);
else
while(!vertices)
{
if(vertex_total != -1)
- vertices = HeapAlloc(GetProcessHeap(), 0, vertex_total * 3 * sizeof(GLdouble));
+ vertices_temp = vertices = HeapAlloc(GetProcessHeap(), 0, vertex_total * 3 * sizeof(GLdouble));
vertex_total = 0;
pph = (TTPOLYGONHEADER*)buf;
pgluTessEndPolygon(tess);
funcs->Translated((GLdouble)gm.gmCellIncX / em_size, (GLdouble)gm.gmCellIncY / em_size, 0.0);
funcs->EndList();
+
HeapFree(GetProcessHeap(), 0, buf);
- HeapFree(GetProcessHeap(), 0, vertices);
+
+ if(vertices_temp)
+ HeapFree(GetProcessHeap(), 0, vertices_temp);
}
error: