[subset] Move OS/2 to subset2.
This commit is contained in:
parent
93d592e0e1
commit
f9b1ae7336
@ -145,29 +145,20 @@ struct OS2
|
||||
}
|
||||
}
|
||||
|
||||
bool subset (hb_subset_plan_t *plan) const
|
||||
bool subset (hb_subset_context_t *c) const
|
||||
{
|
||||
hb_blob_t *os2_blob = hb_sanitize_context_t ().reference_table<OS2> (plan->source);
|
||||
hb_blob_t *os2_prime_blob = hb_blob_create_sub_blob (os2_blob, 0, -1);
|
||||
// TODO(grieger): move to hb_blob_copy_writable_or_fail
|
||||
hb_blob_destroy (os2_blob);
|
||||
|
||||
OS2 *os2_prime = (OS2 *) hb_blob_get_data_writable (os2_prime_blob, nullptr);
|
||||
if (unlikely (!os2_prime)) {
|
||||
hb_blob_destroy (os2_prime_blob);
|
||||
return false;
|
||||
}
|
||||
TRACE_SUBSET (this);
|
||||
OS2 *os2_prime = c->serializer->embed (this);
|
||||
if (unlikely (!os2_prime)) return_trace (false);
|
||||
|
||||
uint16_t min_cp, max_cp;
|
||||
find_min_and_max_codepoint (plan->unicodes, &min_cp, &max_cp);
|
||||
find_min_and_max_codepoint (c->plan->unicodes, &min_cp, &max_cp);
|
||||
os2_prime->usFirstCharIndex = min_cp;
|
||||
os2_prime->usLastCharIndex = max_cp;
|
||||
|
||||
_update_unicode_ranges (plan->unicodes, os2_prime->ulUnicodeRange);
|
||||
bool result = plan->add_table (HB_OT_TAG_OS2, os2_prime_blob);
|
||||
_update_unicode_ranges (c->plan->unicodes, os2_prime->ulUnicodeRange);
|
||||
|
||||
hb_blob_destroy (os2_prime_blob);
|
||||
return result;
|
||||
return_trace (true);
|
||||
}
|
||||
|
||||
void _update_unicode_ranges (const hb_set_t *codepoints,
|
||||
@ -218,6 +209,15 @@ struct OS2
|
||||
font_page_t get_font_page () const
|
||||
{ return (font_page_t) (version == 0 ? fsSelection & 0xFF00 : 0); }
|
||||
|
||||
unsigned get_size () const
|
||||
{
|
||||
unsigned result = min_size;
|
||||
if (version >= 1) result += v1X.get_size ();
|
||||
if (version >= 2) result += v2X.get_size ();
|
||||
if (version >= 5) result += v5X.get_size ();
|
||||
return result;
|
||||
}
|
||||
|
||||
bool sanitize (hb_sanitize_context_t *c) const
|
||||
{
|
||||
TRACE_SANITIZE (this);
|
||||
|
@ -190,7 +190,7 @@ _subset_table (hb_subset_plan_t *plan,
|
||||
result = _subset<const OT::cmap> (plan);
|
||||
break;
|
||||
case HB_OT_TAG_OS2:
|
||||
result = _subset<const OT::OS2> (plan);
|
||||
result = _subset2<const OT::OS2> (plan);
|
||||
break;
|
||||
case HB_OT_TAG_post:
|
||||
result = _subset2<const OT::post> (plan);
|
||||
|
Loading…
Reference in New Issue
Block a user