[API] Make hb_face_reference_table() return empty blob instead of NULL
The idea here is that: - Like pretty much all other API in harfbuzz, user does not have to check for NULL. - In any caller code, the case of missing table should be handled exactly the same way that a too-short table is handled. Turning a non-existent talbe into a table of size 0 makes the user code safer.
This commit is contained in:
parent
c035812feb
commit
9417c1c0d2
|
@ -417,6 +417,8 @@ hb_face_reference_table (hb_face_t *face,
|
||||||
return &_hb_blob_nil;
|
return &_hb_blob_nil;
|
||||||
|
|
||||||
blob = face->get_table (tag, face->user_data);
|
blob = face->get_table (tag, face->user_data);
|
||||||
|
if (unlikely (!blob))
|
||||||
|
blob = hb_blob_create_empty();
|
||||||
|
|
||||||
return blob;
|
return blob;
|
||||||
}
|
}
|
||||||
|
|
|
@ -286,9 +286,6 @@ struct Sanitizer
|
||||||
|
|
||||||
/* TODO is_sane() stuff */
|
/* TODO is_sane() stuff */
|
||||||
|
|
||||||
if (!blob)
|
|
||||||
return hb_blob_create_empty ();
|
|
||||||
|
|
||||||
retry:
|
retry:
|
||||||
(void) (HB_DEBUG_SANITIZE &&
|
(void) (HB_DEBUG_SANITIZE &&
|
||||||
fprintf (stderr, "Sanitizer %p start %s\n", blob, HB_FUNC));
|
fprintf (stderr, "Sanitizer %p start %s\n", blob, HB_FUNC));
|
||||||
|
|
Loading…
Reference in New Issue