diff options
Diffstat (limited to 'byterun/extern.c')
-rw-r--r-- | byterun/extern.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/byterun/extern.c b/byterun/extern.c index 0578d7dbe..ac7f360b7 100644 --- a/byterun/extern.c +++ b/byterun/extern.c @@ -313,9 +313,9 @@ static void extern_rec(value v) if (tag == Forward_tag) { value f = Forward_val (v); - if (Is_block (f) && Is_in_value_area(f) - && (Tag_val (f) == Forward_tag || Tag_val (f) == Lazy_tag - || Tag_val (f) == Double_tag)){ + 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. */ }else{ v = f; |