[blob] Fallback to copying if mprotect() fails
authorBehdad Esfahbod <behdad@behdad.org>
Fri, 23 Apr 2010 17:48:06 +0000 (13:48 -0400)
committerBehdad Esfahbod <behdad@behdad.org>
Fri, 23 Apr 2010 17:48:06 +0000 (13:48 -0400)
src/hb-blob.c

index c5f8726..8276d78 100644 (file)
@@ -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;