summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorYukihiro "Matz" Matsumoto <[email protected]>2017-04-26 07:49:14 +0900
committerGitHub <[email protected]>2017-04-26 07:49:14 +0900
commit3c1078376918c8b8d30b86585655c343dfb3ad16 (patch)
treeb6461bce5dced604dbadf74c90d55de03a933a94
parentcef523cc19d7e8c0471942bf5fac75fc63faf54a (diff)
parent9057a3f3bebaebe942eb24592e3619bf47b051c1 (diff)
downloadmruby-3c1078376918c8b8d30b86585655c343dfb3ad16.tar.gz
mruby-3c1078376918c8b8d30b86585655c343dfb3ad16.zip
Merge pull request #3639 from Asmod4n/patch-1
Add macOS support to mrb_ro_data_p
-rw-r--r--include/mruby/value.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/mruby/value.h b/include/mruby/value.h
index 54d197f8f..a206be549 100644
--- a/include/mruby/value.h
+++ b/include/mruby/value.h
@@ -266,6 +266,14 @@ mrb_undef_value(void)
}
#ifdef MRB_USE_ETEXT_EDATA
+#if (defined(__APPLE__) && defined(__MACH__))
+#include <mach-o/getsect.h>
+static inline mrb_bool
+mrb_ro_data_p(const char *p)
+{
+ return (const char*)get_etext() < p && p < (const char*)get_edata();
+}
+#else
extern char _etext[];
#ifdef MRB_NO_INIT_ARRAY_START
extern char _edata[];
@@ -284,6 +292,7 @@ mrb_ro_data_p(const char *p)
return _etext < p && p < (char*)&__init_array_start;
}
#endif
+#endif
#else
# define mrb_ro_data_p(p) FALSE
#endif