diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2006-12-11 15:16:07 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2006-12-11 15:16:07 +0000 |
commit | 7e1973d9fc1924ecc5ab9050712ff3f3b3437f0f (patch) | |
tree | 1f931df03284effe3d83af796b9bff5b1065a056 /Zend/zend_operators.c | |
parent | d3aa69526309f444760bb03370e59afb7ed2c390 (diff) | |
download | php-git-7e1973d9fc1924ecc5ab9050712ff3f3b3437f0f.tar.gz |
Minor optimization (2-3%) from Brian Shire
Diffstat (limited to 'Zend/zend_operators.c')
-rw-r--r-- | Zend/zend_operators.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c index d8853ebb7a..a51b33b5c7 100644 --- a/Zend/zend_operators.c +++ b/Zend/zend_operators.c @@ -304,13 +304,13 @@ ZEND_API void convert_scalar_to_number(zval *op TSRMLS_DC) } \ } - ZEND_API void convert_to_long(zval *op) { - convert_to_long_base(op, 10); + if ((op)->type != IS_BOOL && (op)->type != IS_LONG) { + convert_to_long_base(op, 10); + } } - ZEND_API void convert_to_long_base(zval *op, int base) { char *strval; @@ -1175,11 +1175,14 @@ ZEND_API int add_string_to_string(zval *result, zval *op1, zval *op2) ZEND_API int concat_function(zval *result, zval *op1, zval *op2 TSRMLS_DC) { zval op1_copy, op2_copy; - int use_copy1, use_copy2; - + int use_copy1 = 0, use_copy2 = 0; - zend_make_printable_zval(op1, &op1_copy, &use_copy1); - zend_make_printable_zval(op2, &op2_copy, &use_copy2); + if (op1->type != IS_STRING) { + zend_make_printable_zval(op1, &op1_copy, &use_copy1); + } + if (op2->type != IS_STRING) { + zend_make_printable_zval(op2, &op2_copy, &use_copy2); + } if (use_copy1) { /* We have created a converted copy of op1. Therefore, op1 won't become the result so |