From 8cc7a6180df628bad913567b4bcefb8667e06847 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net> Date: Mon, 30 Oct 1995 01:00:37 +0100 Subject: [PATCH] fixed bugs Rev: src/interpret.c:1.2 Rev: src/language.y:1.3 Rev: src/program.c:1.3 --- src/interpret.c | 2 ++ src/language.y | 1 + src/program.c | 4 ++-- 3 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/interpret.c b/src/interpret.c index 483a3abab6..e505d0f06d 100644 --- a/src/interpret.c +++ b/src/interpret.c @@ -981,6 +981,8 @@ void apply_low(struct object *o, int fun, int args) clear_svalues(sp, num_locals - args); sp += num_locals - args; #ifdef DEBUG + if(num_locals < num_args) + fatal("Wrong number of arguments or locals in function def.\n"); fp->num_locals=num_locals; fp->num_args=num_args; #endif diff --git a/src/language.y b/src/language.y index 9d0cbc9fae..aca0a19b5b 100644 --- a/src/language.y +++ b/src/language.y @@ -1137,6 +1137,7 @@ void free_all_local_names() local_variables->variable[e].type=0; } local_variables->current_number_of_locals = 0; + local_variables->max_number_of_locals = 0; } static void push_locals() diff --git a/src/program.c b/src/program.c index a46c0d3842..a801176e4a 100644 --- a/src/program.c +++ b/src/program.c @@ -116,9 +116,10 @@ void start_new_program() low_my_binary_strcat((char *)&name,sizeof(name),&inherit_names); num_parse_error=0; - local_variables=ALLOC_STRUCT(locals); + local_variables=ALLOC_STRUCT(locals); local_variables->next=0; local_variables->current_number_of_locals=0; + local_variables->max_number_of_locals=0; local_variables->current_type=0; local_variables->current_return_type=0; } @@ -534,7 +535,6 @@ void set_exit_callback(void (*exit)(char *,struct object *)) } - int low_reference_inherited_identifier(int e,struct lpc_string *name) { struct reference funp; -- GitLab