From c1073a1cf5b4e488283d1b210fd2de43ebd775ce Mon Sep 17 00:00:00 2001
From: "Mirar (Pontus Hagland)" <pike@sort.mirar.org>
Date: Tue, 11 May 1999 20:56:34 +0200
Subject: [PATCH] debug_malloc_touch around f_aggregate

Rev: src/builtin_functions.c:1.169
Rev: src/builtin_functions.h:1.9
---
 src/builtin_functions.c | 11 ++++++++++-
 src/builtin_functions.h | 10 ++++++++--
 2 files changed, 18 insertions(+), 3 deletions(-)

diff --git a/src/builtin_functions.c b/src/builtin_functions.c
index d3f691b795..beae1c977c 100644
--- a/src/builtin_functions.c
+++ b/src/builtin_functions.c
@@ -5,7 +5,7 @@
 \*/
 /**/
 #include "global.h"
-RCSID("$Id: builtin_functions.c,v 1.168 1999/05/02 08:11:32 hubbe Exp $");
+RCSID("$Id: builtin_functions.c,v 1.169 1999/05/11 18:56:32 mirar Exp $");
 #include "interpret.h"
 #include "svalue.h"
 #include "pike_macros.h"
@@ -38,6 +38,7 @@ RCSID("$Id: builtin_functions.c,v 1.168 1999/05/02 08:11:32 hubbe Exp $");
 #include "cyclic.h"
 #include "signal_handler.h"
 #include "security.h"
+#include "builtin_functions.h"
 
 #ifdef HAVE_POLL
 #ifdef HAVE_POLL_H
@@ -67,7 +68,11 @@ void f_equal(INT32 args)
   push_int(i);
 }
 
+#ifdef DEBUG_MALLOC
+void _f_aggregate(INT32 args)
+#else
 void f_aggregate(INT32 args)
+#endif
 {
   struct array *a;
 #ifdef PIKE_DEBUG
@@ -3972,7 +3977,11 @@ void init_builtin_efuns(void)
   ADD_EFUN("add_constant",f_add_constant,tFunc(tStr tOr(tVoid,tMix),tVoid),OPT_SIDE_EFFECT);
   
 /* function(0=mixed ...:array(0)) */
+#ifdef DEBUG_MALLOC
+  ADD_EFUN("aggregate",_f_aggregate,tFuncV(,tSetvar(0,tMix),tArr(tVar(0))),OPT_TRY_OPTIMIZE);
+#else
   ADD_EFUN("aggregate",f_aggregate,tFuncV(,tSetvar(0,tMix),tArr(tVar(0))),OPT_TRY_OPTIMIZE);
+#endif
   
 /* function(0=mixed ...:multiset(0)) */
   ADD_EFUN("aggregate_multiset",f_aggregate_multiset,tFuncV(,tSetvar(0,tMix),tSet(tVar(0))),OPT_TRY_OPTIMIZE);
diff --git a/src/builtin_functions.h b/src/builtin_functions.h
index 52ce5ff056..a3c0970a1b 100644
--- a/src/builtin_functions.h
+++ b/src/builtin_functions.h
@@ -5,7 +5,7 @@
 \*/
 
 /*
- * $Id: builtin_functions.h,v 1.8 1998/12/16 07:49:34 hubbe Exp $
+ * $Id: builtin_functions.h,v 1.9 1999/05/11 18:56:34 mirar Exp $
  */
 #ifndef BUILTIN_EFUNS_H
 #define BUILTIN_EFUNS_H
@@ -15,8 +15,14 @@
 #include "callback.h"
 
 /* Prototypes begin here */
-void f_equal(INT32 args);
+#ifdef DEBUG_MALLOC
+void _f_aggregate(INT32 args);
+#define f_aggregate(X) do { _f_aggregate(X); debug_malloc_touch(sp[-1].u.refs); } while (0)
+#else
 void f_aggregate(INT32 args);
+#endif
+
+void f_equal(INT32 args);
 void f_trace(INT32 args);
 void f_hash(INT32 args);
 void f_copy_value(INT32 args);
-- 
GitLab