diff --git a/src/c/cmpaux.d b/src/c/cmpaux.d index ecfe0b58b..dff741bbc 100644 --- a/src/c/cmpaux.d +++ b/src/c/cmpaux.d @@ -152,12 +152,13 @@ cl_return_from(cl_object block_id, cl_object block_name) void cl_go(cl_object tag_id, cl_object label) { + const cl_env_ptr the_env = ecl_process_env(); ecl_frame_ptr fr = frs_sch(tag_id); if (fr == NULL) FEcontrol_error("GO: The tagbody ~S is missing.", 1, tag_id); - VALUES(0)=label; - NVALUES=1; - ecl_unwind(ecl_process_env(), fr); + the_env->values[0] = label; + the_env->nvalues = 1; + ecl_unwind(the_env, fr); } cl_object diff --git a/src/c/gbc.d b/src/c/gbc.d index e7941e78d..7ebe3e8c6 100644 --- a/src/c/gbc.d +++ b/src/c/gbc.d @@ -925,16 +925,16 @@ _mark_contblock(void *x, cl_index s) int i; cl_object *tl; @ - NVALUES = 8; - VALUES(0) = ecl_make_fixnum(real_maxpage); - VALUES(1) = ecl_make_fixnum(available_pages()); - VALUES(2) = ecl_make_fixnum(ncbpage); - VALUES(3) = ecl_make_fixnum(maxcbpage); - VALUES(4) = ecl_make_fixnum(ncb); - VALUES(5) = ecl_make_fixnum(cbgccount); - VALUES(6) = ecl_make_fixnum(holepage); - VALUES(7) = Cnil; - tl = &VALUES(7); + the_env->nvalues = 8; + the_env->values[0] = ecl_make_fixnum(real_maxpage); + the_env->values[1] = ecl_make_fixnum(available_pages()); + the_env->values[2] = ecl_make_fixnum(ncbpage); + the_env->values[3] = ecl_make_fixnum(maxcbpage); + the_env->values[4] = ecl_make_fixnum(ncb); + the_env->values[5] = ecl_make_fixnum(cbgccount); + the_env->values[6] = ecl_make_fixnum(holepage); + the_env->values[7] = Cnil; + tl = &the_env->values[7]; for (i = 0; i < (int)t_end; i++) { if (tm_table[i].tm_type == (cl_type)i) { tl = &CDR(*tl = CONS(ecl_make_fixnum(tm_table[i].tm_nused), Cnil)); @@ -950,7 +950,7 @@ _mark_contblock(void *x, cl_index s) tl = &CDR(*tl = CONS(Cnil, Cnil)); } } - return VALUES(0); + return the_env->values[0]; @) @(defun si::reset-gc-count () diff --git a/src/c/gfun.d b/src/c/gfun.d index a41790de9..a1be74ff1 100644 --- a/src/c/gfun.d +++ b/src/c/gfun.d @@ -295,5 +295,5 @@ si_clear_gfun_hash(cl_object what) #endif ecl_cache_remove_one(the_env->method_cache, what); ecl_cache_remove_one(the_env->slot_cache, what); - return0(); + ecl_return0(the_env); } diff --git a/src/c/read.d b/src/c/read.d index 729ce7eb4..021d28039 100644 --- a/src/c/read.d +++ b/src/c/read.d @@ -414,9 +414,9 @@ si_read_object_or_ignore(cl_object in, cl_object eof) x = ecl_read_object_with_delimiter(in, EOF, ECL_READ_RETURN_IGNORABLE, cat_constituent); if (x == OBJNULL) { - NVALUES = 1; + env->nvalues = 1; x = eof; - } else if (env->nvalues != 0) { + } else if (env->nvalues) { if (!Null(ECL_SYM_VAL(env, @'si::*sharp-eq-context*'))) x = patch_sharp(x); } diff --git a/src/h/legacy.h b/src/h/legacy.h index ee8f4c5e3..8bb995f4c 100644 --- a/src/h/legacy.h +++ b/src/h/legacy.h @@ -137,3 +137,5 @@ #define cl_va_end ecl_va_end #define CHAR_CODE_LIMIT ECL_CHAR_CODE_LIMIT + +#define NVALUES cl_env.nvalues diff --git a/src/h/stacks.h b/src/h/stacks.h index ae65ac698..cb1a674f7 100755 --- a/src/h/stacks.h +++ b/src/h/stacks.h @@ -284,7 +284,6 @@ extern ECL_API ecl_frame_ptr _ecl_frs_push(register cl_env_ptr, register cl_obje * RETURN VALUES STACK ***********************/ -#define NVALUES cl_env.nvalues #define VALUES(n) cl_env.values[n] #define return0() return ((NVALUES = 0),Cnil) #define return1(x) return ((VALUES(0)=(x)),(NVALUES=1),VALUES(0))