diff options
Diffstat (limited to 'byterun/mlvalues.h')
-rw-r--r-- | byterun/mlvalues.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/byterun/mlvalues.h b/byterun/mlvalues.h index 113590b0e..4d8a690ba 100644 --- a/byterun/mlvalues.h +++ b/byterun/mlvalues.h @@ -278,10 +278,12 @@ CAMLextern header_t caml_atom_table[]; #define Is_atom(v) ((v) >= Atom(0) && (v) <= Atom(255)) #else CAMLextern char * caml_static_data_start, * caml_static_data_end; +CAMLextern int caml_is_in_data(void *); #define Is_atom(v) \ - ((((char *)(v) >= caml_static_data_start \ - && (char *)(v) < caml_static_data_end) \ - || ((v) >= Atom(0) && (v) <= Atom(255)))) + ( ( (char *)(v) >= caml_static_data_start \ + &&(char *)(v) < caml_static_data_end ) \ + || ((v) >= Atom(0) && (v) <= Atom(255)) \ + || (caml_is_in_data((void *)v)) ) #endif /* Booleans are integers 0 or 1 */ |