summaryrefslogtreecommitdiff
path: root/erts/emulator/beam/bif.c
diff options
context:
space:
mode:
Diffstat (limited to 'erts/emulator/beam/bif.c')
-rw-r--r--erts/emulator/beam/bif.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/erts/emulator/beam/bif.c b/erts/emulator/beam/bif.c
index 40dd4129d2..34ffa014e9 100644
--- a/erts/emulator/beam/bif.c
+++ b/erts/emulator/beam/bif.c
@@ -4421,12 +4421,16 @@ BIF_RETTYPE list_to_ref_1(BIF_ALIST_1)
#endif
etp = (ExternalThing *) HAlloc(BIF_P, hsz);
- etp->header = make_external_ref_header(n/2);
+#if defined(ARCH_64)
+ etp->header = make_external_ref_header(n/2 + 1);
+#else
+ etp->header = make_external_ref_header(n);
+#endif
etp->next = BIF_P->off_heap.first;
etp->node = enp;
i = 0;
#if defined(ARCH_64)
- etp->data.ui32[i] = n;
+ etp->data.ui32[i++] = n;
#endif
for (j = 0; j < n; j++) {
etp->data.ui32[i] = refn[j];