summaryrefslogtreecommitdiffstats
path: root/libs/minikin/Layout.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'libs/minikin/Layout.cpp')
-rw-r--r--libs/minikin/Layout.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/libs/minikin/Layout.cpp b/libs/minikin/Layout.cpp
index 3a0be6a..f32e9f4 100644
--- a/libs/minikin/Layout.cpp
+++ b/libs/minikin/Layout.cpp
@@ -161,6 +161,7 @@ hb_font_funcs_t* getHbFontFuncs() {
hb_font_t* create_hb_font(MinikinFont* minikinFont, MinikinPaint* minikinPaint) {
hb_face_t* face = hb_face_create_for_tables(referenceTable, minikinFont, NULL);
hb_font_t* font = hb_font_create(face);
+ hb_face_destroy(face);
hb_font_set_funcs(font, getHbFontFuncs(), minikinPaint, 0);
// TODO: manage ownership of face
return font;
@@ -176,6 +177,12 @@ static hb_position_t HBFloatToFixed(float v)
return scalbnf (v, +8);
}
+Layout::~Layout() {
+ for (size_t ix = 0; ix < mHbFonts.size(); ix++) {
+ hb_font_destroy(mHbFonts[ix]);
+ }
+}
+
void Layout::dump() const {
for (size_t i = 0; i < mGlyphs.size(); i++) {
const LayoutGlyph& glyph = mGlyphs[i];