m[blob] Move immutable check to C API boundary

Similarly to 08ed9e3f77
This commit is contained in:
Behdad Esfahbod 2020-06-28 22:03:57 -07:00
parent 4020c6b286
commit 82928d9cf6
1 changed files with 3 additions and 7 deletions

View File

@ -365,15 +365,14 @@ hb_blob_get_data (hb_blob_t *blob, unsigned int *length)
char * char *
hb_blob_get_data_writable (hb_blob_t *blob, unsigned int *length) hb_blob_get_data_writable (hb_blob_t *blob, unsigned int *length)
{ {
if (!blob->try_make_writable ()) if (hb_object_is_immutable (blob) ||
!blob->try_make_writable ())
{ {
if (length) *length = 0; if (length) *length = 0;
return nullptr; return nullptr;
} }
if (length) if (length) *length = blob->length;
*length = blob->length;
return const_cast<char *> (blob->data); return const_cast<char *> (blob->data);
} }
@ -439,9 +438,6 @@ hb_blob_t::try_make_writable_inplace ()
bool bool
hb_blob_t::try_make_writable () hb_blob_t::try_make_writable ()
{ {
if (hb_object_is_immutable (this))
return false;
if (unlikely (!length)) if (unlikely (!length))
mode = HB_MEMORY_MODE_WRITABLE; mode = HB_MEMORY_MODE_WRITABLE;