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.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/Zend/zend_operators.c b/Zend/zend_operators.c
index 897d807020..50b9e7555b 100644
--- a/Zend/zend_operators.c
+++ b/Zend/zend_operators.c
@@ -36,7 +36,7 @@ ZEND_API int zend_atoi(const char *str, int str_len)
if (!str_len) {
str_len = strlen(str);
}
- retval = atoi(str);
+ retval = strtol(str, NULL, 0);
if (str_len>0) {
switch (str[str_len-1]) {
case 'k':
@@ -871,7 +871,7 @@ ZEND_API int bitwise_or_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
result_str[i] |= shorter->value.str.val[i];
}
if (result==op1) {
- efree(result->value.str.val);
+ STR_FREE(result->value.str.val);
}
result->value.str.val = result_str;
result->value.str.len = result_len;
@@ -910,7 +910,7 @@ ZEND_API int bitwise_and_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
result_str[i] &= longer->value.str.val[i];
}
if (result==op1) {
- efree(result->value.str.val);
+ STR_FREE(result->value.str.val);
}
result->value.str.val = result_str;
result->value.str.len = result_len;
@@ -951,7 +951,7 @@ ZEND_API int bitwise_xor_function(zval *result, zval *op1, zval *op2 TSRMLS_DC)
result_str[i] ^= longer->value.str.val[i];
}
if (result==op1) {
- efree(result->value.str.val);
+ STR_FREE(result->value.str.val);
}
result->value.str.val = result_str;
result->value.str.len = result_len;
@@ -1489,12 +1489,12 @@ ZEND_API int increment_function(zval *op1)
op1->value.lval = lval+1;
op1->type = IS_LONG;
}
- efree(strval);
+ efree(strval); /* should never be empty_string */
break;
case IS_DOUBLE:
op1->value.dval = dval+1;
op1->type = IS_DOUBLE;
- efree(strval);
+ efree(strval); /* should never be empty_string */
break;
#if 0
case FLAG_IS_BC: