Minor fixes in runtime (initialization\!)

This commit is contained in:
Dmitry Boulytchev 2018-12-03 17:01:32 +03:00
parent 49701ce740
commit de1823922a

View file

@ -8,7 +8,7 @@
# include <sys/mman.h> # include <sys/mman.h>
# include <assert.h> # include <assert.h>
// # define DEBUG_PRINT 1 # define DEBUG_PRINT 1
# define STRING_TAG 0x00000001 # define STRING_TAG 0x00000001
# define ARRAY_TAG 0x00000003 # define ARRAY_TAG 0x00000003
@ -200,12 +200,11 @@ extern void* Barray (int n, ...) {
} }
extern void* Bsexp (int n, ...) { extern void* Bsexp (int n, ...) {
va_list args; va_list args = (va_list) BOX(NULL);
int i; int i = BOX(0);
// sexp *r = (sexp*) alloc (sizeof(int) * (n+2)); int ai = BOX(0);
// data *d = &(r->contents); sexp *r = (sexp*) BOX(NULL);
sexp *r; data *d = (sexp*) BOX(NULL);
data *d;
#ifdef DEBUG_PRINT #ifdef DEBUG_PRINT
printf("Bsexp: allocate %zu!\n",sizeof(int) * (n+2)); printf("Bsexp: allocate %zu!\n",sizeof(int) * (n+2));
@ -218,7 +217,7 @@ extern void* Bsexp (int n, ...) {
va_start(args, n); va_start(args, n);
for (i=0; i<n-1; i++) { for (i=0; i<n-1; i++) {
int ai = va_arg(args, int); ai = va_arg(args, int);
((int*)d->contents)[i] = ai; ((int*)d->contents)[i] = ai;
} }
@ -593,11 +592,12 @@ static void * gc (size_t size) {
} }
static void * alloc (size_t size) { static void * alloc (size_t size) {
void * p = BOX(NULL);
if (from_space.current + size < from_space.end) { if (from_space.current + size < from_space.end) {
#ifdef DEBUG_PRINT #ifdef DEBUG_PRINT
printf("alloc: current: %x %zu", from_space.current, size); printf("alloc: current: %x %zu", from_space.current, size);
#endif #endif
void * p = (void*) from_space.current; p = (void*) from_space.current;
from_space.current += size; from_space.current += size;
#ifdef DEBUG_PRINT #ifdef DEBUG_PRINT
printf(";new current: %x \n", from_space.current); printf(";new current: %x \n", from_space.current);