[PHP-CVS] cvs: php-src(PHP_5_3) /ext/sqlite3 sqlite3.c
felipe Sat Jan 3 22:08:39 2009 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/sqlite3sqlite3.c Log: MFH: - Removed unnecessary repeated arginfos - Changed sqlite3stmt and sqlite3result to ZEND_ACC_PRIVATE to avoid reflection instantiation http://cvs.php.net/viewvc.cgi/php-src/ext/sqlite3/sqlite3.c?r1=1.1.2.23&r2=1.1.2.24&diff_format=u Index: php-src/ext/sqlite3/sqlite3.c diff -u php-src/ext/sqlite3/sqlite3.c:1.1.2.23 php-src/ext/sqlite3/sqlite3.c:1.1.2.24 --- php-src/ext/sqlite3/sqlite3.c:1.1.2.23 Wed Dec 31 11:15:44 2008 +++ php-src/ext/sqlite3/sqlite3.c Sat Jan 3 22:08:38 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: sqlite3.c,v 1.1.2.23 2008/12/31 11:15:44 sebastian Exp $ */ +/* $Id: sqlite3.c,v 1.1.2.24 2009/01/03 22:08:38 felipe Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1411,40 +1411,14 @@ ZEND_ARG_INFO(0, encryption_key) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_close, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_exec, 0) - ZEND_ARG_INFO(0, query) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_version, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_lastinsertrowid, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_lasterrorcode, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_lasterrormsg, 0) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_loadextension, 0) ZEND_ARG_INFO(0, shared_library) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_changes, 0) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_escapestring, 0, 0, 1) ZEND_ARG_INFO(0, value) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_prepare, 0, 0, 1) - ZEND_ARG_INFO(0, query) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_query, 0, 0, 1) ZEND_ARG_INFO(0, query) ZEND_END_ARG_INFO() @@ -1467,21 +1441,6 @@ ZEND_ARG_INFO(0, argument_count) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3stmt_paramcount, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3stmt_close, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3stmt_reset, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3stmt_clear, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3stmt_execute, 0) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3stmt_bindparam, 0, 0, 2) ZEND_ARG_INFO(0, param_number) ZEND_ARG_INFO(1, param) @@ -1498,9 +1457,6 @@ ZEND_ARG_INFO(0, sqlite3) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3result_numcolumns, 0) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3result_columnname, 0, 0, 1) ZEND_ARG_INFO(0, column_number) ZEND_END_ARG_INFO() @@ -1513,29 +1469,23 @@ ZEND_ARG_INFO(0, mode) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3result_reset, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3result_finalize, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3result_construct, 0) +ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_void, 0) ZEND_END_ARG_INFO() /* }}} */ /* {{{ php_sqlite3_class_methods */ static zend_function_entry php_sqlite3_class_methods[] = { PHP_ME(sqlite3, open, arginfo_sqlite3_open, ZEND_ACC_PUBLIC) - PHP_ME(sqlite3, close, arginfo_sqlite3_close, ZEND_ACC_PUBLIC) - PHP_ME(sqlite3, exec, arginfo_sqlite3_exec, ZEND_ACC_PUBLIC) - PHP_ME(sqlite3, version, arginfo_sqlite3_version, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) - PHP_ME(sqlite3, lastInsertRowID, arginfo_sqlite3_lastinsertrowid, ZEND_ACC_PUBLIC) - PHP_ME(sqlite3, lastErrorCode, arginfo_sqlite3_lasterrorcode, ZEND_ACC_PUBLIC) - PHP_ME(sqlite3, lastErrorMsg, arginfo_sqlite3_lasterrormsg, ZEND_ACC_PUBLIC) + PHP_ME(sqlite3, close, arginfo_sqlite3_void, ZEND_ACC_PUBLIC) + PHP_ME(sqlite3, exec, arginfo_sqlite3_query, ZEND_ACC_PUBLIC) + PHP_ME(sqlite3, version, arginfo_sqlite3_void, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) + PHP_ME(sqlite3, lastInsertRowID,arginfo_sqlite3_void, ZEND_ACC_PUBLIC) + PHP_ME(sqlite3, lastErrorCode, arginfo_sqlite3_void, ZEND_ACC_PUBLIC) + PHP_ME(sqlite3, lastErrorMsg, arginfo_sqlite3_void, ZEND_ACC_PUBLIC) PHP_ME(sqlite3, loadExtension, arginfo_sqlite3_loadextension, ZEND_ACC_PUBLIC) - PHP_ME(sqlite3, changes, arginfo_sqlite3_changes, ZEND_ACC_PUBLIC) + PHP_ME(sqlite3,
[PHP-CVS] cvs: php-src /ext/sqlite3 sqlite3.c
felipe Sat Jan 3 22:07:22 2009 UTC Modified files: /php-src/ext/sqlite3sqlite3.c Log: - Removed unnecessary repeated arginfos - Changed sqlite3stmt and sqlite3result to ZEND_ACC_PRIVATE to avoid reflection instantiation http://cvs.php.net/viewvc.cgi/php-src/ext/sqlite3/sqlite3.c?r1=1.25&r2=1.26&diff_format=u Index: php-src/ext/sqlite3/sqlite3.c diff -u php-src/ext/sqlite3/sqlite3.c:1.25 php-src/ext/sqlite3/sqlite3.c:1.26 --- php-src/ext/sqlite3/sqlite3.c:1.25 Wed Dec 31 11:12:36 2008 +++ php-src/ext/sqlite3/sqlite3.c Sat Jan 3 22:07:22 2009 @@ -16,7 +16,7 @@ +--+ */ -/* $Id: sqlite3.c,v 1.25 2008/12/31 11:12:36 sebastian Exp $ */ +/* $Id: sqlite3.c,v 1.26 2009/01/03 22:07:22 felipe Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1439,40 +1439,14 @@ ZEND_ARG_INFO(0, encryption_key) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_close, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_exec, 0) - ZEND_ARG_INFO(0, query) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_version, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_lastinsertrowid, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_lasterrorcode, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_lasterrormsg, 0) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_loadextension, 0) ZEND_ARG_INFO(0, shared_library) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_changes, 0) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_escapestring, 0, 0, 1) ZEND_ARG_INFO(0, value) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_prepare, 0, 0, 1) - ZEND_ARG_INFO(0, query) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3_query, 0, 0, 1) ZEND_ARG_INFO(0, query) ZEND_END_ARG_INFO() @@ -1495,21 +1469,6 @@ ZEND_ARG_INFO(0, argument_count) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3stmt_paramcount, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3stmt_close, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3stmt_reset, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3stmt_clear, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3stmt_execute, 0) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3stmt_bindparam, 0, 0, 2) ZEND_ARG_INFO(0, param_number) ZEND_ARG_INFO(1, param) @@ -1526,9 +1485,6 @@ ZEND_ARG_INFO(0, sqlite3) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3result_numcolumns, 0) -ZEND_END_ARG_INFO() - ZEND_BEGIN_ARG_INFO_EX(arginfo_sqlite3result_columnname, 0, 0, 1) ZEND_ARG_INFO(0, column_number) ZEND_END_ARG_INFO() @@ -1541,29 +1497,23 @@ ZEND_ARG_INFO(0, mode) ZEND_END_ARG_INFO() -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3result_reset, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3result_finalize, 0) -ZEND_END_ARG_INFO() - -ZEND_BEGIN_ARG_INFO(arginfo_sqlite3result_construct, 0) +ZEND_BEGIN_ARG_INFO(arginfo_sqlite3_void, 0) ZEND_END_ARG_INFO() /* }}} */ /* {{{ php_sqlite3_class_methods */ static zend_function_entry php_sqlite3_class_methods[] = { PHP_ME(sqlite3, open, arginfo_sqlite3_open, ZEND_ACC_PUBLIC) - PHP_ME(sqlite3, close, arginfo_sqlite3_close, ZEND_ACC_PUBLIC) - PHP_ME(sqlite3, exec, arginfo_sqlite3_exec, ZEND_ACC_PUBLIC) - PHP_ME(sqlite3, version, arginfo_sqlite3_version, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) - PHP_ME(sqlite3, lastInsertRowID, arginfo_sqlite3_lastinsertrowid, ZEND_ACC_PUBLIC) - PHP_ME(sqlite3, lastErrorCode, arginfo_sqlite3_lasterrorcode, ZEND_ACC_PUBLIC) - PHP_ME(sqlite3, lastErrorMsg, arginfo_sqlite3_lasterrormsg, ZEND_ACC_PUBLIC) + PHP_ME(sqlite3, close, arginfo_sqlite3_void, ZEND_ACC_PUBLIC) + PHP_ME(sqlite3, exec, arginfo_sqlite3_query, ZEND_ACC_PUBLIC) + PHP_ME(sqlite3, version, arginfo_sqlite3_void, ZEND_ACC_PUBLIC|ZEND_ACC_STATIC) + PHP_ME(sqlite3, lastInsertRowID,arginfo_sqlite3_void, ZEND_ACC_PUBLIC) + PHP_ME(sqlite3, lastErrorCode, arginfo_sqlite3_void, ZEND_ACC_PUBLIC) + PHP_ME(sqlite3, lastErrorMsg, arginfo_sqlite3_void, ZEND_ACC_PUBLIC) PHP_ME(sqlite3, loadExtension, arginfo_sqlite3_loadextension, ZEND_ACC_PUBLIC) - PHP_ME(sqlite3, changes, arginfo_sqlite3_changes, ZEND_ACC_PUBLIC) + PHP_ME(sqlite3, changes, arginfo_sqlite3_void,
[PHP-CVS] cvs: php-src /ext/reflection php_reflection.c
helly Sat Jan 3 21:06:39 2009 UTC Modified files: /php-src/ext/reflection php_reflection.c Log: - MFB Missing namespace changes # Now all tests PASS again http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.337&r2=1.338&diff_format=u Index: php-src/ext/reflection/php_reflection.c diff -u php-src/ext/reflection/php_reflection.c:1.337 php-src/ext/reflection/php_reflection.c:1.338 --- php-src/ext/reflection/php_reflection.c:1.337 Sat Jan 3 20:40:22 2009 +++ php-src/ext/reflection/php_reflection.c Sat Jan 3 21:06:38 2009 @@ -20,7 +20,7 @@ +--+ */ -/* $Id: php_reflection.c,v 1.337 2009/01/03 20:40:22 helly Exp $ */ +/* $Id: php_reflection.c,v 1.338 2009/01/03 21:06:38 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -2899,13 +2899,13 @@ RETURN_FALSE; } if (Z_TYPE_PP(name) == IS_STRING - && (colon.s = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) - && colon.s > Z_STRVAL_PP(name) && *(colon.s-1) == ':') + && (colon.s = zend_memrchr(Z_STRVAL_PP(name), '\\', Z_STRLEN_PP(name))) + && colon.s > Z_STRVAL_PP(name)) { RETURN_TRUE; } else if (Z_TYPE_PP(name) == IS_UNICODE - && (colon.u = u_memrchr(Z_USTRVAL_PP(name), ':', Z_USTRLEN_PP(name))) - && colon.u > Z_USTRVAL_PP(name) && *(colon.u-1) == ':') + && (colon.u = u_memrchr(Z_USTRVAL_PP(name), '\\', Z_USTRLEN_PP(name))) + && colon.u > Z_USTRVAL_PP(name)) { RETURN_TRUE; } @@ -2913,53 +2913,53 @@ } /* }}} */ -/* {{{ proto public string ReflectionFunction::getNamespaceName() +/* {{{ proto public string ReflectionFunction::getNamespaceName() U Returns the name of namespace where this function is defined */ ZEND_METHOD(reflection_function, getNamespaceName) { zval **name; - zstr colon; + zstr backslash; METHOD_NOTSTATIC_NUMPARAMS(reflection_function_abstract_ptr, 0); if (zend_hash_find(Z_OBJPROP_P(getThis()), "name", sizeof("name"), (void **) &name) == FAILURE) { RETURN_FALSE; } if (Z_TYPE_PP(name) == IS_STRING - && (colon.s = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) - && colon.s > Z_STRVAL_PP(name) && *(colon.s-1) == ':') + && (backslash.s = zend_memrchr(Z_STRVAL_PP(name), '\\', Z_STRLEN_PP(name))) + && backslash.s > Z_STRVAL_PP(name)) { - RETURN_STRINGL(Z_STRVAL_PP(name), colon.s - Z_STRVAL_PP(name) - 1, 1); + RETURN_STRINGL(Z_STRVAL_PP(name), backslash.s - Z_STRVAL_PP(name), 1); } else if (Z_TYPE_PP(name) == IS_UNICODE - && (colon.u = u_memrchr(Z_USTRVAL_PP(name), ':', Z_USTRLEN_PP(name))) - && colon.u > Z_USTRVAL_PP(name) && *(colon.u-1) == ':') + && (backslash.u = u_memrchr(Z_USTRVAL_PP(name), '\\', Z_USTRLEN_PP(name))) + && backslash.u > Z_USTRVAL_PP(name)) { - RETURN_UNICODEL(Z_USTRVAL_PP(name), colon.u - Z_USTRVAL_PP(name) - 1, 1); + RETURN_UNICODEL(Z_USTRVAL_PP(name), backslash.u - Z_USTRVAL_PP(name), 1); } RETURN_EMPTY_TEXT(); } /* }}} */ -/* {{{ proto public string ReflectionFunction::getShortName() +/* {{{ proto public string ReflectionFunction::getShortName() U Returns the short name of the function (without namespace part) */ ZEND_METHOD(reflection_function, getShortName) { zval **name; - zstr colon; + zstr backslash; METHOD_NOTSTATIC_NUMPARAMS(reflection_function_abstract_ptr, 0); if (zend_hash_find(Z_OBJPROP_P(getThis()), "name", sizeof("name"), (void **) &name) == FAILURE) { RETURN_FALSE; } if (Z_TYPE_PP(name) == IS_STRING - && (colon.s = zend_memrchr(Z_STRVAL_PP(name), ':', Z_STRLEN_PP(name))) - && colon.s > Z_STRVAL_PP(name) && *(colon.s-1) == ':') + && (backslash.s = zend_memrchr(Z_STRVAL_PP(name), '\\', Z_STRLEN_PP(name))) + && backslash.s > Z_STRVAL_PP(name)) { - RETURN_STRINGL(colon.s + 1, Z_STRLEN_PP(name) - (colon.s - Z_STRVAL_PP(name) + 1), 1); + RETURN_STRINGL(backslash.s + 1, Z_STRLEN_PP(name) - (backslash.s - Z_STRVAL_PP(name) + 1), 1); } else if (Z_TYPE_PP(name) == IS_UNICODE - && (colon.u = u_memrchr(Z_USTRVAL_PP(name), ':', Z_USTRLEN_PP(name))) - && colon.u > Z_USTRVAL_PP(name) && *(colon.u-1) == ':') + && (backslash.u = u_memrchr(Z_USTRVAL_PP(name), '\\', Z_USTRLEN_PP(name))) + && backslash.u > Z_USTRVAL_PP(name)) { - RETURN_UNICODEL(colon.u + 1, Z_USTRLEN_PP(name) - (colon.u - Z_USTRV
[PHP-CVS] cvs: php-src(PHP_5_3) /ext/reflection php_reflection.c /ext/reflection/tests 027.phpt ReflectionMethod_getClosure_error.phpt
helly Sat Jan 3 20:41:01 2009 UTC Added files: (Branch: PHP_5_3) /php-src/ext/reflection/tests 027.phpt Modified files: /php-src/ext/reflection php_reflection.c /php-src/ext/reflection/tests ReflectionMethod_getClosure_error.phpt Log: - MFH Minor corrections and a new test http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.164.2.33.2.45.2.49&r2=1.164.2.33.2.45.2.50&diff_format=u Index: php-src/ext/reflection/php_reflection.c diff -u php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.49 php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.50 --- php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.49Sat Jan 3 20:04:22 2009 +++ php-src/ext/reflection/php_reflection.c Sat Jan 3 20:41:00 2009 @@ -20,7 +20,7 @@ +--+ */ -/* $Id: php_reflection.c,v 1.164.2.33.2.45.2.49 2009/01/03 20:04:22 helly Exp $ */ +/* $Id: php_reflection.c,v 1.164.2.33.2.45.2.50 2009/01/03 20:41:00 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -861,7 +861,7 @@ string_printf(str, "\n"); string_printf(str, "%s - Static Parameters [%d] {\n", indent, count); if (closure_this) { - string_printf(str, "%sParameter #%d [ %s $this ]\n", indent, ++index, Z_OBJCE_P(closure_this)->name); + string_printf(str, "%sParameter #%d [ %s $this ]\n", indent, index++, Z_OBJCE_P(closure_this)->name); } if (static_variables) { HashPosition pos; @@ -869,7 +869,7 @@ char* key; ulong num_index; zend_hash_internal_pointer_reset_ex(static_variables, &pos); - while (index++ < count) { + while (index < count) { zend_hash_get_current_key_ex(static_variables, &key, &key_len, &num_index, 0, &pos); string_printf(str, "%sParameter #%d [ $%s ]\n", indent, index++, key); zend_hash_move_forward_ex(static_variables, &pos); @@ -1570,7 +1570,9 @@ GET_REFLECTION_OBJECT_PTR(fptr); if (intern->obj) { closure_this = zend_get_closure_this_ptr(intern->obj TSRMLS_CC); - RETURN_ZVAL(closure_this, 1, 0); + if (closure_this) { + RETURN_ZVAL(closure_this, 1, 0); + } } } /* }}} */ @@ -5378,7 +5380,7 @@ php_info_print_table_start(); php_info_print_table_header(2, "Reflection", "enabled"); - php_info_print_table_row(2, "Version", "$Revision: 1.164.2.33.2.45.2.49 $"); + php_info_print_table_row(2, "Version", "$Revision: 1.164.2.33.2.45.2.50 $"); php_info_print_table_end(); } /* }}} */ @@ -5392,7 +5394,7 @@ NULL, NULL, PHP_MINFO(reflection), - "$Revision: 1.164.2.33.2.45.2.49 $", + "$Revision: 1.164.2.33.2.45.2.50 $", STANDARD_MODULE_PROPERTIES }; /* }}} */ http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt?r1=1.1.2.1&r2=1.1.2.2&diff_format=u Index: php-src/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt diff -u php-src/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt:1.1.2.1 php-src/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt:1.1.2.2 --- php-src/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt:1.1.2.1 Fri Aug 8 12:39:16 2008 +++ php-src/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt Sat Jan 3 20:41:01 2009 @@ -56,9 +56,13 @@ *** Testing ReflectionMethod::getClosure() : error conditions *** -- Testing ReflectionMethod::getClosure() function with more than expected no. of arguments -- -object(Closure)#%d (0) { +object(Closure)#%d (1) { + ["this"]=> + NULL } -object(Closure)#%d (0) { +object(Closure)#%d (1) { + ["this"]=> + NULL } Warning: ReflectionMethod::getClosure() expects exactly 1 parameter, 2 given in %s on line %d http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/tests/027.phpt?view=markup&rev=1.1 Index: php-src/ext/reflection/tests/027.phpt +++ php-src/ext/reflection/tests/027.phpt --TEST-- --FILE-- getClosureThis())); var_dump($r->getName()); var_dump($r->isClosure()); Class Test { public $func; function __construct(){ global $global; $this->func = function($x, stdClass $y = NULL) use($global) { static $static; }; } } ReflectionMethod::export(new Test, "func"); $r = new ReflectionMethod(new Test,
[PHP-CVS] cvs: php-src /ext/reflection php_reflection.c /ext/reflection/tests 027.phpt ReflectionMethod_getClosure_error.phpt
helly Sat Jan 3 20:40:22 2009 UTC Added files: /php-src/ext/reflection/tests 027.phpt Modified files: /php-src/ext/reflection php_reflection.c /php-src/ext/reflection/tests ReflectionMethod_getClosure_error.phpt Log: - Minor corrections and a new test http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.336&r2=1.337&diff_format=u Index: php-src/ext/reflection/php_reflection.c diff -u php-src/ext/reflection/php_reflection.c:1.336 php-src/ext/reflection/php_reflection.c:1.337 --- php-src/ext/reflection/php_reflection.c:1.336 Sat Jan 3 20:03:45 2009 +++ php-src/ext/reflection/php_reflection.c Sat Jan 3 20:40:22 2009 @@ -20,7 +20,7 @@ +--+ */ -/* $Id: php_reflection.c,v 1.336 2009/01/03 20:03:45 helly Exp $ */ +/* $Id: php_reflection.c,v 1.337 2009/01/03 20:40:22 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -886,7 +886,7 @@ string_printf(str, "\n"); string_printf(str, "%s - Static Parameters [%d] {\n", indent, count); if (closure_this) { - string_printf(str, "%sParameter #%d [ %v $this ]\n", indent, ++index, Z_OBJCE_P(closure_this)->name); + string_printf(str, "%sParameter #%d [ %v $this ]\n", indent, index++, Z_OBJCE_P(closure_this)->name); } if (static_variables) { HashPosition pos; @@ -894,7 +894,7 @@ zstr key; ulong num_index; zend_hash_internal_pointer_reset_ex(static_variables, &pos); - while (index++ < count) { + while (index < count) { zend_hash_get_current_key_ex(static_variables, &key, &key_len, &num_index, 0, &pos); string_printf(str, "%sParameter #%d [ $%v ]\n", indent, index++, key); zend_hash_move_forward_ex(static_variables, &pos); @@ -1605,7 +1605,9 @@ GET_REFLECTION_OBJECT_PTR(fptr); if (intern->obj) { closure_this = zend_get_closure_this_ptr(intern->obj TSRMLS_CC); - RETURN_ZVAL(closure_this, 1, 0); + if (closure_this) { + RETURN_ZVAL(closure_this, 1, 0); + } } } /* }}} */ @@ -5558,7 +5560,7 @@ php_info_print_table_start(); php_info_print_table_header(2, "Reflection", "enabled"); - php_info_print_table_row(2, "Version", "$Revision: 1.336 $"); + php_info_print_table_row(2, "Version", "$Revision: 1.337 $"); php_info_print_table_end(); } /* }}} */ @@ -5572,7 +5574,7 @@ NULL, NULL, PHP_MINFO(reflection), - "$Revision: 1.336 $", + "$Revision: 1.337 $", STANDARD_MODULE_PROPERTIES }; /* }}} */ http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt?r1=1.2&r2=1.3&diff_format=u Index: php-src/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt diff -u php-src/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt:1.2 php-src/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt:1.3 --- php-src/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt:1.2 Fri Aug 8 12:42:40 2008 +++ php-src/ext/reflection/tests/ReflectionMethod_getClosure_error.phpt Sat Jan 3 20:40:22 2009 @@ -56,9 +56,13 @@ *** Testing ReflectionMethod::getClosure() : error conditions *** -- Testing ReflectionMethod::getClosure() function with more than expected no. of arguments -- -object(Closure)#%d (0) { +object(Closure)#%d (1) { + ["this"]=> + NULL } -object(Closure)#%d (0) { +object(Closure)#%d (1) { + ["this"]=> + NULL } Warning: ReflectionMethod::getClosure() expects exactly 1 parameter, 2 given in %s on line %d http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/tests/027.phpt?view=markup&rev=1.1 Index: php-src/ext/reflection/tests/027.phpt +++ php-src/ext/reflection/tests/027.phpt --TEST-- --FILE-- getClosureThis())); var_dump($r->getName()); var_dump($r->isClosure()); Class Test { public $func; function __construct(){ global $global; $this->func = function($x, stdClass $y = NULL) use($global) { static $static; }; } } ReflectionMethod::export(new Test, "func"); $r = new ReflectionMethod(new Test, "func"); var_dump(get_class($r->getClosureThis())); var_dump($r->getName()); var_dump($r->isClosure()); ?> ===DONE=== --EXPECTF-- Closure [ function {closure} ] { @@ %s027.php 5 - 7 - Static Paramet
[PHP-CVS] cvs: php-src /ext/reflection/tests ReflectionFunction_getNamespaceName.phpt reflectionClass_getNamespaceName.phpt
helly Sat Jan 3 20:39:26 2009 UTC Modified files: /php-src/ext/reflection/tests ReflectionFunction_getNamespaceName.phpt reflectionClass_getNamespaceName.phpt Log: - MFB sync http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt?r1=1.2&r2=1.3&diff_format=u Index: php-src/ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt diff -u php-src/ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt:1.2 php-src/ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt:1.3 --- php-src/ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt:1.2 Wed Jun 25 12:34:14 2008 +++ php-src/ext/reflection/tests/ReflectionFunction_getNamespaceName.phpt Sat Jan 3 20:39:26 2009 @@ -2,16 +2,16 @@ ReflectionFunction::getNamespaceName() --FILE-- inNamespace()); var_dump($function->getName()); var_dump($function->getNamespaceName()); var_dump($function->getShortName()); -$function = new ReflectionFunction('A::B::foo'); +$function = new \ReflectionFunction('A\\B\\foo'); var_dump($function->inNamespace()); var_dump($function->getName()); var_dump($function->getNamespaceName()); @@ -23,7 +23,7 @@ unicode(0) "" unicode(4) "sort" bool(true) -unicode(9) "A::B::foo" -unicode(4) "A::B" +unicode(7) "A\B\foo" +unicode(3) "A\B" unicode(3) "foo" http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/tests/reflectionClass_getNamespaceName.phpt?r1=1.2&r2=1.3&diff_format=u Index: php-src/ext/reflection/tests/reflectionClass_getNamespaceName.phpt diff -u php-src/ext/reflection/tests/reflectionClass_getNamespaceName.phpt:1.2 php-src/ext/reflection/tests/reflectionClass_getNamespaceName.phpt:1.3 --- php-src/ext/reflection/tests/reflectionClass_getNamespaceName.phpt:1.2 Wed Jun 25 12:34:14 2008 +++ php-src/ext/reflection/tests/reflectionClass_getNamespaceName.phpt Sat Jan 3 20:39:26 2009 @@ -2,17 +2,17 @@ ReflectionClass::getNamespaceName() --FILE-- inNamespace()); var_dump($function->getName()); var_dump($function->getNamespaceName()); var_dump($function->getShortName()); -$function = new ReflectionClass('A::B::Foo'); +$function = new \ReflectionClass('A\\B\\Foo'); var_dump($function->inNamespace()); var_dump($function->getName()); var_dump($function->getNamespaceName()); @@ -24,7 +24,7 @@ unicode(0) "" unicode(8) "stdClass" bool(true) -unicode(9) "A::B::Foo" -unicode(4) "A::B" +unicode(7) "A\B\Foo" +unicode(3) "A\B" unicode(3) "Foo" -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_3) /ext/reflection php_reflection.c
helly Sat Jan 3 20:04:23 2009 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/reflection php_reflection.c Log: - MFH Show closure's bound as static parameter http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.164.2.33.2.45.2.48&r2=1.164.2.33.2.45.2.49&diff_format=u Index: php-src/ext/reflection/php_reflection.c diff -u php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.48 php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.49 --- php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.48Sat Jan 3 19:08:47 2009 +++ php-src/ext/reflection/php_reflection.c Sat Jan 3 20:04:22 2009 @@ -20,7 +20,7 @@ +--+ */ -/* $Id: php_reflection.c,v 1.164.2.33.2.45.2.48 2009/01/03 19:08:47 helly Exp $ */ +/* $Id: php_reflection.c,v 1.164.2.33.2.45.2.49 2009/01/03 20:04:22 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -850,24 +850,32 @@ } if (closure) { const zend_function *closure_fptr = zend_get_closure_method_def(closure TSRMLS_CC); + zval *closure_this = zend_get_closure_this_ptr(closure TSRMLS_CC); + HashTable *static_variables = NULL; + int index = 0, count = closure_this ? 1 : 0; if (closure_fptr->type == ZEND_USER_FUNCTION && closure_fptr->op_array.static_variables) { - HashTable *static_variables = closure_fptr->op_array.static_variables; - HashPosition pos; - uint key_len; - char* key; - ulong num_index, index = 0; - int count = zend_hash_num_elements(static_variables); - if (count) { - string_printf(str, "\n"); - string_printf(str, "%s - Static Parameters [%d] {\n", indent, count); + static_variables = closure_fptr->op_array.static_variables; + count += zend_hash_num_elements(static_variables); + } + if (count) { + string_printf(str, "\n"); + string_printf(str, "%s - Static Parameters [%d] {\n", indent, count); + if (closure_this) { + string_printf(str, "%sParameter #%d [ %s $this ]\n", indent, ++index, Z_OBJCE_P(closure_this)->name); + } + if (static_variables) { + HashPosition pos; + uint key_len; + char* key; + ulong num_index; zend_hash_internal_pointer_reset_ex(static_variables, &pos); while (index++ < count) { zend_hash_get_current_key_ex(static_variables, &key, &key_len, &num_index, 0, &pos); string_printf(str, "%sParameter #%d [ $%s ]\n", indent, index++, key); zend_hash_move_forward_ex(static_variables, &pos); - } - string_printf(str, "%s }\n", indent); + } } + string_printf(str, "%s }\n", indent); } } string_init(¶m_indent); @@ -5370,7 +5378,7 @@ php_info_print_table_start(); php_info_print_table_header(2, "Reflection", "enabled"); - php_info_print_table_row(2, "Version", "$Revision: 1.164.2.33.2.45.2.48 $"); + php_info_print_table_row(2, "Version", "$Revision: 1.164.2.33.2.45.2.49 $"); php_info_print_table_end(); } /* }}} */ @@ -5384,7 +5392,7 @@ NULL, NULL, PHP_MINFO(reflection), - "$Revision: 1.164.2.33.2.45.2.48 $", + "$Revision: 1.164.2.33.2.45.2.49 $", STANDARD_MODULE_PROPERTIES }; /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/reflection php_reflection.c
helly Sat Jan 3 20:03:45 2009 UTC Modified files: /php-src/ext/reflection php_reflection.c Log: - Show closure's bound as static parameter http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.335&r2=1.336&diff_format=u Index: php-src/ext/reflection/php_reflection.c diff -u php-src/ext/reflection/php_reflection.c:1.335 php-src/ext/reflection/php_reflection.c:1.336 --- php-src/ext/reflection/php_reflection.c:1.335 Sat Jan 3 19:08:27 2009 +++ php-src/ext/reflection/php_reflection.c Sat Jan 3 20:03:45 2009 @@ -20,7 +20,7 @@ +--+ */ -/* $Id: php_reflection.c,v 1.335 2009/01/03 19:08:27 helly Exp $ */ +/* $Id: php_reflection.c,v 1.336 2009/01/03 20:03:45 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -875,24 +875,32 @@ } if (closure) { const zend_function *closure_fptr = zend_get_closure_method_def(closure TSRMLS_CC); + zval *closure_this = zend_get_closure_this_ptr(closure TSRMLS_CC); + HashTable *static_variables = NULL; + int index = 0, count = closure_this ? 1 : 0; if (closure_fptr->type == ZEND_USER_FUNCTION && closure_fptr->op_array.static_variables) { - HashTable *static_variables = closure_fptr->op_array.static_variables; - HashPosition pos; - uint key_len; - zstr key; - ulong num_index, index = 0; - int count = zend_hash_num_elements(static_variables); - if (count) { - string_printf(str, "\n"); - string_printf(str, "%s - Static Parameters [%d] {\n", indent, count); + static_variables = closure_fptr->op_array.static_variables; + count += zend_hash_num_elements(static_variables); + } + if (count) { + string_printf(str, "\n"); + string_printf(str, "%s - Static Parameters [%d] {\n", indent, count); + if (closure_this) { + string_printf(str, "%sParameter #%d [ %v $this ]\n", indent, ++index, Z_OBJCE_P(closure_this)->name); + } + if (static_variables) { + HashPosition pos; + uint key_len; + zstr key; + ulong num_index; zend_hash_internal_pointer_reset_ex(static_variables, &pos); while (index++ < count) { zend_hash_get_current_key_ex(static_variables, &key, &key_len, &num_index, 0, &pos); string_printf(str, "%sParameter #%d [ $%v ]\n", indent, index++, key); zend_hash_move_forward_ex(static_variables, &pos); - } - string_printf(str, "%s }\n", indent); + } } + string_printf(str, "%s }\n", indent); } } string_init(¶m_indent); @@ -5550,7 +5558,7 @@ php_info_print_table_start(); php_info_print_table_header(2, "Reflection", "enabled"); - php_info_print_table_row(2, "Version", "$Revision: 1.335 $"); + php_info_print_table_row(2, "Version", "$Revision: 1.336 $"); php_info_print_table_end(); } /* }}} */ @@ -5564,7 +5572,7 @@ NULL, NULL, PHP_MINFO(reflection), - "$Revision: 1.335 $", + "$Revision: 1.336 $", STANDARD_MODULE_PROPERTIES }; /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_3) /ext/reflection php_reflection.c
helly Sat Jan 3 19:08:47 2009 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/reflection php_reflection.c Log: MFH - Add ReflectionFunctionAbstract::getClosureThis() [DOC] # Returns the this pointer bound to the closure is the relection object # points to closure. Since not all closures have a bound this, the method # cannot be used to differentiate between normal functions/methods and # closures. Instead ReflectionFunctionAbstract::isClosure() has to be used. http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.164.2.33.2.45.2.47&r2=1.164.2.33.2.45.2.48&diff_format=u Index: php-src/ext/reflection/php_reflection.c diff -u php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.47 php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.48 --- php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.47Sat Jan 3 14:20:22 2009 +++ php-src/ext/reflection/php_reflection.c Sat Jan 3 19:08:47 2009 @@ -20,7 +20,7 @@ +--+ */ -/* $Id: php_reflection.c,v 1.164.2.33.2.45.2.47 2009/01/03 14:20:22 helly Exp $ */ +/* $Id: php_reflection.c,v 1.164.2.33.2.45.2.48 2009/01/03 19:08:47 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1550,6 +1550,23 @@ } /* }}} */ +/* {{{ proto public bool ReflectionFunction::getClosureThis() + Returns this pointer bound to closure */ +ZEND_METHOD(reflection_function, getClosureThis) +{ + reflection_object *intern; + zend_function *fptr; + zval* closure_this; + + METHOD_NOTSTATIC_NUMPARAMS(reflection_function_abstract_ptr, 0); + GET_REFLECTION_OBJECT_PTR(fptr); + if (intern->obj) { + closure_this = zend_get_closure_this_ptr(intern->obj TSRMLS_CC); + RETURN_ZVAL(closure_this, 1, 0); + } +} +/* }}} */ + /* {{{ proto public bool ReflectionFunction::isInternal() Returns whether this is an internal function */ ZEND_METHOD(reflection_function, isInternal) @@ -4927,25 +4944,26 @@ static const zend_function_entry reflection_function_abstract_functions[] = { ZEND_ME(reflection, __clone, NULL, ZEND_ACC_PRIVATE|ZEND_ACC_FINAL) PHP_ABSTRACT_ME(reflection_function, __toString, NULL) + ZEND_ME(reflection_function, inNamespace, NULL, 0) ZEND_ME(reflection_function, isClosure, NULL, 0) + ZEND_ME(reflection_function, isDeprecated, NULL, 0) ZEND_ME(reflection_function, isInternal, NULL, 0) ZEND_ME(reflection_function, isUserDefined, NULL, 0) - ZEND_ME(reflection_function, getName, NULL, 0) - ZEND_ME(reflection_function, getFileName, NULL, 0) - ZEND_ME(reflection_function, getStartLine, NULL, 0) - ZEND_ME(reflection_function, getEndLine, NULL, 0) + ZEND_ME(reflection_function, getClosureThis, NULL, 0) ZEND_ME(reflection_function, getDocComment, NULL, 0) - ZEND_ME(reflection_function, getStaticVariables, NULL, 0) - ZEND_ME(reflection_function, returnsReference, NULL, 0) - ZEND_ME(reflection_function, getParameters, NULL, 0) - ZEND_ME(reflection_function, getNumberOfParameters, NULL, 0) - ZEND_ME(reflection_function, getNumberOfRequiredParameters, NULL, 0) + ZEND_ME(reflection_function, getEndLine, NULL, 0) ZEND_ME(reflection_function, getExtension, NULL, 0) ZEND_ME(reflection_function, getExtensionName, NULL, 0) - ZEND_ME(reflection_function, isDeprecated, NULL, 0) - ZEND_ME(reflection_function, inNamespace, NULL, 0) + ZEND_ME(reflection_function, getFileName, NULL, 0) + ZEND_ME(reflection_function, getName, NULL, 0) ZEND_ME(reflection_function, getNamespaceName, NULL, 0) + ZEND_ME(reflection_function, getNumberOfParameters, NULL, 0) + ZEND_ME(reflection_function, getNumberOfRequiredParameters, NULL, 0) + ZEND_ME(reflection_function, getParameters, NULL, 0) ZEND_ME(reflection_function, getShortName, NULL, 0) + ZEND_ME(reflection_function, getStartLine, NULL, 0) + ZEND_ME(reflection_function, getStaticVariables, NULL, 0) + ZEND_ME(reflection_function, returnsReference, NULL, 0) {NULL, NULL, NULL} }; @@ -5352,7 +5370,7 @@ php_info_print_table_start(); php_info_print_table_header(2, "Reflection", "enabled"); - php_info_print_table_row(2, "Version", "$Revision: 1.164.2.33.2.45.2.47 $"); + php_info_print_table_row(2, "Version", "$Revision: 1.164.2.33.2.45.2.48 $"); php_info_print_table_end(); } /* }}} */ @@ -5366,7 +5384,7 @@ NULL, NULL, PHP_MINFO(reflection), - "$Revision: 1.164.2.33.2.45.2.47 $", + "$Revision: 1.164.2.33.2.45.2.48 $", STANDARD_MODULE_PROPERTIES }; /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/reflection php_reflection.c
helly Sat Jan 3 19:08:27 2009 UTC Modified files: /php-src/ext/reflection php_reflection.c Log: - Return this pointer and not closure itself http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.334&r2=1.335&diff_format=u Index: php-src/ext/reflection/php_reflection.c diff -u php-src/ext/reflection/php_reflection.c:1.334 php-src/ext/reflection/php_reflection.c:1.335 --- php-src/ext/reflection/php_reflection.c:1.334 Sat Jan 3 19:02:06 2009 +++ php-src/ext/reflection/php_reflection.c Sat Jan 3 19:08:27 2009 @@ -20,7 +20,7 @@ +--+ */ -/* $Id: php_reflection.c,v 1.334 2009/01/03 19:02:06 helly Exp $ */ +/* $Id: php_reflection.c,v 1.335 2009/01/03 19:08:27 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1591,10 +1591,14 @@ { reflection_object *intern; zend_function *fptr; + zval* closure_this; METHOD_NOTSTATIC_NUMPARAMS(reflection_function_abstract_ptr, 0); GET_REFLECTION_OBJECT_PTR(fptr); - RETURN_ZVAL(intern->obj, 1, 0); + if (intern->obj) { + closure_this = zend_get_closure_this_ptr(intern->obj TSRMLS_CC); + RETURN_ZVAL(closure_this, 1, 0); + } } /* }}} */ @@ -5546,7 +5550,7 @@ php_info_print_table_start(); php_info_print_table_header(2, "Reflection", "enabled"); - php_info_print_table_row(2, "Version", "$Revision: 1.334 $"); + php_info_print_table_row(2, "Version", "$Revision: 1.335 $"); php_info_print_table_end(); } /* }}} */ @@ -5560,7 +5564,7 @@ NULL, NULL, PHP_MINFO(reflection), - "$Revision: 1.334 $", + "$Revision: 1.335 $", STANDARD_MODULE_PROPERTIES }; /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/reflection php_reflection.c
helly Sat Jan 3 19:02:07 2009 UTC Modified files: /php-src/ext/reflection php_reflection.c Log: - Add ReflectionFunctionAbstract::getClosureThis() http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.333&r2=1.334&diff_format=u Index: php-src/ext/reflection/php_reflection.c diff -u php-src/ext/reflection/php_reflection.c:1.333 php-src/ext/reflection/php_reflection.c:1.334 --- php-src/ext/reflection/php_reflection.c:1.333 Sat Jan 3 14:20:07 2009 +++ php-src/ext/reflection/php_reflection.c Sat Jan 3 19:02:06 2009 @@ -20,7 +20,7 @@ +--+ */ -/* $Id: php_reflection.c,v 1.333 2009/01/03 14:20:07 helly Exp $ */ +/* $Id: php_reflection.c,v 1.334 2009/01/03 19:02:06 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1585,6 +1585,19 @@ } /* }}} */ +/* {{{ proto public bool ReflectionFunction::getClosureThis() U + Returns this pointer bound to closure */ +ZEND_METHOD(reflection_function, getClosureThis) +{ + reflection_object *intern; + zend_function *fptr; + + METHOD_NOTSTATIC_NUMPARAMS(reflection_function_abstract_ptr, 0); + GET_REFLECTION_OBJECT_PTR(fptr); + RETURN_ZVAL(intern->obj, 1, 0); +} +/* }}} */ + /* {{{ proto public bool ReflectionFunction::isInternal() U Returns whether this is an internal function */ ZEND_METHOD(reflection_function, isInternal) @@ -5106,25 +5119,26 @@ static const zend_function_entry reflection_function_abstract_functions[] = { ZEND_ME(reflection, __clone, NULL, ZEND_ACC_PRIVATE|ZEND_ACC_FINAL) PHP_ABSTRACT_ME(reflection_function, __toString, NULL) + ZEND_ME(reflection_function, inNamespace, NULL, 0) ZEND_ME(reflection_function, isClosure, NULL, 0) + ZEND_ME(reflection_function, isDeprecated, NULL, 0) ZEND_ME(reflection_function, isInternal, NULL, 0) ZEND_ME(reflection_function, isUserDefined, NULL, 0) - ZEND_ME(reflection_function, getName, NULL, 0) - ZEND_ME(reflection_function, getFileName, NULL, 0) - ZEND_ME(reflection_function, getStartLine, NULL, 0) - ZEND_ME(reflection_function, getEndLine, NULL, 0) + ZEND_ME(reflection_function, getClosureThis, NULL, 0) ZEND_ME(reflection_function, getDocComment, NULL, 0) - ZEND_ME(reflection_function, getStaticVariables, NULL, 0) - ZEND_ME(reflection_function, returnsReference, NULL, 0) - ZEND_ME(reflection_function, getParameters, NULL, 0) - ZEND_ME(reflection_function, getNumberOfParameters, NULL, 0) - ZEND_ME(reflection_function, getNumberOfRequiredParameters, NULL, 0) + ZEND_ME(reflection_function, getEndLine, NULL, 0) ZEND_ME(reflection_function, getExtension, NULL, 0) ZEND_ME(reflection_function, getExtensionName, NULL, 0) - ZEND_ME(reflection_function, isDeprecated, NULL, 0) - ZEND_ME(reflection_function, inNamespace, NULL, 0) + ZEND_ME(reflection_function, getFileName, NULL, 0) + ZEND_ME(reflection_function, getName, NULL, 0) ZEND_ME(reflection_function, getNamespaceName, NULL, 0) + ZEND_ME(reflection_function, getNumberOfParameters, NULL, 0) + ZEND_ME(reflection_function, getNumberOfRequiredParameters, NULL, 0) + ZEND_ME(reflection_function, getParameters, NULL, 0) ZEND_ME(reflection_function, getShortName, NULL, 0) + ZEND_ME(reflection_function, getStartLine, NULL, 0) + ZEND_ME(reflection_function, getStaticVariables, NULL, 0) + ZEND_ME(reflection_function, returnsReference, NULL, 0) {NULL, NULL, NULL} }; @@ -5532,7 +5546,7 @@ php_info_print_table_start(); php_info_print_table_header(2, "Reflection", "enabled"); - php_info_print_table_row(2, "Version", "$Revision: 1.333 $"); + php_info_print_table_row(2, "Version", "$Revision: 1.334 $"); php_info_print_table_end(); } /* }}} */ @@ -5546,7 +5560,7 @@ NULL, NULL, PHP_MINFO(reflection), - "$Revision: 1.333 $", + "$Revision: 1.334 $", STANDARD_MODULE_PROPERTIES }; /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) / NEWS
felipe Sat Jan 3 17:02:56 2009 UTC Modified files: (Branch: PHP_5_2) /php-srcNEWS Log: - BFN http://cvs.php.net/viewvc.cgi/php-src/NEWS?r1=1.2027.2.547.2.1375&r2=1.2027.2.547.2.1376&diff_format=u Index: php-src/NEWS diff -u php-src/NEWS:1.2027.2.547.2.1375 php-src/NEWS:1.2027.2.547.2.1376 --- php-src/NEWS:1.2027.2.547.2.1375Fri Jan 2 00:17:44 2009 +++ php-src/NEWSSat Jan 3 17:02:55 2009 @@ -18,6 +18,7 @@ - Fixed bug #46959 (Unable to disable PCRE). (Scott) - Fixed bug #46918 (imap_rfc822_parse_adrlist host part not filled in correctly). (Felipe) +- Fixed bug #46917 (Socket handling completely broken). (Jost boekemeier, Felipe). - Fixed bug #46889 (Memory leak in strtotime()). (Derick) - Fixed bug #46887 (Invalid calls to php_error_docref()). (oeriksson at mandriva dot com, Ilia) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_3) /ext/reflection php_reflection.c
helly Sat Jan 3 14:20:22 2009 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/reflection php_reflection.c Log: - MFH Improved closure support http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.164.2.33.2.45.2.46&r2=1.164.2.33.2.45.2.47&diff_format=u Index: php-src/ext/reflection/php_reflection.c diff -u php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.46 php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.47 --- php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.46Sat Jan 3 12:39:27 2009 +++ php-src/ext/reflection/php_reflection.c Sat Jan 3 14:20:22 2009 @@ -20,7 +20,7 @@ +--+ */ -/* $Id: php_reflection.c,v 1.164.2.33.2.45.2.46 2009/01/03 12:39:27 helly Exp $ */ +/* $Id: php_reflection.c,v 1.164.2.33.2.45.2.47 2009/01/03 14:20:22 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -223,6 +223,18 @@ INIT_PZVAL(return_value); } +static void _default_lookup_entry(zval *object, char *name, int name_len, zval **return_value TSRMLS_DC) /* {{{ */ +{ + zval **value; + + if (zend_hash_find(Z_OBJPROP_P(object), name, name_len, (void **) &value) == FAILURE) { + *return_value = NULL; + } else { + *return_value = *value; + } +} +/* }}} */ + static void reflection_register_implement(zend_class_entry *class_entry, zend_class_entry *interface_entry TSRMLS_DC) { zend_uint num_interfaces = ++class_entry->num_interfaces; @@ -319,7 +331,7 @@ } static void _const_string(string *str, char *name, zval *value, char *indent TSRMLS_DC); -static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, zval* closure, char *indent TSRMLS_DC); +static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, zval* prop_name, zval* closure, char *indent TSRMLS_DC); static void _property_string(string *str, zend_property_info *prop, char *prop_name, char* indent TSRMLS_DC); static void _class_string(string *str, zend_class_entry *ce, zval *obj, char *indent TSRMLS_DC); static void _extension_string(string *str, zend_module_entry *module, char *indent TSRMLS_DC); @@ -485,7 +497,7 @@ && ((mptr->common.fn_flags & ZEND_ACC_PRIVATE) == 0 || mptr->common.scope == ce)) { string_printf(str, "\n"); - _function_string(str, mptr, ce, NULL, sub_indent.string TSRMLS_CC); + _function_string(str, mptr, ce, NULL, NULL, sub_indent.string TSRMLS_CC); } zend_hash_move_forward_ex(&ce->function_table, &pos); } @@ -587,7 +599,7 @@ closure = NULL; } string_printf(&dyn, "\n"); - _function_string(&dyn, mptr, ce, NULL, sub_indent.string TSRMLS_CC); + _function_string(&dyn, mptr, ce, NULL, NULL, sub_indent.string TSRMLS_CC); count++; _free_function(closure TSRMLS_CC); } @@ -744,7 +756,7 @@ /* }}} */ /* {{{ _function_string */ -static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, zval* closure, char* indent TSRMLS_DC) +static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, zval* prop_name, zval* closure, char* indent TSRMLS_DC) { string param_indent; zend_function *overwrites; @@ -828,7 +840,7 @@ if (fptr->op_array.return_reference) { string_printf(str, "&"); } - string_printf(str, "%s ] {\n", fptr->common.function_name); + string_printf(str, "%s ] {\n", closure && prop_name ? Z_STRVAL_P(prop_name) : fptr->common.function_name); /* The information where a function is declared is only available for user classes */ if (fptr->type == ZEND_USER_FUNCTION) { string_printf(str, "%s @@ %s %d - %d\n", indent, @@ -1060,7 +1072,7 @@ continue; } - _function_string(str, fptr, NULL, NULL, "" TSRMLS_CC); + _function_string(str, fptr, NULL, NULL, NULL, "" TSRMLS_CC); func++; } string_printf(str, "%s }\n", indent); @@ -1473,7 +1485,7 @@ } if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O", &closur
[PHP-CVS] cvs: php-src /ext/reflection php_reflection.c
helly Sat Jan 3 14:20:07 2009 UTC Modified files: /php-src/ext/reflection php_reflection.c Log: - Improved closure support http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.332&r2=1.333&diff_format=u Index: php-src/ext/reflection/php_reflection.c diff -u php-src/ext/reflection/php_reflection.c:1.332 php-src/ext/reflection/php_reflection.c:1.333 --- php-src/ext/reflection/php_reflection.c:1.332 Sat Jan 3 12:27:43 2009 +++ php-src/ext/reflection/php_reflection.c Sat Jan 3 14:20:07 2009 @@ -20,7 +20,7 @@ +--+ */ -/* $Id: php_reflection.c,v 1.332 2009/01/03 12:27:43 helly Exp $ */ +/* $Id: php_reflection.c,v 1.333 2009/01/03 14:20:07 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -219,6 +219,18 @@ } /* }}} */ +static void _default_lookup_entry(zval *object, char *name, int name_len, zval **return_value TSRMLS_DC) /* {{{ */ +{ + zval **value; + + if (zend_ascii_hash_find(Z_OBJPROP_P(object), name, name_len, (void **) &value) == FAILURE) { + *return_value = NULL; + } else { + *return_value = *value; + } +} +/* }}} */ + static void reflection_register_implement(zend_class_entry *class_entry, zend_class_entry *interface_entry TSRMLS_DC) /* {{{ */ { zend_uint num_interfaces = ++class_entry->num_interfaces; @@ -323,7 +335,7 @@ /* }}} */ static void _const_string(string *str, zstr name, zval *value, char *indent TSRMLS_DC); -static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, zval* closure, char *indent TSRMLS_DC); +static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, zval* prop_name, zval* closure, char *indent TSRMLS_DC); static void _property_string(string *str, zend_property_info *prop, zstr prop_name, char* indent TSRMLS_DC); static void _class_string(string *str, zend_class_entry *ce, zval *obj, char *indent TSRMLS_DC); static void _extension_string(string *str, zend_module_entry *module, char *indent TSRMLS_DC); @@ -489,7 +501,7 @@ && ((mptr->common.fn_flags & ZEND_ACC_PRIVATE) == 0 || mptr->common.scope == ce)) { string_printf(str, "\n"); - _function_string(str, mptr, ce, NULL, sub_indent.string TSRMLS_CC); + _function_string(str, mptr, ce, NULL, NULL, sub_indent.string TSRMLS_CC); } zend_hash_move_forward_ex(&ce->function_table, &pos); } @@ -595,7 +607,7 @@ } string_printf(&dyn, "\n"); - _function_string(&dyn, mptr, ce, NULL, sub_indent.string TSRMLS_CC); + _function_string(&dyn, mptr, ce, NULL, NULL, sub_indent.string TSRMLS_CC); count++; _free_function(closure TSRMLS_CC); } @@ -767,7 +779,7 @@ /* }}} */ /* {{{ _function_string */ -static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, zval* closure, char* indent TSRMLS_DC) +static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, zval* prop_name, zval* closure, char* indent TSRMLS_DC) { string param_indent; zend_function *overwrites; @@ -849,7 +861,11 @@ if (fptr->op_array.return_reference) { string_printf(str, "&"); } - string_printf(str, "%v ] {\n", fptr->common.function_name); + if (closure && prop_name) { + string_printf(str, "%R ] {\n", Z_TYPE_P(prop_name), Z_UNIVAL_P(prop_name)); + } else { + string_printf(str, "%v ] {\n", fptr->common.function_name); + } /* The information where a function is declared is only available for user classes */ if (fptr->type == ZEND_USER_FUNCTION) { string_printf(str, "%s @@ %s %d - %d\n", indent, @@ -1085,7 +1101,7 @@ continue; } - _function_string(str, fptr, NULL, NULL, "" TSRMLS_CC); + _function_string(str, fptr, NULL, NULL, NULL, "" TSRMLS_CC); func++; } string_printf(str, "%s }\n", indent); @@ -1504,7 +1520,7 @@ } if (zend_parse_parameters_ex(ZEND_PARSE_PARAMS_QUIET, ZEND_NUM_ARGS() TSRMLS_CC, "O", &closure, zend_ce_closure) == SUCCESS) { - fptr = zend_get_closure_invoke_met
[PHP-CVS] cvs: php-src(PHP_5_3) /ext/reflection php_reflection.c
helly Sat Jan 3 12:39:28 2009 UTC Modified files: (Branch: PHP_5_3) /php-src/ext/reflection php_reflection.c Log: - MFH Add minimalistic closure support http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.164.2.33.2.45.2.45&r2=1.164.2.33.2.45.2.46&diff_format=u Index: php-src/ext/reflection/php_reflection.c diff -u php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.45 php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.46 --- php-src/ext/reflection/php_reflection.c:1.164.2.33.2.45.2.45Wed Dec 31 14:36:27 2008 +++ php-src/ext/reflection/php_reflection.c Sat Jan 3 12:39:27 2009 @@ -20,7 +20,7 @@ +--+ */ -/* $Id: php_reflection.c,v 1.164.2.33.2.45.2.45 2008/12/31 14:36:27 helly Exp $ */ +/* $Id: php_reflection.c,v 1.164.2.33.2.45.2.46 2009/01/03 12:39:27 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -319,7 +319,7 @@ } static void _const_string(string *str, char *name, zval *value, char *indent TSRMLS_DC); -static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, char *indent TSRMLS_DC); +static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, zval* closure, char *indent TSRMLS_DC); static void _property_string(string *str, zend_property_info *prop, char *prop_name, char* indent TSRMLS_DC); static void _class_string(string *str, zend_class_entry *ce, zval *obj, char *indent TSRMLS_DC); static void _extension_string(string *str, zend_module_entry *module, char *indent TSRMLS_DC); @@ -485,7 +485,7 @@ && ((mptr->common.fn_flags & ZEND_ACC_PRIVATE) == 0 || mptr->common.scope == ce)) { string_printf(str, "\n"); - _function_string(str, mptr, ce, sub_indent.string TSRMLS_CC); + _function_string(str, mptr, ce, NULL, sub_indent.string TSRMLS_CC); } zend_hash_move_forward_ex(&ce->function_table, &pos); } @@ -587,7 +587,7 @@ closure = NULL; } string_printf(&dyn, "\n"); - _function_string(&dyn, mptr, ce, sub_indent.string TSRMLS_CC); + _function_string(&dyn, mptr, ce, NULL, sub_indent.string TSRMLS_CC); count++; _free_function(closure TSRMLS_CC); } @@ -744,7 +744,7 @@ /* }}} */ /* {{{ _function_string */ -static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, char* indent TSRMLS_DC) +static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, zval* closure, char* indent TSRMLS_DC) { string param_indent; zend_function *overwrites; @@ -759,7 +759,8 @@ string_printf(str, "%s%s\n", indent, fptr->op_array.doc_comment); } - string_printf(str, fptr->common.scope ? "%sMethod [ " : "%sFunction [ ", indent); + string_write(str, indent, strlen(indent)); + string_printf(str, closure ? "Closure [ " : (fptr->common.scope ? "Method [ " : "Function [ ")); string_printf(str, (fptr->type == ZEND_USER_FUNCTION) ? "common.fn_flags & ZEND_ACC_DEPRECATED) { string_printf(str, ", deprecated"); @@ -835,6 +836,28 @@ fptr->op_array.line_start, fptr->op_array.line_end); } + if (closure) { + const zend_function *closure_fptr = zend_get_closure_method_def(closure TSRMLS_CC); + if (closure_fptr->type == ZEND_USER_FUNCTION && closure_fptr->op_array.static_variables) { + HashTable *static_variables = closure_fptr->op_array.static_variables; + HashPosition pos; + uint key_len; + char* key; + ulong num_index, index = 0; + int count = zend_hash_num_elements(static_variables); + if (count) { + string_printf(str, "\n"); + string_printf(str, "%s - Static Parameters [%d] {\n", indent, count); + zend_hash_internal_pointer_reset_ex(static_variables, &pos); + while (index++ < count) { + zend_hash_get_current_key_ex(static_variables, &key, &key_len, &num_i
Re: [PHP-CVS] cvs: php-src(PHP_5_3) / NEWS /ext/standard basic_functions.c /main SAPI.h main.c /sapi/cgi cgi_main.c /sapi/cli php_cli.c /sapi/embed php_embed.c
On 02.01.2009 07:47, Andi Gutmans wrote: > Hi Marcus, > > I think dl() should also be disabled for FastCGI. Why? I'm not aware of any dl()-related problems in FastCGI. -- Wbr, Antony Dovgal -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/reflection php_reflection.c
helly Sat Jan 3 12:27:44 2009 UTC Modified files: /php-src/ext/reflection php_reflection.c Log: - Small reordering http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.331&r2=1.332&diff_format=u Index: php-src/ext/reflection/php_reflection.c diff -u php-src/ext/reflection/php_reflection.c:1.331 php-src/ext/reflection/php_reflection.c:1.332 --- php-src/ext/reflection/php_reflection.c:1.331 Sat Jan 3 12:20:27 2009 +++ php-src/ext/reflection/php_reflection.c Sat Jan 3 12:27:43 2009 @@ -20,7 +20,7 @@ +--+ */ -/* $Id: php_reflection.c,v 1.331 2009/01/03 12:20:27 helly Exp $ */ +/* $Id: php_reflection.c,v 1.332 2009/01/03 12:27:43 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -857,8 +857,6 @@ fptr->op_array.line_start, fptr->op_array.line_end); } - string_init(¶m_indent); - string_printf(¶m_indent, "%s ", indent); if (closure) { const zend_function *closure_fptr = zend_get_closure_method_def(closure TSRMLS_CC); if (closure_fptr->type == ZEND_USER_FUNCTION && closure_fptr->op_array.static_variables) { @@ -881,6 +879,8 @@ } } } + string_init(¶m_indent); + string_printf(¶m_indent, "%s ", indent); _function_parameter_string(str, fptr, param_indent.string TSRMLS_CC); string_free(¶m_indent); string_printf(str, "%s}\n", indent); @@ -5482,7 +5482,7 @@ php_info_print_table_start(); php_info_print_table_header(2, "Reflection", "enabled"); - php_info_print_table_row(2, "Version", "$Revision: 1.331 $"); + php_info_print_table_row(2, "Version", "$Revision: 1.332 $"); php_info_print_table_end(); } /* }}} */ @@ -5496,7 +5496,7 @@ NULL, NULL, PHP_MINFO(reflection), - "$Revision: 1.331 $", + "$Revision: 1.332 $", STANDARD_MODULE_PROPERTIES }; /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src /ext/reflection php_reflection.c
helly Sat Jan 3 12:20:27 2009 UTC Modified files: /php-src/ext/reflection php_reflection.c Log: - Add minimalistic closure support http://cvs.php.net/viewvc.cgi/php-src/ext/reflection/php_reflection.c?r1=1.330&r2=1.331&diff_format=u Index: php-src/ext/reflection/php_reflection.c diff -u php-src/ext/reflection/php_reflection.c:1.330 php-src/ext/reflection/php_reflection.c:1.331 --- php-src/ext/reflection/php_reflection.c:1.330 Wed Dec 31 14:37:17 2008 +++ php-src/ext/reflection/php_reflection.c Sat Jan 3 12:20:27 2009 @@ -20,7 +20,7 @@ +--+ */ -/* $Id: php_reflection.c,v 1.330 2008/12/31 14:37:17 helly Exp $ */ +/* $Id: php_reflection.c,v 1.331 2009/01/03 12:20:27 helly Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -323,7 +323,7 @@ /* }}} */ static void _const_string(string *str, zstr name, zval *value, char *indent TSRMLS_DC); -static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, char *indent TSRMLS_DC); +static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, zval* closure, char *indent TSRMLS_DC); static void _property_string(string *str, zend_property_info *prop, zstr prop_name, char* indent TSRMLS_DC); static void _class_string(string *str, zend_class_entry *ce, zval *obj, char *indent TSRMLS_DC); static void _extension_string(string *str, zend_module_entry *module, char *indent TSRMLS_DC); @@ -489,7 +489,7 @@ && ((mptr->common.fn_flags & ZEND_ACC_PRIVATE) == 0 || mptr->common.scope == ce)) { string_printf(str, "\n"); - _function_string(str, mptr, ce, sub_indent.string TSRMLS_CC); + _function_string(str, mptr, ce, NULL, sub_indent.string TSRMLS_CC); } zend_hash_move_forward_ex(&ce->function_table, &pos); } @@ -595,7 +595,7 @@ } string_printf(&dyn, "\n"); - _function_string(&dyn, mptr, ce, sub_indent.string TSRMLS_CC); + _function_string(&dyn, mptr, ce, NULL, sub_indent.string TSRMLS_CC); count++; _free_function(closure TSRMLS_CC); } @@ -767,7 +767,7 @@ /* }}} */ /* {{{ _function_string */ -static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, char* indent TSRMLS_DC) +static void _function_string(string *str, zend_function *fptr, zend_class_entry *scope, zval* closure, char* indent TSRMLS_DC) { string param_indent; zend_function *overwrites; @@ -782,7 +782,8 @@ string_printf(str, "%s%v\n", indent, fptr->op_array.doc_comment.v); } - string_printf(str, fptr->common.scope ? "%sMethod [ " : "%sFunction [ ", indent); + string_write(str, indent, strlen(indent)); + string_printf(str, closure ? "Closure [ " : (fptr->common.scope ? "Method [ " : "Function [ ")); string_printf(str, (fptr->type == ZEND_USER_FUNCTION) ? "common.fn_flags & ZEND_ACC_DEPRECATED) { string_printf(str, ", deprecated"); @@ -858,6 +859,28 @@ } string_init(¶m_indent); string_printf(¶m_indent, "%s ", indent); + if (closure) { + const zend_function *closure_fptr = zend_get_closure_method_def(closure TSRMLS_CC); + if (closure_fptr->type == ZEND_USER_FUNCTION && closure_fptr->op_array.static_variables) { + HashTable *static_variables = closure_fptr->op_array.static_variables; + HashPosition pos; + uint key_len; + zstr key; + ulong num_index, index = 0; + int count = zend_hash_num_elements(static_variables); + if (count) { + string_printf(str, "\n"); + string_printf(str, "%s - Static Parameters [%d] {\n", indent, count); + zend_hash_internal_pointer_reset_ex(static_variables, &pos); + while (index++ < count) { + zend_hash_get_current_key_ex(static_variables, &key, &key_len, &num_index, 0, &pos); + string_printf(str, "%sParameter #%d [ $%v ]\n", indent, index++, key); + zend_hash_move_forward_ex(static_variables, &pos); + }
[PHP-CVS] cvs: php-src / .gdbinit
helly Sat Jan 3 12:18:54 2009 UTC Modified files: /php-src.gdbinit Log: - There is no -v in keys http://cvs.php.net/viewvc.cgi/php-src/.gdbinit?r1=1.23&r2=1.24&diff_format=u Index: php-src/.gdbinit diff -u php-src/.gdbinit:1.23 php-src/.gdbinit:1.24 --- php-src/.gdbinit:1.23 Sun Aug 10 22:18:58 2008 +++ php-src/.gdbinitSat Jan 3 12:18:53 2009 @@ -316,7 +316,7 @@ end else printf "\"" - printt $unicode $p->key.arKey.v $p->nKeyLength + printt $unicode $p->key.arKey.u $p->nKeyLength printf "\" => " end else -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php