summaryrefslogtreecommitdiff
path: root/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-maxp-table.hh
diff options
context:
space:
mode:
authorAkira Kakuto <kakuto@fuk.kindai.ac.jp>2019-06-20 21:59:30 +0000
committerAkira Kakuto <kakuto@fuk.kindai.ac.jp>2019-06-20 21:59:30 +0000
commita56980dacb8f7bf5f60ec2a532801d64b2b26062 (patch)
tree36982aecfc17a0290b9f52fbe827b73495ceb81f /Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-maxp-table.hh
parent7cc8f5e6b341952e8ee7b0576956aaba313f1bd5 (diff)
harfbuzz-2.5.2
git-svn-id: svn://tug.org/texlive/trunk@51414 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-maxp-table.hh')
-rw-r--r--Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-maxp-table.hh48
1 files changed, 22 insertions, 26 deletions
diff --git a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-maxp-table.hh b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-maxp-table.hh
index a2d9167c52c..2ba2cf44d0d 100644
--- a/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-maxp-table.hh
+++ b/Build/source/libs/harfbuzz/harfbuzz-src/src/hb-ot-maxp-table.hh
@@ -94,39 +94,35 @@ struct maxp
return_trace (likely (version.major == 0 && version.minor == 0x5000u));
}
- bool subset (hb_subset_plan_t *plan) const
+ bool subset (hb_subset_context_t *c) const
{
- hb_blob_t *maxp_blob = hb_sanitize_context_t().reference_table<maxp> (plan->source);
- hb_blob_t *maxp_prime_blob = hb_blob_copy_writable_or_fail (maxp_blob);
- hb_blob_destroy (maxp_blob);
+ TRACE_SUBSET (this);
+ maxp *maxp_prime = c->serializer->embed (this);
+ if (unlikely (!maxp_prime)) return_trace (false);
- if (unlikely (!maxp_prime_blob)) {
- return false;
- }
- maxp *maxp_prime = (maxp *) hb_blob_get_data (maxp_prime_blob, nullptr);
+ maxp_prime->numGlyphs = c->plan->num_output_glyphs ();
+ if (maxp_prime->version.major == 1)
+ {
+ const maxpV1Tail *src_v1 = &StructAfter<maxpV1Tail> (*this);
+ maxpV1Tail *dest_v1 = c->serializer->embed<maxpV1Tail> (src_v1);
+ if (unlikely (!dest_v1)) return_trace (false);
- maxp_prime->set_num_glyphs (plan->num_output_glyphs ());
- if (plan->drop_hints)
- drop_hint_fields (plan, maxp_prime);
+ if (c->plan->drop_hints)
+ drop_hint_fields (dest_v1);
+ }
- bool result = plan->add_table (HB_OT_TAG_maxp, maxp_prime_blob);
- hb_blob_destroy (maxp_prime_blob);
- return result;
+ return_trace (true);
}
- static void drop_hint_fields (hb_subset_plan_t *plan HB_UNUSED, maxp *maxp_prime)
+ static void drop_hint_fields (maxpV1Tail* dest_v1)
{
- if (maxp_prime->version.major == 1)
- {
- maxpV1Tail &v1 = StructAfter<maxpV1Tail> (*maxp_prime);
- v1.maxZones = 1;
- v1.maxTwilightPoints = 0;
- v1.maxStorage = 0;
- v1.maxFunctionDefs = 0;
- v1.maxInstructionDefs = 0;
- v1.maxStackElements = 0;
- v1.maxSizeOfInstructions = 0;
- }
+ dest_v1->maxZones = 1;
+ dest_v1->maxTwilightPoints = 0;
+ dest_v1->maxStorage = 0;
+ dest_v1->maxFunctionDefs = 0;
+ dest_v1->maxInstructionDefs = 0;
+ dest_v1->maxStackElements = 0;
+ dest_v1->maxSizeOfInstructions = 0;
}
protected: