[repacker] remove temporary visibility overrides in gsubgpos.

This commit is contained in:
Garret Rieger 2022-07-22 22:49:40 +00:00
parent ffb0f7936f
commit e6dda54c88
2 changed files with 23 additions and 9 deletions

View File

@ -55,6 +55,17 @@ struct make_extension_context_t
HB_INTERNAL unsigned num_non_ext_subtables (); HB_INTERNAL unsigned num_non_ext_subtables ();
}; };
template<typename T>
struct ExtensionFormat1 : public OT::ExtensionFormat1<T>
{
void reset(unsigned type)
{
this->format = 1;
this->extensionLookupType = type;
this->extensionOffset = 0;
}
};
struct Lookup : public OT::Lookup struct Lookup : public OT::Lookup
{ {
unsigned number_of_subtables () const unsigned number_of_subtables () const
@ -114,11 +125,9 @@ struct Lookup : public OT::Lookup
if (!c.buffer.resize (c.buffer.length + extension_size)) if (!c.buffer.resize (c.buffer.length + extension_size))
return false; return false;
OT::ExtensionFormat1<OT::Layout::GSUB_impl::ExtensionSubst>* extension = ExtensionFormat1<OT::Layout::GSUB_impl::ExtensionSubst>* extension =
(OT::ExtensionFormat1<OT::Layout::GSUB_impl::ExtensionSubst>*) &c.buffer[start]; (ExtensionFormat1<OT::Layout::GSUB_impl::ExtensionSubst>*) &c.buffer[start];
extension->format = 1; extension->reset (type);
extension->extensionLookupType = type;
extension->extensionOffset = 0;
unsigned ext_index = c.graph.new_node (&c.buffer.arrayZ[start], unsigned ext_index = c.graph.new_node (&c.buffer.arrayZ[start],
&c.buffer.arrayZ[end]); &c.buffer.arrayZ[end]);
@ -189,9 +198,9 @@ struct GSTAR : public OT::GSUBGPOS
const void* get_lookup_list_field_offset () const const void* get_lookup_list_field_offset () const
{ {
switch (u.version.major) { switch (u.version.major) {
case 1: return &(u.version1.lookupList); case 1: return u.version1.get_lookup_list_offset ();
#ifndef HB_NO_BORING_EXPANSION #ifndef HB_NO_BORING_EXPANSION
case 2: return &(u.version2.lookupList); case 2: return u.version2.get_lookup_list_offset ();
#endif #endif
default: return 0; default: return 0;
} }

View File

@ -3850,7 +3850,7 @@ struct ExtensionFormat1
return_trace (dest_offset.serialize_subset (c, src_offset, this, get_type ())); return_trace (dest_offset.serialize_subset (c, src_offset, this, get_type ()));
} }
public: // TODO protected:
HBUINT16 format; /* Format identifier. Set to 1. */ HBUINT16 format; /* Format identifier. Set to 1. */
HBUINT16 extensionLookupType; /* Lookup type of subtable referenced HBUINT16 extensionLookupType; /* Lookup type of subtable referenced
* by ExtensionOffset (i.e. the * by ExtensionOffset (i.e. the
@ -3988,7 +3988,7 @@ struct GSUBGPOSVersion1_2
{ {
friend struct GSUBGPOS; friend struct GSUBGPOS;
public: // TODO protected:
FixedVersion<>version; /* Version of the GSUB/GPOS table--initially set FixedVersion<>version; /* Version of the GSUB/GPOS table--initially set
* to 0x00010000u */ * to 0x00010000u */
typename Types:: template OffsetTo<ScriptList> typename Types:: template OffsetTo<ScriptList>
@ -4011,6 +4011,11 @@ struct GSUBGPOSVersion1_2
(version.to_int () >= 0x00010001u ? featureVars.static_size : 0); (version.to_int () >= 0x00010001u ? featureVars.static_size : 0);
} }
const typename Types::template OffsetTo<LookupList<Types>>* get_lookup_list_offset () const
{
return &lookupList;
}
template <typename TLookup> template <typename TLookup>
bool sanitize (hb_sanitize_context_t *c) const bool sanitize (hb_sanitize_context_t *c) const
{ {