cvs: php4 /ext/midgard midgard.c
| From: | David Guerizec | Date: | Sun, 25 Feb 2001 23:34:48 +0000 |
| Subject: | cvs: php4 /ext/midgard midgard.c | ||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-4264@lists.php.net to get a copy of this message | ||
davidg Sun Feb 25 15:34:48 2001 EDT
Modified files:
/php4/ext/midgard midgard.c
Log:
force user to pass $xparam by reference (from mgd_walk_xxx_tree() functions)
Index: php4/ext/midgard/midgard.c
diff -u php4/ext/midgard/midgard.c:1.18 php4/ext/midgard/midgard.c:1.19
--- php4/ext/midgard/midgard.c:1.18 Sun Feb 25 11:31:17 2001
+++ php4/ext/midgard/midgard.c Sun Feb 25 15:34:48 2001
@@ -1,4 +1,4 @@
-/* $Id: midgard.c,v 1.18 2001/02/25 19:31:17 davidg Exp $
+/* $Id: midgard.c,v 1.19 2001/02/25 23:34:48 davidg Exp $
Copyright (C) 1999 Jukka Zitting <jukka.zitting@iki.fi>
Copyright (C) 2000 The Midgard Project ry
Copyright (C) 2000 Emile Heyns, Aurora SA <emile@iris-advies.com>
@@ -751,22 +751,28 @@
zval ** xp = (zval **)xparam;
zval *return_value;
+ if(!PZVAL_IS_REF(xp[0])) {
+ /* DG: Do we force the user to pass it by reference ? */
+ php_error(E_WARNING,"You must pass the fourth parameter by reference.");
+ return;
+ }
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]);
+ 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,
args) != SUCCESS) {
php_error(E_WARNING,"Unable to call %s() - function does not exist",
(xp[1])->value.str.val);
+ zval_dtor(return_value);
+ zval_dtor(args[0]); zval_dtor(args[1]);
return;
}
+
zval_dtor(return_value);
- zval_dtor(args[0]);
- zval_dtor(args[1]);
+ zval_dtor(args[0]); zval_dtor(args[1]);
}
#if YOU_WANT_TO_TEST