summaryrefslogtreecommitdiff
path: root/Zend/zend_operators.c
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_operators.c')
-rw-r--r--Zend/zend_operators.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 814e07b9e3..cf46c513c1 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -1402,6 +1402,11 @@ ZEND_API int compare_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
/* If both are objects sharing the same comparision handler then use is */
if (eq_comp) {
+ if (Z_OBJ_HANDLE_P(op1) == Z_OBJ_HANDLE_P(op2)) {
+ /* object handles are identical, apprently this is the same object */
+ ZVAL_LONG(result, 0);
+ COMPARE_RETURN_AND_FREE(SUCCESS);
+ }
ZVAL_LONG(result, Z_OBJ_HT_P(op1)->compare_objects(op1, op2 TSRMLS_CC));
COMPARE_RETURN_AND_FREE(SUCCESS);
}