revert is_a() to php <= 5.3.6 behavior (from upstream) with new option (allow_string) for new behavior
This commit is contained in:
parent
8863ec2372
commit
d0c66301cb
45
php-5.3.8-isa.patch
Normal file
45
php-5.3.8-isa.patch
Normal file
@ -0,0 +1,45 @@
|
||||
--- php/php-src/branches/PHP_5_3/Zend/zend_builtin_functions.c 2011/09/23 09:29:27 317182
|
||||
+++ php/php-src/branches/PHP_5_3/Zend/zend_builtin_functions.c 2011/09/23 09:52:09 317183
|
||||
@@ -816,13 +816,19 @@
|
||||
int class_name_len;
|
||||
zend_class_entry *instance_ce;
|
||||
zend_class_entry **ce;
|
||||
+ zend_bool allow_string = only_subclass;
|
||||
zend_bool retval;
|
||||
|
||||
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zs", &obj, &class_name, &class_name_len) == FAILURE) {
|
||||
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zs|b", &obj, &class_name, &class_name_len, &allow_string) == FAILURE) {
|
||||
return;
|
||||
}
|
||||
-
|
||||
- if (Z_TYPE_P(obj) == IS_STRING) {
|
||||
+ /*
|
||||
+ allow_string - is_a default is no, is_subclass_of is yes.
|
||||
+ if it's allowed, then the autoloader will be called if the class does not exist.
|
||||
+ default behaviour is different, as 'is_a' usage is normally to test mixed return values
|
||||
+ */
|
||||
+
|
||||
+ if (allow_string && Z_TYPE_P(obj) == IS_STRING) {
|
||||
zend_class_entry **the_ce;
|
||||
if (zend_lookup_class(Z_STRVAL_P(obj), Z_STRLEN_P(obj), &the_ce TSRMLS_CC) == FAILURE) {
|
||||
RETURN_FALSE;
|
||||
@@ -848,7 +854,7 @@
|
||||
}
|
||||
|
||||
|
||||
-/* {{{ proto bool is_subclass_of(object object, string class_name)
|
||||
+/* {{{ proto bool is_subclass_of(mixed object_or_string, string class_name [, bool allow_string=true])
|
||||
Returns true if the object has this class as one of its parents */
|
||||
ZEND_FUNCTION(is_subclass_of)
|
||||
{
|
||||
@@ -857,8 +863,8 @@
|
||||
/* }}} */
|
||||
|
||||
|
||||
-/* {{{ proto bool is_a(object object, string class_name)
|
||||
- Returns true if the object is of this class or has this class as one of its parents */
|
||||
+/* {{{ proto bool is_a(mixed object_or_string, string class_name [, bool allow_string=false])
|
||||
+ Returns true if the first argument is an object and is this class or has this class as one of its parents, */
|
||||
ZEND_FUNCTION(is_a)
|
||||
{
|
||||
is_a_impl(INTERNAL_FUNCTION_PARAM_PASSTHRU, 0);
|
8
php.spec
8
php.spec
@ -37,7 +37,7 @@
|
||||
Summary: PHP scripting language for creating dynamic web sites
|
||||
Name: php
|
||||
Version: 5.3.8
|
||||
Release: 2%{?dist}
|
||||
Release: 3%{?dist}
|
||||
License: PHP
|
||||
Group: Development/Languages
|
||||
URL: http://www.php.net/
|
||||
@ -75,6 +75,8 @@ Patch41: php-5.3.0-easter.patch
|
||||
Patch42: php-5.3.1-systzdata-v7.patch
|
||||
# See http://bugs.php.net/53436
|
||||
Patch43: php-5.3.4-phpize.patch
|
||||
# http://svn.php.net/viewvc?view=revision&revision=317183
|
||||
Patch44: php-5.3.8-isa.patch
|
||||
|
||||
# Fixes for tests
|
||||
Patch61: php-5.0.4-tests-wddx.patch
|
||||
@ -1102,6 +1104,10 @@ fi
|
||||
|
||||
|
||||
%changelog
|
||||
* Wed Sep 28 2011 Remi Collet <remi@fedoraproject.org> 5.3.8-3
|
||||
- revert is_a() to php <= 5.3.6 behavior (from upstream)
|
||||
with new option (allow_string) for new behavior
|
||||
|
||||
* Tue Sep 13 2011 Remi Collet <remi@fedoraproject.org> 5.3.8-2
|
||||
- add mysqlnd sub-package
|
||||
- drop patch4, use --libdir to use /usr/lib*/php/build
|
||||
|
Loading…
Reference in New Issue
Block a user