diff options
Diffstat (limited to 'erts/emulator/beam/bif.c')
-rw-r--r-- | erts/emulator/beam/bif.c | 8 |
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]; |