summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXinchen Hui <laruence@php.net>2012-08-31 11:22:43 +0800
committerXinchen Hui <laruence@php.net>2012-08-31 11:22:43 +0800
commit5dc2cef370885c552c20f3ff44bccd402850de9e (patch)
tree10221694df6a618b6a052b22b2f65bc51772d79e
parent8afb848e18187974df79d3ddc8d215695d7cf632 (diff)
downloadphp-git-5dc2cef370885c552c20f3ff44bccd402850de9e.tar.gz
Fixed bug #62976 (Notice: could not be converted to int when comparing some builtin classes)
-rw-r--r--NEWS2
-rw-r--r--Zend/zend_operators.c3
-rw-r--r--tests/lang/compare_objects_basic2.phpt8
3 files changed, 7 insertions, 6 deletions
diff --git a/NEWS b/NEWS
index 2ef6084e99..a6e05be568 100644
--- a/NEWS
+++ b/NEWS
@@ -3,6 +3,8 @@ PHP NEWS
?? ??? 2012, PHP 5.3.16
- Core:
+ . Fixed bug #62976 (Notice: could not be converted to int when comparing
+ some builtin classes). (Laruence)
. Fixed bug (segfault while build with zts and GOTO vm-kind). (Laruence)
. Fixed bug #62955 (Only one directive is loaded from "Per Directory Values"
Windows registry). (aserbulov at parallels dot com)
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index e6fe67e764..aea63faedd 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -1489,6 +1489,9 @@ ZEND_API int compare_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {
ret = compare_function(result, op1, op_free TSRMLS_CC);
zend_free_obj_get_result(op_free TSRMLS_CC);
return ret;
+ } else if (Z_TYPE_P(op1) == IS_OBJECT) {
+ ZVAL_LONG(result, 1);
+ return SUCCESS;
}
}
if (!converted) {
diff --git a/tests/lang/compare_objects_basic2.phpt b/tests/lang/compare_objects_basic2.phpt
index a2c34d06ad..7e4786cd28 100644
--- a/tests/lang/compare_objects_basic2.phpt
+++ b/tests/lang/compare_objects_basic2.phpt
@@ -20,9 +20,5 @@ var_dump($obj1 == $obj2);
===DONE===
--EXPECTF--
Simple test comparing two objects with different compare callback handler
-
-Notice: Object of class X could not be converted to int in %s on line %d
-
-Notice: Object of class DateTime could not be converted to int in %s on line %d
-bool(true)
-===DONE=== \ No newline at end of file
+bool(false)
+===DONE===