summaryrefslogtreecommitdiff
path: root/byterun/extern.c
diff options
context:
space:
mode:
authorXavier Leroy <xavier.leroy@inria.fr>2008-01-03 09:37:10 +0000
committerXavier Leroy <xavier.leroy@inria.fr>2008-01-03 09:37:10 +0000
commita3c0366f4e41bed30ba2170d782d06fbbfd1b8ba (patch)
tree66860726f88e849cf14c8d454aee8cdc57039623 /byterun/extern.c
parent4235c38b7f172d84ac2a8f6a50f0a58ce32d5b03 (diff)
downloadocaml-a3c0366f4e41bed30ba2170d782d06fbbfd1b8ba.tar.gz
PR#4448: replace dense page table by sparse hash table.
Introduction and use of macros Is_in_value_area, Is_in_heap_or_young. Removal of USE_MMAP_INSTEAD_OF_MALLOC. git-svn-id: http://caml.inria.fr/svn/ocaml/trunk@8743 f963ae5c-01c2-4b8c-9fe0-0dff7051ff02
Diffstat (limited to 'byterun/extern.c')
-rw-r--r--byterun/extern.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/byterun/extern.c b/byterun/extern.c
index 8ff896e8a1..0578d7dbec 100644
--- a/byterun/extern.c
+++ b/byterun/extern.c
@@ -306,14 +306,14 @@ static void extern_rec(value v)
writecode32(CODE_INT32, n);
return;
}
- if (Is_young(v) || Is_in_heap(v) || Is_atom(v)) {
+ if (Is_in_value_area(v)) {
header_t hd = Hd_val(v);
tag_t tag = Tag_hd(hd);
mlsize_t sz = Wosize_hd(hd);
if (tag == Forward_tag) {
value f = Forward_val (v);
- if (Is_block (f) && (Is_young (f) || Is_in_heap (f))
+ if (Is_block (f) && Is_in_value_area(f)
&& (Tag_val (f) == Forward_tag || Tag_val (f) == Lazy_tag
|| Tag_val (f) == Double_tag)){
/* Do not short-circuit the pointer. */