Branch: Tag:


2019-08-18 12:26:20 by Henrik Grubbström (Grubba) <>

Runtime: Modified struct pike_frame.

The field save_sp_offset (which was an offset from locals) is replaced
by a proper pointer save_sp. This is in preparation to allow for the
locals pointer pointing somewhere else than the stack. This also fixes
a potential issue where the interpreter might crash on some cases of
very deep recursion.

2235:    new_frame->fun = (unsigned INT16)fun;    new_frame->locals = save_sp;    new_frame->args = args; -  new_frame->save_sp_offset = 0; +  new_frame->save_sp = save_sp;      #ifdef PIKE_DEBUG    if (Pike_in_gc > GC_PASS_PREPARE && Pike_in_gc < GC_PASS_FREE)