diff options
author | Behdad Esfahbod <behdad@behdad.org> | 2010-04-23 13:48:06 -0400 |
---|---|---|
committer | Behdad Esfahbod <behdad@behdad.org> | 2010-04-23 13:48:06 -0400 |
commit | 71e735e915c85536ee4d3035576f7426e8cd19dd (patch) | |
tree | 8238d283eec2cd570758b717b948318cabd371a1 | |
parent | 1aa4666b914da7747fc58a8f6f2d913c94e3b8da (diff) |
[blob] Fallback to copying if mprotect() fails
-rw-r--r-- | src/hb-blob.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/src/hb-blob.c b/src/hb-blob.c index c5f8726..8276d78 100644 --- a/src/hb-blob.c +++ b/src/hb-blob.c @@ -348,6 +348,9 @@ hb_blob_try_writable (hb_blob_t *blob) hb_mutex_lock (blob->lock); + if (blob->mode == HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE) + _try_writable_inplace_locked (blob); + if (blob->mode == HB_MEMORY_MODE_READONLY) { char *new_data; @@ -373,8 +376,6 @@ hb_blob_try_writable (hb_blob_t *blob) blob->user_data = new_data; } } - else if (blob->mode == HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITABLE) - _try_writable_inplace_locked (blob); done: mode = blob->mode; |