summaryrefslogtreecommitdiff
path: root/ext/reflection/php_reflection.c
diff options
context:
space:
mode:
authorMarcus Boerger <helly@php.net>2004-08-04 22:47:56 +0000
committerMarcus Boerger <helly@php.net>2004-08-04 22:47:56 +0000
commit90e4fd0a0a0881d3a21fbd6da08a191968aae124 (patch)
tree6579921fe728c3f8095bc085126627c8417efb79 /ext/reflection/php_reflection.c
parent5c412842d9feb7d6c3a0f05da3f3628714d6a5a3 (diff)
downloadphp-git-90e4fd0a0a0881d3a21fbd6da08a191968aae124.tar.gz
- Fix bug #29523 (ReflectionParameter::isOptional() is incorrect)
Diffstat (limited to 'ext/reflection/php_reflection.c')
-rw-r--r--ext/reflection/php_reflection.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/ext/reflection/php_reflection.c b/ext/reflection/php_reflection.c
index fe8706ebcb..a7f9d2c144 100644
--- a/ext/reflection/php_reflection.c
+++ b/ext/reflection/php_reflection.c
@@ -833,7 +833,7 @@ static void reflection_extension_factory(zval *object, char *name_str TSRMLS_DC)
/* }}} */
/* {{{ 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 @@ static void reflection_parameter_factory(struct _zend_arg_info *arg_info, int of
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 @@ ZEND_METHOD(reflection_function, getParameters)
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++;