summaryrefslogtreecommitdiff
path: root/ext/spl/php_spl.c
diff options
context:
space:
mode:
authorRasmus Lerdorf <rasmus@php.net>2014-10-16 21:28:40 -0700
committerRasmus Lerdorf <rasmus@php.net>2014-10-16 21:28:40 -0700
commita9d6556971a435f71eabf142d8fb814382f3b6ac (patch)
tree4fecce88bbc1bc3259856eb0314d780184de85eb /ext/spl/php_spl.c
parent86674b5837bffe4486714f9661620020ee498f3b (diff)
parent176b8d7ca3aef3a172d8e429627c98e0328d02d8 (diff)
downloadphp-git-a9d6556971a435f71eabf142d8fb814382f3b6ac.tar.gz
Merge branch 'master' of git.php.net:php-src
* 'master' of git.php.net:php-src: (1132 commits) Micro optimizations for isset/empty Micro optimization for zend_hash_next_index_insert_new() Fix array_keys() on $GLOBALS Fix procedural finfo calls in methods Fix allocator for 64bit zend_long with 32bit long Use intptr_t for zend_intptr_t typedef Fix format strings in zend_alloc Drop zend_long64 in favor of int64_t Removed deprecated fields NEWS cleanup NEWS removing the NEWS entry as we had to revert this fix for now Revert "Merge branch 'PHP-5.5' into PHP-5.6" Revert "fix TS build" Revert "Merge branch 'PHP-5.4' into PHP-5.5" Revert "Bug #67965: Fix blocking behavior in non-blocking crypto streams" Revert "Bug #41631: Fix regression from first attempt (6569db8)" NEWS Fixed Bug #65171 imagescale() fails Fixed bug #68234 ...
Diffstat (limited to 'ext/spl/php_spl.c')
-rw-r--r--ext/spl/php_spl.c80
1 files changed, 40 insertions, 40 deletions
diff --git a/ext/spl/php_spl.c b/ext/spl/php_spl.c
index 5ca26d3f19..44078733d6 100644
--- a/ext/spl/php_spl.c
+++ b/ext/spl/php_spl.c
@@ -1,6 +1,6 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 5 |
+ | PHP Version 7 |
+----------------------------------------------------------------------+
| Copyright (c) 1997-2014 The PHP Group |
+----------------------------------------------------------------------+
@@ -66,11 +66,11 @@ static zend_class_entry * spl_find_ce_by_name(zend_string *name, zend_bool autol
zend_class_entry *ce;
if (!autoload) {
- zend_string *lc_name = STR_ALLOC(name->len, 0);
+ zend_string *lc_name = zend_string_alloc(name->len, 0);
zend_str_tolower_copy(lc_name->val, name->val, name->len);
ce = zend_hash_find_ptr(EG(class_table), lc_name);
- STR_FREE(lc_name);
+ zend_string_free(lc_name);
} else {
ce = zend_lookup_class(name TSRMLS_CC);
}
@@ -275,7 +275,7 @@ static int spl_autoload(zend_string *class_name, zend_string *lc_name, const cha
if (!file_handle.opened_path) {
file_handle.opened_path = estrndup(class_file, class_file_len);
}
- opened_path = STR_INIT(file_handle.opened_path, strlen(file_handle.opened_path), 0);
+ opened_path = zend_string_init(file_handle.opened_path, strlen(file_handle.opened_path), 0);
ZVAL_NULL(&dummy);
if (zend_hash_add(&EG(included_files), opened_path, &dummy)) {
new_op_array = zend_compile_file(&file_handle, ZEND_REQUIRE TSRMLS_CC);
@@ -284,7 +284,7 @@ static int spl_autoload(zend_string *class_name, zend_string *lc_name, const cha
new_op_array = NULL;
zend_file_handle_dtor(&file_handle TSRMLS_CC);
}
- STR_RELEASE(opened_path);
+ zend_string_release(opened_path);
if (new_op_array) {
ZVAL_UNDEF(&result);
zend_execute(new_op_array, &result TSRMLS_CC);
@@ -323,7 +323,7 @@ PHP_FUNCTION(spl_autoload)
pos_len = file_exts->len;
}
- lc_name = STR_ALLOC(class_name->len, 0);
+ lc_name = zend_string_alloc(class_name->len, 0);
zend_str_tolower_copy(lc_name->val, class_name->val, class_name->len);
while (pos && *pos && !EG(exception)) {
pos1 = strchr(pos, ',');
@@ -339,14 +339,14 @@ PHP_FUNCTION(spl_autoload)
pos = pos1 ? pos1 + 1 : NULL;
pos_len = pos1? pos_len - pos1_len - 1 : 0;
}
- STR_FREE(lc_name);
+ zend_string_free(lc_name);
if (!found && !SPL_G(autoload_running)) {
/* For internal errors, we generate E_ERROR, for direct calls an exception is thrown.
* The "scope" is determined by an opcode, if it is ZEND_FETCH_CLASS we know function was called indirectly by
* the Zend engine.
*/
- zend_execute_data *ex = EG(current_execute_data);
+ zend_execute_data *ex = EX(prev_execute_data);
while (ex && (!ex->func || !ZEND_USER_CODE(ex->func->type))) {
ex = ex->prev_execute_data;
@@ -370,15 +370,15 @@ PHP_FUNCTION(spl_autoload_extensions)
}
if (file_exts) {
if (SPL_G(autoload_extensions)) {
- STR_RELEASE(SPL_G(autoload_extensions));
+ zend_string_release(SPL_G(autoload_extensions));
}
- SPL_G(autoload_extensions) = STR_COPY(file_exts);
+ SPL_G(autoload_extensions) = zend_string_copy(file_exts);
}
if (SPL_G(autoload_extensions) == NULL) {
RETURN_STRINGL(SPL_DEFAULT_FILE_EXTENSIONS, sizeof(SPL_DEFAULT_FILE_EXTENSIONS) - 1);
} else {
- STR_ADDREF(SPL_G(autoload_extensions));
+ zend_string_addref(SPL_G(autoload_extensions));
RETURN_STR(SPL_G(autoload_extensions));
}
} /* }}} */
@@ -417,8 +417,8 @@ PHP_FUNCTION(spl_autoload_call)
if (SPL_G(autoload_functions)) {
int l_autoload_running = SPL_G(autoload_running);
SPL_G(autoload_running) = 1;
- lc_name = STR_ALLOC(Z_STRSIZE_P(class_name), 0);
- zend_str_tolower_copy(lc_name->val, Z_STRVAL_P(class_name), Z_STRSIZE_P(class_name));
+ lc_name = zend_string_alloc(Z_STRLEN_P(class_name), 0);
+ zend_str_tolower_copy(lc_name->val, Z_STRVAL_P(class_name), Z_STRLEN_P(class_name));
ZEND_HASH_FOREACH_STR_KEY_PTR(SPL_G(autoload_functions), func_name, alfi) {
zend_call_method(Z_ISUNDEF(alfi->obj)? NULL : &alfi->obj, alfi->ce, &alfi->func_ptr, func_name->val, func_name->len, retval, 1, class_name, NULL TSRMLS_CC);
zend_exception_save(TSRMLS_C);
@@ -431,7 +431,7 @@ PHP_FUNCTION(spl_autoload_call)
}
} ZEND_HASH_FOREACH_END();
zend_exception_restore(TSRMLS_C);
- STR_FREE(lc_name);
+ zend_string_free(lc_name);
SPL_G(autoload_running) = l_autoload_running;
} else {
/* do not use or overwrite &EG(autoload_func) here */
@@ -480,7 +480,7 @@ PHP_FUNCTION(spl_autoload_register)
if (error) {
efree(error);
}
- STR_RELEASE(func_name);
+ zend_string_release(func_name);
RETURN_FALSE;
} else if (do_throw) {
zend_throw_exception_ex(spl_ce_LogicException, 0 TSRMLS_CC, "Passed array does not specify %s %smethod (%s)", alfi.func_ptr ? "a callable" : "an existing", !obj_ptr ? "static " : "", error);
@@ -488,7 +488,7 @@ PHP_FUNCTION(spl_autoload_register)
if (error) {
efree(error);
}
- STR_RELEASE(func_name);
+ zend_string_release(func_name);
RETURN_FALSE;
} else if (Z_TYPE_P(zcallable) == IS_STRING) {
if (do_throw) {
@@ -497,7 +497,7 @@ PHP_FUNCTION(spl_autoload_register)
if (error) {
efree(error);
}
- STR_RELEASE(func_name);
+ zend_string_release(func_name);
RETURN_FALSE;
} else {
if (do_throw) {
@@ -506,7 +506,7 @@ PHP_FUNCTION(spl_autoload_register)
if (error) {
efree(error);
}
- STR_RELEASE(func_name);
+ zend_string_release(func_name);
RETURN_FALSE;
}
} else if (fcc.function_handler->type == ZEND_INTERNAL_FUNCTION &&
@@ -517,7 +517,7 @@ PHP_FUNCTION(spl_autoload_register)
if (error) {
efree(error);
}
- STR_RELEASE(func_name);
+ zend_string_release(func_name);
RETURN_FALSE;
}
alfi.ce = fcc.calling_scope;
@@ -530,16 +530,16 @@ PHP_FUNCTION(spl_autoload_register)
if (Z_TYPE_P(zcallable) == IS_OBJECT) {
ZVAL_COPY(&alfi.closure, zcallable);
- lc_name = STR_ALLOC(func_name->len + sizeof(zend_uint), 0);
+ lc_name = zend_string_alloc(func_name->len + sizeof(uint32_t), 0);
zend_str_tolower_copy(lc_name->val, func_name->val, func_name->len);
- memcpy(lc_name->val + func_name->len, &Z_OBJ_HANDLE_P(zcallable), sizeof(zend_uint));
+ memcpy(lc_name->val + func_name->len, &Z_OBJ_HANDLE_P(zcallable), sizeof(uint32_t));
lc_name->val[lc_name->len] = '\0';
} else {
ZVAL_UNDEF(&alfi.closure);
- lc_name = STR_ALLOC(func_name->len, 0);
+ lc_name = zend_string_alloc(func_name->len, 0);
zend_str_tolower_copy(lc_name->val, func_name->val, func_name->len);
}
- STR_RELEASE(func_name);
+ zend_string_release(func_name);
if (SPL_G(autoload_functions) && zend_hash_exists(SPL_G(autoload_functions), lc_name)) {
if (!Z_ISUNDEF(alfi.closure)) {
@@ -550,8 +550,8 @@ PHP_FUNCTION(spl_autoload_register)
if (obj_ptr && !(alfi.func_ptr->common.fn_flags & ZEND_ACC_STATIC)) {
/* add object id to the hash to ensure uniqueness, for more reference look at bug #40091 */
- lc_name = STR_REALLOC(lc_name, lc_name->len + sizeof(zend_uint), 0);
- memcpy(lc_name->val + lc_name->len - sizeof(zend_uint), &obj_ptr->handle, sizeof(zend_uint));
+ lc_name = zend_string_realloc(lc_name, lc_name->len + sizeof(uint32_t), 0);
+ memcpy(lc_name->val + lc_name->len - sizeof(uint32_t), &obj_ptr->handle, sizeof(uint32_t));
lc_name->val[lc_name->len] = '\0';
ZVAL_OBJ(&alfi.obj, obj_ptr);
Z_ADDREF(alfi.obj);
@@ -594,7 +594,7 @@ PHP_FUNCTION(spl_autoload_register)
HT_MOVE_TAIL_TO_HEAD(SPL_G(autoload_functions));
}
skip:
- STR_RELEASE(lc_name);
+ zend_string_release(lc_name);
}
if (SPL_G(autoload_functions)) {
@@ -629,7 +629,7 @@ PHP_FUNCTION(spl_autoload_unregister)
efree(error);
}
if (func_name) {
- STR_RELEASE(func_name);
+ zend_string_release(func_name);
}
RETURN_FALSE;
}
@@ -639,15 +639,15 @@ PHP_FUNCTION(spl_autoload_unregister)
}
if (Z_TYPE_P(zcallable) == IS_OBJECT) {
- lc_name = STR_ALLOC(func_name->len + sizeof(zend_uint), 0);
+ lc_name = zend_string_alloc(func_name->len + sizeof(uint32_t), 0);
zend_str_tolower_copy(lc_name->val, func_name->val, func_name->len);
- memcpy(lc_name->val + func_name->len, &Z_OBJ_HANDLE_P(zcallable), sizeof(zend_uint));
+ memcpy(lc_name->val + func_name->len, &Z_OBJ_HANDLE_P(zcallable), sizeof(uint32_t));
lc_name->val[lc_name->len] = '\0';
} else {
- lc_name = STR_ALLOC(func_name->len, 0);
+ lc_name = zend_string_alloc(func_name->len, 0);
zend_str_tolower_copy(lc_name->val, func_name->val, func_name->len);
}
- STR_RELEASE(func_name);
+ zend_string_release(func_name);
if (SPL_G(autoload_functions)) {
if (lc_name->len == sizeof("spl_autoload_call") - 1 && !strcmp(lc_name->val, "spl_autoload_call")) {
@@ -661,8 +661,8 @@ PHP_FUNCTION(spl_autoload_unregister)
/* remove specific */
success = zend_hash_del(SPL_G(autoload_functions), lc_name);
if (success != SUCCESS && obj_ptr) {
- lc_name = STR_REALLOC(lc_name, lc_name->len + sizeof(zend_uint), 0);
- memcpy(lc_name->val + lc_name->len - sizeof(zend_uint), &obj_ptr->handle, sizeof(zend_uint));
+ lc_name = zend_string_realloc(lc_name, lc_name->len + sizeof(uint32_t), 0);
+ memcpy(lc_name->val + lc_name->len - sizeof(uint32_t), &obj_ptr->handle, sizeof(uint32_t));
lc_name->val[lc_name->len] = '\0';
success = zend_hash_del(SPL_G(autoload_functions), lc_name);
}
@@ -677,7 +677,7 @@ PHP_FUNCTION(spl_autoload_unregister)
}
}
- STR_RELEASE(lc_name);
+ zend_string_release(lc_name);
RETURN_BOOL(success == SUCCESS);
} /* }}} */
@@ -718,15 +718,15 @@ PHP_FUNCTION(spl_autoload_functions)
Z_ADDREF(alfi->obj);
add_next_index_zval(&tmp, &alfi->obj);
} else {
- add_next_index_str(&tmp, STR_COPY(alfi->ce->name));
+ add_next_index_str(&tmp, zend_string_copy(alfi->ce->name));
}
- add_next_index_str(&tmp, STR_COPY(alfi->func_ptr->common.function_name));
+ add_next_index_str(&tmp, zend_string_copy(alfi->func_ptr->common.function_name));
add_next_index_zval(return_value, &tmp);
} else {
if (strncmp(alfi->func_ptr->common.function_name->val, "__lambda_func", sizeof("__lambda_func") - 1)) {
- add_next_index_str(return_value, STR_COPY(alfi->func_ptr->common.function_name));
+ add_next_index_str(return_value, zend_string_copy(alfi->func_ptr->common.function_name));
} else {
- add_next_index_str(return_value, STR_COPY(key));
+ add_next_index_str(return_value, zend_string_copy(key));
}
}
} ZEND_HASH_FOREACH_END();
@@ -734,7 +734,7 @@ PHP_FUNCTION(spl_autoload_functions)
}
array_init(return_value);
- add_next_index_str(return_value, STR_COPY(EG(autoload_func)->common.function_name));
+ add_next_index_str(return_value, zend_string_copy(EG(autoload_func)->common.function_name));
} /* }}} */
/* {{{ proto string spl_object_hash(object obj)
@@ -927,7 +927,7 @@ PHP_RINIT_FUNCTION(spl) /* {{{ */
PHP_RSHUTDOWN_FUNCTION(spl) /* {{{ */
{
if (SPL_G(autoload_extensions)) {
- STR_RELEASE(SPL_G(autoload_extensions));
+ zend_string_release(SPL_G(autoload_extensions));
SPL_G(autoload_extensions) = NULL;
}
if (SPL_G(autoload_functions)) {