1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-07-01 15:20:34 +02:00

Vm creates values with scm_allocate_tagged

* libguile/vm-engine.c (halt): Make values with scm_allocate_tagged.
This commit is contained in:
Andy Wingo 2025-06-23 20:45:00 +02:00
parent 20fcb8ac12
commit a5f9d0da6a

View file

@ -324,9 +324,12 @@ VM_NAME (scm_thread *thread)
uint32_t n;
SYNC_IP ();
VM_ASSERT (nvals <= (UINTPTR_MAX >> 8), abort ());
ret = scm_words ((nvals << 8) | scm_tc7_values, nvals + 1);
struct scm_values *vals =
scm_allocate_tagged (thread, sizeof (*vals) + nvals * sizeof (SCM));
vals->tag_and_count = (nvals << 8) | scm_tc7_values;
for (n = 0; n < nvals; n++)
SCM_SET_CELL_OBJECT (ret, n+1, FP_REF (first_value + n));
vals->values[n] = FP_REF (first_value + n);
ret = scm_from_values (vals);
}
fp = VP->fp;