From 58854e7baaf880be26bab4f6c5354049ceea3e76 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fredrik=20H=C3=BCbinette=20=28Hubbe=29?= <hubbe@hubbe.net>
Date: Sun, 11 Apr 1999 22:27:49 -0700
Subject: [PATCH] bugfix for atexit()

Rev: src/array.c:1.47
Rev: src/signal_handler.c:1.124
Rev: src/signal_handler.h:1.8
---
 src/array.c          | 4 ++--
 src/signal_handler.c | 9 ++++-----
 src/signal_handler.h | 4 ++--
 3 files changed, 8 insertions(+), 9 deletions(-)

diff --git a/src/array.c b/src/array.c
index ea2ae488ed..def28759ca 100644
--- a/src/array.c
+++ b/src/array.c
@@ -20,7 +20,7 @@
 #include "main.h"
 #include "security.h"
 
-RCSID("$Id: array.c,v 1.46 1999/04/12 02:24:10 hubbe Exp $");
+RCSID("$Id: array.c,v 1.47 1999/04/12 05:27:46 hubbe Exp $");
 
 struct array empty_array=
 {
@@ -1767,7 +1767,7 @@ void gc_free_all_unreferenced_arrays(void)
 	  else
 	    a->item[d++]=a->item[e];
 	}
-	a->size=e;
+	a->size=d;
       }else{
 	for(e=0;e<a->size;e++)
 	{
diff --git a/src/signal_handler.c b/src/signal_handler.c
index 3dfb49df27..f9f8547ec7 100644
--- a/src/signal_handler.c
+++ b/src/signal_handler.c
@@ -25,7 +25,7 @@
 #include "main.h"
 #include <signal.h>
 
-RCSID("$Id: signal_handler.c,v 1.123 1999/04/12 02:24:17 hubbe Exp $");
+RCSID("$Id: signal_handler.c,v 1.124 1999/04/12 05:27:48 hubbe Exp $");
 
 #ifdef HAVE_PASSWD_H
 # include <passwd.h>
@@ -2572,7 +2572,7 @@ static void f_kill(INT32 args)
 
 #ifdef __NT__
 #define HAVE_KILL
-void f_kill(INT32 args)
+static void f_kill(INT32 args)
 {
   HANDLE proc=INVALID_HANDLE_VALUE;
 
@@ -2765,10 +2765,9 @@ void f_atexit(INT32 args)
     atexit_functions=low_allocate_array(0,1);
   }
 
-  f_aggregate(args);
-  atexit_functions=append_array(atexit_functions,sp-1);
+  atexit_functions=append_array(atexit_functions,sp-args);
   atexit_functions->flags |= ARRAY_WEAK_FLAG | ARRAY_WEAK_SHRINK;
-  pop_stack();
+  pop_n_elems(args);
 }
 
 
diff --git a/src/signal_handler.h b/src/signal_handler.h
index e42f56ec20..6bc75f6fc3 100644
--- a/src/signal_handler.h
+++ b/src/signal_handler.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: signal_handler.h,v 1.7 1999/04/12 02:24:19 hubbe Exp $
+ * $Id: signal_handler.h,v 1.8 1999/04/12 05:27:49 hubbe Exp $
  */
 #ifndef SIGNAL_H
 #define SIGNAL_H
@@ -27,10 +27,10 @@ struct perishables;
 void f_set_priority( INT32 args );
 void f_create_process(INT32 args);
 void f_fork(INT32 args);
-void f_kill(INT32 args);
 void f_atexit(INT32 args);
 void init_signals(void);
 void exit_signals(void);
 /* Prototypes end here */
 
+
 #endif
-- 
GitLab