Index: ttf2lht/drv_anim.c =================================================================== --- ttf2lht/drv_anim.c (revision 18939) +++ ttf2lht/drv_anim.c (revision 18940) @@ -24,11 +24,15 @@ printf("frame\n"); } -void stroke_anim_uninit(stroke_t *s) +void stroke_anim_finish(stroke_t *s) { printf("flush\n"); } +void stroke_anim_uninit(stroke_t *s) +{ +} + anim_stroke_t anim_stroke = { { { @@ -39,6 +43,7 @@ 0, 0 }, stroke_anim_init, + stroke_anim_finish, stroke_anim_uninit, } }; Index: ttf2lht/drv_poly.c =================================================================== --- ttf2lht/drv_poly.c (revision 18939) +++ ttf2lht/drv_poly.c (revision 18940) @@ -59,12 +59,18 @@ drv_approx_comment = NULL; } -void stroke_poly_uninit(stroke_t *s_) +void stroke_poly_finish(stroke_t *s_) { poly_stroke_t *s = (poly_stroke_t *)s_; pline_close(s); } +void stroke_poly_uninit(stroke_t *s_) +{ +#warning TODO: free fields +} + + poly_stroke_t poly_stroke = { { { @@ -75,6 +81,7 @@ 0, 0 }, stroke_poly_init, + stroke_poly_finish, stroke_poly_uninit, } }; Index: ttf2lht/ttf2lht.c =================================================================== --- ttf2lht/ttf2lht.c (revision 18939) +++ ttf2lht/ttf2lht.c (revision 18940) @@ -22,7 +22,6 @@ FT_Glyph gly; FT_OutlineGlyph ol; - str->init(str); // load glyph err = FT_Load_Glyph(face, FT_Get_Char_Index(face, chr), FT_LOAD_NO_BITMAP | FT_LOAD_NO_SCALE); @@ -36,8 +35,9 @@ err = FT_Outline_Decompose(&(ol->outline), &str->funcs, str); - str->uninit(str); + str->finish(str); + if (err != 0) return err; @@ -77,6 +77,8 @@ fprintf(stderr, "Family: %s\n", face->family_name); fprintf(stderr, "Height=%d ascender=%d descender=%d\n", face->height, face->ascender, face->descender); + stroker->init(stroker); + errnum = dump('a', stroker); if (errnum != 0) { if (errnum > 0) @@ -85,6 +87,7 @@ fprintf(stderr, "dump: %s\n", int_errtab[-errnum]); } + stroker->uninit(stroker); FT_Done_Face(face); FT_Done_Library(library); return 0;