summaryrefslogtreecommitdiffstats
path: root/byterun/extern.c
diff options
context:
space:
mode:
Diffstat (limited to 'byterun/extern.c')
-rw-r--r--byterun/extern.c6
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;