]> granicus.if.org Git - php/commitdiff
Very simple, but very effective optimization. Provides a signifigant speed
authorSterling Hughes <sterling@php.net>
Sun, 29 Jun 2003 01:49:10 +0000 (01:49 +0000)
committerSterling Hughes <sterling@php.net>
Sun, 29 Jun 2003 01:49:10 +0000 (01:49 +0000)
improvement to matches done via '=='.  This checks that the lengths of two
strings are equal before performing a memcmp() on them.

Zend/zend_operators.c

index ed63fa47c163eed3acdb2c5223d3d32a61dcb43f..b47ce9fe52f91293e1c63a31049021b369f958d6 100644 (file)
@@ -1200,7 +1200,11 @@ ZEND_API int compare_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
        }
                
        if (op1->type == IS_STRING && op2->type == IS_STRING) {
-               zendi_smart_strcmp(result, op1, op2);
+               if (op1->value.str.len == op2->value.str.len) {
+                       zendi_smart_strcmp(result, op1, op2);
+               } else {
+                       ZVAL_LONG(result, 1);
+               }
                return SUCCESS;
        }