From a282449a85a5fcade5a9a60c35ebbaa9caac9b85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20Minisini?= Date: Mon, 18 May 2009 12:00:48 +0000 Subject: [PATCH] [INTERPRETER] * BUG: Arguments passed by reference do not crash randomly anymore. git-svn-id: svn://localhost/gambas/trunk@1964 867c0c6c-44f3-4631-809d-bfa615b0a4ec --- main/gbx/gbx_exec.c | 4 ++-- main/gbx/gbx_exec_loop.c | 2 +- main/gbx/gbx_stack.h | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/main/gbx/gbx_exec.c b/main/gbx/gbx_exec.c index 23f8af854..c44aa3f59 100644 --- a/main/gbx/gbx_exec.c +++ b/main/gbx/gbx_exec.c @@ -560,7 +560,7 @@ void EXEC_enter_quick(void) CLASS *class = EXEC.class; #if DEBUG_STACK - printf("\n| >> EXEC_enter(%s, %ld, %d)\n", EXEC.class->name, EXEC.index, EXEC.nparam); + printf("\n| >> EXEC_enter_quick(%s, %ld, %d)\n", EXEC.class->name, EXEC.index, EXEC.nparam); print_register(); #endif @@ -590,7 +590,7 @@ void EXEC_enter_quick(void) EC = NULL; /* reference the object so that it is not destroyed during the function call */ - OBJECT_REF(OP, "EXEC_enter"); + OBJECT_REF(OP, "EXEC_enter_quick"); /* local variables initialization */ diff --git a/main/gbx/gbx_exec_loop.c b/main/gbx/gbx_exec_loop.c index e60c769fb..d2a028b29 100644 --- a/main/gbx/gbx_exec_loop.c +++ b/main/gbx/gbx_exec_loop.c @@ -1653,7 +1653,7 @@ _BYREF: if (PC == FP->code) { PC += GET_XX(); - goto _NEXT; + goto _NEXT2; } THROW(E_BYREF); diff --git a/main/gbx/gbx_stack.h b/main/gbx/gbx_stack.h index f81dcdbef..2699ced3d 100644 --- a/main/gbx/gbx_stack.h +++ b/main/gbx/gbx_stack.h @@ -27,7 +27,7 @@ #include "gbx_value.h" #include "gb_pcode.h" - +#include "gbx_debug.h" typedef struct _stack_context {