Index: ttf2lht/drv_poly.c =================================================================== --- ttf2lht/drv_poly.c (revision 18946) +++ ttf2lht/drv_poly.c (revision 18947) @@ -84,11 +84,12 @@ pline_close(s); - pcb_polyarea_init(&s->pa); + s->pa = malloc(sizeof(pcb_polyarea_t)); + pcb_polyarea_init(s->pa); for(pl = s->pos; pl != NULL; pl = next) { next = pl->next; pl->next = NULL; - if (!pcb_polyarea_contour_include(&s->pa, pl)) + if (!pcb_polyarea_contour_include(s->pa, pl)) fprintf(stderr, "Failed to include positive outline\n"); } @@ -95,14 +96,14 @@ for(pl = s->neg; pl != NULL; pl = next) { next = pl->next; pl->next = NULL; - if (!pcb_polyarea_contour_include(&s->pa, pl)) + if (!pcb_polyarea_contour_include(s->pa, pl)) fprintf(stderr, "Failed to include negative outline\n"); } - if (!pcb_poly_valid(&s->pa)) + if (!pcb_poly_valid(s->pa)) fprintf(stderr, "Invalid outlines\n"); else - r_NoHolesPolygonDicer(&s->pa, emit, s); + r_NoHolesPolygonDicer(s->pa, emit, s); } void stroke_poly_uninit(stroke_t *s_) Index: ttf2lht/drv_poly.h =================================================================== --- ttf2lht/drv_poly.h (revision 18946) +++ ttf2lht/drv_poly.h (revision 18947) @@ -11,7 +11,7 @@ pcb_pline_t *pos, *neg; /* the resulting polyarea */ - pcb_polyarea_t pa; + pcb_polyarea_t *pa; } poly_stroke_t; extern poly_stroke_t poly_stroke;