[subset] fix missing compiled glyph cleanup when serialization succeeds.
diff --git a/src/OT/glyf/glyf.hh b/src/OT/glyf/glyf.hh
index d3e6ed4..29328c7 100644
--- a/src/OT/glyf/glyf.hh
+++ b/src/OT/glyf/glyf.hh
@@ -110,12 +110,11 @@
padded_offsets[i] = glyphs[i].length ();
}
- if (!glyf_prime->serialize (c->serializer, glyphs.writer (), use_short_loca, c->plan))
- {
- if (c->plan->normalized_coords && !c->plan->pinned_at_default)
- _free_compiled_subset_glyphs (glyphs, glyphs.length - 1);
- return false;
- }
+ bool result = glyf_prime->serialize (c->serializer, glyphs.writer (), use_short_loca, c->plan);
+ if (c->plan->normalized_coords && !c->plan->pinned_at_default)
+ _free_compiled_subset_glyphs (glyphs, glyphs.length - 1);
+
+ if (!result) return false;
if (unlikely (c->serializer->in_error ())) return_trace (false);