From 283947af74c59080c30131ada7249f64a73fff5e Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Fri, 24 Oct 2014 20:47:26 +0200 Subject: [PATCH] fix datatype mismatches and convert APIs to size_t where zend_string internally used --- Zend/zend_compile.c | 6 +++--- Zend/zend_constants.c | 28 ++++++++++++++-------------- Zend/zend_constants.h | 14 +++++++------- 3 files changed, 24 insertions(+), 24 deletions(-) diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c index 6a5e70cabc6..78c42f333d1 100644 --- a/Zend/zend_compile.c +++ b/Zend/zend_compile.c @@ -1107,7 +1107,7 @@ ZEND_API zend_string *zend_mangle_property_name(const char *src1, size_t src1_le } /* }}} */ -static int zend_strnlen(const char* s, size_t maxlen) /* {{{ */ +static size_t zend_strnlen(const char* s, size_t maxlen) /* {{{ */ { size_t len = 0; while (*s++ && maxlen--) len++; @@ -3818,7 +3818,7 @@ void zend_compile_params(zend_ast *ast TSRMLS_DC) /* {{{ */ arg_info = &arg_infos[i]; arg_info->name = estrndup(name->val, name->len); - arg_info->name_len = name->len; + arg_info->name_len = (uint32_t)name->len; arg_info->pass_by_reference = is_ref; arg_info->is_variadic = is_variadic; arg_info->type_hint = 0; @@ -3862,7 +3862,7 @@ void zend_compile_params(zend_ast *ast TSRMLS_DC) /* {{{ */ arg_info->type_hint = IS_OBJECT; arg_info->class_name = estrndup(class_name->val, class_name->len); - arg_info->class_name_len = class_name->len; + arg_info->class_name_len = (uint32_t)class_name->len; zend_string_release(class_name); diff --git a/Zend/zend_constants.c b/Zend/zend_constants.c index 164901f898b..61cc49e5c56 100644 --- a/Zend/zend_constants.c +++ b/Zend/zend_constants.c @@ -161,7 +161,7 @@ void clean_non_persistent_constants(TSRMLS_D) } } -ZEND_API void zend_register_null_constant(const char *name, uint name_len, int flags, int module_number TSRMLS_DC) +ZEND_API void zend_register_null_constant(const char *name, size_t name_len, int flags, int module_number TSRMLS_DC) { zend_constant c; @@ -172,7 +172,7 @@ ZEND_API void zend_register_null_constant(const char *name, uint name_len, int f zend_register_constant(&c TSRMLS_CC); } -ZEND_API void zend_register_bool_constant(const char *name, uint name_len, zend_bool bval, int flags, int module_number TSRMLS_DC) +ZEND_API void zend_register_bool_constant(const char *name, size_t name_len, zend_bool bval, int flags, int module_number TSRMLS_DC) { zend_constant c; @@ -183,7 +183,7 @@ ZEND_API void zend_register_bool_constant(const char *name, uint name_len, zend_ zend_register_constant(&c TSRMLS_CC); } -ZEND_API void zend_register_long_constant(const char *name, uint name_len, zend_long lval, int flags, int module_number TSRMLS_DC) +ZEND_API void zend_register_long_constant(const char *name, size_t name_len, zend_long lval, int flags, int module_number TSRMLS_DC) { zend_constant c; @@ -195,7 +195,7 @@ ZEND_API void zend_register_long_constant(const char *name, uint name_len, zend_ } -ZEND_API void zend_register_double_constant(const char *name, uint name_len, double dval, int flags, int module_number TSRMLS_DC) +ZEND_API void zend_register_double_constant(const char *name, size_t name_len, double dval, int flags, int module_number TSRMLS_DC) { zend_constant c; @@ -207,7 +207,7 @@ ZEND_API void zend_register_double_constant(const char *name, uint name_len, dou } -ZEND_API void zend_register_stringl_constant(const char *name, uint name_len, char *strval, uint strlen, int flags, int module_number TSRMLS_DC) +ZEND_API void zend_register_stringl_constant(const char *name, size_t name_len, char *strval, size_t strlen, int flags, int module_number TSRMLS_DC) { zend_constant c; @@ -219,12 +219,12 @@ ZEND_API void zend_register_stringl_constant(const char *name, uint name_len, ch } -ZEND_API void zend_register_string_constant(const char *name, uint name_len, char *strval, int flags, int module_number TSRMLS_DC) +ZEND_API void zend_register_string_constant(const char *name, size_t name_len, char *strval, int flags, int module_number TSRMLS_DC) { zend_register_stringl_constant(name, name_len, strval, strlen(strval), flags, module_number TSRMLS_CC); } -static zend_constant *zend_get_special_constant(const char *name, uint name_len TSRMLS_DC) +static zend_constant *zend_get_special_constant(const char *name, size_t name_len TSRMLS_DC) { zend_constant *c; static char haltoff[] = "__COMPILER_HALT_OFFSET__"; @@ -236,7 +236,7 @@ static zend_constant *zend_get_special_constant(const char *name, uint name_len /* Returned constants may be cached, so they have to be stored */ if (EG(scope) && EG(scope)->name) { - int const_name_len; + size_t const_name_len; zend_string *const_name; const_name_len = sizeof("\0__CLASS__") + EG(scope)->name->len; @@ -265,7 +265,7 @@ static zend_constant *zend_get_special_constant(const char *name, uint name_len !memcmp(name, "__COMPILER_HALT_OFFSET__", sizeof("__COMPILER_HALT_OFFSET__")-1)) { const char *cfilename; zend_string *haltname; - int clen; + size_t clen; cfilename = zend_get_executed_filename(TSRMLS_C); clen = strlen(cfilename); @@ -281,7 +281,7 @@ static zend_constant *zend_get_special_constant(const char *name, uint name_len } -ZEND_API zval *zend_get_constant_str(const char *name, uint name_len TSRMLS_DC) +ZEND_API zval *zend_get_constant_str(const char *name, size_t name_len TSRMLS_DC) { zend_constant *c; ALLOCA_FLAG(use_heap) @@ -330,7 +330,7 @@ ZEND_API zval *zend_get_constant_ex(zend_string *cname, zend_class_entry *scope, zend_class_entry *ce = NULL; zend_string *class_name; const char *name = cname->val; - uint name_len = cname->len; + size_t name_len = cname->len; /* Skip leading \\ */ if (name[0] == '\\') { @@ -342,7 +342,7 @@ ZEND_API zval *zend_get_constant_ex(zend_string *cname, zend_class_entry *scope, if ((colon = zend_memrchr(name, ':', name_len)) && colon > name && (*(colon - 1) == ':')) { int class_name_len = colon - name - 1; - int const_name_len = name_len - class_name_len - 2; + size_t const_name_len = name_len - class_name_len - 2; zend_string *constant_name = zend_string_init(colon + 1, const_name_len, 0); char *lcname; zval *ret_constant = NULL; @@ -408,10 +408,10 @@ ZEND_API zval *zend_get_constant_ex(zend_string *cname, zend_class_entry *scope, if ((colon = zend_memrchr(name, '\\', name_len)) != NULL) { /* compound constant name */ int prefix_len = colon - name; - int const_name_len = name_len - prefix_len - 1; + size_t const_name_len = name_len - prefix_len - 1; const char *constant_name = colon + 1; char *lcname; - int lcname_len; + size_t lcname_len; ALLOCA_FLAG(use_heap) lcname_len = prefix_len + 1 + const_name_len; diff --git a/Zend/zend_constants.h b/Zend/zend_constants.h index d81476f3f4d..6d5542e1ec8 100644 --- a/Zend/zend_constants.h +++ b/Zend/zend_constants.h @@ -66,14 +66,14 @@ int zend_shutdown_constants(TSRMLS_D); void zend_register_standard_constants(TSRMLS_D); void clean_non_persistent_constants(TSRMLS_D); ZEND_API zval *zend_get_constant(zend_string *name TSRMLS_DC); -ZEND_API zval *zend_get_constant_str(const char *name, uint name_len TSRMLS_DC); +ZEND_API zval *zend_get_constant_str(const char *name, size_t name_len TSRMLS_DC); ZEND_API zval *zend_get_constant_ex(zend_string *name, zend_class_entry *scope, zend_ulong flags TSRMLS_DC); -ZEND_API void zend_register_bool_constant(const char *name, uint name_len, zend_bool bval, int flags, int module_number TSRMLS_DC); -ZEND_API void zend_register_null_constant(const char *name, uint name_len, int flags, int module_number TSRMLS_DC); -ZEND_API void zend_register_long_constant(const char *name, uint name_len, zend_long lval, int flags, int module_number TSRMLS_DC); -ZEND_API void zend_register_double_constant(const char *name, uint name_len, double dval, int flags, int module_number TSRMLS_DC); -ZEND_API void zend_register_string_constant(const char *name, uint name_len, char *strval, int flags, int module_number TSRMLS_DC); -ZEND_API void zend_register_stringl_constant(const char *name, uint name_len, char *strval, uint strlen, int flags, int module_number TSRMLS_DC); +ZEND_API void zend_register_bool_constant(const char *name, size_t name_len, zend_bool bval, int flags, int module_number TSRMLS_DC); +ZEND_API void zend_register_null_constant(const char *name, size_t name_len, int flags, int module_number TSRMLS_DC); +ZEND_API void zend_register_long_constant(const char *name, size_t name_len, zend_long lval, int flags, int module_number TSRMLS_DC); +ZEND_API void zend_register_double_constant(const char *name, size_t name_len, double dval, int flags, int module_number TSRMLS_DC); +ZEND_API void zend_register_string_constant(const char *name, size_t name_len, char *strval, int flags, int module_number TSRMLS_DC); +ZEND_API void zend_register_stringl_constant(const char *name, size_t name_len, char *strval, size_t strlen, int flags, int module_number TSRMLS_DC); ZEND_API int zend_register_constant(zend_constant *c TSRMLS_DC); void zend_copy_constants(HashTable *target, HashTable *sourc); zend_constant *zend_quick_get_constant(const zval *key, zend_ulong flags TSRMLS_DC);