cvs: ZendEngine2 / zend_reflection_api.c /tests bug29523.phpt

From: Date: Wed, 04 Aug 2004 22:47:56 +0000
Subject: cvs: ZendEngine2 / zend_reflection_api.c /tests bug29523.phpt
Groups: php.zend-engine.cvs 
Request: Send a blank email to php-zend-engine-cvs+get-2848@lists.php.net to get a copy of this message
helly Wed Aug 4 18:47:56 2004 EDT Added files: /ZendEngine2/tests bug29523.phpt Modified files: /ZendEngine2 zend_reflection_api.c Log: - Fix bug #29523 (ReflectionParameter::isOptional() is incorrect) http://cvs.php.net/diff.php/ZendEngine2/zend_reflection_api.c?r1=1.118&r2=1.119&ty=u Index: ZendEngine2/zend_reflection_api.c diff -u ZendEngine2/zend_reflection_api.c:1.118 ZendEngine2/zend_reflection_api.c:1.119 --- ZendEngine2/zend_reflection_api.c:1.118 Mon Aug 2 19:10:29 2004 +++ ZendEngine2/zend_reflection_api.c Wed Aug 4 18:47:56 2004 @@ -19,7 +19,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: zend_reflection_api.c,v 1.118 2004/08/02 23:10:29 helly Exp $ */ +/* $Id: zend_reflection_api.c,v 1.119 2004/08/04 22:47:56 helly Exp $ */ #include "zend.h" #include "zend_API.h" #include "zend_exceptions.h" @@ -833,7 +833,7 @@ /* }}} */ /* {{{ reflection_parameter_factory */ -static void reflection_parameter_factory(struct _zend_arg_info *arg_info, int offset, zval *object TSRMLS_DC) +static void reflection_parameter_factory(struct _zend_arg_info *arg_info, int offset, int required, zval *object TSRMLS_DC) { reflection_object *intern; parameter_reference *reference; @@ -850,6 +850,7 @@ reference = (parameter_reference*) emalloc(sizeof(parameter_reference)); reference->arg_info = arg_info; reference->offset = offset; + reference->required = required; intern->ptr = reference; intern->free_ptr = 1; zend_hash_update(Z_OBJPROP_P(object), "name", sizeof("name"), (void **) &name, sizeof(zval *), NULL); @@ -1413,7 +1414,7 @@ zval *parameter; ALLOC_ZVAL(parameter); - reflection_parameter_factory(arg_info, i, parameter TSRMLS_CC); + reflection_parameter_factory(arg_info, i, fptr->common.required_num_args, parameter TSRMLS_CC); add_next_index_zval(return_value, parameter); arg_info++; http://cvs.php.net/co.php/ZendEngine2/tests/bug29523.phpt?r=1.1&p=1 Index: ZendEngine2/tests/bug29523.phpt +++ ZendEngine2/tests/bug29523.phpt --TEST-- Bug #29523 (ReflectionParameter::isOptional() is incorrect) --FILE-- <?php class TestClass { } function optionalTest(TestClass $a, TestClass $b, $c = 3) { } $function = new ReflectionFunction('optionalTest'); $numberOfNotOptionalParameters = 0; $numberOfOptionalParameters = 0; foreach($function->getParameters() as $parameter) { var_dump($parameter->isOptional()); if ($parameter->isOptional()) { ++$numberOfOptionalParameters; } else { ++$numberOfNotOptionalParameters; } } var_dump($function->getNumberOfRequiredParameters()); var_dump($numberOfNotOptionalParameters); ?> --EXPECT-- bool(false) bool(false) bool(true) int(2) int(2)

« previous php.zend-engine.cvs (#2848) next »