Only call mprotect() when available. For optimal performance, a win32
way to make memory writeable needs to be added.
#include "hb-blob.h"
+#ifdef HAVE_MPROTECT
+#ifdef HAVE_UNISTD_H
#include <unistd.h>
+#endif /* HAVE_UNISTD_H */
#include <sys/mman.h>
+#endif /* HAVE_MPROTECT */
struct _hb_blob_t {
hb_reference_count_t ref_count;
hb_mutex_lock (blob->lock);
+#ifdef HAVE_MPROTECT
if (blob->mode == HB_MEMORY_MODE_READONLY_MAY_MAKE_WRITEABLE) {
unsigned int pagesize, mask, length;
const char *addr;
addr, addr+length, length);
#endif
}
+#else /* !HAVE_MPROTECT */
+#warning "No way to make readonly memory writeable. This is suboptimal."
+#endif
done:
mode = blob->mode;