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