summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBehdad Esfahbod <behdad@behdad.org>2010-04-23 13:48:06 -0400
committerBehdad Esfahbod <behdad@behdad.org>2010-04-23 13:48:06 -0400
commit71e735e915c85536ee4d3035576f7426e8cd19dd (patch)
tree8238d283eec2cd570758b717b948318cabd371a1
parent1aa4666b914da7747fc58a8f6f2d913c94e3b8da (diff)
[blob] Fallback to copying if mprotect() fails
-rw-r--r--src/hb-blob.c5
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;