davidg          Wed Feb 21 04:21:02 2001 EDT

  Modified files:              
    /php4/ext/midgard   midgard.c 
  Log:
  used dynamic alloc to avoid segfault ;)
  
  
Index: php4/ext/midgard/midgard.c
diff -u php4/ext/midgard/midgard.c:1.9 php4/ext/midgard/midgard.c:1.10
--- php4/ext/midgard/midgard.c:1.9      Tue Feb 20 16:29:34 2001
+++ php4/ext/midgard/midgard.c  Wed Feb 21 04:21:01 2001
@@ -1,4 +1,4 @@
-/* $Id: midgard.c,v 1.9 2001/02/21 00:29:34 davidg Exp $
+/* $Id: midgard.c,v 1.10 2001/02/21 12:21:01 davidg Exp $
 Copyright (C) 1999 Jukka Zitting <[EMAIL PROTECTED]>
 Copyright (C) 2000 The Midgard Project ry
 Copyright (C) 2000 Emile Heyns, Aurora SA <[EMAIL PROTECTED]>
@@ -707,13 +707,14 @@
 
 void midgard_user_call_func(midgard *mgd, int id, int level, void *xparam)
 {
-       zval z_id, z_level, z_xparam, *args[3]={&z_id,&z_level,&z_xparam};
+       zval *args[3];
        zval ** xp = (zval **)xparam;
-       zval retval, *return_value = &retval; //just to make sure
+       zval *return_value;
 
-       ZVAL_LONG(args[0], id);
-       ZVAL_LONG(args[1], level);
-       args[2] = xp[0];
+       ALLOC_ZVAL(return_value);       ZVAL_NULL(return_value);
+       ALLOC_ZVAL(args[0]);            ZVAL_LONG(args[0], id);
+       ALLOC_ZVAL(args[1]);            ZVAL_LONG(args[1], level);
+       args[2] = xp[0];                // DG: is this needed ? -> 
+zval_copy_ctor(args[2]);
 
        if(call_user_function(CG(function_table), NULL,
                                  xp[1], return_value, 3,
@@ -722,7 +723,9 @@
                                  (xp[1])->value.str.val);
                return;
        }
-
+       zval_dtor(return_value);
+       zval_dtor(args[0]);
+       zval_dtor(args[1]);
 }
 #endif /* HAVE_MIDGARD */
 



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to