diff options
| -rw-r--r-- | Zend/zend_execute.c | 4 | ||||
| -rw-r--r-- | Zend/zend_operators.h | 4 | ||||
| -rw-r--r-- | Zend/zend_vm_def.h | 2 | ||||
| -rw-r--r-- | Zend/zend_vm_execute.h | 8 | ||||
| -rw-r--r-- | ext/date/php_date.c | 4 | ||||
| -rw-r--r-- | ext/standard/array.c | 14 | ||||
| -rw-r--r-- | ext/standard/file.c | 2 | ||||
| -rw-r--r-- | ext/standard/formatted_print.c | 14 | ||||
| -rw-r--r-- | ext/standard/http_fopen_wrapper.c | 4 | ||||
| -rw-r--r-- | ext/standard/pack.c | 55 | ||||
| -rw-r--r-- | ext/standard/scanf.c | 14 | ||||
| -rw-r--r-- | ext/standard/string.c | 19 |
12 files changed, 73 insertions, 71 deletions
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c index 6bf0cdf984..54397153c1 100644 --- a/Zend/zend_execute.c +++ b/Zend/zend_execute.c @@ -1177,7 +1177,7 @@ convert_to_array: break; } - offset = zval_get_long(dim); + offset = zval_get_int(dim); } else { offset = Z_IVAL_P(dim); } @@ -1305,7 +1305,7 @@ static zend_always_inline void zend_fetch_dimension_address_read(zval *result, z break; } - offset = zval_get_long(dim); + offset = zval_get_int(dim); } else { offset = Z_IVAL_P(dim); } diff --git a/Zend/zend_operators.h b/Zend/zend_operators.h index b8e7c0ed2f..3ed9b9fb4d 100644 --- a/Zend/zend_operators.h +++ b/Zend/zend_operators.h @@ -348,7 +348,7 @@ ZEND_API zend_int_t _zval_get_int_func(zval *op TSRMLS_DC); ZEND_API double _zval_get_double_func(zval *op TSRMLS_DC); ZEND_API zend_string *_zval_get_string_func(zval *op TSRMLS_DC); -static zend_always_inline zend_int_t _zval_get_long(zval *op TSRMLS_DC) { +static zend_always_inline zend_int_t _zval_get_int(zval *op TSRMLS_DC) { return Z_TYPE_P(op) == IS_INT ? Z_IVAL_P(op) : _zval_get_int_func(op TSRMLS_CC); } static zend_always_inline double _zval_get_double(zval *op TSRMLS_DC) { @@ -358,7 +358,7 @@ static zend_always_inline zend_string *_zval_get_string(zval *op TSRMLS_DC) { return Z_TYPE_P(op) == IS_STRING ? STR_COPY(Z_STR_P(op)) : _zval_get_string_func(op TSRMLS_CC); } -#define zval_get_long(op) _zval_get_long((op) TSRMLS_CC) +#define zval_get_int(op) _zval_get_int((op) TSRMLS_CC) #define zval_get_double(op) _zval_get_double((op) TSRMLS_CC) #define zval_get_string(op) _zval_get_string((op) TSRMLS_CC) diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h index 29e93371a0..be01accf6a 100644 --- a/Zend/zend_vm_def.h +++ b/Zend/zend_vm_def.h @@ -4053,7 +4053,7 @@ ZEND_VM_HANDLER(21, ZEND_CAST, CONST|TMP|VAR|CV, ANY) ZVAL_BOOL(result, zend_is_true(expr TSRMLS_CC)); break; case IS_INT: - ZVAL_INT(result, zval_get_long(expr)); + ZVAL_INT(result, zval_get_int(expr)); break; case IS_DOUBLE: ZVAL_DOUBLE(result, zval_get_double(expr)); diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h index 4a3b173a30..9bc2c13c30 100644 --- a/Zend/zend_vm_execute.h +++ b/Zend/zend_vm_execute.h @@ -2869,7 +2869,7 @@ static int ZEND_FASTCALL ZEND_CAST_SPEC_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARGS) ZVAL_BOOL(result, zend_is_true(expr TSRMLS_CC)); break; case IS_INT: - ZVAL_INT(result, zval_get_long(expr)); + ZVAL_INT(result, zval_get_int(expr)); break; case IS_DOUBLE: ZVAL_DOUBLE(result, zval_get_double(expr)); @@ -8385,7 +8385,7 @@ static int ZEND_FASTCALL ZEND_CAST_SPEC_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS) ZVAL_BOOL(result, zend_is_true(expr TSRMLS_CC)); break; case IS_INT: - ZVAL_INT(result, zval_get_long(expr)); + ZVAL_INT(result, zval_get_int(expr)); break; case IS_DOUBLE: ZVAL_DOUBLE(result, zval_get_double(expr)); @@ -13824,7 +13824,7 @@ static int ZEND_FASTCALL ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS) ZVAL_BOOL(result, zend_is_true(expr TSRMLS_CC)); break; case IS_INT: - ZVAL_INT(result, zval_get_long(expr)); + ZVAL_INT(result, zval_get_int(expr)); break; case IS_DOUBLE: ZVAL_DOUBLE(result, zval_get_double(expr)); @@ -31184,7 +31184,7 @@ static int ZEND_FASTCALL ZEND_CAST_SPEC_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS) ZVAL_BOOL(result, zend_is_true(expr TSRMLS_CC)); break; case IS_INT: - ZVAL_INT(result, zval_get_long(expr)); + ZVAL_INT(result, zval_get_int(expr)); break; case IS_DOUBLE: ZVAL_DOUBLE(result, zval_get_double(expr)); diff --git a/ext/date/php_date.c b/ext/date/php_date.c index 168fe9c920..63cdc511ab 100644 --- a/ext/date/php_date.c +++ b/ext/date/php_date.c @@ -4062,7 +4062,7 @@ void date_interval_write_property(zval *object, zval *member, zval *value, void #define SET_VALUE_FROM_STRUCT(n,m) \ if (strcmp(Z_STRVAL_P(member), m) == 0) { \ - obj->diff->n = zval_get_long(value); \ + obj->diff->n = zval_get_int(value); \ break; \ } @@ -4119,7 +4119,7 @@ static int php_date_interval_initialize_from_hash(zval **return_value, php_inter do { \ zval *z_arg = zend_hash_str_find(myht, element, sizeof(element) - 1); \ if (z_arg) { \ - (*intobj)->diff->member = (itype)zval_get_long(z_arg); \ + (*intobj)->diff->member = (itype)zval_get_int(z_arg); \ } else { \ (*intobj)->diff->member = (itype)def; \ } \ diff --git a/ext/standard/array.c b/ext/standard/array.c index b04509a855..b420dfb307 100644 --- a/ext/standard/array.c +++ b/ext/standard/array.c @@ -203,7 +203,7 @@ static int php_array_key_compare(const void *a, const void *b TSRMLS_DC) /* {{{ return ZEND_NORMALIZE_BOOL(Z_DVAL(result)); } - return ZEND_NORMALIZE_BOOL(zval_get_long(&result)); + return ZEND_NORMALIZE_BOOL(zval_get_int(&result)); } /* }}} */ @@ -334,7 +334,7 @@ PHP_FUNCTION(count) if (Z_OBJ_HT_P(array)->get_class_entry && instanceof_function(Z_OBJCE_P(array), spl_ce_Countable TSRMLS_CC)) { zend_call_method_with_0_params(array, NULL, NULL, "count", &retval); if (Z_TYPE(retval) != IS_UNDEF) { - RETVAL_INT(zval_get_long(&retval)); + RETVAL_INT(zval_get_int(&retval)); zval_ptr_dtor(&retval); } return; @@ -384,7 +384,7 @@ static int php_array_data_compare(const void *a, const void *b TSRMLS_DC) /* {{{ return ZEND_NORMALIZE_BOOL(Z_DVAL(result)); } - return ZEND_NORMALIZE_BOOL(zval_get_long(&result)); + return ZEND_NORMALIZE_BOOL(zval_get_int(&result)); } /* }}} */ @@ -557,7 +557,7 @@ static int php_array_user_compare(const void *a, const void *b TSRMLS_DC) /* {{{ BG(user_compare_fci).retval = &retval; BG(user_compare_fci).no_separation = 0; if (zend_call_function(&BG(user_compare_fci), &BG(user_compare_fci_cache) TSRMLS_CC) == SUCCESS && Z_TYPE(retval) != IS_UNDEF) { - long ret = zval_get_long(&retval); + long ret = zval_get_int(&retval); zval_ptr_dtor(&retval); zval_ptr_dtor(&args[1]); zval_ptr_dtor(&args[0]); @@ -719,7 +719,7 @@ static int php_array_user_key_compare(const void *a, const void *b TSRMLS_DC) /* BG(user_compare_fci).retval = &retval; BG(user_compare_fci).no_separation = 0; if (zend_call_function(&BG(user_compare_fci), &BG(user_compare_fci_cache) TSRMLS_CC) == SUCCESS && Z_TYPE(retval) != IS_UNDEF) { - result = zval_get_long(&retval); + result = zval_get_int(&retval); zval_ptr_dtor(&retval); } else { result = 0; @@ -2251,7 +2251,7 @@ PHP_FUNCTION(array_slice) if (ZEND_NUM_ARGS() < 3 || Z_TYPE_P(z_length) == IS_NULL) { length = num_in; } else { - length = zval_get_long(z_length); + length = zval_get_int(z_length); } /* Clamp the offset.. */ @@ -3061,7 +3061,7 @@ static int zval_user_compare(zval *a, zval *b TSRMLS_DC) /* {{{ */ BG(user_compare_fci).no_separation = 0; if (zend_call_function(&BG(user_compare_fci), &BG(user_compare_fci_cache) TSRMLS_CC) == SUCCESS && Z_TYPE(retval) != IS_UNDEF) { - long ret = zval_get_long(&retval); + long ret = zval_get_int(&retval); zval_ptr_dtor(&retval); return ret < 0 ? -1 : ret > 0 ? 1 : 0;; } else { diff --git a/ext/standard/file.c b/ext/standard/file.c index c6a80df005..c58db9fd64 100644 --- a/ext/standard/file.c +++ b/ext/standard/file.c @@ -2015,7 +2015,7 @@ PHP_FUNCTION(fgetcsv) } if (len_zv != NULL && Z_TYPE_P(len_zv) != IS_NULL) { - len = zval_get_long(len_zv); + len = zval_get_int(len_zv); if (len < 0) { php_error_docref(NULL TSRMLS_CC, E_WARNING, "Length parameter may not be negative"); RETURN_FALSE; diff --git a/ext/standard/formatted_print.c b/ext/standard/formatted_print.c index 4109da1718..3c570d32ee 100644 --- a/ext/standard/formatted_print.c +++ b/ext/standard/formatted_print.c @@ -567,14 +567,14 @@ php_formatted_print(int param_count, int use_array, int format_offset TSRMLS_DC) case 'd': php_sprintf_appendint(&result, &outpos, - zval_get_long(tmp), + zval_get_int(tmp), width, padding, alignment, always_sign); break; case 'u': php_sprintf_appenduint(&result, &outpos, - zval_get_long(tmp), + zval_get_int(tmp), width, padding, alignment); break; @@ -594,33 +594,33 @@ php_formatted_print(int param_count, int use_array, int format_offset TSRMLS_DC) case 'c': php_sprintf_appendchar(&result, &outpos, - (char) zval_get_long(tmp) TSRMLS_CC); + (char) zval_get_int(tmp) TSRMLS_CC); break; case 'o': php_sprintf_append2n(&result, &outpos, - zval_get_long(tmp), + zval_get_int(tmp), width, padding, alignment, 3, hexchars, expprec); break; case 'x': php_sprintf_append2n(&result, &outpos, - zval_get_long(tmp), + zval_get_int(tmp), width, padding, alignment, 4, hexchars, expprec); break; case 'X': php_sprintf_append2n(&result, &outpos, - zval_get_long(tmp), + zval_get_int(tmp), width, padding, alignment, 4, HEXCHARS, expprec); break; case 'b': php_sprintf_append2n(&result, &outpos, - zval_get_long(tmp), + zval_get_int(tmp), width, padding, alignment, 1, hexchars, expprec); break; diff --git a/ext/standard/http_fopen_wrapper.c b/ext/standard/http_fopen_wrapper.c index ffec818037..7e8ddd51d4 100644 --- a/ext/standard/http_fopen_wrapper.c +++ b/ext/standard/http_fopen_wrapper.c @@ -346,7 +346,7 @@ finish: php_stream_notify_info(context, PHP_STREAM_NOTIFY_CONNECT, NULL, 0); if (header_init && context && (tmpzval = php_stream_context_get_option(context, "http", "max_redirects")) != NULL) { - redirect_max = zval_get_long(tmpzval); + redirect_max = zval_get_int(tmpzval); } if (context && (tmpzval = php_stream_context_get_option(context, "http", "method")) != NULL) { @@ -731,7 +731,7 @@ finish: if (!strncasecmp(http_header_line, "Location: ", 10)) { if (context && (tmpzval = php_stream_context_get_option(context, "http", "follow_location")) != NULL) { - follow_location = zval_get_long(tmpzval); + follow_location = zval_get_int(tmpzval); } else if (!(response_code >= 300 && response_code < 304 || 307 == response_code || 308 == response_code)) { /* we shouldn't redirect automatically if follow_location isn't set and response_code not in (300, 301, 302, 303 and 307) diff --git a/ext/standard/pack.c b/ext/standard/pack.c index 90fef0f855..613a58b5fd 100644 --- a/ext/standard/pack.c +++ b/ext/standard/pack.c @@ -84,7 +84,7 @@ static int little_endian_long_map[4]; /* {{{ php_pack */ -static void php_pack(zval *val, int size, int *map, char *output) +static void php_pack(zval *val, php_size_t size, int *map, char *output) { int i; char *v; @@ -480,9 +480,9 @@ PHP_FUNCTION(pack) /* {{{ php_unpack */ -static long php_unpack(char *data, int size, int issigned, int *map) +static php_int_t php_unpack(char *data, php_size_t size, int issigned, int *map) { - long result; + php_int_t result; char *cresult = (char *) &result; int i; @@ -512,19 +512,20 @@ static long php_unpack(char *data, int size, int issigned, int *map) Unpack binary string into named array elements according to format argument */ PHP_FUNCTION(unpack) { - char *format, *input, *formatarg, *inputarg; - int formatlen, formatarg_len, inputarg_len; - int inputpos, inputlen, i; + char *format, *input; + zend_string *formatarg, *inputarg; + php_size_t formatlen, inputpos, inputlen; + int i; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &formatarg, &formatarg_len, - &inputarg, &inputarg_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS", &formatarg, + &inputarg) == FAILURE) { return; } - format = formatarg; - formatlen = formatarg_len; - input = inputarg; - inputlen = inputarg_len; + format = formatarg->val; + formatlen = formatarg->len; + input = inputarg->val; + inputlen = inputarg->len; inputpos = 0; array_init(return_value); @@ -656,11 +657,11 @@ PHP_FUNCTION(unpack) inputpos = 0; } - if ((inputpos + size) <= inputlen) { + if ((size >=0 && (inputpos + size) <= inputlen) || (size < 0 && -size <= (inputlen - inputpos))) { switch ((int) type) { case 'a': { /* a will not strip any trailing whitespace or null padding */ - int len = inputlen - inputpos; /* Remaining string */ + php_size_t len = inputlen - inputpos; /* Remaining string */ /* If size was given take minimum of len and size */ if ((size >= 0) && (len > size)) { @@ -675,7 +676,7 @@ PHP_FUNCTION(unpack) case 'A': { /* A will strip any trailing whitespace */ char padn = '\0'; char pads = ' '; char padt = '\t'; char padc = '\r'; char padl = '\n'; - int len = inputlen - inputpos; /* Remaining string */ + php_size_t len = inputlen - inputpos; /* Remaining string */ /* If size was given take minimum of len and size */ if ((size >= 0) && (len > size)) { @@ -702,7 +703,7 @@ PHP_FUNCTION(unpack) case 'Z': { /* Z will strip everything after the first null character */ char pad = '\0'; - int s, + php_size_t s, len = inputlen - inputpos; /* Remaining string */ /* If size was given take minimum of len and size */ @@ -726,11 +727,11 @@ PHP_FUNCTION(unpack) case 'h': case 'H': { - int len = (inputlen - inputpos) * 2; /* Remaining */ + php_size_t len = (inputlen - inputpos) * 2; /* Remaining */ int nibbleshift = (type == 'h') ? 0 : 4; int first = 1; char *buf; - int ipos, opos; + php_size_t ipos, opos; /* If size was given take minimum of len and size */ if (size >= 0 && len > (size * 2)) { @@ -770,7 +771,7 @@ PHP_FUNCTION(unpack) case 'c': case 'C': { int issigned = (type == 'c') ? (input[inputpos] & 0x80) : 0; - long v = php_unpack(&input[inputpos], 1, issigned, byte_map); + php_int_t v = php_unpack(&input[inputpos], 1, issigned, byte_map); add_assoc_int(return_value, n, v); break; } @@ -779,7 +780,7 @@ PHP_FUNCTION(unpack) case 'S': case 'n': case 'v': { - long v; + php_int_t v; int issigned = 0; int *map = machine_endian_short_map; @@ -798,7 +799,7 @@ PHP_FUNCTION(unpack) case 'i': case 'I': { - long v; + php_int_t v; int issigned = 0; if (type == 'i') { @@ -816,7 +817,7 @@ PHP_FUNCTION(unpack) case 'V': { int issigned = 0; int *map = machine_endian_long_map; - long v = 0; + php_int_t v = 0; if (type == 'l' || type == 'L') { issigned = input[inputpos + (machine_little_endian ? 3 : 0)] & 0x80; @@ -828,12 +829,12 @@ PHP_FUNCTION(unpack) map = little_endian_long_map; } - if (sizeof(long) > 4 && issigned) { + if (SIZEOF_ZEND_INT > 4 && issigned) { v = ~INT_MAX; } v |= php_unpack(&input[inputpos], 4, issigned, map); - if (sizeof(long) > 4) { + if (SIZEOF_ZEND_INT > 4) { if (type == 'l') { v = (signed int) v; } else { @@ -903,8 +904,10 @@ PHP_FUNCTION(unpack) } } - formatlen--; /* Skip '/' separator, does no harm if inputlen == 0 */ - format++; + if (formatlen > 0) { + formatlen--; /* Skip '/' separator, does no harm if inputlen == 0 */ + format++; + } } } /* }}} */ diff --git a/ext/standard/scanf.c b/ext/standard/scanf.c index 626a52490b..815d7c7290 100644 --- a/ext/standard/scanf.c +++ b/ext/standard/scanf.c @@ -356,7 +356,7 @@ PHPAPI int ValidateFormat(char *format, int numVars, int *totalSubs) * must not be a mixture of XPG3 specs and non-XPG3 specs * in the same format string. */ - value = strtoul(format-1, &end, 10); + value = ZEND_STRTOUI(format-1, &end, 10); if (*end != '$') { goto notXpg; } @@ -403,7 +403,7 @@ xpgCheckDone: * Parse any width specifier. */ if (isdigit(UCHAR(*ch))) { - value = strtoul(format-1, &format, 10); + value = ZEND_STRTOUI(format-1, &format, 10); flags |= SCAN_WIDTH; ch = format++; } @@ -708,7 +708,7 @@ literal: flags |= SCAN_SUPPRESS; ch = format++; } else if ( isdigit(UCHAR(*ch))) { - value = strtoul(format-1, &end, 10); + value = ZEND_STRTOUI(format-1, &end, 10); if (*end == '$') { format = end+1; ch = format++; @@ -720,7 +720,7 @@ literal: * Parse any width specifier. */ if ( isdigit(UCHAR(*ch))) { - width = strtoul(format-1, &format, 10); + width = ZEND_STRTOUI(format-1, &format, 10); ch = format++; } else { width = 0; @@ -761,7 +761,7 @@ literal: case 'i': op = 'i'; base = 0; - fn = (php_int_t(*)())ZEND_STRTOI_PTR; + fn = (php_int_t (*)())ZEND_STRTOI_PTR; break; case 'o': op = 'i'; @@ -778,7 +778,7 @@ literal: op = 'i'; base = 10; flags |= SCAN_UNSIGNED; - fn = (php_int_t (*)())ZEND_STRTOI_PTR; + fn = (php_int_t (*)())ZEND_STRTOUI_PTR; break; case 'f': @@ -1051,7 +1051,7 @@ addToInt: *end = '\0'; value = (php_int_t) (*fn)(buf, NULL, base); if ((flags & SCAN_UNSIGNED) && (value < 0)) { - snprintf(buf, sizeof(buf), "%lu", value); /* INTL: ISO digit */ + snprintf(buf, sizeof(buf), ZEND_UINT_FMT, value); /* INTL: ISO digit */ if (numVars && objIndex >= argCount) { break; } else if (numVars) { diff --git a/ext/standard/string.c b/ext/standard/string.c index 05704cbd2a..c8205c4ad2 100644 --- a/ext/standard/string.c +++ b/ext/standard/string.c @@ -524,10 +524,10 @@ PHP_MINIT_FUNCTION(nl_langinfo) Query language and locale information */ PHP_FUNCTION(nl_langinfo) { - long item; + php_int_t item; char *value; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "l", &item) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "i", &item) == FAILURE) { return; } @@ -712,15 +712,14 @@ PHP_FUNCTION(nl_langinfo) Compares two strings using the current locale */ PHP_FUNCTION(strcoll) { - char *s1, *s2; - int s1len, s2len; + zend_string *s1, *s2; - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "ss", &s1, &s1len, &s2, &s2len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "SS", &s1, &s2) == FAILURE) { return; } - RETURN_INT(strcoll((const char *) s1, - (const char *) s2)); + RETURN_INT(strcoll((const char *) s1->val, + (const char *) s2->val)); } /* }}} */ #endif @@ -2331,7 +2330,7 @@ PHP_FUNCTION(substr_replace) if (argc > 3) { if (Z_TYPE_P(len) != IS_ARRAY) { - l = zval_get_long(len); + l = zval_get_int(len); } } else { if (Z_TYPE_P(str) != IS_ARRAY) { @@ -2456,7 +2455,7 @@ PHP_FUNCTION(substr_replace) if (Z_TYPE_P(from) == IS_ARRAY) { if (NULL != (tmp_from = zend_hash_get_current_data_ex(Z_ARRVAL_P(from), &pos_from))) { - f = zval_get_long(tmp_from); + f = zval_get_int(tmp_from); if (f < 0) { f = Z_STRSIZE_P(orig_str) + f; @@ -2484,7 +2483,7 @@ PHP_FUNCTION(substr_replace) if (argc > 3 && Z_TYPE_P(len) == IS_ARRAY) { if (NULL != (tmp_len = zend_hash_get_current_data_ex(Z_ARRVAL_P(len), &pos_len))) { - l = zval_get_long(tmp_len); + l = zval_get_int(tmp_len); zend_hash_move_forward_ex(Z_ARRVAL_P(len), &pos_len); } else { l = Z_STRSIZE_P(orig_str); |
