diff options
author | Xavier Leroy <xavier.leroy@inria.fr> | 2008-01-03 09:37:10 +0000 |
---|---|---|
committer | Xavier Leroy <xavier.leroy@inria.fr> | 2008-01-03 09:37:10 +0000 |
commit | a3c0366f4e41bed30ba2170d782d06fbbfd1b8ba (patch) | |
tree | 66860726f88e849cf14c8d454aee8cdc57039623 /byterun/extern.c | |
parent | 4235c38b7f172d84ac2a8f6a50f0a58ce32d5b03 (diff) | |
download | ocaml-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.c | 4 |
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. */ |