]> granicus.if.org Git - php/commitdiff
minor optimization - make sure the objects are not the same instance before we start...
authorAntony Dovgal <tony2001@php.net>
Wed, 6 Jun 2007 11:57:24 +0000 (11:57 +0000)
committerAntony Dovgal <tony2001@php.net>
Wed, 6 Jun 2007 11:57:24 +0000 (11:57 +0000)
Zend/zend_operators.c

index c173e4ea04703bb85cd42ff753445223ab946f2d..acecc561097f7c35d0def1d44ffb91fd73ce2e21 100644 (file)
@@ -1947,6 +1947,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);
        }