Remove most uses of direct comparison to Null objects
This commit is contained in:
parent
3506672ce9
commit
b912fbea17
|
@ -238,9 +238,9 @@ struct glyf
|
|||
|
||||
hb_blob_t *head_blob = hb_sanitize_context_t().reference_table<head> (face);
|
||||
const head *head_table = head_blob->as<head> ();
|
||||
if (head_table == &Null(head) || (unsigned int) head_table->indexToLocFormat > 1 || head_table->glyphDataFormat != 0)
|
||||
if (head_table->indexToLocFormat > 1 || head_table->glyphDataFormat != 0)
|
||||
{
|
||||
/* head table is not present, or in an unknown format. Leave num_glyphs=0, that takes care of disabling us. */
|
||||
/* Unknown format. Leave num_glyphs=0, that takes care of disabling us. */
|
||||
hb_blob_destroy (head_blob);
|
||||
return;
|
||||
}
|
||||
|
@ -270,7 +270,7 @@ struct glyf
|
|||
inline bool get_composite (hb_codepoint_t glyph,
|
||||
CompositeGlyphHeader::Iterator *composite /* OUT */) const
|
||||
{
|
||||
if (this->glyf_table == &Null(glyf) || !num_glyphs)
|
||||
if (unlikely (!num_glyphs))
|
||||
return false;
|
||||
|
||||
unsigned int start_offset, end_offset;
|
||||
|
|
|
@ -141,8 +141,8 @@ struct head
|
|||
* -1: Only strongly right to left;
|
||||
* -2: Like -1 but also contains neutrals. */
|
||||
public:
|
||||
HBINT16 indexToLocFormat; /* 0 for short offsets, 1 for long. */
|
||||
HBINT16 glyphDataFormat; /* 0 for current format. */
|
||||
HBUINT16 indexToLocFormat; /* 0 for short offsets, 1 for long. */
|
||||
HBUINT16 glyphDataFormat; /* 0 for current format. */
|
||||
|
||||
DEFINE_SIZE_STATIC (54);
|
||||
};
|
||||
|
|
|
@ -349,6 +349,7 @@ struct GDEF
|
|||
ComponentGlyph = 4
|
||||
};
|
||||
|
||||
inline bool has_data (void) const { return version.to_int () != 0; }
|
||||
inline bool has_glyph_classes (void) const { return glyphClassDef != 0; }
|
||||
inline unsigned int get_glyph_class (hb_codepoint_t glyph) const
|
||||
{ return (this+glyphClassDef).get_class (glyph); }
|
||||
|
|
|
@ -2320,6 +2320,7 @@ struct Extension
|
|||
|
||||
struct GSUBGPOS
|
||||
{
|
||||
inline bool has_data (void) const { return version.to_int () != 0; }
|
||||
inline unsigned int get_script_count (void) const
|
||||
{ return (this+scriptList).len; }
|
||||
inline const Tag& get_script_tag (unsigned int i) const
|
||||
|
|
|
@ -904,7 +904,7 @@ hb_ot_layout_feature_with_variations_get_lookups (hb_face_t *face,
|
|||
hb_bool_t
|
||||
hb_ot_layout_has_substitution (hb_face_t *face)
|
||||
{
|
||||
return &_get_gsub (face) != &Null(OT::GSUB);
|
||||
return _get_gsub (face).has_data ();
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -1006,7 +1006,7 @@ hb_ot_layout_lookups_substitute_closure (hb_face_t *face,
|
|||
hb_bool_t
|
||||
hb_ot_layout_has_positioning (hb_face_t *face)
|
||||
{
|
||||
return &_get_gpos (face) != &Null(OT::GPOS);
|
||||
return _get_gpos (face).has_data ();
|
||||
}
|
||||
|
||||
void
|
||||
|
@ -1341,5 +1341,5 @@ hb_ot_layout_substitute_lookup (OT::hb_ot_apply_context_t *c,
|
|||
// hb_bool_t
|
||||
// hb_ot_base_has_data (hb_face_t *face)
|
||||
// {
|
||||
// return &_get_base (face) != &Null(OT::BASE);
|
||||
// return _get_base (face).has_data ();
|
||||
// }
|
||||
|
|
|
@ -686,6 +686,8 @@ struct MATH
|
|||
{
|
||||
static const hb_tag_t tableTag = HB_OT_TAG_MATH;
|
||||
|
||||
inline bool has_data (void) const { return version.to_int () != 0; }
|
||||
|
||||
inline bool sanitize (hb_sanitize_context_t *c) const
|
||||
{
|
||||
TRACE_SANITIZE (this);
|
||||
|
|
|
@ -55,7 +55,7 @@ _get_math (hb_face_t *face)
|
|||
hb_bool_t
|
||||
hb_ot_math_has_data (hb_face_t *face)
|
||||
{
|
||||
return &_get_math (face) != &Null(OT::MATH);
|
||||
return _get_math (face).has_data ();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -313,6 +313,7 @@ arabic_fallback_plan_create (const hb_ot_shape_plan_t *plan,
|
|||
if (arabic_fallback_plan_init_win1256 (fallback_plan, plan, font))
|
||||
return fallback_plan;
|
||||
|
||||
assert (fallback_plan->num_lookups == 0);
|
||||
free (fallback_plan);
|
||||
return const_cast<arabic_fallback_plan_t *> (&Null(arabic_fallback_plan_t));
|
||||
}
|
||||
|
@ -320,7 +321,7 @@ arabic_fallback_plan_create (const hb_ot_shape_plan_t *plan,
|
|||
static void
|
||||
arabic_fallback_plan_destroy (arabic_fallback_plan_t *fallback_plan)
|
||||
{
|
||||
if (!fallback_plan || fallback_plan == &Null(arabic_fallback_plan_t))
|
||||
if (!fallback_plan || fallback_plan->num_lookups == 0)
|
||||
return;
|
||||
|
||||
for (unsigned int i = 0; i < fallback_plan->num_lookups; i++)
|
||||
|
|
|
@ -87,6 +87,8 @@ struct fvar
|
|||
{
|
||||
static const hb_tag_t tableTag = HB_OT_TAG_fvar;
|
||||
|
||||
inline bool has_data (void) const { return version.to_int () != 0; }
|
||||
|
||||
inline bool sanitize (hb_sanitize_context_t *c) const
|
||||
{
|
||||
TRACE_SANITIZE (this);
|
||||
|
|
|
@ -65,7 +65,7 @@ _get_avar (hb_face_t *face)
|
|||
hb_bool_t
|
||||
hb_ot_var_has_data (hb_face_t *face)
|
||||
{
|
||||
return &_get_fvar (face) != &Null(OT::fvar);
|
||||
return _get_fvar (face).has_data ();
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -83,7 +83,7 @@ _subset (hb_subset_plan_t *plan)
|
|||
|
||||
hb_tag_t tag = TableType::tableTag;
|
||||
hb_bool_t result = false;
|
||||
if (table != &Null(TableType))
|
||||
if (source_blob->data)
|
||||
{
|
||||
result = table->subset(plan);
|
||||
} else {
|
||||
|
|
|
@ -53,7 +53,7 @@ main (int argc, char **argv)
|
|||
|
||||
hb_blob_t *font_blob = hb_sanitize_context_t().sanitize_blob<OpenTypeFontFile> (blob);
|
||||
const OpenTypeFontFile* sanitized = font_blob->as<OpenTypeFontFile> ();
|
||||
if (sanitized == &Null(OpenTypeFontFile))
|
||||
if (!font_blob->data)
|
||||
{
|
||||
printf ("Sanitization of the file wasn't successful. Exit");
|
||||
return 1;
|
||||
|
|
Loading…
Reference in New Issue