summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--NEWS4
-rw-r--r--README.md11
-rwxr-xr-xUPGRADING4
-rw-r--r--Zend/zend_builtin_functions.c19
-rw-r--r--Zend/zend_execute.c8
-rw-r--r--Zend/zend_execute.h14
-rw-r--r--Zend/zend_vm_def.h31
-rw-r--r--Zend/zend_vm_execute.h1342
-rw-r--r--Zend/zend_vm_gen.php20
-rw-r--r--ext/date/lib/timezonedb.h1318
-rw-r--r--ext/gmp/gmp.c109
-rw-r--r--ext/gmp/tests/bug659967.phpt15
-rw-r--r--ext/gmp/tests/serialize.phpt22
-rw-r--r--ext/odbc/php_odbc_includes.h2
-rw-r--r--ext/opcache/README4
-rw-r--r--ext/opcache/zend_accelerator_module.c2
-rw-r--r--ext/standard/array.c91
-rw-r--r--ext/standard/basic_functions.c1
-rw-r--r--ext/standard/crypt.c2
-rw-r--r--ext/standard/php_array.h3
-rw-r--r--ext/standard/tests/array/array_filter_error.phpt4
-rw-r--r--ext/standard/tests/array/array_filter_variation10.phpt103
-rw-r--r--ext/standard/tests/general_functions/var_export-locale.phpt8
-rw-r--r--ext/standard/tests/general_functions/var_export_basic3.phpt36
-rw-r--r--ext/standard/tests/general_functions/var_export_basic5.phpt10
-rw-r--r--ext/standard/tests/strings/crypt.phpt2
-rw-r--r--ext/standard/var.c2
-rw-r--r--ext/zip/LICENSE_libzip27
-rw-r--r--sapi/cgi/cgi_main.c5
-rw-r--r--sapi/fpm/fpm/fpm_main.c5
-rw-r--r--sapi/fpm/fpm/fpm_sockets.c1
-rw-r--r--sapi/fpm/fpm/fpm_sockets.h2
-rw-r--r--sapi/fpm/php-fpm.conf.in4
-rw-r--r--tests/lang/bug24640.phpt16
-rw-r--r--win32/build/libs_version.txt3
35 files changed, 1770 insertions, 1480 deletions
diff --git a/NEWS b/NEWS
index 57c2938bbf..ed8bcc93b1 100644
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,6 @@
PHP NEWS
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
-?? ??? 201?, PHP 5.6.0
+?? ??? 20??, PHP 5.6.0
- Core:
. Improved IS_VAR operands fetching. (Laruence, Dmitry)
@@ -63,6 +63,8 @@ PHP NEWS
- Standard:
. Implemented FR #65634 (HTTP wrapper is very slow with protocol_version
1.1). (Adam)
+ . Implemented Change crypt() behavior w/o salt RFC. (Yasuo)
+ https://wiki.php.net/rfc/crypt_function_salt
- XMLReader:
. Fixed bug #55285 (XMLReader::getAttribute/No/Ns methods inconsistency).
diff --git a/README.md b/README.md
index 51973854db..09e70e6a39 100644
--- a/README.md
+++ b/README.md
@@ -17,7 +17,7 @@ See https://wiki.php.net/rfc and https://wiki.php.net/rfc/voting for more
information on the process.
Bug fixes **do not** require an RFC, but require a bugtracker ticket. Always
-open a ticket at http://bugs.php.net and reference the bug id using #NNNNNN.
+open a ticket at https://bugs.php.net and reference the bug id using #NNNNNN.
Fix #55371: get_magic_quotes_gpc() throws deprecation warning
@@ -28,3 +28,12 @@ open a ticket at http://bugs.php.net and reference the bug id using #NNNNNN.
We do not merge pull requests directly on github. All PRs will be
pulled and pushed through http://git.php.net.
+
+
+Guidelines for contributors
+===========================
+- [CODING_STANDARDS](/CODING_STANDARDS)
+- [README.GIT-RULES](/README.GIT-RULES)
+- [README.MAILINGLIST_RULES](/README.MAILINGLIST_RULES)
+- [README.RELEASE_PROCESS](/README.RELEASE_PROCESS)
+
diff --git a/UPGRADING b/UPGRADING
index d2133338a3..ab05b3a8bf 100755
--- a/UPGRADING
+++ b/UPGRADING
@@ -68,6 +68,10 @@ PHP X.Y UPGRADE NOTES
CURLOPT_SAFE_UPLOAD is now turned on by default and uploads with @file
do not work unless it is explicitly set to false.
+- Crypt:
+ crypt() will now raise an E_NOTICE error if the salt parameter is omitted.
+ See: https://wiki.php.net/rfc/crypt_function_salt
+
- XMLReader:
XMLReader::getAttributeNs and XMLReader::getAttributeNo now return NULL if
the attribute could not be found, just like XMLReader::getAttribute.
diff --git a/Zend/zend_builtin_functions.c b/Zend/zend_builtin_functions.c
index ed136f5e12..55e5f34e83 100644
--- a/Zend/zend_builtin_functions.c
+++ b/Zend/zend_builtin_functions.c
@@ -435,9 +435,7 @@ ZEND_FUNCTION(func_get_arg)
}
arg = *(p-(arg_count-requested_offset));
- *return_value = *arg;
- zval_copy_ctor(return_value);
- INIT_PZVAL(return_value);
+ RETURN_ZVAL_FAST(arg);
}
/* }}} */
@@ -461,12 +459,17 @@ ZEND_FUNCTION(func_get_args)
array_init_size(return_value, arg_count);
for (i=0; i<arg_count; i++) {
- zval *element;
+ zval *element, *arg;
- ALLOC_ZVAL(element);
- *element = **((zval **) (p-(arg_count-i)));
- zval_copy_ctor(element);
- INIT_PZVAL(element);
+ arg = *((zval **) (p-(arg_count-i)));
+ if (!Z_ISREF_P(arg)) {
+ element = arg;
+ Z_ADDREF_P(element);
+ } else {
+ ALLOC_ZVAL(element);
+ INIT_PZVAL_COPY(element, arg);
+ zval_copy_ctor(element);
+ }
zend_hash_next_index_insert(return_value->value.ht, &element, sizeof(zval *), NULL);
}
}
diff --git a/Zend/zend_execute.c b/Zend/zend_execute.c
index 9f78218d3d..b5c35ca40f 100644
--- a/Zend/zend_execute.c
+++ b/Zend/zend_execute.c
@@ -79,7 +79,6 @@ static zend_always_inline void zend_pzval_unlock_func(zval *z, zend_free_op *sho
if (unref && Z_ISREF_P(z) && Z_REFCOUNT_P(z) == 1) {
Z_UNSET_ISREF_P(z);
}
- GC_ZVAL_CHECK_POSSIBLE_ROOT(z);
}
}
@@ -95,6 +94,7 @@ static zend_always_inline void zend_pzval_unlock_free_func(zval *z TSRMLS_DC)
#undef zval_ptr_dtor
#define zval_ptr_dtor(pzv) i_zval_ptr_dtor(*(pzv) ZEND_FILE_LINE_CC TSRMLS_CC)
+#define zval_ptr_dtor_nogc(pzv) i_zval_ptr_dtor_nogc(*(pzv) ZEND_FILE_LINE_CC TSRMLS_CC)
#define PZVAL_UNLOCK(z, f) zend_pzval_unlock_func(z, f, 1 TSRMLS_CC)
#define PZVAL_UNLOCK_EX(z, f, u) zend_pzval_unlock_func(z, f, u TSRMLS_CC)
@@ -125,18 +125,18 @@ static zend_always_inline void zend_pzval_unlock_free_func(zval *z TSRMLS_DC)
if ((zend_uintptr_t)should_free.var & 1L) { \
zval_dtor((zval*)((zend_uintptr_t)should_free.var & ~1L)); \
} else { \
- zval_ptr_dtor(&should_free.var); \
+ zval_ptr_dtor_nogc(&should_free.var); \
} \
}
#define FREE_OP_IF_VAR(should_free) \
if (should_free.var != NULL && (((zend_uintptr_t)should_free.var & 1L) == 0)) { \
- zval_ptr_dtor(&should_free.var); \
+ zval_ptr_dtor_nogc(&should_free.var); \
}
#define FREE_OP_VAR_PTR(should_free) \
if (should_free.var) { \
- zval_ptr_dtor(&should_free.var); \
+ zval_ptr_dtor_nogc(&should_free.var); \
}
#define TMP_FREE(z) (zval*)(((zend_uintptr_t)(z)) | 1L)
diff --git a/Zend/zend_execute.h b/Zend/zend_execute.h
index b68a82ef89..5c900e5cec 100644
--- a/Zend/zend_execute.h
+++ b/Zend/zend_execute.h
@@ -87,6 +87,20 @@ static zend_always_inline void i_zval_ptr_dtor(zval *zval_ptr ZEND_FILE_LINE_DC
}
}
+static zend_always_inline void i_zval_ptr_dtor_nogc(zval *zval_ptr ZEND_FILE_LINE_DC TSRMLS_DC)
+{
+ if (!Z_DELREF_P(zval_ptr)) {
+ ZEND_ASSERT(zval_ptr != &EG(uninitialized_zval));
+ GC_REMOVE_ZVAL_FROM_BUFFER(zval_ptr);
+ zval_dtor(zval_ptr);
+ efree_rel(zval_ptr);
+ } else {
+ if (Z_REFCOUNT_P(zval_ptr) == 1) {
+ Z_UNSET_ISREF_P(zval_ptr);
+ }
+ }
+}
+
static zend_always_inline int i_zend_is_true(zval *op)
{
int result;
diff --git a/Zend/zend_vm_def.h b/Zend/zend_vm_def.h
index 09f567c36f..572aac5a20 100644
--- a/Zend/zend_vm_def.h
+++ b/Zend/zend_vm_def.h
@@ -4492,22 +4492,21 @@ ZEND_VM_HELPER_EX(zend_isset_isempty_dim_prop_obj_handler, VAR|UNUSED|CV, CONST|
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval **container;
+ zval *container;
zval **value = NULL;
int result = 0;
ulong hval;
zval *offset;
SAVE_OPLINE();
- container = GET_OP1_OBJ_ZVAL_PTR_PTR_FAST(BP_VAR_IS);
-
+ container = GET_OP1_OBJ_ZVAL_PTR(BP_VAR_IS);
offset = GET_OP2_ZVAL_PTR(BP_VAR_R);
- if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+ if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
HashTable *ht;
int isset = 0;
- ht = Z_ARRVAL_PP(container);
+ ht = Z_ARRVAL_P(container);
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
@@ -4526,9 +4525,7 @@ ZEND_VM_C_LABEL(num_index_prop):
if (OP2_TYPE == IS_CONST) {
hval = Z_HASH_P(offset);
} else {
- if (!prop_dim) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, ZEND_VM_C_GOTO(num_index_prop));
- }
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, ZEND_VM_C_GOTO(num_index_prop));
hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
@@ -4559,20 +4556,20 @@ ZEND_VM_C_LABEL(num_index_prop):
}
}
FREE_OP2();
- } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+ } else if (Z_TYPE_P(container) == IS_OBJECT) {
if (IS_OP2_TMP_FREE()) {
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- if (Z_OBJ_HT_P(*container)->has_property) {
- result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_property) {
+ result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((OP2_TYPE == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check property of non-object");
result = 0;
}
} else {
- if (Z_OBJ_HT_P(*container)->has_dimension) {
- result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_dimension) {
+ result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check element of non-array");
result = 0;
@@ -4583,7 +4580,7 @@ ZEND_VM_C_LABEL(num_index_prop):
} else {
FREE_OP2();
}
- } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+ } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
@@ -4601,11 +4598,11 @@ ZEND_VM_C_LABEL(num_index_prop):
}
if (Z_TYPE_P(offset) == IS_LONG) {
if (opline->extended_value & ZEND_ISSET) {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
result = 1;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
result = 1;
}
}
@@ -4622,7 +4619,7 @@ ZEND_VM_C_LABEL(num_index_prop):
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result;
}
- FREE_OP1_VAR_PTR_FAST();
+ FREE_OP1_IF_VAR();
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
diff --git a/Zend/zend_vm_execute.h b/Zend/zend_vm_execute.h
index a5b4e72da0..7ad7dcf463 100644
--- a/Zend/zend_vm_execute.h
+++ b/Zend/zend_vm_execute.h
@@ -1754,7 +1754,7 @@ static int ZEND_FASTCALL ZEND_FETCH_CLASS_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_
zend_error_noreturn(E_ERROR, "Class name must be a valid object or a string");
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -1803,7 +1803,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
zend_error_noreturn(E_ERROR, "Call to undefined function %s()", function_name_strval);
}
efree(lcname);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
call->object = NULL;
call->called_scope = NULL;
call->is_ctor_call = 0;
@@ -1822,7 +1822,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
/* Delay closure destruction until its invocation */
call->fbc->common.prototype = (zend_function*)function_name;
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
call->is_ctor_call = 0;
EX(call) = call;
@@ -1893,7 +1893,7 @@ static int ZEND_FASTCALL ZEND_INIT_FCALL_BY_NAME_SPEC_VAR_HANDLER(ZEND_OPCODE_H
}
call->is_ctor_call = 0;
EX(call) = call;
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else {
@@ -4972,7 +4972,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -4987,7 +4987,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5002,7 +5002,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5017,7 +5017,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5032,7 +5032,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5047,7 +5047,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5062,7 +5062,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5077,7 +5077,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5092,7 +5092,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_H
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5109,7 +5109,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCO
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5125,7 +5125,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDL
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5141,7 +5141,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_H
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5157,7 +5157,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HAN
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5173,7 +5173,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CONST_VAR_HANDLER(ZEND_O
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5188,7 +5188,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5203,7 +5203,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5218,7 +5218,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5233,7 +5233,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDL
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5411,12 +5411,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HA
if (IS_CONST == IS_TMP_VAR || IS_CONST == IS_CONST) {
zval *container = opline->op1.zv;
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
container = NULL;
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_CONST == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
}
@@ -5510,7 +5510,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_CONST_VAR_HANDLER(ZE
}
}
if (IS_VAR != IS_CONST) {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
if (UNEXPECTED(ce->constructor == NULL)) {
@@ -5559,7 +5559,7 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
opline->op1.zv,
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -5634,7 +5634,7 @@ num_index:
/* do nothing */
break;
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
@@ -5952,7 +5952,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CONST_VAR_HANDLER(ZEND_OPCODE_HANDLER_
generator->largest_used_integer_key = Z_LVAL_P(generator->key);
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
/* If no key was specified we use auto-increment keys */
generator->largest_used_integer_key++;
@@ -10194,7 +10194,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10209,7 +10209,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10224,7 +10224,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10239,7 +10239,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10254,7 +10254,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10269,7 +10269,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10284,7 +10284,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10299,7 +10299,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10314,7 +10314,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAN
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10331,7 +10331,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10347,7 +10347,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10363,7 +10363,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAN
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10379,7 +10379,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDL
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10395,7 +10395,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_TMP_VAR_HANDLER(ZEND_OPC
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10410,7 +10410,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10425,7 +10425,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10440,7 +10440,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10455,7 +10455,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
zval_dtor(free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10633,12 +10633,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HAND
if (IS_TMP_VAR == IS_TMP_VAR || IS_TMP_VAR == IS_CONST) {
zval *container = _get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
zval_dtor(free_op1.var);
} else {
container = NULL;
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_TMP_VAR == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
}
@@ -10687,7 +10687,7 @@ static int ZEND_FASTCALL ZEND_ADD_VAR_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_
* which aren't affected by FREE_OP(Ts, )'s anyway, unless they're
* string offsets or overloaded objects
*/
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -10745,7 +10745,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE
}
} else {
if (UNEXPECTED(EG(exception) != NULL)) {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
HANDLE_EXCEPTION();
}
zend_error_noreturn(E_ERROR, "Call to a member function %s() on a non-object", function_name_strval);
@@ -10767,7 +10767,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE
call->is_ctor_call = 0;
EX(call) = call;
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -10783,7 +10783,7 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
_get_zval_ptr_tmp(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -10858,7 +10858,7 @@ num_index:
/* do nothing */
break;
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
@@ -11176,7 +11176,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_TMP_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
generator->largest_used_integer_key = Z_LVAL_P(generator->key);
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
/* If no key was specified we use auto-increment keys */
generator->largest_used_integer_key++;
@@ -12474,7 +12474,7 @@ static int ZEND_FASTCALL ZEND_BW_NOT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
SAVE_OPLINE();
bitwise_not_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12487,7 +12487,7 @@ static int ZEND_FASTCALL ZEND_BOOL_NOT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
SAVE_OPLINE();
boolean_not_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12509,7 +12509,7 @@ static int ZEND_FASTCALL ZEND_PRE_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
PZVAL_LOCK(&EG(uninitialized_zval));
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12534,7 +12534,7 @@ static int ZEND_FASTCALL ZEND_PRE_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12556,7 +12556,7 @@ static int ZEND_FASTCALL ZEND_PRE_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
PZVAL_LOCK(&EG(uninitialized_zval));
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12581,7 +12581,7 @@ static int ZEND_FASTCALL ZEND_PRE_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12600,7 +12600,7 @@ static int ZEND_FASTCALL ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
if (IS_VAR == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) {
ZVAL_NULL(&EX_T(opline->result.var).tmp_var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12624,7 +12624,7 @@ static int ZEND_FASTCALL ZEND_POST_INC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
fast_increment_function(*var_ptr);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12643,7 +12643,7 @@ static int ZEND_FASTCALL ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
if (IS_VAR == IS_VAR && UNEXPECTED(*var_ptr == &EG(error_zval))) {
ZVAL_NULL(&EX_T(opline->result.var).tmp_var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12667,7 +12667,7 @@ static int ZEND_FASTCALL ZEND_POST_DEC_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
fast_decrement_function(*var_ptr);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12686,7 +12686,7 @@ static int ZEND_FASTCALL ZEND_ECHO_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
}
zend_print_variable(z);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -12713,7 +12713,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
}
@@ -12743,7 +12743,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
ret = Z_LVAL_P(val);
} else {
ret = i_zend_is_true(val);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
}
@@ -12773,7 +12773,7 @@ static int ZEND_FASTCALL ZEND_JMPZNZ_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
}
@@ -12807,7 +12807,7 @@ static int ZEND_FASTCALL ZEND_JMPZ_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
}
@@ -12838,7 +12838,7 @@ static int ZEND_FASTCALL ZEND_JMPNZ_EX_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
retval = Z_LVAL_P(val);
} else {
retval = i_zend_is_true(val);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
}
@@ -12879,7 +12879,7 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
retval_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (!EG(return_value_ptr_ptr)) {
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
if (IS_VAR == IS_CONST ||
IS_VAR == IS_TMP_VAR ||
@@ -12892,7 +12892,7 @@ static int ZEND_FASTCALL ZEND_RETURN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zval_copy_ctor(ret);
}
*EG(return_value_ptr_ptr) = ret;
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else if ((IS_VAR == IS_CV || IS_VAR == IS_VAR) &&
retval_ptr == &EG(uninitialized_zval)) {
zval *ret;
@@ -12929,7 +12929,7 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
retval_ptr = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
if (!EG(return_value_ptr_ptr)) {
if (IS_VAR == IS_TMP_VAR) {
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
} else if (!0) { /* Not a temp var */
zval *ret;
@@ -12979,7 +12979,7 @@ static int ZEND_FASTCALL ZEND_RETURN_BY_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
}
} while (0);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
return zend_leave_helper_SPEC(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
}
@@ -13010,7 +13010,7 @@ static int ZEND_FASTCALL ZEND_THROW_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
zend_throw_exception_object(exception TSRMLS_CC);
zend_exception_restore(TSRMLS_C);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
HANDLE_EXCEPTION();
}
@@ -13034,7 +13034,7 @@ static int ZEND_FASTCALL zend_send_by_var_helper_SPEC_VAR(ZEND_OPCODE_HANDLER_AR
ALLOC_ZVAL(varptr);
INIT_PZVAL_COPY(varptr, original_var);
zval_copy_ctor(varptr);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
Z_UNSET_ISREF_P(varptr);
}
@@ -13085,7 +13085,7 @@ static int ZEND_FASTCALL ZEND_SEND_VAR_NO_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
if (!0) {
zval_copy_ctor(valptr);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zend_vm_stack_push(valptr TSRMLS_CC);
}
CHECK_EXCEPTION();
@@ -13124,7 +13124,7 @@ static int ZEND_FASTCALL ZEND_SEND_REF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
Z_ADDREF_P(varptr);
zend_vm_stack_push(varptr TSRMLS_CC);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13150,7 +13150,7 @@ static int ZEND_FASTCALL ZEND_BOOL_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
SAVE_OPLINE();
/* PHP 3.0 returned "" for false and 1 for true, here we use 0 and 1 for now */
ZVAL_BOOL(retval, i_zend_is_true(_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC)));
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13227,7 +13227,7 @@ static int ZEND_FASTCALL ZEND_CLONE_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
AI_SET_PTR(&EX_T(opline->result.var), retval);
}
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13269,7 +13269,7 @@ static int ZEND_FASTCALL ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
if (use_copy) {
ZVAL_COPY_VALUE(result, &var_copy);
if (0) {
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
} else {
ZVAL_COPY_VALUE(result, expr);
@@ -13286,7 +13286,7 @@ static int ZEND_FASTCALL ZEND_CAST_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
convert_to_object(result);
break;
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13375,7 +13375,7 @@ static int ZEND_FASTCALL ZEND_INCLUDE_OR_EVAL_SPEC_VAR_HANDLER(ZEND_OPCODE_HAND
if (tmp_inc_filename) {
zval_ptr_dtor(&tmp_inc_filename);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
if (UNEXPECTED(EG(exception) != NULL)) {
HANDLE_EXCEPTION();
} else if (EXPECTED(new_op_array != NULL)) {
@@ -13511,13 +13511,13 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
iter = ce->get_iterator(ce, array_ptr, opline->extended_value & ZEND_FE_RESET_REFERENCE TSRMLS_CC);
if (IS_VAR == IS_VAR && !(opline->extended_value & ZEND_FE_RESET_VARIABLE)) {
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
if (iter && EXPECTED(EG(exception) == NULL)) {
array_ptr = zend_iterator_wrap(iter TSRMLS_CC);
} else {
if (IS_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
if (!EG(exception)) {
zend_throw_exception_ex(NULL, 0 TSRMLS_CC, "Object of type %s did not create an Iterator", ce->name);
@@ -13536,7 +13536,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
if (UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&array_ptr);
if (IS_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
HANDLE_EXCEPTION();
}
@@ -13545,7 +13545,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
if (UNEXPECTED(EG(exception) != NULL)) {
zval_ptr_dtor(&array_ptr);
if (IS_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
HANDLE_EXCEPTION();
}
@@ -13577,7 +13577,7 @@ static int ZEND_FASTCALL ZEND_FE_RESET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
if (IS_VAR == IS_VAR && opline->extended_value & ZEND_FE_RESET_VARIABLE) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
if (is_empty) {
ZEND_VM_JMP(EX(op_array)->opcodes+opline->op2.opline_num);
@@ -13733,7 +13733,7 @@ static int ZEND_FASTCALL ZEND_EXIT_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
} else {
zend_print_variable(ptr);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
#endif
zend_bailout();
@@ -13754,14 +13754,14 @@ static int ZEND_FASTCALL ZEND_JMP_SET_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
if (!0) {
zendi_zval_copy_ctor(EX_T(opline->result.var).tmp_var);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
#if DEBUG_ZEND>=2
printf("Conditional jmp to %d\n", opline->op2.opline_num);
#endif
ZEND_VM_JMP(opline->op2.jmp_addr);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13789,14 +13789,14 @@ static int ZEND_FASTCALL ZEND_JMP_SET_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_
zval_copy_ctor(EX_T(opline->result.var).var.ptr);
}
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
#if DEBUG_ZEND>=2
printf("Conditional jmp to %d\n", opline->op2.opline_num);
#endif
ZEND_VM_JMP(opline->op2.jmp_addr);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13814,7 +13814,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
if (!0) {
zval_copy_ctor(&EX_T(opline->result.var).tmp_var);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13842,7 +13842,7 @@ static int ZEND_FASTCALL ZEND_QM_ASSIGN_VAR_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLE
}
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13863,7 +13863,7 @@ static int ZEND_FASTCALL ZEND_INSTANCEOF_SPEC_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
result = 0;
}
ZVAL_BOOL(&EX_T(opline->result.var).tmp_var, result);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -13877,7 +13877,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
fast_add_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13892,7 +13892,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
fast_sub_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13907,7 +13907,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
fast_mul_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13922,7 +13922,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
fast_div_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13937,7 +13937,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_AR
fast_mod_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13952,7 +13952,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
shift_left_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13967,7 +13967,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_ARG
shift_right_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13982,7 +13982,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
concat_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -13997,7 +13997,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
is_identical_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14014,7 +14014,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCO
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14030,7 +14030,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDL
ZVAL_BOOL(result, fast_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14046,7 +14046,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
ZVAL_BOOL(result, fast_not_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14062,7 +14062,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
ZVAL_BOOL(result, fast_is_smaller_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14078,7 +14078,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_CONST_HANDLER(ZEND_O
ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14093,7 +14093,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_
bitwise_or_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14108,7 +14108,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
bitwise_and_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14123,7 +14123,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14138,7 +14138,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDL
boolean_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
opline->op2.zv TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14249,7 +14249,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CONST(int (*b
FREE_OP(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -14304,7 +14304,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CONST(int (*binar
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
ZEND_VM_INC_OPCODE();
@@ -14335,11 +14335,11 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CONST(int (*binar
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
FREE_OP_VAR_PTR(free_op_data2);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
} else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
}
ZEND_VM_NEXT_OPCODE();
@@ -14429,7 +14429,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CONST(incdec_t
PZVAL_LOCK(&EG(uninitialized_zval));
*retval = &EG(uninitialized_zval);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14489,7 +14489,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CONST(incdec_t
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14530,7 +14530,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CONST(incdec_
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
ZVAL_NULL(retval);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14591,7 +14591,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CONST(incdec_
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14640,7 +14640,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_CONST(int type,
if (IS_VAR != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14650,7 +14650,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_CONST(int type,
ce = EX_T(opline->op2.var).class_entry;
}
retval = zend_std_get_static_property(ce, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0, ((IS_VAR == IS_CONST) ? opline->op1.literal : NULL) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
target_symbol_table = zend_get_target_symbol_table(opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
/*
@@ -14687,11 +14687,11 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_CONST(int type,
switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
case ZEND_FETCH_GLOBAL:
if (IS_VAR != IS_TMP_VAR) {
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
break;
case ZEND_FETCH_LOCAL:
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
break;
case ZEND_FETCH_STATIC:
zval_update_constant(retval, (void*) 1 TSRMLS_CC);
@@ -14780,13 +14780,13 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
zval *container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
if (IS_VAR == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
}
@@ -14811,7 +14811,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -14845,7 +14845,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14860,7 +14860,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_IS TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -14883,7 +14883,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
} else {
if (IS_CONST == IS_UNUSED) {
zend_error_noreturn(E_ERROR, "Cannot use [] for reading");
@@ -14891,7 +14891,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, opline->op2.zv, IS_CONST, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -14919,7 +14919,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCOD
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_NEXT_OPCODE();
@@ -14976,7 +14976,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_CONST(
}
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -15013,7 +15013,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HA
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -15056,7 +15056,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -15098,7 +15098,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_H
}
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -15132,7 +15132,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CONST_HANDLER(ZEND_OP
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else {
@@ -15171,7 +15171,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CONST_HANDLER(ZEND_OPCOD
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
PZVAL_UNLOCK(*EX_T(opline->result.var).var.ptr_ptr, &free_res);
if (EX_T(opline->result.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
@@ -15206,7 +15206,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -15286,7 +15286,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAN
FREE_OP_VAR_PTR(free_op_data2);
FREE_OP_IF_VAR(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_dim has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -15340,7 +15340,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* zend_assign_to_variable() always takes care of op2, never free it! */
@@ -15422,7 +15422,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_CONST_HANDLER(ZEND_OPCO
call->is_ctor_call = 0;
EX(call) = call;
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -15693,7 +15693,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CONST_HANDLER(ZEND_OPC
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else if (IS_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
@@ -15737,7 +15737,7 @@ num_index:
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -15806,7 +15806,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
HANDLE_EXCEPTION();
}
if (UNEXPECTED(ce == NULL)) {
@@ -15830,7 +15830,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -15925,7 +15925,7 @@ num_index_dim:
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -15966,7 +15966,7 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HAND
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16036,7 +16036,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_CONST_HANDLER(ZEND_OPC
if (IS_VAR != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
if (opline->extended_value & ZEND_ISSET) {
@@ -16061,22 +16061,21 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CONST(
{
USE_OPLINE
zend_free_op free_op1;
- zval **container;
+ zval *container;
zval **value = NULL;
int result = 0;
ulong hval;
zval *offset;
SAVE_OPLINE();
- container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
-
+ container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
offset = opline->op2.zv;
- if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+ if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
HashTable *ht;
int isset = 0;
- ht = Z_ARRVAL_PP(container);
+ ht = Z_ARRVAL_P(container);
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
@@ -16095,9 +16094,7 @@ num_index_prop:
if (IS_CONST == IS_CONST) {
hval = Z_HASH_P(offset);
} else {
- if (!prop_dim) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- }
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
@@ -16128,20 +16125,20 @@ num_index_prop:
}
}
- } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+ } else if (Z_TYPE_P(container) == IS_OBJECT) {
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- if (Z_OBJ_HT_P(*container)->has_property) {
- result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_property) {
+ result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check property of non-object");
result = 0;
}
} else {
- if (Z_OBJ_HT_P(*container)->has_dimension) {
- result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_dimension) {
+ result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check element of non-array");
result = 0;
@@ -16152,7 +16149,7 @@ num_index_prop:
} else {
}
- } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+ } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
@@ -16170,11 +16167,11 @@ num_index_prop:
}
if (Z_TYPE_P(offset) == IS_LONG) {
if (opline->extended_value & ZEND_ISSET) {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
result = 1;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
result = 1;
}
}
@@ -16191,7 +16188,7 @@ num_index_prop:
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result;
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16273,7 +16270,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_
generator->value = *value_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
} else {
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
@@ -16293,7 +16290,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CONST_HANDLER(ZEND_OPCODE_HANDLER_
}
generator->value = copy;
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
if (IS_VAR == IS_CV) {
Z_ADDREF_P(value);
@@ -16372,7 +16369,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_add_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16387,7 +16384,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_sub_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16402,7 +16399,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_mul_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16417,7 +16414,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_div_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16432,7 +16429,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_mod_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16447,7 +16444,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
shift_left_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16462,7 +16459,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
shift_right_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16477,7 +16474,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
concat_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16492,7 +16489,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
is_identical_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16509,7 +16506,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16525,7 +16522,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER
ZVAL_BOOL(result, fast_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16541,7 +16538,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
ZVAL_BOOL(result, fast_not_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16557,7 +16554,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
ZVAL_BOOL(result, fast_is_smaller_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16573,7 +16570,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_TMP_HANDLER(ZEND_OPC
ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16588,7 +16585,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
bitwise_or_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16603,7 +16600,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
bitwise_and_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16618,7 +16615,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16633,7 +16630,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER
boolean_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
zval_dtor(free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -16744,7 +16741,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_TMP(int (*bin
FREE_OP(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -16799,7 +16796,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_TMP(int (*binary_
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
}
zval_dtor(free_op2.var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
ZEND_VM_INC_OPCODE();
@@ -16831,11 +16828,11 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_TMP(int (*binary_
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
FREE_OP_VAR_PTR(free_op_data2);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
} else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
}
ZEND_VM_NEXT_OPCODE();
@@ -16925,7 +16922,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_TMP(incdec_t i
PZVAL_LOCK(&EG(uninitialized_zval));
*retval = &EG(uninitialized_zval);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -16985,7 +16982,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_TMP(incdec_t i
} else {
zval_dtor(free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17026,7 +17023,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_TMP(incdec_t
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
zval_dtor(free_op2.var);
ZVAL_NULL(retval);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17087,7 +17084,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_TMP(incdec_t
} else {
zval_dtor(free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17114,13 +17111,13 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
zval *container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
zval_dtor(free_op2.var);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
zval_dtor(free_op2.var);
if (IS_VAR == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
}
@@ -17145,7 +17142,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -17179,7 +17176,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17194,7 +17191,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_IS TSRMLS_CC);
zval_dtor(free_op2.var);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17217,7 +17214,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
zval_dtor(free_op2.var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
} else {
if (IS_TMP_VAR == IS_UNUSED) {
zend_error_noreturn(E_ERROR, "Cannot use [] for reading");
@@ -17225,7 +17222,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_TMP_VAR, BP_VAR_R TSRMLS_CC);
zval_dtor(free_op2.var);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -17253,7 +17250,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_NEXT_OPCODE();
@@ -17310,7 +17307,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_TMP(ZE
}
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17347,7 +17344,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAND
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -17390,7 +17387,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17432,7 +17429,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HAN
}
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -17466,7 +17463,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_TMP_HANDLER(ZEND_OPCO
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else {
@@ -17505,7 +17502,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
PZVAL_UNLOCK(*EX_T(opline->result.var).var.ptr_ptr, &free_res);
if (EX_T(opline->result.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
@@ -17540,7 +17537,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
} else {
zval_dtor(free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -17621,7 +17618,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDL
FREE_OP_VAR_PTR(free_op_data2);
FREE_OP_IF_VAR(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_dim has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -17675,7 +17672,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_A
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* zend_assign_to_variable() always takes care of op2, never free it! */
@@ -17758,7 +17755,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE
EX(call) = call;
zval_dtor(free_op2.var);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -17933,7 +17930,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_TMP_HANDLER(ZEND_OPCOD
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else if (IS_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
@@ -17977,7 +17974,7 @@ num_index:
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -18087,7 +18084,7 @@ num_index_dim:
} else {
zval_dtor(free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -18128,7 +18125,7 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLE
} else {
zval_dtor(free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -18138,22 +18135,21 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_TMP(in
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval **container;
+ zval *container;
zval **value = NULL;
int result = 0;
ulong hval;
zval *offset;
SAVE_OPLINE();
- container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
-
+ container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
- if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+ if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
HashTable *ht;
int isset = 0;
- ht = Z_ARRVAL_PP(container);
+ ht = Z_ARRVAL_P(container);
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
@@ -18172,9 +18168,7 @@ num_index_prop:
if (IS_TMP_VAR == IS_CONST) {
hval = Z_HASH_P(offset);
} else {
- if (!prop_dim) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- }
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
@@ -18205,20 +18199,20 @@ num_index_prop:
}
}
zval_dtor(free_op2.var);
- } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+ } else if (Z_TYPE_P(container) == IS_OBJECT) {
if (1) {
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- if (Z_OBJ_HT_P(*container)->has_property) {
- result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_property) {
+ result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check property of non-object");
result = 0;
}
} else {
- if (Z_OBJ_HT_P(*container)->has_dimension) {
- result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_dimension) {
+ result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check element of non-array");
result = 0;
@@ -18229,7 +18223,7 @@ num_index_prop:
} else {
zval_dtor(free_op2.var);
}
- } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+ } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
@@ -18247,11 +18241,11 @@ num_index_prop:
}
if (Z_TYPE_P(offset) == IS_LONG) {
if (opline->extended_value & ZEND_ISSET) {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
result = 1;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
result = 1;
}
}
@@ -18268,7 +18262,7 @@ num_index_prop:
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result;
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -18350,7 +18344,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
generator->value = *value_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
} else {
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
@@ -18370,7 +18364,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_TMP_HANDLER(ZEND_OPCODE_HANDLER_AR
}
generator->value = copy;
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
if (IS_VAR == IS_CV) {
Z_ADDREF_P(value);
@@ -18449,8 +18443,8 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_add_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18464,8 +18458,8 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_sub_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18479,8 +18473,8 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_mul_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18494,8 +18488,8 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_div_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18509,8 +18503,8 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
fast_mod_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18524,8 +18518,8 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
shift_left_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18539,8 +18533,8 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
shift_right_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18554,8 +18548,8 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
concat_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18569,8 +18563,8 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
is_identical_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18586,8 +18580,8 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18602,8 +18596,8 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER
ZVAL_BOOL(result, fast_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18618,8 +18612,8 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
ZVAL_BOOL(result, fast_not_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18634,8 +18628,8 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
ZVAL_BOOL(result, fast_is_smaller_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18650,8 +18644,8 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_VAR_HANDLER(ZEND_OPC
ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18665,8 +18659,8 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
bitwise_or_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18680,8 +18674,8 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
bitwise_and_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18695,8 +18689,8 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18710,8 +18704,8 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER
boolean_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -18735,7 +18729,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(int (*bin
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to assign property of non-object");
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
FREE_OP(free_op_data1);
if (RETURN_VALUE_USED(opline)) {
@@ -18816,12 +18810,12 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_VAR(int (*bin
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
FREE_OP(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -18875,8 +18869,8 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_VAR(int (*binary_
PZVAL_LOCK(&EG(uninitialized_zval));
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
}
- zval_ptr_dtor(&free_op2.var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
ZEND_VM_INC_OPCODE();
@@ -18903,16 +18897,16 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_VAR(int (*binary_
PZVAL_LOCK(*var_ptr);
AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
FREE_OP_VAR_PTR(free_op_data2);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
} else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
}
ZEND_VM_NEXT_OPCODE();
@@ -18997,12 +18991,12 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_VAR(incdec_t i
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
*retval = &EG(uninitialized_zval);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19060,9 +19054,9 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_VAR(incdec_t i
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19101,9 +19095,9 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_VAR(incdec_t
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
ZVAL_NULL(retval);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19162,9 +19156,9 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_VAR(incdec_t
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19213,7 +19207,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_VAR(int type, ZE
if (IS_VAR != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19223,7 +19217,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_VAR(int type, ZE
ce = EX_T(opline->op2.var).class_entry;
}
retval = zend_std_get_static_property(ce, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0, ((IS_VAR == IS_CONST) ? opline->op1.literal : NULL) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
target_symbol_table = zend_get_target_symbol_table(opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
/*
@@ -19260,11 +19254,11 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_VAR(int type, ZE
switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
case ZEND_FETCH_GLOBAL:
if (IS_VAR != IS_TMP_VAR) {
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
break;
case ZEND_FETCH_LOCAL:
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
break;
case ZEND_FETCH_STATIC:
zval_update_constant(retval, (void*) 1 TSRMLS_CC);
@@ -19352,14 +19346,14 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
if (IS_VAR == IS_TMP_VAR || IS_VAR == IS_CONST) {
zval *container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_VAR == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
}
@@ -19380,11 +19374,11 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -19414,11 +19408,11 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_RW TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19432,8 +19426,8 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
SAVE_OPLINE();
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_IS TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19455,16 +19449,16 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- zval_ptr_dtor(&free_op2.var);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ zval_ptr_dtor_nogc(&free_op2.var);
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
} else {
if (IS_VAR == IS_UNUSED) {
zend_error_noreturn(E_ERROR, "Cannot use [] for reading");
}
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -19488,11 +19482,11 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_UNSET TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_NEXT_OPCODE();
@@ -19528,7 +19522,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_VAR(ZE
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zval *retval;
@@ -19545,11 +19539,11 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_VAR(ZE
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19581,12 +19575,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAND
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -19624,12 +19618,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19650,7 +19644,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zval *retval;
@@ -19667,11 +19661,11 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HAN
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -19700,12 +19694,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_VAR_HANDLER(ZEND_OPCO
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else {
@@ -19739,12 +19733,12 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
PZVAL_UNLOCK(*EX_T(opline->result.var).var.ptr_ptr, &free_res);
if (EX_T(opline->result.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
@@ -19777,9 +19771,9 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
if (0) {
zval_ptr_dtor(&property_name);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -19809,7 +19803,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
if (0) {
zval_ptr_dtor(&property_name);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
zend_free_op free_op2, free_op_data1, free_op_data2;
@@ -19818,7 +19812,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
zval **variable_ptr_ptr;
zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_VAR, BP_VAR_W TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
@@ -19860,7 +19854,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
FREE_OP_VAR_PTR(free_op_data2);
FREE_OP_IF_VAR(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_dim has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -19914,10 +19908,10 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_A
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* zend_assign_to_variable() always takes care of op2, never free it! */
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -19943,7 +19937,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
}
zend_error(E_STRICT, "Only variables should be assigned by reference");
if (UNEXPECTED(EG(exception) != NULL)) {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);};
HANDLE_EXCEPTION();
}
return ZEND_ASSIGN_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
@@ -19970,8 +19964,8 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDL
AI_SET_PTR(&EX_T(opline->result.var), *variable_ptr_ptr);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
+ if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -20029,7 +20023,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE
}
} else {
if (UNEXPECTED(EG(exception) != NULL)) {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
HANDLE_EXCEPTION();
}
zend_error_noreturn(E_ERROR, "Call to a member function %s() on a non-object", function_name_strval);
@@ -20051,8 +20045,8 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE
call->is_ctor_call = 0;
EX(call) = call;
- zval_ptr_dtor(&free_op2.var);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -20142,7 +20136,7 @@ static int ZEND_FASTCALL ZEND_INIT_STATIC_METHOD_CALL_SPEC_VAR_VAR_HANDLER(ZEND
}
}
if (IS_VAR != IS_CONST) {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
if (UNEXPECTED(ce->constructor == NULL)) {
@@ -20191,7 +20185,7 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -20227,7 +20221,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else if (IS_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
@@ -20266,12 +20260,12 @@ num_index:
/* do nothing */
break;
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -20340,7 +20334,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
HANDLE_EXCEPTION();
}
if (UNEXPECTED(ce == NULL)) {
@@ -20364,7 +20358,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -20432,7 +20426,7 @@ num_index_dim:
zend_error(E_WARNING, "Illegal offset type in unset");
break;
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
break;
}
case IS_OBJECT:
@@ -20446,20 +20440,20 @@ num_index_dim:
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
break;
case IS_STRING:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
default:
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
break;
}
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -20492,15 +20486,15 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLE
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -20570,7 +20564,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_VAR_HANDLER(ZEND_OPCOD
if (IS_VAR != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
if (opline->extended_value & ZEND_ISSET) {
@@ -20595,22 +20589,21 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_VAR(in
{
USE_OPLINE
zend_free_op free_op1, free_op2;
- zval **container;
+ zval *container;
zval **value = NULL;
int result = 0;
ulong hval;
zval *offset;
SAVE_OPLINE();
- container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
-
+ container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
- if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+ if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
HashTable *ht;
int isset = 0;
- ht = Z_ARRVAL_PP(container);
+ ht = Z_ARRVAL_P(container);
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
@@ -20629,9 +20622,7 @@ num_index_prop:
if (IS_VAR == IS_CONST) {
hval = Z_HASH_P(offset);
} else {
- if (!prop_dim) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- }
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
@@ -20661,21 +20652,21 @@ num_index_prop:
result = 1;
}
}
- zval_ptr_dtor(&free_op2.var);
- } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+ zval_ptr_dtor_nogc(&free_op2.var);
+ } else if (Z_TYPE_P(container) == IS_OBJECT) {
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- if (Z_OBJ_HT_P(*container)->has_property) {
- result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_property) {
+ result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check property of non-object");
result = 0;
}
} else {
- if (Z_OBJ_HT_P(*container)->has_dimension) {
- result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_dimension) {
+ result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check element of non-array");
result = 0;
@@ -20684,9 +20675,9 @@ num_index_prop:
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
- } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+ } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
@@ -20704,18 +20695,18 @@ num_index_prop:
}
if (Z_TYPE_P(offset) == IS_LONG) {
if (opline->extended_value & ZEND_ISSET) {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
result = 1;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
result = 1;
}
}
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
Z_TYPE(EX_T(opline->result.var).tmp_var) = IS_BOOL;
@@ -20725,7 +20716,7 @@ num_index_prop:
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result;
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -20807,7 +20798,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
generator->value = *value_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
} else {
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
@@ -20827,7 +20818,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
}
generator->value = copy;
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
if (IS_VAR == IS_CV) {
Z_ADDREF_P(value);
@@ -20872,7 +20863,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
generator->largest_used_integer_key = Z_LVAL_P(generator->key);
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
/* If no key was specified we use auto-increment keys */
generator->largest_used_integer_key++;
@@ -21003,7 +20994,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_UNUSED(int (*
FREE_OP(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -21058,7 +21049,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_UNUSED(int (*bina
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
ZEND_VM_INC_OPCODE();
@@ -21089,11 +21080,11 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_UNUSED(int (*bina
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
FREE_OP_VAR_PTR(free_op_data2);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
} else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
}
ZEND_VM_NEXT_OPCODE();
@@ -21188,7 +21179,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_UNUSED(int type,
if (IS_VAR != IS_CONST && varname == &tmp_varname) {
zval_dtor(&tmp_varname);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -21198,7 +21189,7 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_UNUSED(int type,
ce = EX_T(opline->op2.var).class_entry;
}
retval = zend_std_get_static_property(ce, Z_STRVAL_P(varname), Z_STRLEN_P(varname), 0, ((IS_VAR == IS_CONST) ? opline->op1.literal : NULL) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
target_symbol_table = zend_get_target_symbol_table(opline->extended_value & ZEND_FETCH_TYPE_MASK TSRMLS_CC);
/*
@@ -21235,11 +21226,11 @@ static int ZEND_FASTCALL zend_fetch_var_address_helper_SPEC_VAR_UNUSED(int type,
switch (opline->extended_value & ZEND_FETCH_TYPE_MASK) {
case ZEND_FETCH_GLOBAL:
if (IS_VAR != IS_TMP_VAR) {
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
break;
case ZEND_FETCH_LOCAL:
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
break;
case ZEND_FETCH_STATIC:
zval_update_constant(retval, (void*) 1 TSRMLS_CC);
@@ -21333,7 +21324,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_H
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -21367,7 +21358,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -21390,7 +21381,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_O
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
} else {
if (IS_UNUSED == IS_UNUSED) {
zend_error_noreturn(E_ERROR, "Cannot use [] for reading");
@@ -21398,7 +21389,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_UNUSED_HANDLER(ZEND_O
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, NULL, IS_UNUSED, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -21477,7 +21468,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HA
FREE_OP_VAR_PTR(free_op_data2);
FREE_OP_IF_VAR(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_dim has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -21638,7 +21629,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_UNUSED_HANDLER(ZEND_OP
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else if (IS_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
@@ -21682,7 +21673,7 @@ num_index:
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -21751,7 +21742,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HAN
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
HANDLE_EXCEPTION();
}
if (UNEXPECTED(ce == NULL)) {
@@ -21775,7 +21766,7 @@ static int ZEND_FASTCALL ZEND_UNSET_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HAN
} else if (IS_VAR == IS_VAR || IS_VAR == IS_CV) {
zval_ptr_dtor(&varname);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -21844,7 +21835,7 @@ static int ZEND_FASTCALL ZEND_ISSET_ISEMPTY_VAR_SPEC_VAR_UNUSED_HANDLER(ZEND_OP
if (IS_VAR != IS_CONST && varname == &tmp) {
zval_dtor(&tmp);
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
if (opline->extended_value & ZEND_ISSET) {
@@ -21952,7 +21943,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER
generator->value = *value_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
} else {
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
@@ -21972,7 +21963,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_UNUSED_HANDLER(ZEND_OPCODE_HANDLER
}
generator->value = copy;
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
if (IS_VAR == IS_CV) {
Z_ADDREF_P(value);
@@ -22051,7 +22042,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
fast_add_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22066,7 +22057,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
fast_sub_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22081,7 +22072,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
fast_mul_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22096,7 +22087,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
fast_div_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22111,7 +22102,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
fast_mod_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22126,7 +22117,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
shift_left_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22141,7 +22132,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
shift_right_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22156,7 +22147,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
concat_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22171,7 +22162,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
is_identical_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22188,7 +22179,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22204,7 +22195,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_
ZVAL_BOOL(result, fast_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22220,7 +22211,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
ZVAL_BOOL(result, fast_not_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22236,7 +22227,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
ZVAL_BOOL(result, fast_is_smaller_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22252,7 +22243,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_VAR_CV_HANDLER(ZEND_OPCO
ZVAL_BOOL(result, fast_is_smaller_or_equal_function(result,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22267,7 +22258,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
bitwise_or_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22282,7 +22273,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
bitwise_and_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22297,7 +22288,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
bitwise_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22312,7 +22303,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_
boolean_xor_function(&EX_T(opline->result.var).tmp_var,
_get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC),
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22423,7 +22414,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_VAR_CV(int (*bina
FREE_OP(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -22478,7 +22469,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CV(int (*binary_o
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
ZEND_VM_INC_OPCODE();
@@ -22509,11 +22500,11 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_VAR_CV(int (*binary_o
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
FREE_OP_VAR_PTR(free_op_data2);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
} else {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
}
ZEND_VM_NEXT_OPCODE();
@@ -22603,7 +22594,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CV(incdec_t in
PZVAL_LOCK(&EG(uninitialized_zval));
*retval = &EG(uninitialized_zval);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -22663,7 +22654,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_VAR_CV(incdec_t in
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -22704,7 +22695,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CV(incdec_t i
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
ZVAL_NULL(retval);
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -22765,7 +22756,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_VAR_CV(incdec_t i
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -22792,13 +22783,13 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
zval *container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
if (IS_VAR == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
}
@@ -22823,7 +22814,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (UNEXPECTED(opline->extended_value != 0)) {
@@ -22857,7 +22848,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -22872,7 +22863,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_IS TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -22895,7 +22886,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
} else {
if (IS_CV == IS_UNUSED) {
zend_error_noreturn(E_ERROR, "Cannot use [] for reading");
@@ -22903,7 +22894,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD
container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC), IS_CV, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -22931,7 +22922,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_H
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
if (UNEXPECTED(EX_T(opline->result.var).var.ptr_ptr == NULL)) {
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_NEXT_OPCODE();
@@ -22988,7 +22979,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_VAR_CV(ZEN
}
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -23025,7 +23016,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDL
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* We are going to assign the result by reference */
if (opline->extended_value & ZEND_FETCH_MAKE_REF) {
@@ -23068,7 +23059,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -23110,7 +23101,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HAND
}
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -23144,7 +23135,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_VAR_CV_HANDLER(ZEND_OPCOD
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
} else {
@@ -23183,7 +23174,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_H
if (IS_VAR == IS_VAR && (free_op1.var != NULL) && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
PZVAL_UNLOCK(*EX_T(opline->result.var).var.ptr_ptr, &free_res);
if (EX_T(opline->result.var).var.ptr_ptr != &EG(uninitialized_zval_ptr)) {
@@ -23218,7 +23209,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_obj has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -23298,7 +23289,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
FREE_OP_VAR_PTR(free_op_data2);
FREE_OP_IF_VAR(free_op_data1);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* assign_dim has two opcodes! */
CHECK_EXCEPTION();
ZEND_VM_INC_OPCODE();
@@ -23352,7 +23343,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_AR
}
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
/* zend_assign_to_variable() always takes care of op2, never free it! */
@@ -23407,7 +23398,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLE
AI_SET_PTR(&EX_T(opline->result.var), *variable_ptr_ptr);
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -23487,7 +23478,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_
call->is_ctor_call = 0;
EX(call) = call;
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -23661,7 +23652,7 @@ static int ZEND_FASTCALL ZEND_ADD_ARRAY_ELEMENT_SPEC_VAR_CV_HANDLER(ZEND_OPCODE
INIT_PZVAL_COPY(new_expr, expr_ptr);
expr_ptr = new_expr;
zendi_zval_copy_ctor(*expr_ptr);
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else if (IS_VAR == IS_CV) {
Z_ADDREF_P(expr_ptr);
}
@@ -23705,7 +23696,7 @@ num_index:
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
if ((IS_VAR == IS_VAR || IS_VAR == IS_CV) && opline->extended_value) {
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -23815,7 +23806,7 @@ num_index_dim:
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -23856,7 +23847,7 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER
} else {
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -23866,22 +23857,21 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_VAR_CV(int
{
USE_OPLINE
zend_free_op free_op1;
- zval **container;
+ zval *container;
zval **value = NULL;
int result = 0;
ulong hval;
zval *offset;
SAVE_OPLINE();
- container = _get_zval_ptr_ptr_var_fast(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
-
+ container = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
- if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+ if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
HashTable *ht;
int isset = 0;
- ht = Z_ARRVAL_PP(container);
+ ht = Z_ARRVAL_P(container);
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
@@ -23900,9 +23890,7 @@ num_index_prop:
if (IS_CV == IS_CONST) {
hval = Z_HASH_P(offset);
} else {
- if (!prop_dim) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- }
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
@@ -23933,20 +23921,20 @@ num_index_prop:
}
}
- } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+ } else if (Z_TYPE_P(container) == IS_OBJECT) {
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- if (Z_OBJ_HT_P(*container)->has_property) {
- result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_property) {
+ result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check property of non-object");
result = 0;
}
} else {
- if (Z_OBJ_HT_P(*container)->has_dimension) {
- result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_dimension) {
+ result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check element of non-array");
result = 0;
@@ -23957,7 +23945,7 @@ num_index_prop:
} else {
}
- } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+ } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
@@ -23975,11 +23963,11 @@ num_index_prop:
}
if (Z_TYPE_P(offset) == IS_LONG) {
if (opline->extended_value & ZEND_ISSET) {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
result = 1;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
result = 1;
}
}
@@ -23996,7 +23984,7 @@ num_index_prop:
Z_LVAL(EX_T(opline->result.var).tmp_var) = !result;
}
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -24078,7 +24066,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
generator->value = *value_ptr;
}
- if (free_op1.var) {zval_ptr_dtor(&free_op1.var);};
+ if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);};
}
} else {
zval *value = _get_zval_ptr_var(opline->op1.var, execute_data, &free_op1 TSRMLS_CC);
@@ -24098,7 +24086,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_VAR_CV_HANDLER(ZEND_OPCODE_HANDLER_ARG
}
generator->value = copy;
- zval_ptr_dtor(&free_op1.var);
+ zval_ptr_dtor_nogc(&free_op1.var);
} else {
if (IS_VAR == IS_CV) {
Z_ADDREF_P(value);
@@ -25363,22 +25351,21 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CON
{
USE_OPLINE
- zval **container;
+ zval *container;
zval **value = NULL;
int result = 0;
ulong hval;
zval *offset;
SAVE_OPLINE();
- container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
-
+ container = _get_obj_zval_ptr_unused(TSRMLS_C);
offset = opline->op2.zv;
- if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+ if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
HashTable *ht;
int isset = 0;
- ht = Z_ARRVAL_PP(container);
+ ht = Z_ARRVAL_P(container);
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
@@ -25397,9 +25384,7 @@ num_index_prop:
if (IS_CONST == IS_CONST) {
hval = Z_HASH_P(offset);
} else {
- if (!prop_dim) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- }
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
@@ -25430,20 +25415,20 @@ num_index_prop:
}
}
- } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+ } else if (Z_TYPE_P(container) == IS_OBJECT) {
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- if (Z_OBJ_HT_P(*container)->has_property) {
- result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_property) {
+ result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check property of non-object");
result = 0;
}
} else {
- if (Z_OBJ_HT_P(*container)->has_dimension) {
- result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_dimension) {
+ result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check element of non-array");
result = 0;
@@ -25454,7 +25439,7 @@ num_index_prop:
} else {
}
- } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+ } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
@@ -25472,11 +25457,11 @@ num_index_prop:
}
if (Z_TYPE_P(offset) == IS_LONG) {
if (opline->extended_value & ZEND_ISSET) {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
result = 1;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
result = 1;
}
}
@@ -26673,22 +26658,21 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_TMP
{
USE_OPLINE
zend_free_op free_op2;
- zval **container;
+ zval *container;
zval **value = NULL;
int result = 0;
ulong hval;
zval *offset;
SAVE_OPLINE();
- container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
-
+ container = _get_obj_zval_ptr_unused(TSRMLS_C);
offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
- if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+ if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
HashTable *ht;
int isset = 0;
- ht = Z_ARRVAL_PP(container);
+ ht = Z_ARRVAL_P(container);
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
@@ -26707,9 +26691,7 @@ num_index_prop:
if (IS_TMP_VAR == IS_CONST) {
hval = Z_HASH_P(offset);
} else {
- if (!prop_dim) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- }
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
@@ -26740,20 +26722,20 @@ num_index_prop:
}
}
zval_dtor(free_op2.var);
- } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+ } else if (Z_TYPE_P(container) == IS_OBJECT) {
if (1) {
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- if (Z_OBJ_HT_P(*container)->has_property) {
- result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_property) {
+ result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check property of non-object");
result = 0;
}
} else {
- if (Z_OBJ_HT_P(*container)->has_dimension) {
- result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_dimension) {
+ result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check element of non-array");
result = 0;
@@ -26764,7 +26746,7 @@ num_index_prop:
} else {
zval_dtor(free_op2.var);
}
- } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+ } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
@@ -26782,11 +26764,11 @@ num_index_prop:
}
if (Z_TYPE_P(offset) == IS_LONG) {
if (opline->extended_value & ZEND_ISSET) {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
result = 1;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
result = 1;
}
}
@@ -26991,7 +26973,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (*
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to assign property of non-object");
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
FREE_OP(free_op_data1);
if (RETURN_VALUE_USED(opline)) {
@@ -27072,7 +27054,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_UNUSED_VAR(int (*
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
FREE_OP(free_op_data1);
}
@@ -27130,7 +27112,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_VAR(int (*bina
PZVAL_LOCK(&EG(uninitialized_zval));
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
@@ -27158,7 +27140,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_UNUSED_VAR(int (*bina
PZVAL_LOCK(*var_ptr);
AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
@@ -27252,7 +27234,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_VAR(incdec_
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
*retval = &EG(uninitialized_zval);
@@ -27315,7 +27297,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_UNUSED_VAR(incdec_
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -27356,7 +27338,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_VAR(incdec
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
ZVAL_NULL(retval);
CHECK_EXCEPTION();
@@ -27417,7 +27399,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_UNUSED_VAR(incdec
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -27451,7 +27433,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_VAR
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zval *retval;
@@ -27468,7 +27450,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_UNUSED_VAR
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
}
@@ -27503,7 +27485,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_H
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -27545,7 +27527,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -27571,7 +27553,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zval *retval;
@@ -27588,7 +27570,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
}
@@ -27620,7 +27602,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_UNUSED_VAR_HANDLER(ZEND_O
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -27659,7 +27641,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCO
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_UNUSED == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -27696,7 +27678,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HA
if (0) {
zval_ptr_dtor(&property_name);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
/* assign_obj has two opcodes! */
@@ -27744,7 +27726,7 @@ static int ZEND_FASTCALL ZEND_ADD_VAR_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDL
* which aren't affected by FREE_OP(Ts, )'s anyway, unless they're
* string offsets or overloaded objects
*/
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -27802,7 +27784,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_VAR_HANDLER(ZEND_OPC
}
} else {
if (UNEXPECTED(EG(exception) != NULL)) {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
HANDLE_EXCEPTION();
}
zend_error_noreturn(E_ERROR, "Call to a member function %s() on a non-object", function_name_strval);
@@ -27824,7 +27806,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_UNUSED_VAR_HANDLER(ZEND_OPC
call->is_ctor_call = 0;
EX(call) = call;
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -27907,7 +27889,7 @@ num_index_dim:
zend_error(E_WARNING, "Illegal offset type in unset");
break;
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
break;
}
case IS_OBJECT:
@@ -27921,18 +27903,18 @@ num_index_dim:
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
break;
case IS_STRING:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
default:
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
break;
}
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -27966,13 +27948,13 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HAN
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -27983,22 +27965,21 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_VAR
{
USE_OPLINE
zend_free_op free_op2;
- zval **container;
+ zval *container;
zval **value = NULL;
int result = 0;
ulong hval;
zval *offset;
SAVE_OPLINE();
- container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
-
+ container = _get_obj_zval_ptr_unused(TSRMLS_C);
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
- if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+ if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
HashTable *ht;
int isset = 0;
- ht = Z_ARRVAL_PP(container);
+ ht = Z_ARRVAL_P(container);
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
@@ -28017,9 +27998,7 @@ num_index_prop:
if (IS_VAR == IS_CONST) {
hval = Z_HASH_P(offset);
} else {
- if (!prop_dim) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- }
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
@@ -28049,21 +28028,21 @@ num_index_prop:
result = 1;
}
}
- zval_ptr_dtor(&free_op2.var);
- } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+ zval_ptr_dtor_nogc(&free_op2.var);
+ } else if (Z_TYPE_P(container) == IS_OBJECT) {
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- if (Z_OBJ_HT_P(*container)->has_property) {
- result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_property) {
+ result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check property of non-object");
result = 0;
}
} else {
- if (Z_OBJ_HT_P(*container)->has_dimension) {
- result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_dimension) {
+ result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check element of non-array");
result = 0;
@@ -28072,9 +28051,9 @@ num_index_prop:
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
- } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+ } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
@@ -28092,18 +28071,18 @@ num_index_prop:
}
if (Z_TYPE_P(offset) == IS_LONG) {
if (opline->extended_value & ZEND_ISSET) {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
result = 1;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
result = 1;
}
}
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
Z_TYPE(EX_T(opline->result.var).tmp_var) = IS_BOOL;
@@ -28257,7 +28236,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_UNUSED_VAR_HANDLER(ZEND_OPCODE_HANDLER
generator->largest_used_integer_key = Z_LVAL_P(generator->key);
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
/* If no key was specified we use auto-increment keys */
generator->largest_used_integer_key++;
@@ -29715,22 +29694,21 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_UNUSED_CV(
{
USE_OPLINE
- zval **container;
+ zval *container;
zval **value = NULL;
int result = 0;
ulong hval;
zval *offset;
SAVE_OPLINE();
- container = _get_obj_zval_ptr_ptr_unused(TSRMLS_C);
-
+ container = _get_obj_zval_ptr_unused(TSRMLS_C);
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
- if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+ if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
HashTable *ht;
int isset = 0;
- ht = Z_ARRVAL_PP(container);
+ ht = Z_ARRVAL_P(container);
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
@@ -29749,9 +29727,7 @@ num_index_prop:
if (IS_CV == IS_CONST) {
hval = Z_HASH_P(offset);
} else {
- if (!prop_dim) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- }
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
@@ -29782,20 +29758,20 @@ num_index_prop:
}
}
- } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+ } else if (Z_TYPE_P(container) == IS_OBJECT) {
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- if (Z_OBJ_HT_P(*container)->has_property) {
- result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_property) {
+ result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check property of non-object");
result = 0;
}
} else {
- if (Z_OBJ_HT_P(*container)->has_dimension) {
- result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_dimension) {
+ result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check element of non-array");
result = 0;
@@ -29806,7 +29782,7 @@ num_index_prop:
} else {
}
- } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+ } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
@@ -29824,11 +29800,11 @@ num_index_prop:
}
if (Z_TYPE_P(offset) == IS_LONG) {
if (opline->extended_value & ZEND_ISSET) {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
result = 1;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
result = 1;
}
}
@@ -33212,22 +33188,21 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CONST(i
{
USE_OPLINE
- zval **container;
+ zval *container;
zval **value = NULL;
int result = 0;
ulong hval;
zval *offset;
SAVE_OPLINE();
- container = _get_zval_ptr_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
-
+ container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
offset = opline->op2.zv;
- if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+ if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
HashTable *ht;
int isset = 0;
- ht = Z_ARRVAL_PP(container);
+ ht = Z_ARRVAL_P(container);
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
@@ -33246,9 +33221,7 @@ num_index_prop:
if (IS_CONST == IS_CONST) {
hval = Z_HASH_P(offset);
} else {
- if (!prop_dim) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- }
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
@@ -33279,20 +33252,20 @@ num_index_prop:
}
}
- } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+ } else if (Z_TYPE_P(container) == IS_OBJECT) {
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- if (Z_OBJ_HT_P(*container)->has_property) {
- result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_property) {
+ result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CONST == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check property of non-object");
result = 0;
}
} else {
- if (Z_OBJ_HT_P(*container)->has_dimension) {
- result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_dimension) {
+ result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check element of non-array");
result = 0;
@@ -33303,7 +33276,7 @@ num_index_prop:
} else {
}
- } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+ } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
@@ -33321,11 +33294,11 @@ num_index_prop:
}
if (Z_TYPE_P(offset) == IS_LONG) {
if (opline->extended_value & ZEND_ISSET) {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
result = 1;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
result = 1;
}
}
@@ -35152,22 +35125,21 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_TMP(int
{
USE_OPLINE
zend_free_op free_op2;
- zval **container;
+ zval *container;
zval **value = NULL;
int result = 0;
ulong hval;
zval *offset;
SAVE_OPLINE();
- container = _get_zval_ptr_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
-
+ container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
offset = _get_zval_ptr_tmp(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
- if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+ if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
HashTable *ht;
int isset = 0;
- ht = Z_ARRVAL_PP(container);
+ ht = Z_ARRVAL_P(container);
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
@@ -35186,9 +35158,7 @@ num_index_prop:
if (IS_TMP_VAR == IS_CONST) {
hval = Z_HASH_P(offset);
} else {
- if (!prop_dim) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- }
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
@@ -35219,20 +35189,20 @@ num_index_prop:
}
}
zval_dtor(free_op2.var);
- } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+ } else if (Z_TYPE_P(container) == IS_OBJECT) {
if (1) {
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- if (Z_OBJ_HT_P(*container)->has_property) {
- result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_property) {
+ result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_TMP_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check property of non-object");
result = 0;
}
} else {
- if (Z_OBJ_HT_P(*container)->has_dimension) {
- result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_dimension) {
+ result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check element of non-array");
result = 0;
@@ -35243,7 +35213,7 @@ num_index_prop:
} else {
zval_dtor(free_op2.var);
}
- } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+ } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
@@ -35261,11 +35231,11 @@ num_index_prop:
}
if (Z_TYPE_P(offset) == IS_LONG) {
if (opline->extended_value & ZEND_ISSET) {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
result = 1;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
result = 1;
}
}
@@ -35461,7 +35431,7 @@ static int ZEND_FASTCALL ZEND_ADD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35476,7 +35446,7 @@ static int ZEND_FASTCALL ZEND_SUB_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35491,7 +35461,7 @@ static int ZEND_FASTCALL ZEND_MUL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35506,7 +35476,7 @@ static int ZEND_FASTCALL ZEND_DIV_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35521,7 +35491,7 @@ static int ZEND_FASTCALL ZEND_MOD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35536,7 +35506,7 @@ static int ZEND_FASTCALL ZEND_SL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35551,7 +35521,7 @@ static int ZEND_FASTCALL ZEND_SR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS)
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35566,7 +35536,7 @@ static int ZEND_FASTCALL ZEND_CONCAT_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35581,7 +35551,7 @@ static int ZEND_FASTCALL ZEND_IS_IDENTICAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35598,7 +35568,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_IDENTICAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
Z_LVAL_P(result) = !Z_LVAL_P(result);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35614,7 +35584,7 @@ static int ZEND_FASTCALL ZEND_IS_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35630,7 +35600,7 @@ static int ZEND_FASTCALL ZEND_IS_NOT_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35646,7 +35616,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35662,7 +35632,7 @@ static int ZEND_FASTCALL ZEND_IS_SMALLER_OR_EQUAL_SPEC_CV_VAR_HANDLER(ZEND_OPCO
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35677,7 +35647,7 @@ static int ZEND_FASTCALL ZEND_BW_OR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35692,7 +35662,7 @@ static int ZEND_FASTCALL ZEND_BW_AND_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35707,7 +35677,7 @@ static int ZEND_FASTCALL ZEND_BW_XOR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35722,7 +35692,7 @@ static int ZEND_FASTCALL ZEND_BOOL_XOR_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -35746,7 +35716,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_VAR(int (*bina
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to assign property of non-object");
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
FREE_OP(free_op_data1);
if (RETURN_VALUE_USED(opline)) {
@@ -35827,7 +35797,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_obj_helper_SPEC_CV_VAR(int (*bina
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
FREE_OP(free_op_data1);
}
@@ -35885,7 +35855,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_VAR(int (*binary_o
PZVAL_LOCK(&EG(uninitialized_zval));
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
if (opline->extended_value == ZEND_ASSIGN_DIM) {
@@ -35913,7 +35883,7 @@ static int ZEND_FASTCALL zend_binary_assign_op_helper_SPEC_CV_VAR(int (*binary_o
PZVAL_LOCK(*var_ptr);
AI_SET_PTR(&EX_T(opline->result.var), *var_ptr);
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (opline->extended_value == ZEND_ASSIGN_DIM) {
FREE_OP(free_op_data1);
@@ -36007,7 +35977,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_VAR(incdec_t in
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (RETURN_VALUE_USED(opline)) {
PZVAL_LOCK(&EG(uninitialized_zval));
*retval = &EG(uninitialized_zval);
@@ -36070,7 +36040,7 @@ static int ZEND_FASTCALL zend_pre_incdec_property_helper_SPEC_CV_VAR(incdec_t in
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -36111,7 +36081,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_VAR(incdec_t i
if (UNEXPECTED(Z_TYPE_P(object) != IS_OBJECT)) {
zend_error(E_WARNING, "Attempt to increment/decrement property of non-object");
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
ZVAL_NULL(retval);
CHECK_EXCEPTION();
@@ -36172,7 +36142,7 @@ static int ZEND_FASTCALL zend_post_incdec_property_helper_SPEC_CV_VAR(incdec_t i
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -36362,12 +36332,12 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_R_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
if (IS_CV == IS_TMP_VAR || IS_CV == IS_CONST) {
zval *container = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), &container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
container = _get_zval_ptr_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_CV == IS_VAR && !(opline->extended_value & ZEND_FETCH_ADD_LOCK)) {
}
@@ -36390,7 +36360,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_W TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
@@ -36423,7 +36393,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_RW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_RW TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
@@ -36441,7 +36411,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_IS_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
SAVE_OPLINE();
container = _get_zval_ptr_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_IS TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -36464,7 +36434,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
if (IS_VAR == IS_UNUSED) {
@@ -36472,7 +36442,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD
}
container = _get_zval_ptr_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC);
zend_fetch_dimension_address_read(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_R TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -36497,7 +36467,7 @@ static int ZEND_FASTCALL ZEND_FETCH_DIM_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_H
zend_error_noreturn(E_ERROR, "Cannot use string offset as an array");
}
zend_fetch_dimension_address(&EX_T(opline->result.var), container, _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC), IS_VAR, BP_VAR_UNSET TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
}
@@ -36537,7 +36507,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_VAR(ZEN
zend_error(E_NOTICE, "Trying to get property of non-object");
PZVAL_LOCK(&EG(uninitialized_zval));
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zval *retval;
@@ -36554,7 +36524,7 @@ static int ZEND_FASTCALL zend_fetch_property_address_read_helper_SPEC_CV_VAR(ZEN
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
}
@@ -36589,7 +36559,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_W_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDL
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -36631,7 +36601,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_RW_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -36657,7 +36627,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
UNEXPECTED(Z_OBJ_HT_P(container)->read_property == NULL)) {
PZVAL_LOCK(&EG(uninitialized_zval));
AI_SET_PTR(&EX_T(opline->result.var), &EG(uninitialized_zval));
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zval *retval;
@@ -36674,7 +36644,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_IS_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HAND
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
}
@@ -36706,7 +36676,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_FUNC_ARG_SPEC_CV_VAR_HANDLER(ZEND_OPCOD
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -36745,7 +36715,7 @@ static int ZEND_FASTCALL ZEND_FETCH_OBJ_UNSET_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_H
if (0) {
zval_ptr_dtor(&property);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
if (IS_CV == IS_VAR && 0 && READY_TO_DESTROY(free_op1.var)) {
EXTRACT_ZVAL_PTR(&EX_T(opline->result.var));
@@ -36782,7 +36752,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_OBJ_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
if (0) {
zval_ptr_dtor(&property_name);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
/* assign_obj has two opcodes! */
@@ -36814,7 +36784,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
if (0) {
zval_ptr_dtor(&property_name);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
zend_free_op free_op2, free_op_data1, free_op_data2;
@@ -36823,7 +36793,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_DIM_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
zval **variable_ptr_ptr;
zend_fetch_dimension_address(&EX_T((opline+1)->op2.var), object_ptr, dim, IS_VAR, BP_VAR_W TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
value = get_zval_ptr((opline+1)->op1_type, &(opline+1)->op1, execute_data, &free_op_data1, BP_VAR_R);
variable_ptr_ptr = _get_zval_ptr_ptr_var((opline+1)->op2.var, execute_data, &free_op_data2 TSRMLS_CC);
@@ -36920,7 +36890,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_AR
}
/* zend_assign_to_variable() always takes care of op2, never free it! */
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -36946,7 +36916,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
}
zend_error(E_STRICT, "Only variables should be assigned by reference");
if (UNEXPECTED(EG(exception) != NULL)) {
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);};
HANDLE_EXCEPTION();
}
return ZEND_ASSIGN_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS_PASSTHRU);
@@ -36973,7 +36943,7 @@ static int ZEND_FASTCALL ZEND_ASSIGN_REF_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLE
AI_SET_PTR(&EX_T(opline->result.var), *variable_ptr_ptr);
}
- if (free_op2.var) {zval_ptr_dtor(&free_op2.var);};
+ if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);};
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -37031,7 +37001,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_
}
} else {
if (UNEXPECTED(EG(exception) != NULL)) {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
HANDLE_EXCEPTION();
}
zend_error_noreturn(E_ERROR, "Call to a member function %s() on a non-object", function_name_strval);
@@ -37053,7 +37023,7 @@ static int ZEND_FASTCALL ZEND_INIT_METHOD_CALL_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_
call->is_ctor_call = 0;
EX(call) = call;
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
@@ -37069,7 +37039,7 @@ static int ZEND_FASTCALL ZEND_CASE_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARGS
_get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op1.var TSRMLS_CC),
_get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC) TSRMLS_CC);
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
CHECK_EXCEPTION();
ZEND_VM_NEXT_OPCODE();
}
@@ -37144,7 +37114,7 @@ num_index:
/* do nothing */
break;
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
zend_hash_next_index_insert(Z_ARRVAL(EX_T(opline->result.var).tmp_var), &expr_ptr, sizeof(zval *), NULL);
}
@@ -37310,7 +37280,7 @@ num_index_dim:
zend_error(E_WARNING, "Illegal offset type in unset");
break;
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
break;
}
case IS_OBJECT:
@@ -37324,18 +37294,18 @@ num_index_dim:
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
break;
case IS_STRING:
zend_error_noreturn(E_ERROR, "Cannot unset string offsets");
ZEND_VM_CONTINUE(); /* bailed out before */
default:
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
break;
}
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -37369,13 +37339,13 @@ static int ZEND_FASTCALL ZEND_UNSET_OBJ_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
CHECK_EXCEPTION();
@@ -37471,22 +37441,21 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_VAR(int
{
USE_OPLINE
zend_free_op free_op2;
- zval **container;
+ zval *container;
zval **value = NULL;
int result = 0;
ulong hval;
zval *offset;
SAVE_OPLINE();
- container = _get_zval_ptr_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
-
+ container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
offset = _get_zval_ptr_var(opline->op2.var, execute_data, &free_op2 TSRMLS_CC);
- if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+ if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
HashTable *ht;
int isset = 0;
- ht = Z_ARRVAL_PP(container);
+ ht = Z_ARRVAL_P(container);
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
@@ -37505,9 +37474,7 @@ num_index_prop:
if (IS_VAR == IS_CONST) {
hval = Z_HASH_P(offset);
} else {
- if (!prop_dim) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- }
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
@@ -37537,21 +37504,21 @@ num_index_prop:
result = 1;
}
}
- zval_ptr_dtor(&free_op2.var);
- } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+ zval_ptr_dtor_nogc(&free_op2.var);
+ } else if (Z_TYPE_P(container) == IS_OBJECT) {
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- if (Z_OBJ_HT_P(*container)->has_property) {
- result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_property) {
+ result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_VAR == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check property of non-object");
result = 0;
}
} else {
- if (Z_OBJ_HT_P(*container)->has_dimension) {
- result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_dimension) {
+ result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check element of non-array");
result = 0;
@@ -37560,9 +37527,9 @@ num_index_prop:
if (0) {
zval_ptr_dtor(&offset);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
- } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+ } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
@@ -37580,18 +37547,18 @@ num_index_prop:
}
if (Z_TYPE_P(offset) == IS_LONG) {
if (opline->extended_value & ZEND_ISSET) {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
result = 1;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
result = 1;
}
}
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
}
Z_TYPE(EX_T(opline->result.var).tmp_var) = IS_BOOL;
@@ -37745,7 +37712,7 @@ static int ZEND_FASTCALL ZEND_YIELD_SPEC_CV_VAR_HANDLER(ZEND_OPCODE_HANDLER_ARG
generator->largest_used_integer_key = Z_LVAL_P(generator->key);
}
- zval_ptr_dtor(&free_op2.var);
+ zval_ptr_dtor_nogc(&free_op2.var);
} else {
/* If no key was specified we use auto-increment keys */
generator->largest_used_integer_key++;
@@ -40457,22 +40424,21 @@ static int ZEND_FASTCALL zend_isset_isempty_dim_prop_obj_handler_SPEC_CV_CV(int
{
USE_OPLINE
- zval **container;
+ zval *container;
zval **value = NULL;
int result = 0;
ulong hval;
zval *offset;
SAVE_OPLINE();
- container = _get_zval_ptr_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
-
+ container = _get_zval_ptr_cv_BP_VAR_IS(execute_data, opline->op1.var TSRMLS_CC);
offset = _get_zval_ptr_cv_BP_VAR_R(execute_data, opline->op2.var TSRMLS_CC);
- if (Z_TYPE_PP(container) == IS_ARRAY && !prop_dim) {
+ if (Z_TYPE_P(container) == IS_ARRAY && !prop_dim) {
HashTable *ht;
int isset = 0;
- ht = Z_ARRVAL_PP(container);
+ ht = Z_ARRVAL_P(container);
switch (Z_TYPE_P(offset)) {
case IS_DOUBLE:
@@ -40491,9 +40457,7 @@ num_index_prop:
if (IS_CV == IS_CONST) {
hval = Z_HASH_P(offset);
} else {
- if (!prop_dim) {
- ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
- }
+ ZEND_HANDLE_NUMERIC_EX(Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, goto num_index_prop);
hval = str_hash(Z_STRVAL_P(offset), Z_STRLEN_P(offset));
}
if (zend_hash_quick_find(ht, Z_STRVAL_P(offset), Z_STRLEN_P(offset)+1, hval, (void **) &value) == SUCCESS) {
@@ -40524,20 +40488,20 @@ num_index_prop:
}
}
- } else if (Z_TYPE_PP(container) == IS_OBJECT) {
+ } else if (Z_TYPE_P(container) == IS_OBJECT) {
if (0) {
MAKE_REAL_ZVAL_PTR(offset);
}
if (prop_dim) {
- if (Z_OBJ_HT_P(*container)->has_property) {
- result = Z_OBJ_HT_P(*container)->has_property(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_property) {
+ result = Z_OBJ_HT_P(container)->has_property(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0, ((IS_CV == IS_CONST) ? opline->op2.literal : NULL) TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check property of non-object");
result = 0;
}
} else {
- if (Z_OBJ_HT_P(*container)->has_dimension) {
- result = Z_OBJ_HT_P(*container)->has_dimension(*container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
+ if (Z_OBJ_HT_P(container)->has_dimension) {
+ result = Z_OBJ_HT_P(container)->has_dimension(container, offset, (opline->extended_value & ZEND_ISEMPTY) != 0 TSRMLS_CC);
} else {
zend_error(E_NOTICE, "Trying to check element of non-array");
result = 0;
@@ -40548,7 +40512,7 @@ num_index_prop:
} else {
}
- } else if ((*container)->type == IS_STRING && !prop_dim) { /* string offsets */
+ } else if (Z_TYPE_P(container) == IS_STRING && !prop_dim) { /* string offsets */
zval tmp;
if (Z_TYPE_P(offset) != IS_LONG) {
@@ -40566,11 +40530,11 @@ num_index_prop:
}
if (Z_TYPE_P(offset) == IS_LONG) {
if (opline->extended_value & ZEND_ISSET) {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container)) {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container)) {
result = 1;
}
} else /* if (opline->extended_value & ZEND_ISEMPTY) */ {
- if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_PP(container) && Z_STRVAL_PP(container)[offset->value.lval] != '0') {
+ if (offset->value.lval >= 0 && offset->value.lval < Z_STRLEN_P(container) && Z_STRVAL_P(container)[offset->value.lval] != '0') {
result = 1;
}
}
diff --git a/Zend/zend_vm_gen.php b/Zend/zend_vm_gen.php
index a65349c4ed..a0546460d0 100644
--- a/Zend/zend_vm_gen.php
+++ b/Zend/zend_vm_gen.php
@@ -218,7 +218,7 @@ $op2_is_tmp_free = array(
$op1_free_op = array(
"ANY" => "FREE_OP(free_op1)",
"TMP" => "zval_dtor(free_op1.var)",
- "VAR" => "zval_ptr_dtor(&free_op1.var)",
+ "VAR" => "zval_ptr_dtor_nogc(&free_op1.var)",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
@@ -227,7 +227,7 @@ $op1_free_op = array(
$op2_free_op = array(
"ANY" => "FREE_OP(free_op2)",
"TMP" => "zval_dtor(free_op2.var)",
- "VAR" => "zval_ptr_dtor(&free_op2.var)",
+ "VAR" => "zval_ptr_dtor_nogc(&free_op2.var)",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
@@ -236,7 +236,7 @@ $op2_free_op = array(
$op1_free_op_if_var = array(
"ANY" => "FREE_OP_IF_VAR(free_op1)",
"TMP" => "",
- "VAR" => "zval_ptr_dtor(&free_op1.var)",
+ "VAR" => "zval_ptr_dtor_nogc(&free_op1.var)",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
@@ -245,33 +245,33 @@ $op1_free_op_if_var = array(
$op2_free_op_if_var = array(
"ANY" => "FREE_OP_IF_VAR(free_op2)",
"TMP" => "",
- "VAR" => "zval_ptr_dtor(&free_op2.var)",
+ "VAR" => "zval_ptr_dtor_nogc(&free_op2.var)",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
);
$op1_free_op_var_ptr = array(
- "ANY" => "if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}",
+ "ANY" => "if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}",
"TMP" => "",
- "VAR" => "if (free_op1.var) {zval_ptr_dtor(&free_op1.var);}",
+ "VAR" => "if (free_op1.var) {zval_ptr_dtor_nogc(&free_op1.var);}",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
);
$op1_free_op_var_ptr_fast = $op1_free_op_var_ptr;
-$op1_free_op_var_ptr_fast["VAR"] = "zval_ptr_dtor(&free_op1.var)";
+$op1_free_op_var_ptr_fast["VAR"] = "zval_ptr_dtor_nogc(&free_op1.var)";
$op2_free_op_var_ptr = array(
- "ANY" => "if (free_op2.var) {zval_ptr_dtor(&free_op2.var);}",
+ "ANY" => "if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);}",
"TMP" => "",
- "VAR" => "if (free_op2.var) {zval_ptr_dtor(&free_op2.var);}",
+ "VAR" => "if (free_op2.var) {zval_ptr_dtor_nogc(&free_op2.var);}",
"CONST" => "",
"UNUSED" => "",
"CV" => "",
);
$op2_free_op_var_ptr_fast = $op2_free_op_var_ptr;
-$op2_free_op_var_ptr_fast["VAR"] = "zval_ptr_dtor(&free_op2.var)";
+$op2_free_op_var_ptr_fast["VAR"] = "zval_ptr_dtor_nogc(&free_op2.var)";
$list = array(); // list of opcode handlers and helpers in original order
$opcodes = array(); // opcode handlers by code
diff --git a/ext/date/lib/timezonedb.h b/ext/date/lib/timezonedb.h
index 8142aab565..91884a935f 100644
--- a/ext/date/lib/timezonedb.h
+++ b/ext/date/lib/timezonedb.h
@@ -14,573 +14,573 @@ const timelib_tzdb_index_entry timezonedb_idx_builtin[579] = {
{ "Africa/Bujumbura" , 0x000571 },
{ "Africa/Cairo" , 0x0005B5 },
{ "Africa/Casablanca" , 0x000878 },
- { "Africa/Ceuta" , 0x000ABC },
- { "Africa/Conakry" , 0x000DC3 },
- { "Africa/Dakar" , 0x000E2E },
- { "Africa/Dar_es_Salaam" , 0x000E94 },
- { "Africa/Djibouti" , 0x000F01 },
- { "Africa/Douala" , 0x000F56 },
- { "Africa/El_Aaiun" , 0x000FAB },
- { "Africa/Freetown" , 0x001011 },
- { "Africa/Gaborone" , 0x001120 },
- { "Africa/Harare" , 0x00118D },
- { "Africa/Johannesburg" , 0x0011E2 },
- { "Africa/Juba" , 0x001250 },
- { "Africa/Kampala" , 0x001363 },
- { "Africa/Khartoum" , 0x0013E2 },
- { "Africa/Kigali" , 0x0014F5 },
- { "Africa/Kinshasa" , 0x00154A },
- { "Africa/Lagos" , 0x0015A5 },
- { "Africa/Libreville" , 0x0015FA },
- { "Africa/Lome" , 0x00164F },
- { "Africa/Luanda" , 0x001693 },
- { "Africa/Lubumbashi" , 0x0016E8 },
- { "Africa/Lusaka" , 0x001743 },
- { "Africa/Malabo" , 0x001798 },
- { "Africa/Maputo" , 0x0017FE },
- { "Africa/Maseru" , 0x001853 },
- { "Africa/Mbabane" , 0x0018BB },
- { "Africa/Mogadishu" , 0x001911 },
- { "Africa/Monrovia" , 0x00196C },
- { "Africa/Nairobi" , 0x0019D2 },
- { "Africa/Ndjamena" , 0x001A51 },
- { "Africa/Niamey" , 0x001ABD },
- { "Africa/Nouakchott" , 0x001B30 },
- { "Africa/Ouagadougou" , 0x001B9B },
- { "Africa/Porto-Novo" , 0x001BF0 },
- { "Africa/Sao_Tome" , 0x001C56 },
- { "Africa/Timbuktu" , 0x001CAB },
- { "Africa/Tripoli" , 0x001D16 },
- { "Africa/Tunis" , 0x001F0F },
- { "Africa/Windhoek" , 0x002021 },
- { "America/Adak" , 0x002268 },
- { "America/Anchorage" , 0x0025DE },
- { "America/Anguilla" , 0x002952 },
- { "America/Antigua" , 0x0029A7 },
- { "America/Araguaina" , 0x002A0D },
- { "America/Argentina/Buenos_Aires" , 0x002B72 },
- { "America/Argentina/Catamarca" , 0x002D20 },
- { "America/Argentina/ComodRivadavia" , 0x002EE1 },
- { "America/Argentina/Cordoba" , 0x003087 },
- { "America/Argentina/Jujuy" , 0x00325C },
- { "America/Argentina/La_Rioja" , 0x003410 },
- { "America/Argentina/Mendoza" , 0x0035C8 },
- { "America/Argentina/Rio_Gallegos" , 0x003788 },
- { "America/Argentina/Salta" , 0x00393D },
- { "America/Argentina/San_Juan" , 0x003AE9 },
- { "America/Argentina/San_Luis" , 0x003CA1 },
- { "America/Argentina/Tucuman" , 0x003E67 },
- { "America/Argentina/Ushuaia" , 0x004023 },
- { "America/Aruba" , 0x0041DE },
- { "America/Asuncion" , 0x004244 },
- { "America/Atikokan" , 0x004529 },
- { "America/Atka" , 0x0045FF },
- { "America/Bahia" , 0x004965 },
- { "America/Bahia_Banderas" , 0x004AF8 },
- { "America/Barbados" , 0x004D71 },
- { "America/Belem" , 0x004E0B },
- { "America/Belize" , 0x004F06 },
- { "America/Blanc-Sablon" , 0x005082 },
- { "America/Boa_Vista" , 0x005136 },
- { "America/Bogota" , 0x00523F },
- { "America/Boise" , 0x0052AB },
- { "America/Buenos_Aires" , 0x005642 },
- { "America/Cambridge_Bay" , 0x0057DB },
- { "America/Campo_Grande" , 0x005B03 },
- { "America/Cancun" , 0x005DF2 },
- { "America/Caracas" , 0x006034 },
- { "America/Catamarca" , 0x00609B },
- { "America/Cayenne" , 0x006241 },
- { "America/Cayman" , 0x0062A3 },
- { "America/Chicago" , 0x0062F8 },
- { "America/Chihuahua" , 0x00680F },
- { "America/Coral_Harbour" , 0x006A7A },
- { "America/Cordoba" , 0x006B0C },
- { "America/Costa_Rica" , 0x006CB2 },
- { "America/Creston" , 0x006D3C },
- { "America/Cuiaba" , 0x006DC8 },
- { "America/Curacao" , 0x0070A6 },
- { "America/Danmarkshavn" , 0x00710C },
- { "America/Dawson" , 0x007250 },
- { "America/Dawson_Creek" , 0x00756D },
- { "America/Denver" , 0x007747 },
- { "America/Detroit" , 0x007ACD },
- { "America/Dominica" , 0x007E2C },
- { "America/Edmonton" , 0x007E81 },
- { "America/Eirunepe" , 0x008239 },
- { "America/El_Salvador" , 0x00834C },
- { "America/Ensenada" , 0x0083C1 },
- { "America/Fort_Wayne" , 0x008868 },
- { "America/Fortaleza" , 0x00872A },
- { "America/Glace_Bay" , 0x008AD2 },
- { "America/Godthab" , 0x008E49 },
- { "America/Goose_Bay" , 0x00910D },
- { "America/Grand_Turk" , 0x0095CA },
- { "America/Grenada" , 0x009879 },
- { "America/Guadeloupe" , 0x0098CE },
- { "America/Guatemala" , 0x009923 },
- { "America/Guayaquil" , 0x0099AC },
- { "America/Guyana" , 0x009A09 },
- { "America/Halifax" , 0x009A8A },
- { "America/Havana" , 0x009FA0 },
- { "America/Hermosillo" , 0x00A313 },
- { "America/Indiana/Indianapolis" , 0x00A3F1 },
- { "America/Indiana/Knox" , 0x00A682 },
- { "America/Indiana/Marengo" , 0x00AA19 },
- { "America/Indiana/Petersburg" , 0x00ACBF },
- { "America/Indiana/Tell_City" , 0x00B20C },
- { "America/Indiana/Vevay" , 0x00B4A5 },
- { "America/Indiana/Vincennes" , 0x00B6E0 },
- { "America/Indiana/Winamac" , 0x00B994 },
- { "America/Indianapolis" , 0x00AFA2 },
- { "America/Inuvik" , 0x00BC4D },
- { "America/Iqaluit" , 0x00BF44 },
- { "America/Jamaica" , 0x00C266 },
- { "America/Jujuy" , 0x00C32B },
- { "America/Juneau" , 0x00C4D5 },
- { "America/Kentucky/Louisville" , 0x00C853 },
- { "America/Kentucky/Monticello" , 0x00CC71 },
- { "America/Knox_IN" , 0x00CFF6 },
- { "America/Kralendijk" , 0x00D367 },
- { "America/La_Paz" , 0x00D3CD },
- { "America/Lima" , 0x00D434 },
- { "America/Los_Angeles" , 0x00D4DC },
- { "America/Louisville" , 0x00D8ED },
- { "America/Lower_Princes" , 0x00DCE2 },
- { "America/Maceio" , 0x00DD48 },
- { "America/Managua" , 0x00DE82 },
- { "America/Manaus" , 0x00DF35 },
- { "America/Marigot" , 0x00E037 },
- { "America/Martinique" , 0x00E08C },
- { "America/Matamoros" , 0x00E0F8 },
- { "America/Mazatlan" , 0x00E351 },
- { "America/Mendoza" , 0x00E5BE },
- { "America/Menominee" , 0x00E772 },
- { "America/Merida" , 0x00EAF3 },
- { "America/Metlakatla" , 0x00ED2E },
- { "America/Mexico_City" , 0x00EE68 },
- { "America/Miquelon" , 0x00F0E3 },
- { "America/Moncton" , 0x00F355 },
- { "America/Monterrey" , 0x00F7EC },
- { "America/Montevideo" , 0x00FA4F },
- { "America/Montreal" , 0x00FD61 },
- { "America/Montserrat" , 0x010251 },
- { "America/Nassau" , 0x0102A6 },
- { "America/New_York" , 0x0105EB },
- { "America/Nipigon" , 0x010AF6 },
- { "America/Nome" , 0x010E47 },
- { "America/Noronha" , 0x0111C5 },
- { "America/North_Dakota/Beulah" , 0x0112F5 },
- { "America/North_Dakota/Center" , 0x011689 },
- { "America/North_Dakota/New_Salem" , 0x011A1D },
- { "America/Ojinaga" , 0x011DC6 },
- { "America/Panama" , 0x012027 },
- { "America/Pangnirtung" , 0x01207C },
- { "America/Paramaribo" , 0x0123B2 },
- { "America/Phoenix" , 0x012444 },
- { "America/Port-au-Prince" , 0x012502 },
- { "America/Port_of_Spain" , 0x012821 },
- { "America/Porto_Acre" , 0x012722 },
- { "America/Porto_Velho" , 0x012876 },
- { "America/Puerto_Rico" , 0x01296C },
- { "America/Rainy_River" , 0x0129D7 },
- { "America/Rankin_Inlet" , 0x012D0F },
- { "America/Recife" , 0x012FF5 },
- { "America/Regina" , 0x01311F },
- { "America/Resolute" , 0x0132DD },
- { "America/Rio_Branco" , 0x0135CE },
- { "America/Rosario" , 0x0136D1 },
- { "America/Santa_Isabel" , 0x013877 },
- { "America/Santarem" , 0x013C1A },
- { "America/Santiago" , 0x013D1F },
- { "America/Santo_Domingo" , 0x0140C8 },
- { "America/Sao_Paulo" , 0x01418E },
- { "America/Scoresbysund" , 0x01449D },
- { "America/Shiprock" , 0x01478B },
- { "America/Sitka" , 0x014B04 },
- { "America/St_Barthelemy" , 0x014E8C },
- { "America/St_Johns" , 0x014EE1 },
- { "America/St_Kitts" , 0x015434 },
- { "America/St_Lucia" , 0x015489 },
- { "America/St_Thomas" , 0x0154DE },
- { "America/St_Vincent" , 0x015533 },
- { "America/Swift_Current" , 0x015588 },
- { "America/Tegucigalpa" , 0x0156A9 },
- { "America/Thule" , 0x015728 },
- { "America/Thunder_Bay" , 0x01596F },
- { "America/Tijuana" , 0x015CB8 },
- { "America/Toronto" , 0x016051 },
- { "America/Tortola" , 0x016571 },
- { "America/Vancouver" , 0x0165C6 },
- { "America/Virgin" , 0x016A03 },
- { "America/Whitehorse" , 0x016A58 },
- { "America/Winnipeg" , 0x016D75 },
- { "America/Yakutat" , 0x0171B5 },
- { "America/Yellowknife" , 0x017520 },
- { "Antarctica/Casey" , 0x017830 },
- { "Antarctica/Davis" , 0x0178CD },
- { "Antarctica/DumontDUrville" , 0x01796E },
- { "Antarctica/Macquarie" , 0x017A00 },
- { "Antarctica/Mawson" , 0x017C47 },
- { "Antarctica/McMurdo" , 0x017CC3 },
- { "Antarctica/Palmer" , 0x01806E },
- { "Antarctica/Rothera" , 0x01838A },
- { "Antarctica/South_Pole" , 0x018400 },
- { "Antarctica/Syowa" , 0x01877E },
- { "Antarctica/Vostok" , 0x0187EC },
- { "Arctic/Longyearbyen" , 0x01885D },
- { "Asia/Aden" , 0x018B8F },
- { "Asia/Almaty" , 0x018BE4 },
- { "Asia/Amman" , 0x018D63 },
- { "Asia/Anadyr" , 0x018F35 },
- { "Asia/Aqtau" , 0x01911A },
- { "Asia/Aqtobe" , 0x019319 },
- { "Asia/Ashgabat" , 0x0194D1 },
- { "Asia/Ashkhabad" , 0x0195EE },
- { "Asia/Baghdad" , 0x01970B },
- { "Asia/Bahrain" , 0x019880 },
- { "Asia/Baku" , 0x0198E6 },
- { "Asia/Bangkok" , 0x019BCE },
- { "Asia/Beirut" , 0x019C23 },
- { "Asia/Bishkek" , 0x019F30 },
- { "Asia/Brunei" , 0x01A0DC },
- { "Asia/Calcutta" , 0x01A13E },
- { "Asia/Choibalsan" , 0x01A1B7 },
- { "Asia/Chongqing" , 0x01A330 },
- { "Asia/Chungking" , 0x01A41F },
- { "Asia/Colombo" , 0x01A4CE },
- { "Asia/Dacca" , 0x01A56A },
- { "Asia/Damascus" , 0x01A610 },
- { "Asia/Dhaka" , 0x01A960 },
- { "Asia/Dili" , 0x01AA06 },
- { "Asia/Dubai" , 0x01AA90 },
- { "Asia/Dushanbe" , 0x01AAE5 },
- { "Asia/Gaza" , 0x01ABE8 },
- { "Asia/Harbin" , 0x01AF3B },
- { "Asia/Hebron" , 0x01B022 },
- { "Asia/Ho_Chi_Minh" , 0x01B37E },
- { "Asia/Hong_Kong" , 0x01B3F6 },
- { "Asia/Hovd" , 0x01B5B8 },
- { "Asia/Irkutsk" , 0x01B730 },
- { "Asia/Istanbul" , 0x01B916 },
- { "Asia/Jakarta" , 0x01BD03 },
- { "Asia/Jayapura" , 0x01BDAD },
- { "Asia/Jerusalem" , 0x01BE49 },
- { "Asia/Kabul" , 0x01C178 },
- { "Asia/Kamchatka" , 0x01C1C9 },
- { "Asia/Karachi" , 0x01C3A5 },
- { "Asia/Kashgar" , 0x01C45A },
- { "Asia/Kathmandu" , 0x01C52B },
- { "Asia/Katmandu" , 0x01C591 },
- { "Asia/Khandyga" , 0x01C5F7 },
- { "Asia/Kolkata" , 0x01C81C },
- { "Asia/Krasnoyarsk" , 0x01C895 },
- { "Asia/Kuala_Lumpur" , 0x01CA7D },
- { "Asia/Kuching" , 0x01CB3A },
- { "Asia/Kuwait" , 0x01CC28 },
- { "Asia/Macao" , 0x01CC7D },
- { "Asia/Macau" , 0x01CDB8 },
- { "Asia/Magadan" , 0x01CEF3 },
- { "Asia/Makassar" , 0x01D0D5 },
- { "Asia/Manila" , 0x01D19A },
- { "Asia/Muscat" , 0x01D21F },
- { "Asia/Nicosia" , 0x01D274 },
- { "Asia/Novokuznetsk" , 0x01D55C },
- { "Asia/Novosibirsk" , 0x01D75E },
- { "Asia/Omsk" , 0x01D949 },
- { "Asia/Oral" , 0x01DB30 },
- { "Asia/Phnom_Penh" , 0x01DD00 },
- { "Asia/Pontianak" , 0x01DD78 },
- { "Asia/Pyongyang" , 0x01DE3A },
- { "Asia/Qatar" , 0x01DEA7 },
- { "Asia/Qyzylorda" , 0x01DF0D },
- { "Asia/Rangoon" , 0x01E0E3 },
- { "Asia/Riyadh" , 0x01E15B },
- { "Asia/Saigon" , 0x01E1B0 },
- { "Asia/Sakhalin" , 0x01E228 },
- { "Asia/Samarkand" , 0x01E41F },
- { "Asia/Seoul" , 0x01E555 },
- { "Asia/Shanghai" , 0x01E5F9 },
- { "Asia/Singapore" , 0x01E6D9 },
- { "Asia/Taipei" , 0x01E790 },
- { "Asia/Tashkent" , 0x01E8A8 },
- { "Asia/Tbilisi" , 0x01E9D9 },
- { "Asia/Tehran" , 0x01EB93 },
- { "Asia/Tel_Aviv" , 0x01EE01 },
- { "Asia/Thimbu" , 0x01F130 },
- { "Asia/Thimphu" , 0x01F196 },
- { "Asia/Tokyo" , 0x01F1FC },
- { "Asia/Ujung_Pandang" , 0x01F285 },
- { "Asia/Ulaanbaatar" , 0x01F302 },
- { "Asia/Ulan_Bator" , 0x01F45D },
- { "Asia/Urumqi" , 0x01F5AA },
- { "Asia/Ust-Nera" , 0x01F671 },
- { "Asia/Vientiane" , 0x01F876 },
- { "Asia/Vladivostok" , 0x01F8EE },
- { "Asia/Yakutsk" , 0x01FADA },
- { "Asia/Yekaterinburg" , 0x01FCBF },
- { "Asia/Yerevan" , 0x01FECA },
- { "Atlantic/Azores" , 0x0200CA },
- { "Atlantic/Bermuda" , 0x0205CD },
- { "Atlantic/Canary" , 0x0208AE },
- { "Atlantic/Cape_Verde" , 0x020B84 },
- { "Atlantic/Faeroe" , 0x020BFD },
- { "Atlantic/Faroe" , 0x020EA1 },
- { "Atlantic/Jan_Mayen" , 0x021145 },
- { "Atlantic/Madeira" , 0x021477 },
- { "Atlantic/Reykjavik" , 0x021980 },
- { "Atlantic/South_Georgia" , 0x021B39 },
- { "Atlantic/St_Helena" , 0x021D4B },
- { "Atlantic/Stanley" , 0x021B7D },
- { "Australia/ACT" , 0x021DA0 },
- { "Australia/Adelaide" , 0x0220BD },
- { "Australia/Brisbane" , 0x0223E9 },
- { "Australia/Broken_Hill" , 0x0224B0 },
- { "Australia/Canberra" , 0x0227EE },
- { "Australia/Currie" , 0x022B0B },
- { "Australia/Darwin" , 0x022E3E },
- { "Australia/Eucla" , 0x022EC4 },
- { "Australia/Hobart" , 0x022F99 },
- { "Australia/LHI" , 0x0232F7 },
- { "Australia/Lindeman" , 0x023592 },
- { "Australia/Lord_Howe" , 0x023673 },
- { "Australia/Melbourne" , 0x02391E },
- { "Australia/North" , 0x023C43 },
- { "Australia/NSW" , 0x023CB7 },
- { "Australia/Perth" , 0x023FD4 },
- { "Australia/Queensland" , 0x0240AC },
- { "Australia/South" , 0x024158 },
- { "Australia/Sydney" , 0x024475 },
- { "Australia/Tasmania" , 0x0247B2 },
- { "Australia/Victoria" , 0x024AF7 },
- { "Australia/West" , 0x024E14 },
- { "Australia/Yancowinna" , 0x024ECA },
- { "Brazil/Acre" , 0x0251EC },
- { "Brazil/DeNoronha" , 0x0252EB },
- { "Brazil/East" , 0x02540B },
- { "Brazil/West" , 0x0256E8 },
- { "Canada/Atlantic" , 0x0257E0 },
- { "Canada/Central" , 0x025CC8 },
- { "Canada/East-Saskatchewan" , 0x0265D2 },
- { "Canada/Eastern" , 0x0260E2 },
- { "Canada/Mountain" , 0x02675B },
- { "Canada/Newfoundland" , 0x026AD1 },
- { "Canada/Pacific" , 0x026FFC },
- { "Canada/Saskatchewan" , 0x027415 },
- { "Canada/Yukon" , 0x02759E },
- { "CET" , 0x0278A1 },
- { "Chile/Continental" , 0x027BAA },
- { "Chile/EasterIsland" , 0x027F45 },
- { "CST6CDT" , 0x028287 },
- { "Cuba" , 0x0285D8 },
- { "EET" , 0x02894B },
- { "Egypt" , 0x028BFE },
- { "Eire" , 0x028EC1 },
- { "EST" , 0x0293D2 },
- { "EST5EDT" , 0x029416 },
- { "Etc/GMT" , 0x029767 },
- { "Etc/GMT+0" , 0x029833 },
- { "Etc/GMT+1" , 0x0298BD },
- { "Etc/GMT+10" , 0x02994A },
- { "Etc/GMT+11" , 0x0299D8 },
- { "Etc/GMT+12" , 0x029A66 },
- { "Etc/GMT+2" , 0x029B81 },
- { "Etc/GMT+3" , 0x029C0D },
- { "Etc/GMT+4" , 0x029C99 },
- { "Etc/GMT+5" , 0x029D25 },
- { "Etc/GMT+6" , 0x029DB1 },
- { "Etc/GMT+7" , 0x029E3D },
- { "Etc/GMT+8" , 0x029EC9 },
- { "Etc/GMT+9" , 0x029F55 },
- { "Etc/GMT-0" , 0x0297EF },
- { "Etc/GMT-1" , 0x029877 },
- { "Etc/GMT-10" , 0x029903 },
- { "Etc/GMT-11" , 0x029991 },
- { "Etc/GMT-12" , 0x029A1F },
- { "Etc/GMT-13" , 0x029AAD },
- { "Etc/GMT-14" , 0x029AF4 },
- { "Etc/GMT-2" , 0x029B3B },
- { "Etc/GMT-3" , 0x029BC7 },
- { "Etc/GMT-4" , 0x029C53 },
- { "Etc/GMT-5" , 0x029CDF },
- { "Etc/GMT-6" , 0x029D6B },
- { "Etc/GMT-7" , 0x029DF7 },
- { "Etc/GMT-8" , 0x029E83 },
- { "Etc/GMT-9" , 0x029F0F },
- { "Etc/GMT0" , 0x0297AB },
- { "Etc/Greenwich" , 0x029F9B },
- { "Etc/UCT" , 0x029FDF },
- { "Etc/Universal" , 0x02A023 },
- { "Etc/UTC" , 0x02A067 },
- { "Etc/Zulu" , 0x02A0AB },
- { "Europe/Amsterdam" , 0x02A0EF },
- { "Europe/Andorra" , 0x02A52D },
- { "Europe/Athens" , 0x02A7A9 },
- { "Europe/Belfast" , 0x02AAEC },
- { "Europe/Belgrade" , 0x02B023 },
- { "Europe/Berlin" , 0x02B2EC },
- { "Europe/Bratislava" , 0x02B650 },
- { "Europe/Brussels" , 0x02B982 },
- { "Europe/Bucharest" , 0x02BDB9 },
- { "Europe/Budapest" , 0x02C0E3 },
- { "Europe/Busingen" , 0x02C456 },
- { "Europe/Chisinau" , 0x02C70D },
- { "Europe/Copenhagen" , 0x02CA9B },
- { "Europe/Dublin" , 0x02CDA5 },
- { "Europe/Gibraltar" , 0x02D2B6 },
- { "Europe/Guernsey" , 0x02D70D },
- { "Europe/Helsinki" , 0x02DC44 },
- { "Europe/Isle_of_Man" , 0x02DEFA },
- { "Europe/Istanbul" , 0x02E431 },
- { "Europe/Jersey" , 0x02E81E },
- { "Europe/Kaliningrad" , 0x02ED55 },
- { "Europe/Kiev" , 0x02EFBB },
- { "Europe/Lisbon" , 0x02F2D2 },
- { "Europe/Ljubljana" , 0x02F7D6 },
- { "Europe/London" , 0x02FA9F },
- { "Europe/Luxembourg" , 0x02FFD6 },
- { "Europe/Madrid" , 0x03042C },
- { "Europe/Malta" , 0x0307F2 },
- { "Europe/Mariehamn" , 0x030BAB },
- { "Europe/Minsk" , 0x030E61 },
- { "Europe/Monaco" , 0x03106F },
- { "Europe/Moscow" , 0x0314AA },
- { "Europe/Nicosia" , 0x0316FB },
- { "Europe/Oslo" , 0x0319E3 },
- { "Europe/Paris" , 0x031D15 },
- { "Europe/Podgorica" , 0x03215B },
- { "Europe/Prague" , 0x032424 },
- { "Europe/Riga" , 0x032756 },
- { "Europe/Rome" , 0x032A9B },
- { "Europe/Samara" , 0x032E5E },
- { "Europe/San_Marino" , 0x033091 },
- { "Europe/Sarajevo" , 0x033454 },
- { "Europe/Simferopol" , 0x03371D },
- { "Europe/Skopje" , 0x033A48 },
- { "Europe/Sofia" , 0x033D11 },
- { "Europe/Stockholm" , 0x034019 },
- { "Europe/Tallinn" , 0x0342C8 },
- { "Europe/Tirane" , 0x034602 },
- { "Europe/Tiraspol" , 0x034908 },
- { "Europe/Uzhgorod" , 0x034C96 },
- { "Europe/Vaduz" , 0x034FAD },
- { "Europe/Vatican" , 0x03525C },
- { "Europe/Vienna" , 0x03561F },
- { "Europe/Vilnius" , 0x03594C },
- { "Europe/Volgograd" , 0x035C8B },
- { "Europe/Warsaw" , 0x035E8B },
- { "Europe/Zagreb" , 0x03626C },
- { "Europe/Zaporozhye" , 0x036535 },
- { "Europe/Zurich" , 0x036876 },
- { "Factory" , 0x036B25 },
- { "GB" , 0x036B96 },
- { "GB-Eire" , 0x0370CD },
- { "GMT" , 0x037604 },
- { "GMT+0" , 0x0376D0 },
- { "GMT-0" , 0x03768C },
- { "GMT0" , 0x037648 },
- { "Greenwich" , 0x037714 },
- { "Hongkong" , 0x037758 },
- { "HST" , 0x03791A },
- { "Iceland" , 0x03795E },
- { "Indian/Antananarivo" , 0x037B17 },
- { "Indian/Chagos" , 0x037B8B },
- { "Indian/Christmas" , 0x037BED },
- { "Indian/Cocos" , 0x037C31 },
- { "Indian/Comoro" , 0x037C75 },
- { "Indian/Kerguelen" , 0x037CCA },
- { "Indian/Mahe" , 0x037D1F },
- { "Indian/Maldives" , 0x037D74 },
- { "Indian/Mauritius" , 0x037DC9 },
- { "Indian/Mayotte" , 0x037E3F },
- { "Indian/Reunion" , 0x037E94 },
- { "Iran" , 0x037EE9 },
- { "Israel" , 0x038157 },
- { "Jamaica" , 0x038486 },
- { "Japan" , 0x03854B },
- { "Kwajalein" , 0x0385D4 },
- { "Libya" , 0x038637 },
- { "MET" , 0x038830 },
- { "Mexico/BajaNorte" , 0x038B39 },
- { "Mexico/BajaSur" , 0x038EA2 },
- { "Mexico/General" , 0x0390E7 },
- { "MST" , 0x039345 },
- { "MST7MDT" , 0x039389 },
- { "Navajo" , 0x0396DA },
- { "NZ" , 0x039A53 },
- { "NZ-CHAT" , 0x039DD1 },
- { "Pacific/Apia" , 0x03A0B9 },
- { "Pacific/Auckland" , 0x03A255 },
- { "Pacific/Chatham" , 0x03A5E1 },
- { "Pacific/Chuuk" , 0x03A8D8 },
- { "Pacific/Easter" , 0x03A931 },
- { "Pacific/Efate" , 0x03AC8F },
- { "Pacific/Enderbury" , 0x03AD55 },
- { "Pacific/Fakaofo" , 0x03ADC3 },
- { "Pacific/Fiji" , 0x03AE14 },
- { "Pacific/Funafuti" , 0x03AFA7 },
- { "Pacific/Galapagos" , 0x03AFEB },
- { "Pacific/Gambier" , 0x03B063 },
- { "Pacific/Guadalcanal" , 0x03B0C8 },
- { "Pacific/Guam" , 0x03B11D },
- { "Pacific/Honolulu" , 0x03B173 },
- { "Pacific/Johnston" , 0x03B1EA },
- { "Pacific/Kiritimati" , 0x03B269 },
- { "Pacific/Kosrae" , 0x03B2D4 },
- { "Pacific/Kwajalein" , 0x03B331 },
- { "Pacific/Majuro" , 0x03B39D },
- { "Pacific/Marquesas" , 0x03B3FC },
- { "Pacific/Midway" , 0x03B463 },
- { "Pacific/Nauru" , 0x03B4ED },
- { "Pacific/Niue" , 0x03B565 },
- { "Pacific/Norfolk" , 0x03B5C3 },
- { "Pacific/Noumea" , 0x03B618 },
- { "Pacific/Pago_Pago" , 0x03B6A8 },
- { "Pacific/Palau" , 0x03B731 },
- { "Pacific/Pitcairn" , 0x03B775 },
- { "Pacific/Pohnpei" , 0x03B7CA },
- { "Pacific/Ponape" , 0x03B81F },
- { "Pacific/Port_Moresby" , 0x03B864 },
- { "Pacific/Rarotonga" , 0x03B8A8 },
- { "Pacific/Saipan" , 0x03B984 },
- { "Pacific/Samoa" , 0x03B9E7 },
- { "Pacific/Tahiti" , 0x03BA70 },
- { "Pacific/Tarawa" , 0x03BAD5 },
- { "Pacific/Tongatapu" , 0x03BB29 },
- { "Pacific/Truk" , 0x03BBB5 },
- { "Pacific/Wake" , 0x03BBFA },
- { "Pacific/Wallis" , 0x03BC4A },
- { "Pacific/Yap" , 0x03BC8E },
- { "Poland" , 0x03BCD3 },
- { "Portugal" , 0x03C0B4 },
- { "PRC" , 0x03C5B0 },
- { "PST8PDT" , 0x03C661 },
- { "ROC" , 0x03C9B2 },
- { "ROK" , 0x03CACA },
- { "Singapore" , 0x03CB6E },
- { "Turkey" , 0x03CC25 },
- { "UCT" , 0x03D012 },
- { "Universal" , 0x03D056 },
- { "US/Alaska" , 0x03D09A },
- { "US/Aleutian" , 0x03D403 },
- { "US/Arizona" , 0x03D769 },
- { "US/Central" , 0x03D7F7 },
- { "US/East-Indiana" , 0x03E201 },
- { "US/Eastern" , 0x03DD02 },
- { "US/Hawaii" , 0x03E46B },
- { "US/Indiana-Starke" , 0x03E4DC },
- { "US/Michigan" , 0x03E84D },
- { "US/Mountain" , 0x03EB84 },
- { "US/Pacific" , 0x03EEFD },
- { "US/Pacific-New" , 0x03F302 },
- { "US/Samoa" , 0x03F707 },
- { "UTC" , 0x03F790 },
- { "W-SU" , 0x03FA87 },
- { "WET" , 0x03F7D4 },
- { "Zulu" , 0x03FCC1 },
+ { "Africa/Ceuta" , 0x000ADA },
+ { "Africa/Conakry" , 0x000DE1 },
+ { "Africa/Dakar" , 0x000E4C },
+ { "Africa/Dar_es_Salaam" , 0x000EB2 },
+ { "Africa/Djibouti" , 0x000F1F },
+ { "Africa/Douala" , 0x000F74 },
+ { "Africa/El_Aaiun" , 0x000FC9 },
+ { "Africa/Freetown" , 0x0011F4 },
+ { "Africa/Gaborone" , 0x001303 },
+ { "Africa/Harare" , 0x001370 },
+ { "Africa/Johannesburg" , 0x0013C5 },
+ { "Africa/Juba" , 0x001433 },
+ { "Africa/Kampala" , 0x001546 },
+ { "Africa/Khartoum" , 0x0015C5 },
+ { "Africa/Kigali" , 0x0016D8 },
+ { "Africa/Kinshasa" , 0x00172D },
+ { "Africa/Lagos" , 0x001788 },
+ { "Africa/Libreville" , 0x0017DD },
+ { "Africa/Lome" , 0x001832 },
+ { "Africa/Luanda" , 0x001876 },
+ { "Africa/Lubumbashi" , 0x0018CB },
+ { "Africa/Lusaka" , 0x001926 },
+ { "Africa/Malabo" , 0x00197B },
+ { "Africa/Maputo" , 0x0019E1 },
+ { "Africa/Maseru" , 0x001A36 },
+ { "Africa/Mbabane" , 0x001A9E },
+ { "Africa/Mogadishu" , 0x001AF4 },
+ { "Africa/Monrovia" , 0x001B4F },
+ { "Africa/Nairobi" , 0x001BB5 },
+ { "Africa/Ndjamena" , 0x001C34 },
+ { "Africa/Niamey" , 0x001CA0 },
+ { "Africa/Nouakchott" , 0x001D13 },
+ { "Africa/Ouagadougou" , 0x001D7E },
+ { "Africa/Porto-Novo" , 0x001DD3 },
+ { "Africa/Sao_Tome" , 0x001E39 },
+ { "Africa/Timbuktu" , 0x001E8E },
+ { "Africa/Tripoli" , 0x001EF9 },
+ { "Africa/Tunis" , 0x002002 },
+ { "Africa/Windhoek" , 0x002114 },
+ { "America/Adak" , 0x00235B },
+ { "America/Anchorage" , 0x0026D1 },
+ { "America/Anguilla" , 0x002A45 },
+ { "America/Antigua" , 0x002A9A },
+ { "America/Araguaina" , 0x002B00 },
+ { "America/Argentina/Buenos_Aires" , 0x002C65 },
+ { "America/Argentina/Catamarca" , 0x002E13 },
+ { "America/Argentina/ComodRivadavia" , 0x002FD4 },
+ { "America/Argentina/Cordoba" , 0x00317A },
+ { "America/Argentina/Jujuy" , 0x00334F },
+ { "America/Argentina/La_Rioja" , 0x003503 },
+ { "America/Argentina/Mendoza" , 0x0036BB },
+ { "America/Argentina/Rio_Gallegos" , 0x00387B },
+ { "America/Argentina/Salta" , 0x003A30 },
+ { "America/Argentina/San_Juan" , 0x003BDC },
+ { "America/Argentina/San_Luis" , 0x003D94 },
+ { "America/Argentina/Tucuman" , 0x003F5A },
+ { "America/Argentina/Ushuaia" , 0x004116 },
+ { "America/Aruba" , 0x0042D1 },
+ { "America/Asuncion" , 0x004337 },
+ { "America/Atikokan" , 0x00461C },
+ { "America/Atka" , 0x0046F2 },
+ { "America/Bahia" , 0x004A58 },
+ { "America/Bahia_Banderas" , 0x004BEB },
+ { "America/Barbados" , 0x004E64 },
+ { "America/Belem" , 0x004EFE },
+ { "America/Belize" , 0x004FF9 },
+ { "America/Blanc-Sablon" , 0x005175 },
+ { "America/Boa_Vista" , 0x005229 },
+ { "America/Bogota" , 0x005332 },
+ { "America/Boise" , 0x00539E },
+ { "America/Buenos_Aires" , 0x005735 },
+ { "America/Cambridge_Bay" , 0x0058CE },
+ { "America/Campo_Grande" , 0x005BF6 },
+ { "America/Cancun" , 0x005EE5 },
+ { "America/Caracas" , 0x006127 },
+ { "America/Catamarca" , 0x00618E },
+ { "America/Cayenne" , 0x006334 },
+ { "America/Cayman" , 0x006396 },
+ { "America/Chicago" , 0x0063EB },
+ { "America/Chihuahua" , 0x006902 },
+ { "America/Coral_Harbour" , 0x006B6D },
+ { "America/Cordoba" , 0x006BFF },
+ { "America/Costa_Rica" , 0x006DA5 },
+ { "America/Creston" , 0x006E2F },
+ { "America/Cuiaba" , 0x006EBB },
+ { "America/Curacao" , 0x007199 },
+ { "America/Danmarkshavn" , 0x0071FF },
+ { "America/Dawson" , 0x007343 },
+ { "America/Dawson_Creek" , 0x007660 },
+ { "America/Denver" , 0x00783A },
+ { "America/Detroit" , 0x007BC0 },
+ { "America/Dominica" , 0x007F1F },
+ { "America/Edmonton" , 0x007F74 },
+ { "America/Eirunepe" , 0x00832C },
+ { "America/El_Salvador" , 0x008444 },
+ { "America/Ensenada" , 0x0084B9 },
+ { "America/Fort_Wayne" , 0x008960 },
+ { "America/Fortaleza" , 0x008822 },
+ { "America/Glace_Bay" , 0x008BCA },
+ { "America/Godthab" , 0x008F41 },
+ { "America/Goose_Bay" , 0x009205 },
+ { "America/Grand_Turk" , 0x0096C2 },
+ { "America/Grenada" , 0x009971 },
+ { "America/Guadeloupe" , 0x0099C6 },
+ { "America/Guatemala" , 0x009A1B },
+ { "America/Guayaquil" , 0x009AA4 },
+ { "America/Guyana" , 0x009B01 },
+ { "America/Halifax" , 0x009B82 },
+ { "America/Havana" , 0x00A098 },
+ { "America/Hermosillo" , 0x00A40B },
+ { "America/Indiana/Indianapolis" , 0x00A4E9 },
+ { "America/Indiana/Knox" , 0x00A77A },
+ { "America/Indiana/Marengo" , 0x00AB11 },
+ { "America/Indiana/Petersburg" , 0x00ADB7 },
+ { "America/Indiana/Tell_City" , 0x00B304 },
+ { "America/Indiana/Vevay" , 0x00B59D },
+ { "America/Indiana/Vincennes" , 0x00B7D8 },
+ { "America/Indiana/Winamac" , 0x00BA8C },
+ { "America/Indianapolis" , 0x00B09A },
+ { "America/Inuvik" , 0x00BD45 },
+ { "America/Iqaluit" , 0x00C03C },
+ { "America/Jamaica" , 0x00C35E },
+ { "America/Jujuy" , 0x00C423 },
+ { "America/Juneau" , 0x00C5CD },
+ { "America/Kentucky/Louisville" , 0x00C94B },
+ { "America/Kentucky/Monticello" , 0x00CD69 },
+ { "America/Knox_IN" , 0x00D0EE },
+ { "America/Kralendijk" , 0x00D45F },
+ { "America/La_Paz" , 0x00D4C5 },
+ { "America/Lima" , 0x00D52C },
+ { "America/Los_Angeles" , 0x00D5D4 },
+ { "America/Louisville" , 0x00D9E5 },
+ { "America/Lower_Princes" , 0x00DDDA },
+ { "America/Maceio" , 0x00DE40 },
+ { "America/Managua" , 0x00DF7A },
+ { "America/Manaus" , 0x00E02D },
+ { "America/Marigot" , 0x00E12F },
+ { "America/Martinique" , 0x00E184 },
+ { "America/Matamoros" , 0x00E1F0 },
+ { "America/Mazatlan" , 0x00E449 },
+ { "America/Mendoza" , 0x00E6B6 },
+ { "America/Menominee" , 0x00E86A },
+ { "America/Merida" , 0x00EBEB },
+ { "America/Metlakatla" , 0x00EE26 },
+ { "America/Mexico_City" , 0x00EF60 },
+ { "America/Miquelon" , 0x00F1DB },
+ { "America/Moncton" , 0x00F44D },
+ { "America/Monterrey" , 0x00F8E4 },
+ { "America/Montevideo" , 0x00FB47 },
+ { "America/Montreal" , 0x00FE59 },
+ { "America/Montserrat" , 0x010349 },
+ { "America/Nassau" , 0x01039E },
+ { "America/New_York" , 0x0106E3 },
+ { "America/Nipigon" , 0x010BEE },
+ { "America/Nome" , 0x010F3F },
+ { "America/Noronha" , 0x0112BD },
+ { "America/North_Dakota/Beulah" , 0x0113ED },
+ { "America/North_Dakota/Center" , 0x011781 },
+ { "America/North_Dakota/New_Salem" , 0x011B15 },
+ { "America/Ojinaga" , 0x011EBE },
+ { "America/Panama" , 0x01211F },
+ { "America/Pangnirtung" , 0x012174 },
+ { "America/Paramaribo" , 0x0124AA },
+ { "America/Phoenix" , 0x01253C },
+ { "America/Port-au-Prince" , 0x0125FA },
+ { "America/Port_of_Spain" , 0x01291E },
+ { "America/Porto_Acre" , 0x01281A },
+ { "America/Porto_Velho" , 0x012973 },
+ { "America/Puerto_Rico" , 0x012A69 },
+ { "America/Rainy_River" , 0x012AD4 },
+ { "America/Rankin_Inlet" , 0x012E0C },
+ { "America/Recife" , 0x0130F2 },
+ { "America/Regina" , 0x01321C },
+ { "America/Resolute" , 0x0133DA },
+ { "America/Rio_Branco" , 0x0136CB },
+ { "America/Rosario" , 0x0137D3 },
+ { "America/Santa_Isabel" , 0x013979 },
+ { "America/Santarem" , 0x013D1C },
+ { "America/Santiago" , 0x013E21 },
+ { "America/Santo_Domingo" , 0x0141CA },
+ { "America/Sao_Paulo" , 0x014290 },
+ { "America/Scoresbysund" , 0x01459F },
+ { "America/Shiprock" , 0x01488D },
+ { "America/Sitka" , 0x014C06 },
+ { "America/St_Barthelemy" , 0x014F8E },
+ { "America/St_Johns" , 0x014FE3 },
+ { "America/St_Kitts" , 0x015536 },
+ { "America/St_Lucia" , 0x01558B },
+ { "America/St_Thomas" , 0x0155E0 },
+ { "America/St_Vincent" , 0x015635 },
+ { "America/Swift_Current" , 0x01568A },
+ { "America/Tegucigalpa" , 0x0157AB },
+ { "America/Thule" , 0x01582A },
+ { "America/Thunder_Bay" , 0x015A71 },
+ { "America/Tijuana" , 0x015DBA },
+ { "America/Toronto" , 0x016153 },
+ { "America/Tortola" , 0x016673 },
+ { "America/Vancouver" , 0x0166C8 },
+ { "America/Virgin" , 0x016B05 },
+ { "America/Whitehorse" , 0x016B5A },
+ { "America/Winnipeg" , 0x016E77 },
+ { "America/Yakutat" , 0x0172B7 },
+ { "America/Yellowknife" , 0x017622 },
+ { "Antarctica/Casey" , 0x017932 },
+ { "Antarctica/Davis" , 0x0179CF },
+ { "Antarctica/DumontDUrville" , 0x017A70 },
+ { "Antarctica/Macquarie" , 0x017B02 },
+ { "Antarctica/Mawson" , 0x017D49 },
+ { "Antarctica/McMurdo" , 0x017DC5 },
+ { "Antarctica/Palmer" , 0x018170 },
+ { "Antarctica/Rothera" , 0x01848C },
+ { "Antarctica/South_Pole" , 0x018502 },
+ { "Antarctica/Syowa" , 0x018880 },
+ { "Antarctica/Vostok" , 0x0188EE },
+ { "Arctic/Longyearbyen" , 0x01895F },
+ { "Asia/Aden" , 0x018C91 },
+ { "Asia/Almaty" , 0x018CE6 },
+ { "Asia/Amman" , 0x018E65 },
+ { "Asia/Anadyr" , 0x019037 },
+ { "Asia/Aqtau" , 0x01921C },
+ { "Asia/Aqtobe" , 0x01941B },
+ { "Asia/Ashgabat" , 0x0195D3 },
+ { "Asia/Ashkhabad" , 0x0196F0 },
+ { "Asia/Baghdad" , 0x01980D },
+ { "Asia/Bahrain" , 0x019982 },
+ { "Asia/Baku" , 0x0199E8 },
+ { "Asia/Bangkok" , 0x019CD0 },
+ { "Asia/Beirut" , 0x019D25 },
+ { "Asia/Bishkek" , 0x01A032 },
+ { "Asia/Brunei" , 0x01A1DE },
+ { "Asia/Calcutta" , 0x01A240 },
+ { "Asia/Choibalsan" , 0x01A2B9 },
+ { "Asia/Chongqing" , 0x01A432 },
+ { "Asia/Chungking" , 0x01A521 },
+ { "Asia/Colombo" , 0x01A5D0 },
+ { "Asia/Dacca" , 0x01A66C },
+ { "Asia/Damascus" , 0x01A712 },
+ { "Asia/Dhaka" , 0x01AA62 },
+ { "Asia/Dili" , 0x01AB08 },
+ { "Asia/Dubai" , 0x01AB92 },
+ { "Asia/Dushanbe" , 0x01ABE7 },
+ { "Asia/Gaza" , 0x01ACEA },
+ { "Asia/Harbin" , 0x01B03D },
+ { "Asia/Hebron" , 0x01B124 },
+ { "Asia/Ho_Chi_Minh" , 0x01B480 },
+ { "Asia/Hong_Kong" , 0x01B4F8 },
+ { "Asia/Hovd" , 0x01B6BA },
+ { "Asia/Irkutsk" , 0x01B832 },
+ { "Asia/Istanbul" , 0x01BA18 },
+ { "Asia/Jakarta" , 0x01BE05 },
+ { "Asia/Jayapura" , 0x01BEAF },
+ { "Asia/Jerusalem" , 0x01BF4B },
+ { "Asia/Kabul" , 0x01C27A },
+ { "Asia/Kamchatka" , 0x01C2CB },
+ { "Asia/Karachi" , 0x01C4A7 },
+ { "Asia/Kashgar" , 0x01C55C },
+ { "Asia/Kathmandu" , 0x01C62D },
+ { "Asia/Katmandu" , 0x01C693 },
+ { "Asia/Khandyga" , 0x01C6F9 },
+ { "Asia/Kolkata" , 0x01C91E },
+ { "Asia/Krasnoyarsk" , 0x01C997 },
+ { "Asia/Kuala_Lumpur" , 0x01CB7F },
+ { "Asia/Kuching" , 0x01CC3C },
+ { "Asia/Kuwait" , 0x01CD2A },
+ { "Asia/Macao" , 0x01CD7F },
+ { "Asia/Macau" , 0x01CEBA },
+ { "Asia/Magadan" , 0x01CFF5 },
+ { "Asia/Makassar" , 0x01D1D7 },
+ { "Asia/Manila" , 0x01D29C },
+ { "Asia/Muscat" , 0x01D321 },
+ { "Asia/Nicosia" , 0x01D376 },
+ { "Asia/Novokuznetsk" , 0x01D65E },
+ { "Asia/Novosibirsk" , 0x01D860 },
+ { "Asia/Omsk" , 0x01DA4B },
+ { "Asia/Oral" , 0x01DC32 },
+ { "Asia/Phnom_Penh" , 0x01DE02 },
+ { "Asia/Pontianak" , 0x01DE7A },
+ { "Asia/Pyongyang" , 0x01DF3C },
+ { "Asia/Qatar" , 0x01DFA9 },
+ { "Asia/Qyzylorda" , 0x01E00F },
+ { "Asia/Rangoon" , 0x01E1E5 },
+ { "Asia/Riyadh" , 0x01E25D },
+ { "Asia/Saigon" , 0x01E2B2 },
+ { "Asia/Sakhalin" , 0x01E32A },
+ { "Asia/Samarkand" , 0x01E521 },
+ { "Asia/Seoul" , 0x01E657 },
+ { "Asia/Shanghai" , 0x01E6FB },
+ { "Asia/Singapore" , 0x01E7DB },
+ { "Asia/Taipei" , 0x01E892 },
+ { "Asia/Tashkent" , 0x01E9AA },
+ { "Asia/Tbilisi" , 0x01EADB },
+ { "Asia/Tehran" , 0x01EC95 },
+ { "Asia/Tel_Aviv" , 0x01EF03 },
+ { "Asia/Thimbu" , 0x01F232 },
+ { "Asia/Thimphu" , 0x01F298 },
+ { "Asia/Tokyo" , 0x01F2FE },
+ { "Asia/Ujung_Pandang" , 0x01F387 },
+ { "Asia/Ulaanbaatar" , 0x01F404 },
+ { "Asia/Ulan_Bator" , 0x01F55F },
+ { "Asia/Urumqi" , 0x01F6AC },
+ { "Asia/Ust-Nera" , 0x01F773 },
+ { "Asia/Vientiane" , 0x01F978 },
+ { "Asia/Vladivostok" , 0x01F9F0 },
+ { "Asia/Yakutsk" , 0x01FBDC },
+ { "Asia/Yekaterinburg" , 0x01FDC1 },
+ { "Asia/Yerevan" , 0x01FFCC },
+ { "Atlantic/Azores" , 0x0201CC },
+ { "Atlantic/Bermuda" , 0x0206CF },
+ { "Atlantic/Canary" , 0x0209B0 },
+ { "Atlantic/Cape_Verde" , 0x020C86 },
+ { "Atlantic/Faeroe" , 0x020CFF },
+ { "Atlantic/Faroe" , 0x020FA3 },
+ { "Atlantic/Jan_Mayen" , 0x021247 },
+ { "Atlantic/Madeira" , 0x021579 },
+ { "Atlantic/Reykjavik" , 0x021A82 },
+ { "Atlantic/South_Georgia" , 0x021C3B },
+ { "Atlantic/St_Helena" , 0x021E4D },
+ { "Atlantic/Stanley" , 0x021C7F },
+ { "Australia/ACT" , 0x021EA2 },
+ { "Australia/Adelaide" , 0x0221BF },
+ { "Australia/Brisbane" , 0x0224EB },
+ { "Australia/Broken_Hill" , 0x0225B2 },
+ { "Australia/Canberra" , 0x0228F0 },
+ { "Australia/Currie" , 0x022C0D },
+ { "Australia/Darwin" , 0x022F40 },
+ { "Australia/Eucla" , 0x022FC6 },
+ { "Australia/Hobart" , 0x02309B },
+ { "Australia/LHI" , 0x0233F9 },
+ { "Australia/Lindeman" , 0x023694 },
+ { "Australia/Lord_Howe" , 0x023775 },
+ { "Australia/Melbourne" , 0x023A20 },
+ { "Australia/North" , 0x023D45 },
+ { "Australia/NSW" , 0x023DB9 },
+ { "Australia/Perth" , 0x0240D6 },
+ { "Australia/Queensland" , 0x0241AE },
+ { "Australia/South" , 0x02425A },
+ { "Australia/Sydney" , 0x024577 },
+ { "Australia/Tasmania" , 0x0248B4 },
+ { "Australia/Victoria" , 0x024BF9 },
+ { "Australia/West" , 0x024F16 },
+ { "Australia/Yancowinna" , 0x024FCC },
+ { "Brazil/Acre" , 0x0252EE },
+ { "Brazil/DeNoronha" , 0x0253F2 },
+ { "Brazil/East" , 0x025512 },
+ { "Brazil/West" , 0x0257EF },
+ { "Canada/Atlantic" , 0x0258E7 },
+ { "Canada/Central" , 0x025DCF },
+ { "Canada/East-Saskatchewan" , 0x0266D9 },
+ { "Canada/Eastern" , 0x0261E9 },
+ { "Canada/Mountain" , 0x026862 },
+ { "Canada/Newfoundland" , 0x026BD8 },
+ { "Canada/Pacific" , 0x027103 },
+ { "Canada/Saskatchewan" , 0x02751C },
+ { "Canada/Yukon" , 0x0276A5 },
+ { "CET" , 0x0279A8 },
+ { "Chile/Continental" , 0x027CB1 },
+ { "Chile/EasterIsland" , 0x02804C },
+ { "CST6CDT" , 0x02838E },
+ { "Cuba" , 0x0286DF },
+ { "EET" , 0x028A52 },
+ { "Egypt" , 0x028D05 },
+ { "Eire" , 0x028FC8 },
+ { "EST" , 0x0294D9 },
+ { "EST5EDT" , 0x02951D },
+ { "Etc/GMT" , 0x02986E },
+ { "Etc/GMT+0" , 0x02993A },
+ { "Etc/GMT+1" , 0x0299C4 },
+ { "Etc/GMT+10" , 0x029A51 },
+ { "Etc/GMT+11" , 0x029ADF },
+ { "Etc/GMT+12" , 0x029B6D },
+ { "Etc/GMT+2" , 0x029C88 },
+ { "Etc/GMT+3" , 0x029D14 },
+ { "Etc/GMT+4" , 0x029DA0 },
+ { "Etc/GMT+5" , 0x029E2C },
+ { "Etc/GMT+6" , 0x029EB8 },
+ { "Etc/GMT+7" , 0x029F44 },
+ { "Etc/GMT+8" , 0x029FD0 },
+ { "Etc/GMT+9" , 0x02A05C },
+ { "Etc/GMT-0" , 0x0298F6 },
+ { "Etc/GMT-1" , 0x02997E },
+ { "Etc/GMT-10" , 0x029A0A },
+ { "Etc/GMT-11" , 0x029A98 },
+ { "Etc/GMT-12" , 0x029B26 },
+ { "Etc/GMT-13" , 0x029BB4 },
+ { "Etc/GMT-14" , 0x029BFB },
+ { "Etc/GMT-2" , 0x029C42 },
+ { "Etc/GMT-3" , 0x029CCE },
+ { "Etc/GMT-4" , 0x029D5A },
+ { "Etc/GMT-5" , 0x029DE6 },
+ { "Etc/GMT-6" , 0x029E72 },
+ { "Etc/GMT-7" , 0x029EFE },
+ { "Etc/GMT-8" , 0x029F8A },
+ { "Etc/GMT-9" , 0x02A016 },
+ { "Etc/GMT0" , 0x0298B2 },
+ { "Etc/Greenwich" , 0x02A0A2 },
+ { "Etc/UCT" , 0x02A0E6 },
+ { "Etc/Universal" , 0x02A12A },
+ { "Etc/UTC" , 0x02A16E },
+ { "Etc/Zulu" , 0x02A1B2 },
+ { "Europe/Amsterdam" , 0x02A1F6 },
+ { "Europe/Andorra" , 0x02A634 },
+ { "Europe/Athens" , 0x02A8B0 },
+ { "Europe/Belfast" , 0x02ABF3 },
+ { "Europe/Belgrade" , 0x02B12A },
+ { "Europe/Berlin" , 0x02B3F3 },
+ { "Europe/Bratislava" , 0x02B757 },
+ { "Europe/Brussels" , 0x02BA89 },
+ { "Europe/Bucharest" , 0x02BEC0 },
+ { "Europe/Budapest" , 0x02C1EA },
+ { "Europe/Busingen" , 0x02C55D },
+ { "Europe/Chisinau" , 0x02C814 },
+ { "Europe/Copenhagen" , 0x02CBA2 },
+ { "Europe/Dublin" , 0x02CEAC },
+ { "Europe/Gibraltar" , 0x02D3BD },
+ { "Europe/Guernsey" , 0x02D814 },
+ { "Europe/Helsinki" , 0x02DD4B },
+ { "Europe/Isle_of_Man" , 0x02E001 },
+ { "Europe/Istanbul" , 0x02E538 },
+ { "Europe/Jersey" , 0x02E925 },
+ { "Europe/Kaliningrad" , 0x02EE5C },
+ { "Europe/Kiev" , 0x02F0C2 },
+ { "Europe/Lisbon" , 0x02F3D9 },
+ { "Europe/Ljubljana" , 0x02F8DD },
+ { "Europe/London" , 0x02FBA6 },
+ { "Europe/Luxembourg" , 0x0300DD },
+ { "Europe/Madrid" , 0x030533 },
+ { "Europe/Malta" , 0x0308F9 },
+ { "Europe/Mariehamn" , 0x030CB2 },
+ { "Europe/Minsk" , 0x030F68 },
+ { "Europe/Monaco" , 0x031176 },
+ { "Europe/Moscow" , 0x0315B1 },
+ { "Europe/Nicosia" , 0x031802 },
+ { "Europe/Oslo" , 0x031AEA },
+ { "Europe/Paris" , 0x031E1C },
+ { "Europe/Podgorica" , 0x032262 },
+ { "Europe/Prague" , 0x03252B },
+ { "Europe/Riga" , 0x03285D },
+ { "Europe/Rome" , 0x032BA2 },
+ { "Europe/Samara" , 0x032F65 },
+ { "Europe/San_Marino" , 0x033198 },
+ { "Europe/Sarajevo" , 0x03355B },
+ { "Europe/Simferopol" , 0x033824 },
+ { "Europe/Skopje" , 0x033B4F },
+ { "Europe/Sofia" , 0x033E18 },
+ { "Europe/Stockholm" , 0x034120 },
+ { "Europe/Tallinn" , 0x0343CF },
+ { "Europe/Tirane" , 0x034709 },
+ { "Europe/Tiraspol" , 0x034A0F },
+ { "Europe/Uzhgorod" , 0x034D9D },
+ { "Europe/Vaduz" , 0x0350B4 },
+ { "Europe/Vatican" , 0x035363 },
+ { "Europe/Vienna" , 0x035726 },
+ { "Europe/Vilnius" , 0x035A53 },
+ { "Europe/Volgograd" , 0x035D92 },
+ { "Europe/Warsaw" , 0x035F92 },
+ { "Europe/Zagreb" , 0x036373 },
+ { "Europe/Zaporozhye" , 0x03663C },
+ { "Europe/Zurich" , 0x03697D },
+ { "Factory" , 0x036C2C },
+ { "GB" , 0x036C9D },
+ { "GB-Eire" , 0x0371D4 },
+ { "GMT" , 0x03770B },
+ { "GMT+0" , 0x0377D7 },
+ { "GMT-0" , 0x037793 },
+ { "GMT0" , 0x03774F },
+ { "Greenwich" , 0x03781B },
+ { "Hongkong" , 0x03785F },
+ { "HST" , 0x037A21 },
+ { "Iceland" , 0x037A65 },
+ { "Indian/Antananarivo" , 0x037C1E },
+ { "Indian/Chagos" , 0x037C92 },
+ { "Indian/Christmas" , 0x037CF4 },
+ { "Indian/Cocos" , 0x037D38 },
+ { "Indian/Comoro" , 0x037D7C },
+ { "Indian/Kerguelen" , 0x037DD1 },
+ { "Indian/Mahe" , 0x037E26 },
+ { "Indian/Maldives" , 0x037E7B },
+ { "Indian/Mauritius" , 0x037ED0 },
+ { "Indian/Mayotte" , 0x037F46 },
+ { "Indian/Reunion" , 0x037F9B },
+ { "Iran" , 0x037FF0 },
+ { "Israel" , 0x03825E },
+ { "Jamaica" , 0x03858D },
+ { "Japan" , 0x038652 },
+ { "Kwajalein" , 0x0386DB },
+ { "Libya" , 0x03873E },
+ { "MET" , 0x038847 },
+ { "Mexico/BajaNorte" , 0x038B50 },
+ { "Mexico/BajaSur" , 0x038EB9 },
+ { "Mexico/General" , 0x0390FE },
+ { "MST" , 0x03935C },
+ { "MST7MDT" , 0x0393A0 },
+ { "Navajo" , 0x0396F1 },
+ { "NZ" , 0x039A6A },
+ { "NZ-CHAT" , 0x039DE8 },
+ { "Pacific/Apia" , 0x03A0D0 },
+ { "Pacific/Auckland" , 0x03A26C },
+ { "Pacific/Chatham" , 0x03A5F8 },
+ { "Pacific/Chuuk" , 0x03A8EF },
+ { "Pacific/Easter" , 0x03A948 },
+ { "Pacific/Efate" , 0x03ACA6 },
+ { "Pacific/Enderbury" , 0x03AD6C },
+ { "Pacific/Fakaofo" , 0x03ADDA },
+ { "Pacific/Fiji" , 0x03AE2B },
+ { "Pacific/Funafuti" , 0x03AFBE },
+ { "Pacific/Galapagos" , 0x03B002 },
+ { "Pacific/Gambier" , 0x03B07A },
+ { "Pacific/Guadalcanal" , 0x03B0DF },
+ { "Pacific/Guam" , 0x03B134 },
+ { "Pacific/Honolulu" , 0x03B18A },
+ { "Pacific/Johnston" , 0x03B201 },
+ { "Pacific/Kiritimati" , 0x03B280 },
+ { "Pacific/Kosrae" , 0x03B2EB },
+ { "Pacific/Kwajalein" , 0x03B348 },
+ { "Pacific/Majuro" , 0x03B3B4 },
+ { "Pacific/Marquesas" , 0x03B413 },
+ { "Pacific/Midway" , 0x03B47A },
+ { "Pacific/Nauru" , 0x03B504 },
+ { "Pacific/Niue" , 0x03B57C },
+ { "Pacific/Norfolk" , 0x03B5DA },
+ { "Pacific/Noumea" , 0x03B62F },
+ { "Pacific/Pago_Pago" , 0x03B6BF },
+ { "Pacific/Palau" , 0x03B748 },
+ { "Pacific/Pitcairn" , 0x03B78C },
+ { "Pacific/Pohnpei" , 0x03B7E1 },
+ { "Pacific/Ponape" , 0x03B836 },
+ { "Pacific/Port_Moresby" , 0x03B87B },
+ { "Pacific/Rarotonga" , 0x03B8BF },
+ { "Pacific/Saipan" , 0x03B99B },
+ { "Pacific/Samoa" , 0x03B9FE },
+ { "Pacific/Tahiti" , 0x03BA87 },
+ { "Pacific/Tarawa" , 0x03BAEC },
+ { "Pacific/Tongatapu" , 0x03BB40 },
+ { "Pacific/Truk" , 0x03BBCC },
+ { "Pacific/Wake" , 0x03BC11 },
+ { "Pacific/Wallis" , 0x03BC61 },
+ { "Pacific/Yap" , 0x03BCA5 },
+ { "Poland" , 0x03BCEA },
+ { "Portugal" , 0x03C0CB },
+ { "PRC" , 0x03C5C7 },
+ { "PST8PDT" , 0x03C678 },
+ { "ROC" , 0x03C9C9 },
+ { "ROK" , 0x03CAE1 },
+ { "Singapore" , 0x03CB85 },
+ { "Turkey" , 0x03CC3C },
+ { "UCT" , 0x03D029 },
+ { "Universal" , 0x03D06D },
+ { "US/Alaska" , 0x03D0B1 },
+ { "US/Aleutian" , 0x03D41A },
+ { "US/Arizona" , 0x03D780 },
+ { "US/Central" , 0x03D80E },
+ { "US/East-Indiana" , 0x03E218 },
+ { "US/Eastern" , 0x03DD19 },
+ { "US/Hawaii" , 0x03E482 },
+ { "US/Indiana-Starke" , 0x03E4F3 },
+ { "US/Michigan" , 0x03E864 },
+ { "US/Mountain" , 0x03EB9B },
+ { "US/Pacific" , 0x03EF14 },
+ { "US/Pacific-New" , 0x03F319 },
+ { "US/Samoa" , 0x03F71E },
+ { "UTC" , 0x03F7A7 },
+ { "W-SU" , 0x03FA9E },
+ { "WET" , 0x03F7EB },
+ { "Zulu" , 0x03FCD8 },
};
/* This is a generated file, do not modify */
-const unsigned char timelib_timezone_db_data_builtin[261381] = {
+const unsigned char timelib_timezone_db_data_builtin[261404] = {
/* Africa/Abidjan */
@@ -758,7 +758,7 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
/* Africa/Casablanca */
0x50, 0x48, 0x50, 0x31, 0x01, 0x4D, 0x41, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x5F, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0x51, 0xF9, 0x9C,
+0x00, 0x00, 0x00, 0x65, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0x51, 0xF9, 0x9C,
0xC6, 0xFF, 0x14, 0x80, 0xC7, 0x58, 0xAC, 0x70, 0xC7, 0xD9, 0xED, 0x80, 0xD2, 0xA1, 0x32, 0xF0,
0xDB, 0x35, 0xA4, 0x00, 0xDB, 0xEE, 0x27, 0xF0, 0xFB, 0x25, 0x72, 0x40, 0xFB, 0xC2, 0xEF, 0x70,
0x08, 0x6B, 0x84, 0x80, 0x08, 0xC6, 0x6D, 0xF0, 0x0B, 0xE8, 0x0C, 0x00, 0x0C, 0x61, 0x47, 0xF0,
@@ -767,32 +767,34 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
0x4A, 0x23, 0x1A, 0x00, 0x4A, 0x8D, 0xD5, 0x70, 0x4B, 0xDC, 0xC0, 0x80, 0x4C, 0x5D, 0xE5, 0x70,
0x4D, 0x97, 0xB8, 0x80, 0x4E, 0x34, 0x8C, 0xF0, 0x4F, 0x9C, 0xA0, 0xA0, 0x50, 0x08, 0xBB, 0xA0,
0x50, 0x31, 0x9A, 0x20, 0x50, 0x67, 0xA7, 0xA0, 0x51, 0x7C, 0x82, 0xA0, 0x51, 0xD8, 0xCB, 0xA0,
-0x52, 0x05, 0x9E, 0xA0, 0x52, 0x47, 0x89, 0xA0, 0x53, 0x5C, 0x64, 0xA0, 0x53, 0xAF, 0x73, 0x20,
-0x53, 0xD7, 0x00, 0x20, 0x54, 0x27, 0x6B, 0xA0, 0x55, 0x3C, 0x46, 0xA0, 0x55, 0x82, 0x26, 0x20,
-0x55, 0xA9, 0xB3, 0x20, 0x56, 0x07, 0x4D, 0xA0, 0x57, 0x1C, 0x28, 0xA0, 0x57, 0x56, 0x2A, 0xA0,
-0x57, 0x7D, 0xB7, 0xA0, 0x57, 0xE7, 0x2F, 0xA0, 0x59, 0x05, 0x45, 0x20, 0x59, 0x28, 0xDD, 0xA0,
-0x59, 0x50, 0x6A, 0xA0, 0x59, 0xC7, 0x11, 0xA0, 0x5A, 0xE5, 0x27, 0x20, 0x5A, 0xFB, 0x90, 0xA0,
-0x5B, 0x23, 0x1D, 0xA0, 0x5B, 0xB0, 0x2E, 0x20, 0x5C, 0xC5, 0x09, 0x20, 0x5C, 0xCF, 0x95, 0x20,
-0x5C, 0xF7, 0x22, 0x20, 0x5D, 0x90, 0x10, 0x20, 0x5E, 0xC9, 0xD5, 0x20, 0x5F, 0x6F, 0xF2, 0x20,
-0x60, 0x9C, 0x88, 0x20, 0x61, 0x4F, 0xD4, 0x20, 0x62, 0x70, 0x8C, 0xA0, 0x63, 0x2F, 0xB6, 0x20,
-0x64, 0x4D, 0xCB, 0xA0, 0x65, 0x0F, 0x98, 0x20, 0x66, 0x2D, 0xAD, 0xA0, 0x66, 0xF8, 0xB4, 0xA0,
-0x68, 0x0D, 0x8F, 0xA0, 0x68, 0xD8, 0x96, 0xA0, 0x69, 0xED, 0x71, 0xA0, 0x6A, 0xB8, 0x78, 0xA0,
-0x6B, 0xCD, 0x53, 0xA0, 0x6C, 0x98, 0x5A, 0xA0, 0x6D, 0xB6, 0x70, 0x20, 0x6E, 0x78, 0x3C, 0xA0,
-0x6F, 0x96, 0x52, 0x20, 0x70, 0x61, 0x59, 0x20, 0x71, 0x76, 0x34, 0x20, 0x72, 0x41, 0x3B, 0x20,
-0x73, 0x56, 0x16, 0x20, 0x74, 0x21, 0x1D, 0x20, 0x75, 0x35, 0xF8, 0x20, 0x76, 0x00, 0xFF, 0x20,
-0x77, 0x15, 0xDA, 0x20, 0x77, 0xE0, 0xE1, 0x20, 0x78, 0xFE, 0xF6, 0xA0, 0x79, 0xC0, 0xC3, 0x20,
-0x7A, 0xDE, 0xD8, 0xA0, 0x7B, 0xA9, 0xDF, 0xA0, 0x7C, 0xBE, 0xBA, 0xA0, 0x7D, 0x89, 0xC1, 0xA0,
-0x7E, 0x9E, 0x9C, 0xA0, 0x7F, 0x69, 0xA3, 0xA0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x52, 0x05, 0x9E, 0xA0, 0x52, 0x6C, 0x73, 0xA0, 0x53, 0x37, 0x7A, 0xA0, 0x53, 0xAF, 0x73, 0x20,
+0x53, 0xD7, 0x00, 0x20, 0x54, 0x4C, 0x55, 0xA0, 0x55, 0x17, 0x5C, 0xA0, 0x55, 0x82, 0x26, 0x20,
+0x55, 0xA9, 0xB3, 0x20, 0x56, 0x2C, 0x37, 0xA0, 0x56, 0xF7, 0x3E, 0xA0, 0x57, 0x56, 0x2A, 0xA0,
+0x57, 0x7D, 0xB7, 0xA0, 0x58, 0x15, 0x54, 0x20, 0x58, 0xD7, 0x20, 0xA0, 0x59, 0x28, 0xDD, 0xA0,
+0x59, 0x50, 0x6A, 0xA0, 0x59, 0xF5, 0x36, 0x20, 0x5A, 0xB7, 0x02, 0xA0, 0x5A, 0xFB, 0x90, 0xA0,
+0x5B, 0x23, 0x1D, 0xA0, 0x5B, 0xD5, 0x18, 0x20, 0x5C, 0xA0, 0x1F, 0x20, 0x5C, 0xCF, 0x95, 0x20,
+0x5C, 0xF7, 0x22, 0x20, 0x5D, 0xB4, 0xFA, 0x20, 0x5E, 0x80, 0x01, 0x20, 0x5E, 0xA2, 0x48, 0x20,
+0x5E, 0xC9, 0xD5, 0x20, 0x5F, 0x94, 0xDC, 0x20, 0x60, 0x5F, 0xE3, 0x20, 0x60, 0x74, 0xFB, 0x20,
+0x60, 0x9C, 0x88, 0x20, 0x61, 0x7D, 0xF8, 0xA0, 0x62, 0x3F, 0xC5, 0x20, 0x62, 0x48, 0xFF, 0xA0,
+0x62, 0x70, 0x8C, 0xA0, 0x63, 0x5D, 0xDA, 0xA0, 0x64, 0x43, 0x3F, 0xA0, 0x65, 0x3D, 0xBC, 0xA0,
+0x66, 0x15, 0xF2, 0xA0, 0x67, 0x1D, 0x9E, 0xA0, 0x67, 0xE9, 0xF7, 0x20, 0x68, 0xFD, 0x80, 0xA0,
+0x69, 0xC8, 0x87, 0xA0, 0x6A, 0xDD, 0x62, 0xA0, 0x6B, 0xA8, 0x69, 0xA0, 0x6C, 0xC6, 0x7F, 0x20,
+0x6D, 0x88, 0x4B, 0xA0, 0x6E, 0xA6, 0x61, 0x20, 0x6F, 0x68, 0x2D, 0xA0, 0x70, 0x86, 0x43, 0x20,
+0x71, 0x51, 0x4A, 0x20, 0x72, 0x66, 0x25, 0x20, 0x73, 0x31, 0x2C, 0x20, 0x74, 0x46, 0x07, 0x20,
+0x75, 0x11, 0x0E, 0x20, 0x76, 0x2F, 0x23, 0xA0, 0x76, 0xF0, 0xF0, 0x20, 0x78, 0x0F, 0x05, 0xA0,
+0x78, 0xD0, 0xD2, 0x20, 0x79, 0xEE, 0xE7, 0xA0, 0x7A, 0xB0, 0xB4, 0x20, 0x7B, 0xCE, 0xC9, 0xA0,
+0x7C, 0x99, 0xD0, 0xA0, 0x7D, 0xA8, 0x14, 0x20, 0x7E, 0x79, 0xB2, 0xA0, 0x7F, 0x7C, 0x18, 0xA0,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xF8, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x0E,
-0x10, 0x01, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0D, 0x4C,
-0x4D, 0x54, 0x00, 0x57, 0x45, 0x53, 0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0xAC, 0xC8, 0x01, 0x07, 0x16, 0x42,
-0x00, 0x00, 0x00, 0x00,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x02, 0x01, 0x02, 0x01, 0x02, 0xFF, 0xFF, 0xF8, 0xE4, 0x00, 0x00, 0x00, 0x00, 0x0E, 0x10, 0x01,
+0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x09, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x0D, 0x4C, 0x4D, 0x54,
+0x00, 0x57, 0x45, 0x53, 0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x43, 0x45, 0x54, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBC, 0xAC, 0xC8, 0x01, 0x07, 0x16, 0x42, 0x00, 0x00,
+0x00, 0x00,
/* Africa/Ceuta */
0x50, 0x48, 0x50, 0x31, 0x01, 0x45, 0x53, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -890,12 +892,40 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
/* Africa/El_Aaiun */
0x50, 0x48, 0x50, 0x31, 0x01, 0x45, 0x48, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x0C, 0xBC, 0x48, 0xF0, 0xE0,
-0x0B, 0xD1, 0xB0, 0x90, 0x01, 0x02, 0xFF, 0xFF, 0xF3, 0xA0, 0x00, 0x00, 0xFF, 0xFF, 0xF1, 0xF0,
-0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x08, 0x4C, 0x4D, 0x54, 0x00, 0x57, 0x41, 0x54, 0x00,
-0x57, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xB2, 0xC1, 0xB8, 0x00, 0xFE,
-0x84, 0x40, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x5A, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xBC, 0x48, 0xF0, 0xE0,
+0x0B, 0xD1, 0xB0, 0x90, 0x0B, 0xE8, 0x0C, 0x00, 0x0C, 0x61, 0x47, 0xF0, 0x0D, 0xC9, 0x3F, 0x80,
+0x0E, 0x8E, 0xF2, 0x70, 0x0F, 0xD3, 0x51, 0x80, 0x10, 0x27, 0xA3, 0x70, 0x48, 0x41, 0xE6, 0x80,
+0x48, 0xBB, 0x22, 0x70, 0x4A, 0x23, 0x1A, 0x00, 0x4A, 0x8D, 0xD5, 0x70, 0x4B, 0xDC, 0xC0, 0x80,
+0x4C, 0x5D, 0xE5, 0x70, 0x4D, 0x97, 0xB8, 0x80, 0x4E, 0x34, 0x8C, 0xF0, 0x4F, 0x9C, 0xA0, 0xA0,
+0x50, 0x08, 0xBB, 0xA0, 0x50, 0x31, 0x9A, 0x20, 0x50, 0x67, 0xA7, 0xA0, 0x51, 0x7C, 0x82, 0xA0,
+0x51, 0xD8, 0xCB, 0xA0, 0x52, 0x05, 0x9E, 0xA0, 0x52, 0x6C, 0x73, 0xA0, 0x53, 0x37, 0x7A, 0xA0,
+0x53, 0xAF, 0x73, 0x20, 0x53, 0xD7, 0x00, 0x20, 0x54, 0x4C, 0x55, 0xA0, 0x55, 0x17, 0x5C, 0xA0,
+0x55, 0x82, 0x26, 0x20, 0x55, 0xA9, 0xB3, 0x20, 0x56, 0x2C, 0x37, 0xA0, 0x56, 0xF7, 0x3E, 0xA0,
+0x57, 0x56, 0x2A, 0xA0, 0x57, 0x7D, 0xB7, 0xA0, 0x58, 0x15, 0x54, 0x20, 0x58, 0xD7, 0x20, 0xA0,
+0x59, 0x28, 0xDD, 0xA0, 0x59, 0x50, 0x6A, 0xA0, 0x59, 0xF5, 0x36, 0x20, 0x5A, 0xB7, 0x02, 0xA0,
+0x5A, 0xFB, 0x90, 0xA0, 0x5B, 0x23, 0x1D, 0xA0, 0x5B, 0xD5, 0x18, 0x20, 0x5C, 0xA0, 0x1F, 0x20,
+0x5C, 0xCF, 0x95, 0x20, 0x5C, 0xF7, 0x22, 0x20, 0x5D, 0xB4, 0xFA, 0x20, 0x5E, 0x80, 0x01, 0x20,
+0x5E, 0xA2, 0x48, 0x20, 0x5E, 0xC9, 0xD5, 0x20, 0x5F, 0x94, 0xDC, 0x20, 0x60, 0x5F, 0xE3, 0x20,
+0x60, 0x74, 0xFB, 0x20, 0x60, 0x9C, 0x88, 0x20, 0x61, 0x7D, 0xF8, 0xA0, 0x62, 0x3F, 0xC5, 0x20,
+0x62, 0x48, 0xFF, 0xA0, 0x62, 0x70, 0x8C, 0xA0, 0x63, 0x5D, 0xDA, 0xA0, 0x64, 0x43, 0x3F, 0xA0,
+0x65, 0x3D, 0xBC, 0xA0, 0x66, 0x15, 0xF2, 0xA0, 0x67, 0x1D, 0x9E, 0xA0, 0x67, 0xE9, 0xF7, 0x20,
+0x68, 0xFD, 0x80, 0xA0, 0x69, 0xC8, 0x87, 0xA0, 0x6A, 0xDD, 0x62, 0xA0, 0x6B, 0xA8, 0x69, 0xA0,
+0x6C, 0xC6, 0x7F, 0x20, 0x6D, 0x88, 0x4B, 0xA0, 0x6E, 0xA6, 0x61, 0x20, 0x6F, 0x68, 0x2D, 0xA0,
+0x70, 0x86, 0x43, 0x20, 0x71, 0x51, 0x4A, 0x20, 0x72, 0x66, 0x25, 0x20, 0x73, 0x31, 0x2C, 0x20,
+0x74, 0x46, 0x07, 0x20, 0x75, 0x11, 0x0E, 0x20, 0x76, 0x2F, 0x23, 0xA0, 0x76, 0xF0, 0xF0, 0x20,
+0x78, 0x0F, 0x05, 0xA0, 0x78, 0xD0, 0xD2, 0x20, 0x79, 0xEE, 0xE7, 0xA0, 0x7A, 0xB0, 0xB4, 0x20,
+0x7B, 0xCE, 0xC9, 0xA0, 0x7C, 0x99, 0xD0, 0xA0, 0x7D, 0xA8, 0x14, 0x20, 0x7E, 0x79, 0xB2, 0xA0,
+0x7F, 0x7C, 0x18, 0xA0, 0x01, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
+0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
+0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
+0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
+0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03,
+0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0x02, 0x03, 0xFF, 0xFF,
+0xF3, 0xA0, 0x00, 0x00, 0xFF, 0xFF, 0xF1, 0xF0, 0x00, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x01, 0x08,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x57, 0x41, 0x54, 0x00, 0x57, 0x45,
+0x53, 0x54, 0x00, 0x57, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0xB2, 0xC1, 0xB8, 0x00, 0xFE, 0x84, 0x40, 0x00, 0x00, 0x00, 0x00,
/* Africa/Freetown */
0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x4C, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -1181,7 +1211,7 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
/* Africa/Tripoli */
0x50, 0x48, 0x50, 0x31, 0x01, 0x4C, 0x59, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xA1, 0xF2, 0xC1, 0x24,
+0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xA1, 0xF2, 0xC1, 0x24,
0xDD, 0xBB, 0xB1, 0x10, 0xDE, 0x23, 0xAD, 0x60, 0xE1, 0x78, 0xD2, 0x10, 0xE1, 0xE7, 0x65, 0xE0,
0xE5, 0x2F, 0x3F, 0x70, 0xE5, 0xA9, 0xCC, 0xE0, 0xEB, 0x4E, 0xC6, 0xF0, 0x16, 0x92, 0x42, 0x60,
0x17, 0x08, 0xF7, 0x70, 0x17, 0xFA, 0x2B, 0xE0, 0x18, 0xEA, 0x2A, 0xF0, 0x19, 0xDB, 0x5F, 0x60,
@@ -1189,24 +1219,9 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
0x1E, 0x93, 0x0B, 0x70, 0x1F, 0x82, 0xEE, 0x60, 0x20, 0x70, 0x4A, 0x70, 0x21, 0x61, 0x7E, 0xE0,
0x22, 0x52, 0xCF, 0x70, 0x23, 0x44, 0x03, 0xE0, 0x24, 0x34, 0x02, 0xF0, 0x25, 0x25, 0x37, 0x60,
0x26, 0x40, 0xB7, 0xF0, 0x32, 0x4E, 0xF1, 0x60, 0x33, 0x44, 0x36, 0x70, 0x34, 0x35, 0x6A, 0xE0,
-0x50, 0x9D, 0x99, 0x00, 0x51, 0x54, 0xD9, 0x80, 0x52, 0x69, 0xB4, 0x80, 0x53, 0x34, 0xBB, 0x80,
-0x54, 0x52, 0xD1, 0x00, 0x55, 0x14, 0x9D, 0x80, 0x56, 0x32, 0xB3, 0x00, 0x56, 0xF4, 0x7F, 0x80,
-0x58, 0x12, 0x95, 0x00, 0x58, 0xDD, 0x9C, 0x00, 0x59, 0xF2, 0x77, 0x00, 0x5A, 0xBD, 0x7E, 0x00,
-0x5B, 0xD2, 0x59, 0x00, 0x5C, 0x9D, 0x60, 0x00, 0x5D, 0xB2, 0x3B, 0x00, 0x5E, 0x7D, 0x42, 0x00,
-0x5F, 0x9B, 0x57, 0x80, 0x60, 0x5D, 0x24, 0x00, 0x61, 0x7B, 0x39, 0x80, 0x62, 0x3D, 0x06, 0x00,
-0x63, 0x5B, 0x1B, 0x80, 0x64, 0x26, 0x22, 0x80, 0x65, 0x3A, 0xFD, 0x80, 0x66, 0x06, 0x04, 0x80,
-0x67, 0x1A, 0xDF, 0x80, 0x67, 0xE5, 0xE6, 0x80, 0x69, 0x03, 0xFC, 0x00, 0x69, 0xC5, 0xC8, 0x80,
-0x6A, 0xE3, 0xDE, 0x00, 0x6B, 0xA5, 0xAA, 0x80, 0x6C, 0xC3, 0xC0, 0x00, 0x6D, 0x8E, 0xC7, 0x00,
-0x6E, 0xA3, 0xA2, 0x00, 0x6F, 0x6E, 0xA9, 0x00, 0x70, 0x83, 0x84, 0x00, 0x71, 0x4E, 0x8B, 0x00,
-0x72, 0x63, 0x66, 0x00, 0x73, 0x2E, 0x6D, 0x00, 0x74, 0x4C, 0x82, 0x80, 0x75, 0x0E, 0x4F, 0x00,
-0x76, 0x2C, 0x64, 0x80, 0x76, 0xEE, 0x31, 0x00, 0x78, 0x0C, 0x46, 0x80, 0x78, 0xD7, 0x4D, 0x80,
-0x79, 0xEC, 0x28, 0x80, 0x7A, 0xB7, 0x2F, 0x80, 0x7B, 0xCC, 0x0A, 0x80, 0x7C, 0x97, 0x11, 0x80,
-0x7D, 0xB5, 0x27, 0x00, 0x7E, 0x76, 0xF3, 0x80, 0x7F, 0x95, 0x09, 0x00, 0x02, 0x01, 0x02, 0x01,
+0x50, 0x9D, 0x99, 0x00, 0x51, 0x54, 0xD9, 0x80, 0x52, 0x69, 0xB4, 0x80, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x0C, 0x5C,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x03, 0x02, 0x01, 0x03, 0x00, 0x00, 0x0C, 0x5C,
0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00,
0x1C, 0x20, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54,
0x00, 0x45, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xBB, 0x87,
@@ -2944,7 +2959,7 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
/* America/Eirunepe */
0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0xAA, 0x88, 0x80,
+0x00, 0x00, 0x00, 0x21, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0xAA, 0x88, 0x80,
0xB8, 0x0F, 0x66, 0x00, 0xB8, 0xFD, 0x5C, 0xC0, 0xB9, 0xF1, 0x50, 0x50, 0xBA, 0xDE, 0x90, 0x40,
0xDA, 0x38, 0xCA, 0x50, 0xDA, 0xEC, 0x16, 0x50, 0xDC, 0x19, 0xFD, 0xD0, 0xDC, 0xB9, 0x75, 0x40,
0xDD, 0xFB, 0x31, 0x50, 0xDE, 0x9B, 0xFA, 0x40, 0xDF, 0xDD, 0xB6, 0x50, 0xE0, 0x54, 0x4F, 0x40,
@@ -2952,14 +2967,14 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
0xF8, 0x51, 0x48, 0x50, 0xF8, 0xC7, 0xE1, 0x40, 0xFA, 0x0A, 0xEE, 0xD0, 0xFA, 0xA9, 0x14, 0xC0,
0xFB, 0xEC, 0x22, 0x50, 0xFC, 0x8B, 0x99, 0xC0, 0x1D, 0xC9, 0xAA, 0x50, 0x1E, 0x78, 0xF3, 0xC0,
0x1F, 0xA0, 0x51, 0xD0, 0x20, 0x33, 0xEB, 0xC0, 0x21, 0x81, 0x85, 0x50, 0x22, 0x0B, 0xE4, 0xC0,
-0x2C, 0xC0, 0xD1, 0x50, 0x2D, 0x66, 0xE0, 0x40, 0x48, 0x60, 0x7F, 0x50, 0x02, 0x01, 0x02, 0x01,
+0x2C, 0xC0, 0xD1, 0x50, 0x2D, 0x66, 0xE0, 0x40, 0x48, 0x60, 0x7F, 0x50, 0x52, 0x7F, 0x04, 0xC0,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0xFF, 0xFF, 0xBE, 0x80,
-0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x09, 0xFF, 0xFF,
-0xC7, 0xC0, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x43, 0x53, 0x54, 0x00, 0x41, 0x43, 0x54,
-0x00, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7F, 0x28,
-0x15, 0x00, 0xA8, 0x0C, 0xD5, 0x00, 0x00, 0x00, 0x0A, 0x57, 0x20, 0x41, 0x6D, 0x61, 0x7A, 0x6F,
-0x6E, 0x61, 0x73,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x03,
+0x02, 0xFF, 0xFF, 0xBE, 0x80, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9,
+0xB0, 0x00, 0x09, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x43, 0x53,
+0x54, 0x00, 0x41, 0x43, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
+0x00, 0x00, 0x00, 0x7F, 0x28, 0x15, 0x00, 0xA8, 0x0C, 0xD5, 0x00, 0x00, 0x00, 0x0A, 0x57, 0x20,
+0x41, 0x6D, 0x61, 0x7A, 0x6F, 0x6E, 0x61, 0x73,
/* America/El_Salvador */
0x50, 0x48, 0x50, 0x31, 0x01, 0x53, 0x56, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -5769,7 +5784,7 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
/* America/Porto_Acre */
0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0xAA, 0x86, 0x90,
+0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0xAA, 0x86, 0x90,
0xB8, 0x0F, 0x66, 0x00, 0xB8, 0xFD, 0x5C, 0xC0, 0xB9, 0xF1, 0x50, 0x50, 0xBA, 0xDE, 0x90, 0x40,
0xDA, 0x38, 0xCA, 0x50, 0xDA, 0xEC, 0x16, 0x50, 0xDC, 0x19, 0xFD, 0xD0, 0xDC, 0xB9, 0x75, 0x40,
0xDD, 0xFB, 0x31, 0x50, 0xDE, 0x9B, 0xFA, 0x40, 0xDF, 0xDD, 0xB6, 0x50, 0xE0, 0x54, 0x4F, 0x40,
@@ -5777,12 +5792,13 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
0xF8, 0x51, 0x48, 0x50, 0xF8, 0xC7, 0xE1, 0x40, 0xFA, 0x0A, 0xEE, 0xD0, 0xFA, 0xA9, 0x14, 0xC0,
0xFB, 0xEC, 0x22, 0x50, 0xFC, 0x8B, 0x99, 0xC0, 0x1D, 0xC9, 0xAA, 0x50, 0x1E, 0x78, 0xF3, 0xC0,
0x1F, 0xA0, 0x51, 0xD0, 0x20, 0x33, 0xEB, 0xC0, 0x21, 0x81, 0x85, 0x50, 0x22, 0x0B, 0xE4, 0xC0,
-0x48, 0x60, 0x7F, 0x50, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x48, 0x60, 0x7F, 0x50, 0x52, 0x7F, 0x04, 0xC0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x03, 0xFF, 0xFF, 0xC0, 0x70, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF,
-0xB9, 0xB0, 0x00, 0x09, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x43,
-0x53, 0x54, 0x00, 0x41, 0x43, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0xFF, 0xFF, 0xC0, 0x70, 0x00, 0x00, 0xFF, 0xFF, 0xC7,
+0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x09, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x4C,
+0x4D, 0x54, 0x00, 0x41, 0x43, 0x53, 0x54, 0x00, 0x41, 0x43, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80,
+0x00, 0x00, 0x00, 0x00,
/* America/Port_of_Spain */
0x50, 0x48, 0x50, 0x31, 0x01, 0x54, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -6026,7 +6042,7 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
/* America/Rio_Branco */
0x50, 0x48, 0x50, 0x31, 0x01, 0x42, 0x52, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0xAA, 0x86, 0x90,
+0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0xAA, 0x86, 0x90,
0xB8, 0x0F, 0x66, 0x00, 0xB8, 0xFD, 0x5C, 0xC0, 0xB9, 0xF1, 0x50, 0x50, 0xBA, 0xDE, 0x90, 0x40,
0xDA, 0x38, 0xCA, 0x50, 0xDA, 0xEC, 0x16, 0x50, 0xDC, 0x19, 0xFD, 0xD0, 0xDC, 0xB9, 0x75, 0x40,
0xDD, 0xFB, 0x31, 0x50, 0xDE, 0x9B, 0xFA, 0x40, 0xDF, 0xDD, 0xB6, 0x50, 0xE0, 0x54, 0x4F, 0x40,
@@ -6034,13 +6050,13 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
0xF8, 0x51, 0x48, 0x50, 0xF8, 0xC7, 0xE1, 0x40, 0xFA, 0x0A, 0xEE, 0xD0, 0xFA, 0xA9, 0x14, 0xC0,
0xFB, 0xEC, 0x22, 0x50, 0xFC, 0x8B, 0x99, 0xC0, 0x1D, 0xC9, 0xAA, 0x50, 0x1E, 0x78, 0xF3, 0xC0,
0x1F, 0xA0, 0x51, 0xD0, 0x20, 0x33, 0xEB, 0xC0, 0x21, 0x81, 0x85, 0x50, 0x22, 0x0B, 0xE4, 0xC0,
-0x48, 0x60, 0x7F, 0x50, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x48, 0x60, 0x7F, 0x50, 0x52, 0x7F, 0x04, 0xC0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x03, 0xFF, 0xFF, 0xC0, 0x70, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF,
-0xB9, 0xB0, 0x00, 0x09, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x43,
-0x53, 0x54, 0x00, 0x41, 0x43, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x7A, 0x1F, 0x05, 0x00, 0xAB, 0x34, 0x20, 0x00, 0x00, 0x00, 0x04, 0x41,
-0x63, 0x72, 0x65,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0xFF, 0xFF, 0xC0, 0x70, 0x00, 0x00, 0xFF, 0xFF, 0xC7,
+0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x09, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x4C,
+0x4D, 0x54, 0x00, 0x41, 0x43, 0x53, 0x54, 0x00, 0x41, 0x43, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x7A, 0x1F, 0x05, 0x00, 0xAB, 0x34, 0x20,
+0x00, 0x00, 0x00, 0x04, 0x41, 0x63, 0x72, 0x65,
/* America/Rosario */
0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -10994,7 +11010,7 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
/* Brazil/Acre */
0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x1E, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0xAA, 0x86, 0x90,
+0x00, 0x00, 0x00, 0x1F, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0x96, 0xAA, 0x86, 0x90,
0xB8, 0x0F, 0x66, 0x00, 0xB8, 0xFD, 0x5C, 0xC0, 0xB9, 0xF1, 0x50, 0x50, 0xBA, 0xDE, 0x90, 0x40,
0xDA, 0x38, 0xCA, 0x50, 0xDA, 0xEC, 0x16, 0x50, 0xDC, 0x19, 0xFD, 0xD0, 0xDC, 0xB9, 0x75, 0x40,
0xDD, 0xFB, 0x31, 0x50, 0xDE, 0x9B, 0xFA, 0x40, 0xDF, 0xDD, 0xB6, 0x50, 0xE0, 0x54, 0x4F, 0x40,
@@ -11002,12 +11018,13 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
0xF8, 0x51, 0x48, 0x50, 0xF8, 0xC7, 0xE1, 0x40, 0xFA, 0x0A, 0xEE, 0xD0, 0xFA, 0xA9, 0x14, 0xC0,
0xFB, 0xEC, 0x22, 0x50, 0xFC, 0x8B, 0x99, 0xC0, 0x1D, 0xC9, 0xAA, 0x50, 0x1E, 0x78, 0xF3, 0xC0,
0x1F, 0xA0, 0x51, 0xD0, 0x20, 0x33, 0xEB, 0xC0, 0x21, 0x81, 0x85, 0x50, 0x22, 0x0B, 0xE4, 0xC0,
-0x48, 0x60, 0x7F, 0x50, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
+0x48, 0x60, 0x7F, 0x50, 0x52, 0x7F, 0x04, 0xC0, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x03, 0xFF, 0xFF, 0xC0, 0x70, 0x00, 0x00, 0xFF, 0xFF, 0xC7, 0xC0, 0x01, 0x04, 0xFF, 0xFF,
-0xB9, 0xB0, 0x00, 0x09, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x41, 0x43,
-0x53, 0x54, 0x00, 0x41, 0x43, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80, 0x00, 0x00, 0x00, 0x00,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0xFF, 0xFF, 0xC0, 0x70, 0x00, 0x00, 0xFF, 0xFF, 0xC7,
+0xC0, 0x01, 0x04, 0xFF, 0xFF, 0xB9, 0xB0, 0x00, 0x09, 0xFF, 0xFF, 0xC7, 0xC0, 0x00, 0x0D, 0x4C,
+0x4D, 0x54, 0x00, 0x41, 0x43, 0x53, 0x54, 0x00, 0x41, 0x43, 0x54, 0x00, 0x41, 0x4D, 0x54, 0x00,
+0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80,
+0x00, 0x00, 0x00, 0x00,
/* Brazil/DeNoronha */
0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
@@ -16301,7 +16318,7 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
/* Libya */
0x50, 0x48, 0x50, 0x31, 0x00, 0x3F, 0x3F, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00,
-0x00, 0x00, 0x00, 0x50, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xA1, 0xF2, 0xC1, 0x24,
+0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x11, 0xA1, 0xF2, 0xC1, 0x24,
0xDD, 0xBB, 0xB1, 0x10, 0xDE, 0x23, 0xAD, 0x60, 0xE1, 0x78, 0xD2, 0x10, 0xE1, 0xE7, 0x65, 0xE0,
0xE5, 0x2F, 0x3F, 0x70, 0xE5, 0xA9, 0xCC, 0xE0, 0xEB, 0x4E, 0xC6, 0xF0, 0x16, 0x92, 0x42, 0x60,
0x17, 0x08, 0xF7, 0x70, 0x17, 0xFA, 0x2B, 0xE0, 0x18, 0xEA, 0x2A, 0xF0, 0x19, 0xDB, 0x5F, 0x60,
@@ -16309,24 +16326,9 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
0x1E, 0x93, 0x0B, 0x70, 0x1F, 0x82, 0xEE, 0x60, 0x20, 0x70, 0x4A, 0x70, 0x21, 0x61, 0x7E, 0xE0,
0x22, 0x52, 0xCF, 0x70, 0x23, 0x44, 0x03, 0xE0, 0x24, 0x34, 0x02, 0xF0, 0x25, 0x25, 0x37, 0x60,
0x26, 0x40, 0xB7, 0xF0, 0x32, 0x4E, 0xF1, 0x60, 0x33, 0x44, 0x36, 0x70, 0x34, 0x35, 0x6A, 0xE0,
-0x50, 0x9D, 0x99, 0x00, 0x51, 0x54, 0xD9, 0x80, 0x52, 0x69, 0xB4, 0x80, 0x53, 0x34, 0xBB, 0x80,
-0x54, 0x52, 0xD1, 0x00, 0x55, 0x14, 0x9D, 0x80, 0x56, 0x32, 0xB3, 0x00, 0x56, 0xF4, 0x7F, 0x80,
-0x58, 0x12, 0x95, 0x00, 0x58, 0xDD, 0x9C, 0x00, 0x59, 0xF2, 0x77, 0x00, 0x5A, 0xBD, 0x7E, 0x00,
-0x5B, 0xD2, 0x59, 0x00, 0x5C, 0x9D, 0x60, 0x00, 0x5D, 0xB2, 0x3B, 0x00, 0x5E, 0x7D, 0x42, 0x00,
-0x5F, 0x9B, 0x57, 0x80, 0x60, 0x5D, 0x24, 0x00, 0x61, 0x7B, 0x39, 0x80, 0x62, 0x3D, 0x06, 0x00,
-0x63, 0x5B, 0x1B, 0x80, 0x64, 0x26, 0x22, 0x80, 0x65, 0x3A, 0xFD, 0x80, 0x66, 0x06, 0x04, 0x80,
-0x67, 0x1A, 0xDF, 0x80, 0x67, 0xE5, 0xE6, 0x80, 0x69, 0x03, 0xFC, 0x00, 0x69, 0xC5, 0xC8, 0x80,
-0x6A, 0xE3, 0xDE, 0x00, 0x6B, 0xA5, 0xAA, 0x80, 0x6C, 0xC3, 0xC0, 0x00, 0x6D, 0x8E, 0xC7, 0x00,
-0x6E, 0xA3, 0xA2, 0x00, 0x6F, 0x6E, 0xA9, 0x00, 0x70, 0x83, 0x84, 0x00, 0x71, 0x4E, 0x8B, 0x00,
-0x72, 0x63, 0x66, 0x00, 0x73, 0x2E, 0x6D, 0x00, 0x74, 0x4C, 0x82, 0x80, 0x75, 0x0E, 0x4F, 0x00,
-0x76, 0x2C, 0x64, 0x80, 0x76, 0xEE, 0x31, 0x00, 0x78, 0x0C, 0x46, 0x80, 0x78, 0xD7, 0x4D, 0x80,
-0x79, 0xEC, 0x28, 0x80, 0x7A, 0xB7, 0x2F, 0x80, 0x7B, 0xCC, 0x0A, 0x80, 0x7C, 0x97, 0x11, 0x80,
-0x7D, 0xB5, 0x27, 0x00, 0x7E, 0x76, 0xF3, 0x80, 0x7F, 0x95, 0x09, 0x00, 0x02, 0x01, 0x02, 0x01,
+0x50, 0x9D, 0x99, 0x00, 0x51, 0x54, 0xD9, 0x80, 0x52, 0x69, 0xB4, 0x80, 0x02, 0x01, 0x02, 0x01,
0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01,
-0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x03, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02,
-0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x01, 0x02, 0x00, 0x00, 0x0C, 0x5C,
+0x02, 0x01, 0x02, 0x01, 0x02, 0x03, 0x02, 0x01, 0x03, 0x02, 0x01, 0x03, 0x00, 0x00, 0x0C, 0x5C,
0x00, 0x00, 0x00, 0x00, 0x1C, 0x20, 0x01, 0x04, 0x00, 0x00, 0x0E, 0x10, 0x00, 0x09, 0x00, 0x00,
0x1C, 0x20, 0x00, 0x0D, 0x4C, 0x4D, 0x54, 0x00, 0x43, 0x45, 0x53, 0x54, 0x00, 0x43, 0x45, 0x54,
0x00, 0x45, 0x45, 0x54, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54,
@@ -18400,4 +18402,4 @@ const unsigned char timelib_timezone_db_data_builtin[261381] = {
0x00, 0x00, 0x55, 0x54, 0x43, 0x00, 0x00, 0x00, 0x00, 0x89, 0x54, 0x40, 0x01, 0x12, 0xA8, 0x80,
0x00, 0x00, 0x00, 0x00, };
-const timelib_tzdb timezonedb_builtin = { "2013.6", 579, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
+const timelib_tzdb timezonedb_builtin = { "2013.8", 579, timezonedb_idx_builtin, timelib_timezone_db_data_builtin };
diff --git a/ext/gmp/gmp.c b/ext/gmp/gmp.c
index 8b5c131e76..af9c73afa2 100644
--- a/ext/gmp/gmp.c
+++ b/ext/gmp/gmp.c
@@ -24,7 +24,10 @@
#include "php_ini.h"
#include "php_gmp.h"
#include "ext/standard/info.h"
+#include "ext/standard/php_var.h"
+#include "ext/standard/php_smart_str_public.h"
#include "zend_exceptions.h"
+#include "zend_interfaces.h"
#if HAVE_GMP
@@ -564,12 +567,17 @@ static int gmp_cast_object(zval *readobj, zval *writeobj, int type TSRMLS_DC) /*
}
/* }}} */
-static HashTable *gmp_get_properties(zval *obj TSRMLS_DC) /* {{{ */
+static HashTable *gmp_get_debug_info(zval *obj, int *is_temp TSRMLS_DC) /* {{{ */
{
- HashTable *ht = zend_std_get_properties(obj TSRMLS_CC);
+ HashTable *ht, *props = zend_std_get_properties(obj TSRMLS_CC);
mpz_ptr gmpnum = GET_GMP_FROM_ZVAL(obj);
zval *zv;
+ *is_temp = 1;
+ ALLOC_HASHTABLE(ht);
+ ZEND_INIT_SYMTABLE_EX(ht, zend_hash_num_elements(props) + 1, 0);
+ zend_hash_copy(ht, props, (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *));
+
MAKE_STD_ZVAL(zv);
gmp_strval(zv, gmpnum, 10);
zend_hash_update(ht, "num", sizeof("num"), &zv, sizeof(zval *), NULL);
@@ -678,36 +686,96 @@ static int gmp_compare(zval *result, zval *op1, zval *op2 TSRMLS_DC) /* {{{ */
}
/* }}} */
-PHP_METHOD(GMP, __wakeup) /* {{{ */
+PHP_METHOD(GMP, serialize) /* {{{ */
{
- HashTable *props;
- zval **num_zv;
+ mpz_ptr gmpnum = GET_GMP_FROM_ZVAL(getThis());
+ smart_str buf = {0};
+ php_serialize_data_t var_hash;
+ zval zv, *zv_ptr = &zv;
if (zend_parse_parameters_none() == FAILURE) {
return;
}
- props = zend_std_get_properties(getThis() TSRMLS_CC);
- if (zend_hash_find(props, "num", sizeof("num"), (void **) &num_zv) == SUCCESS
- && Z_TYPE_PP(num_zv) == IS_STRING && Z_STRLEN_PP(num_zv) > 0
+ PHP_VAR_SERIALIZE_INIT(var_hash);
+
+ INIT_PZVAL(zv_ptr);
+
+ gmp_strval(zv_ptr, gmpnum, 10);
+ php_var_serialize(&buf, &zv_ptr, &var_hash TSRMLS_CC);
+ zval_dtor(zv_ptr);
+
+ Z_ARRVAL_P(zv_ptr) = zend_std_get_properties(getThis() TSRMLS_CC);
+ Z_TYPE_P(zv_ptr) = IS_ARRAY;
+ php_var_serialize(&buf, &zv_ptr, &var_hash TSRMLS_CC);
+
+ PHP_VAR_SERIALIZE_DESTROY(var_hash);
+
+ if (buf.c) {
+ RETURN_STRINGL(buf.c, buf.len, 0);
+ }
+}
+/* }}} */
+
+PHP_METHOD(GMP, unserialize) /* {{{ */
+{
+ mpz_ptr gmpnum = GET_GMP_FROM_ZVAL(getThis());
+ char *str;
+ int str_len;
+ php_unserialize_data_t var_hash;
+ const unsigned char *p, *max;
+ zval zv, *zv_ptr = &zv;
+
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "s", &str, &str_len) == FAILURE) {
+ return;
+ }
+
+ PHP_VAR_UNSERIALIZE_INIT(var_hash);
+
+ p = (unsigned char *) str;
+ max = (unsigned char *) str + str_len;
+
+ INIT_ZVAL(zv);
+ if (!php_var_unserialize(&zv_ptr, &p, max, &var_hash TSRMLS_CC)
+ || Z_TYPE_P(zv_ptr) != IS_STRING
+ || convert_to_gmp(gmpnum, zv_ptr, 10 TSRMLS_CC) == FAILURE
) {
- mpz_ptr gmpnumber = GET_GMP_FROM_ZVAL(getThis());
- if (convert_to_gmp(gmpnumber, *num_zv, 10 TSRMLS_CC) == SUCCESS) {
- return;
- }
+ zend_throw_exception(NULL, "Could not unserialize number", 0 TSRMLS_CC);
+ goto exit;
}
+ zval_dtor(&zv);
- zend_throw_exception(
- NULL, "Invalid serialization data", 0 TSRMLS_CC
- );
+ INIT_ZVAL(zv);
+ if (!php_var_unserialize(&zv_ptr, &p, max, &var_hash TSRMLS_CC)
+ || Z_TYPE_P(zv_ptr) != IS_ARRAY
+ ) {
+ zend_throw_exception(NULL, "Could not unserialize properties", 0 TSRMLS_CC);
+ goto exit;
+ }
+
+ if (zend_hash_num_elements(Z_ARRVAL_P(zv_ptr)) != 0) {
+ zend_hash_copy(
+ zend_std_get_properties(getThis() TSRMLS_CC), Z_ARRVAL_P(zv_ptr),
+ (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval *)
+ );
+ }
+
+exit:
+ zval_dtor(&zv);
+ PHP_VAR_UNSERIALIZE_DESTROY(var_hash);
}
/* }}} */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_wakeup, 0, 0, 0)
+ZEND_BEGIN_ARG_INFO_EX(arginfo_serialize, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_unserialize, 0, 0, 1)
+ZEND_ARG_INFO(0, serialized)
ZEND_END_ARG_INFO()
const zend_function_entry gmp_methods[] = {
- PHP_ME(GMP, __wakeup, arginfo_wakeup, ZEND_ACC_PUBLIC)
+ PHP_ME(GMP, serialize, arginfo_serialize, ZEND_ACC_PUBLIC)
+ PHP_ME(GMP, unserialize, arginfo_unserialize, ZEND_ACC_PUBLIC)
PHP_FE_END
};
@@ -724,13 +792,14 @@ static ZEND_GINIT_FUNCTION(gmp)
ZEND_MINIT_FUNCTION(gmp)
{
zend_class_entry tmp_ce;
- INIT_CLASS_ENTRY(tmp_ce, "GMP", gmp_methods); /* No methods on the class for now */
+ INIT_CLASS_ENTRY(tmp_ce, "GMP", gmp_methods);
gmp_ce = zend_register_internal_class(&tmp_ce TSRMLS_CC);
+ zend_class_implements(gmp_ce TSRMLS_CC, 1, zend_ce_serializable);
gmp_ce->create_object = gmp_create_object;
memcpy(&gmp_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
gmp_object_handlers.cast_object = gmp_cast_object;
- gmp_object_handlers.get_properties = gmp_get_properties;
+ gmp_object_handlers.get_debug_info = gmp_get_debug_info;
gmp_object_handlers.clone_obj = gmp_clone_obj;
gmp_object_handlers.do_operation = gmp_do_operation;
gmp_object_handlers.compare = gmp_compare;
@@ -1363,7 +1432,7 @@ ZEND_FUNCTION(gmp_powm)
zval *base_arg, *exp_arg, *mod_arg;
mpz_ptr gmpnum_base, gmpnum_exp, gmpnum_mod, gmpnum_result;
int use_ui = 0;
- gmp_temp_t temp_base = {0}, temp_exp = {0}, temp_mod;
+ gmp_temp_t temp_base, temp_exp, temp_mod;
if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "zzz", &base_arg, &exp_arg, &mod_arg) == FAILURE){
return;
diff --git a/ext/gmp/tests/bug659967.phpt b/ext/gmp/tests/bug659967.phpt
new file mode 100644
index 0000000000..6ba220274c
--- /dev/null
+++ b/ext/gmp/tests/bug659967.phpt
@@ -0,0 +1,15 @@
+--TEST--
+Bug #65997: Leak when using gc_collect_cycles with new GMP implementation
+--SKIPIF--
+<?php if (!extension_loaded("gmp")) print "skip"; ?>
+--FILE--
+<?php
+
+gc_enable();
+$gmp = gmp_init('10');
+gc_collect_cycles();
+
+?>
+===DONE===
+--EXPECT--
+===DONE===
diff --git a/ext/gmp/tests/serialize.phpt b/ext/gmp/tests/serialize.phpt
index 26716b659c..208e0e9800 100644
--- a/ext/gmp/tests/serialize.phpt
+++ b/ext/gmp/tests/serialize.phpt
@@ -9,14 +9,34 @@ var_dump($n = gmp_init(42));
var_dump($s = serialize($n));
var_dump(unserialize($s));
+$n = gmp_init(13);
+$n->foo = "bar";
+var_dump(unserialize(serialize($n)));
+
+try {
+ unserialize('C:3:"GMP":0:{}');
+} catch (Exception $e) { var_dump($e->getMessage()); }
+
+try {
+ unserialize('C:3:"GMP":8:{s:2:"42"}');
+} catch (Exception $e) { var_dump($e->getMessage()); }
+
?>
--EXPECTF--
object(GMP)#%d (1) {
["num"]=>
string(2) "42"
}
-string(33) "O:3:"GMP":1:{s:3:"num";s:2:"42";}"
+string(30) "C:3:"GMP":15:{s:2:"42";a:0:{}}"
object(GMP)#%d (1) {
["num"]=>
string(2) "42"
}
+object(GMP)#%d (2) {
+ ["foo"]=>
+ string(3) "bar"
+ ["num"]=>
+ string(2) "13"
+}
+string(28) "Could not unserialize number"
+string(32) "Could not unserialize properties"
diff --git a/ext/odbc/php_odbc_includes.h b/ext/odbc/php_odbc_includes.h
index ca237c0537..c00583b16a 100644
--- a/ext/odbc/php_odbc_includes.h
+++ b/ext/odbc/php_odbc_includes.h
@@ -232,7 +232,7 @@ typedef struct odbc_connection {
} odbc_connection;
typedef struct odbc_result_value {
- char name[32];
+ char name[256];
char *value;
SQLLEN vallen;
SQLLEN coltype;
diff --git a/ext/opcache/README b/ext/opcache/README
index 46521587fa..2e30d92c00 100644
--- a/ext/opcache/README
+++ b/ext/opcache/README
@@ -80,8 +80,8 @@ opcache.max_accelerated_files (default "2000")
The maximum number of keys (scripts) in the OPcache hash table.
The number is actually the first one in the following set of prime
numbers that is bigger than the one supplied: { 223, 463, 983, 1979, 3907,
- 7963, 16229, 32531, 65407, 130987 }. Only numbers between 200 and 100000
- are allowed.
+ 7963, 16229, 32531, 65407, 130987, 262237, 524521, 1048793 }. Only numbers
+ between 200 and 1000000 are allowed.
opcache.max_wasted_percentage (default "5")
The maximum percentage of "wasted" memory until a restart is scheduled.
diff --git a/ext/opcache/zend_accelerator_module.c b/ext/opcache/zend_accelerator_module.c
index dedb7215c1..0914fb68dd 100644
--- a/ext/opcache/zend_accelerator_module.c
+++ b/ext/opcache/zend_accelerator_module.c
@@ -34,7 +34,7 @@
#define STRING_NOT_NULL(s) (NULL == (s)?"":s)
#define MIN_ACCEL_FILES 200
-#define MAX_ACCEL_FILES 100000
+#define MAX_ACCEL_FILES 1000000
#define TOKENTOSTR(X) #X
static void (*orig_file_exists)(INTERNAL_FUNCTION_PARAMETERS) = NULL;
diff --git a/ext/standard/array.c b/ext/standard/array.c
index ae6e5d266f..17be59d6ca 100644
--- a/ext/standard/array.c
+++ b/ext/standard/array.c
@@ -127,6 +127,9 @@ PHP_MINIT_FUNCTION(array) /* {{{ */
REGISTER_LONG_CONSTANT("COUNT_NORMAL", COUNT_NORMAL, CONST_CS | CONST_PERSISTENT);
REGISTER_LONG_CONSTANT("COUNT_RECURSIVE", COUNT_RECURSIVE, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("ARRAY_FILTER_USE_BOTH", ARRAY_FILTER_USE_BOTH, CONST_CS | CONST_PERSISTENT);
+ REGISTER_LONG_CONSTANT("ARRAY_FILTER_USE_KEY", ARRAY_FILTER_USE_KEY, CONST_CS | CONST_PERSISTENT);
+
return SUCCESS;
}
/* }}} */
@@ -2223,13 +2226,14 @@ PHPAPI int php_array_merge(HashTable *dest, HashTable *src, int recursive TSRMLS
case HASH_KEY_IS_STRING:
if (recursive && zend_hash_find(dest, string_key, string_key_len, (void **)&dest_entry) == SUCCESS) {
HashTable *thash = Z_TYPE_PP(dest_entry) == IS_ARRAY ? Z_ARRVAL_PP(dest_entry) : NULL;
+ zval *src_zval;
+ zval *tmp = NULL;
if ((thash && thash->nApplyCount > 1) || (*src_entry == *dest_entry && Z_ISREF_PP(dest_entry) && (Z_REFCOUNT_PP(dest_entry) % 2))) {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "recursion detected");
return 0;
}
SEPARATE_ZVAL(dest_entry);
- SEPARATE_ZVAL(src_entry);
if (Z_TYPE_PP(dest_entry) == IS_NULL) {
convert_to_array_ex(dest_entry);
@@ -2237,23 +2241,34 @@ PHPAPI int php_array_merge(HashTable *dest, HashTable *src, int recursive TSRMLS
} else {
convert_to_array_ex(dest_entry);
}
- if (Z_TYPE_PP(src_entry) == IS_NULL) {
- convert_to_array_ex(src_entry);
- add_next_index_null(*src_entry);
+ if (Z_TYPE_PP(src_entry) == IS_OBJECT) {
+ ALLOC_ZVAL(src_zval);
+ INIT_PZVAL_COPY(src_zval, *src_entry);
+ zval_copy_ctor(src_zval);
+ convert_to_array(src_zval);
+ tmp = src_zval;
} else {
- convert_to_array_ex(src_entry);
- }
- if (thash) {
- thash->nApplyCount++;
+ src_zval = *src_entry;
}
- if (!php_array_merge(Z_ARRVAL_PP(dest_entry), Z_ARRVAL_PP(src_entry), recursive TSRMLS_CC)) {
+ if (Z_TYPE_P(src_zval) == IS_ARRAY) {
+ if (thash) {
+ thash->nApplyCount++;
+ }
+ if (!php_array_merge(Z_ARRVAL_PP(dest_entry), Z_ARRVAL_P(src_zval), recursive TSRMLS_CC)) {
+ if (thash) {
+ thash->nApplyCount--;
+ }
+ return 0;
+ }
if (thash) {
thash->nApplyCount--;
}
- return 0;
+ } else {
+ Z_ADDREF_PP(src_entry);
+ zend_hash_next_index_insert(Z_ARRVAL_PP(dest_entry), &src_zval, sizeof(zval *), NULL);
}
- if (thash) {
- thash->nApplyCount--;
+ if (tmp) {
+ zval_ptr_dtor(&tmp);
}
} else {
Z_ADDREF_PP(src_entry);
@@ -2357,7 +2372,6 @@ static void php_array_merge_or_replace_wrapper(INTERNAL_FUNCTION_PARAMETERS, int
array_init_size(return_value, init_size);
for (i = 0; i < argc; i++) {
- SEPARATE_ZVAL(args[i]);
if (!replace) {
php_array_merge(Z_ARRVAL_P(return_value), Z_ARRVAL_PP(args[i]), recursive TSRMLS_CC);
} else if (recursive && i > 0) { /* First array will be copied directly instead */
@@ -4194,9 +4208,11 @@ PHP_FUNCTION(array_filter)
{
zval *array;
zval **operand;
- zval **args[1];
+ zval **args[2];
zval *retval = NULL;
+ zval *key = NULL;
zend_bool have_callback = 0;
+ long use_type = 0;
char *string_key;
zend_fcall_info fci = empty_fcall_info;
zend_fcall_info_cache fci_cache = empty_fcall_info_cache;
@@ -4204,7 +4220,7 @@ PHP_FUNCTION(array_filter)
ulong num_key;
HashPosition pos;
- if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|f", &array, &fci, &fci_cache) == FAILURE) {
+ if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "a|fl", &array, &fci, &fci_cache, &use_type) == FAILURE) {
return;
}
@@ -4217,23 +4233,54 @@ PHP_FUNCTION(array_filter)
have_callback = 1;
fci.no_separation = 0;
fci.retval_ptr_ptr = &retval;
- fci.param_count = 1;
+
+ if (use_type == ARRAY_FILTER_USE_BOTH) {
+ fci.param_count = 2;
+ args[1] = &key;
+ } else {
+ fci.param_count = 1;
+ if (use_type == ARRAY_FILTER_USE_KEY) {
+ args[0] = &key;
+ }
+ }
}
for (zend_hash_internal_pointer_reset_ex(Z_ARRVAL_P(array), &pos);
zend_hash_get_current_data_ex(Z_ARRVAL_P(array), (void **)&operand, &pos) == SUCCESS;
zend_hash_move_forward_ex(Z_ARRVAL_P(array), &pos)
) {
+ int key_type = zend_hash_get_current_key_ex(Z_ARRVAL_P(array), &string_key, &string_key_len, &num_key, 0, &pos);
+
if (have_callback) {
- args[0] = operand;
+ if (use_type) {
+ MAKE_STD_ZVAL(key);
+ /* Set up the key */
+ switch (key_type) {
+ case HASH_KEY_IS_LONG:
+ Z_TYPE_P(key) = IS_LONG;
+ Z_LVAL_P(key) = num_key;
+ break;
+
+ case HASH_KEY_IS_STRING:
+ ZVAL_STRINGL(key, string_key, string_key_len - 1, 1);
+ break;
+ }
+ }
+
+ if (use_type != ARRAY_FILTER_USE_KEY) {
+ args[0] = operand;
+ }
fci.params = args;
if (zend_call_function(&fci, &fci_cache TSRMLS_CC) == SUCCESS && retval) {
- if (!zend_is_true(retval)) {
- zval_ptr_dtor(&retval);
+ int retval_true = zend_is_true(retval);
+
+ zval_ptr_dtor(&retval);
+ if (use_type) {
+ zval_ptr_dtor(&key);
+ }
+ if (!retval_true) {
continue;
- } else {
- zval_ptr_dtor(&retval);
}
} else {
php_error_docref(NULL TSRMLS_CC, E_WARNING, "An error occurred while invoking the filter callback");
@@ -4244,7 +4291,7 @@ PHP_FUNCTION(array_filter)
}
zval_add_ref(operand);
- switch (zend_hash_get_current_key_ex(Z_ARRVAL_P(array), &string_key, &string_key_len, &num_key, 0, &pos)) {
+ switch (key_type) {
case HASH_KEY_IS_STRING:
zend_hash_update(Z_ARRVAL_P(return_value), string_key, string_key_len, operand, sizeof(zval *), NULL);
break;
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 5ce0d3c126..cb1ada22e2 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -596,6 +596,7 @@ ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_array_filter, 0, 0, 1)
ZEND_ARG_INFO(0, arg) /* ARRAY_INFO(0, arg, 0) */
ZEND_ARG_INFO(0, callback)
+ ZEND_ARG_INFO(0, use_keys)
ZEND_END_ARG_INFO()
ZEND_BEGIN_ARG_INFO_EX(arginfo_array_map, 0, 0, 2)
diff --git a/ext/standard/crypt.c b/ext/standard/crypt.c
index 113a5bd0f5..354c263afb 100644
--- a/ext/standard/crypt.c
+++ b/ext/standard/crypt.c
@@ -272,6 +272,8 @@ PHP_FUNCTION(crypt)
if (salt_in) {
memcpy(salt, salt_in, MIN(PHP_MAX_SALT_LEN, salt_in_len));
+ } else {
+ php_error_docref(NULL TSRMLS_CC, E_NOTICE, "No salt parameter was specified. You must use a randomly generated salt and a strong hash function to produce a secure hash.");
}
/* The automatic salt generation covers standard DES, md5-crypt and Blowfish (simple) */
diff --git a/ext/standard/php_array.h b/ext/standard/php_array.h
index 1cf2779071..ef43cddfcc 100644
--- a/ext/standard/php_array.h
+++ b/ext/standard/php_array.h
@@ -117,6 +117,9 @@ PHPAPI int php_multisort_compare(const void *a, const void *b TSRMLS_DC);
#define PHP_SORT_NATURAL 6
#define PHP_SORT_FLAG_CASE 8
+#define ARRAY_FILTER_USE_BOTH 1
+#define ARRAY_FILTER_USE_KEY 2
+
ZEND_BEGIN_MODULE_GLOBALS(array)
int *multisort_flags[2];
int (*compare_func)(zval *result, zval *op1, zval *op2 TSRMLS_DC);
diff --git a/ext/standard/tests/array/array_filter_error.phpt b/ext/standard/tests/array/array_filter_error.phpt
index 20e89aa4b7..3f8f51bc14 100644
--- a/ext/standard/tests/array/array_filter_error.phpt
+++ b/ext/standard/tests/array/array_filter_error.phpt
@@ -28,7 +28,7 @@ $extra_arg = 10;
// with one more than the expected number of arguments
echo "-- Testing array_filter() function with more than expected no. of arguments --";
-var_dump( array_filter($input, "odd", $extra_arg) );
+var_dump( array_filter($input, "odd", $extra_arg, $extra_arg) );
// with incorrect callback function
echo "-- Testing array_filter() function with incorrect callback --";
@@ -42,7 +42,7 @@ echo "Done"
Warning: array_filter() expects at least 1 parameter, 0 given in %s on line %d
NULL
-- Testing array_filter() function with more than expected no. of arguments --
-Warning: array_filter() expects at most 2 parameters, 3 given in %s on line %d
+Warning: array_filter() expects at most 3 parameters, 4 given in %s on line %d
NULL
-- Testing array_filter() function with incorrect callback --
Warning: array_filter() expects parameter 2 to be a valid callback, function 'even' not found or invalid function name in %s on line %d
diff --git a/ext/standard/tests/array/array_filter_variation10.phpt b/ext/standard/tests/array/array_filter_variation10.phpt
new file mode 100644
index 0000000000..f0a6115f79
--- /dev/null
+++ b/ext/standard/tests/array/array_filter_variation10.phpt
@@ -0,0 +1,103 @@
+--TEST--
+Test array_filter() function : usage variations - using the array keys inside 'callback'
+--FILE--
+<?php
+/* Prototype : array array_filter(array $input [, callback $callback [, bool $use_type = ARRAY_FILTER_USE_VALUE]])
+ * Description: Filters elements from the array via the callback.
+ * Source code: ext/standard/array.c
+*/
+
+/*
+* Using array keys as an argument to the 'callback'
+*/
+
+echo "*** Testing array_filter() : usage variations - using array keys in 'callback' ***\n";
+
+$input = array(0, 1, -1, 10, 100, 1000, 'Hello', null);
+$small = array(123);
+
+function dump($value, $key)
+{
+ echo "$key = $value\n";
+}
+
+var_dump( array_filter($input, 'dump', true) );
+
+echo "*** Testing array_filter() : usage variations - 'callback' filters based on key value ***\n";
+
+function dump2($value, $key)
+{
+ return $key > 4;
+}
+
+var_dump( array_filter($input, 'dump2', true) );
+
+echo "*** Testing array_filter() : usage variations - 'callback' expecting second argument ***\n";
+
+var_dump( array_filter($small, 'dump', false) );
+
+echo "*** Testing array_filter() with various use types ***\n";
+
+$mixed = array(1 => 'a', 2 => 'b', 'a' => 1, 'b' => 2);
+
+var_dump(array_filter($mixed, 'is_numeric', ARRAY_FILTER_USE_KEY));
+
+var_dump(array_filter($mixed, 'is_numeric', 0));
+
+var_dump(array_filter($mixed, 'is_numeric', ARRAY_FILTER_USE_BOTH));
+
+echo "Done"
+?>
+--EXPECTF--
+*** Testing array_filter() : usage variations - using array keys in 'callback' ***
+0 = 0
+1 = 1
+2 = -1
+3 = 10
+4 = 100
+5 = 1000
+6 = Hello
+7 =
+array(0) {
+}
+*** Testing array_filter() : usage variations - 'callback' filters based on key value ***
+array(3) {
+ [5]=>
+ int(1000)
+ [6]=>
+ string(5) "Hello"
+ [7]=>
+ NULL
+}
+*** Testing array_filter() : usage variations - 'callback' expecting second argument ***
+
+Warning: Missing argument 2 for dump() in %s on line %d
+
+Notice: Undefined variable: key in %s on line %d
+ = 123
+array(0) {
+}
+*** Testing array_filter() with various use types ***
+array(2) {
+ [1]=>
+ string(1) "a"
+ [2]=>
+ string(1) "b"
+}
+array(2) {
+ ["a"]=>
+ int(1)
+ ["b"]=>
+ int(2)
+}
+
+Warning: is_numeric() expects exactly 1 parameter, 2 given in %s on line 44
+
+Warning: is_numeric() expects exactly 1 parameter, 2 given in %s on line 44
+
+Warning: is_numeric() expects exactly 1 parameter, 2 given in %s on line 44
+
+Warning: is_numeric() expects exactly 1 parameter, 2 given in %s on line 44
+array(0) {
+}
+Done
diff --git a/ext/standard/tests/general_functions/var_export-locale.phpt b/ext/standard/tests/general_functions/var_export-locale.phpt
index 37142cf34c..3cbebe9c72 100644
--- a/ext/standard/tests/general_functions/var_export-locale.phpt
+++ b/ext/standard/tests/general_functions/var_export-locale.phpt
@@ -784,15 +784,15 @@ string(20) "array (
Iteration 13
array (
0 => 10.5,
- 1 => 5.6,
+ 1 => 5.5999999999999996,
)
array (
0 => 10.5,
- 1 => 5.6,
+ 1 => 5.5999999999999996,
)
-string(34) "array (
+string(49) "array (
0 => 10.5,
- 1 => 5.6,
+ 1 => 5.5999999999999996,
)"
diff --git a/ext/standard/tests/general_functions/var_export_basic3.phpt b/ext/standard/tests/general_functions/var_export_basic3.phpt
index 2997215910..9e27d90425 100644
--- a/ext/standard/tests/general_functions/var_export_basic3.phpt
+++ b/ext/standard/tests/general_functions/var_export_basic3.phpt
@@ -96,9 +96,9 @@ string(1) "0"
-- Iteration: -0.1 --
--0.1
--0.1
-string(4) "-0.1"
+-0.10000000000000001
+-0.10000000000000001
+string(20) "-0.10000000000000001"
-- Iteration: 10.0000000000000000005 --
@@ -120,9 +120,9 @@ string(6) "100000"
-- Iteration: 1e-5 --
-1.0E-5
-1.0E-5
-string(6) "1.0E-5"
+1.0000000000000001E-5
+1.0000000000000001E-5
+string(21) "1.0000000000000001E-5"
-- Iteration: 1e+5 --
@@ -144,9 +144,9 @@ string(6) "100000"
-- Iteration: 1E-5 --
-1.0E-5
-1.0E-5
-string(6) "1.0E-5"
+1.0000000000000001E-5
+1.0000000000000001E-5
+string(21) "1.0000000000000001E-5"
-- Iteration: .5e+7 --
@@ -156,20 +156,20 @@ string(7) "5000000"
-- Iteration: .6e-19 --
-6.0E-20
-6.0E-20
-string(7) "6.0E-20"
+6.0000000000000006E-20
+6.0000000000000006E-20
+string(22) "6.0000000000000006E-20"
-- Iteration: .05E+44 --
-5.0E+42
-5.0E+42
-string(7) "5.0E+42"
+5.0000000000000001E+42
+5.0000000000000001E+42
+string(22) "5.0000000000000001E+42"
-- Iteration: .0034E-30 --
-3.4E-33
-3.4E-33
-string(7) "3.4E-33"
+3.4000000000000001E-33
+3.4000000000000001E-33
+string(22) "3.4000000000000001E-33"
===DONE===
diff --git a/ext/standard/tests/general_functions/var_export_basic5.phpt b/ext/standard/tests/general_functions/var_export_basic5.phpt
index 96b3f54cc9..1512fa8377 100644
--- a/ext/standard/tests/general_functions/var_export_basic5.phpt
+++ b/ext/standard/tests/general_functions/var_export_basic5.phpt
@@ -233,15 +233,15 @@ string(20) "array (
--Iteration: array(10.5, 5.6) --
array (
0 => 10.5,
- 1 => 5.6,
+ 1 => 5.5999999999999996,
)
array (
0 => 10.5,
- 1 => 5.6,
+ 1 => 5.5999999999999996,
)
-string(34) "array (
+string(49) "array (
0 => 10.5,
- 1 => 5.6,
+ 1 => 5.5999999999999996,
)"
@@ -274,4 +274,4 @@ string(41) "array (
1 => 'test',
)"
-===DONE=== \ No newline at end of file
+===DONE===
diff --git a/ext/standard/tests/strings/crypt.phpt b/ext/standard/tests/strings/crypt.phpt
index ce178f684e..3dcff2eaf2 100644
--- a/ext/standard/tests/strings/crypt.phpt
+++ b/ext/standard/tests/strings/crypt.phpt
@@ -34,6 +34,8 @@ STD
EXT
MD5
BLO
+
+Notice: crypt(): No salt parameter was specified. You must use a randomly generated salt and a strong hash function to produce a secure hash. in %s on line %d
string(%d) "%s"
Warning: crypt() expects at least 1 parameter, 0 given in %s on line %d
diff --git a/ext/standard/var.c b/ext/standard/var.c
index 08d43997f7..a7ece7fb5c 100644
--- a/ext/standard/var.c
+++ b/ext/standard/var.c
@@ -436,7 +436,7 @@ PHPAPI void php_var_export_ex(zval **struc, int level, smart_str *buf TSRMLS_DC)
smart_str_append_long(buf, Z_LVAL_PP(struc));
break;
case IS_DOUBLE:
- tmp_len = spprintf(&tmp_str, 0,"%.*H", (int) EG(precision), Z_DVAL_PP(struc));
+ tmp_len = spprintf(&tmp_str, 0,"%.*H", PG(serialize_precision), Z_DVAL_PP(struc));
smart_str_appendl(buf, tmp_str, tmp_len);
efree(tmp_str);
break;
diff --git a/ext/zip/LICENSE_libzip b/ext/zip/LICENSE_libzip
new file mode 100644
index 0000000000..9b2fda07b1
--- /dev/null
+++ b/ext/zip/LICENSE_libzip
@@ -0,0 +1,27 @@
+Copyright (C) 1999-2008 Dieter Baron and Thomas Klausner
+The authors can be contacted at <libzip@nih.at>
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions
+are met:
+1. Redistributions of source code must retain the above copyright
+ notice, this list of conditions and the following disclaimer.
+2. Redistributions in binary form must reproduce the above copyright
+ notice, this list of conditions and the following disclaimer in
+ the documentation and/or other materials provided with the
+ distribution.
+3. The names of the authors may not be used to endorse or promote
+ products derived from this software without specific prior
+ written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE AUTHORS ``AS IS'' AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY
+DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
+DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
+GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER
+IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN
+IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/sapi/cgi/cgi_main.c b/sapi/cgi/cgi_main.c
index 221b002175..43816d4d13 100644
--- a/sapi/cgi/cgi_main.c
+++ b/sapi/cgi/cgi_main.c
@@ -524,8 +524,11 @@ static int sapi_fcgi_read_post(char *buffer, uint count_bytes TSRMLS_DC)
uint read_bytes = 0;
int tmp_read_bytes;
fcgi_request *request = (fcgi_request*) SG(server_context);
+ size_t remaining = SG(request_info).content_length - SG(read_post_bytes);
- count_bytes = MIN(count_bytes, (uint) SG(request_info).content_length - SG(read_post_bytes));
+ if (remaining < count_bytes) {
+ count_bytes = remaining;
+ }
while (read_bytes < count_bytes) {
tmp_read_bytes = fcgi_read(request, buffer + read_bytes, count_bytes - read_bytes);
if (tmp_read_bytes <= 0) {
diff --git a/sapi/fpm/fpm/fpm_main.c b/sapi/fpm/fpm/fpm_main.c
index 4b20e632dd..91abfea959 100644
--- a/sapi/fpm/fpm/fpm_main.c
+++ b/sapi/fpm/fpm/fpm_main.c
@@ -498,8 +498,11 @@ static int sapi_cgi_read_post(char *buffer, uint count_bytes TSRMLS_DC)
{
uint read_bytes = 0;
int tmp_read_bytes;
+ size_t remaining = SG(request_info).content_length - SG(read_post_bytes);
- count_bytes = MIN(count_bytes, (uint) SG(request_info).content_length - SG(read_post_bytes));
+ if (remaining < count_bytes) {
+ count_bytes = remaining;
+ }
while (read_bytes < count_bytes) {
fcgi_request *request = (fcgi_request*) SG(server_context);
if (request_body_fd == -1) {
diff --git a/sapi/fpm/fpm/fpm_sockets.c b/sapi/fpm/fpm/fpm_sockets.c
index 145b2550c3..e056565ea4 100644
--- a/sapi/fpm/fpm/fpm_sockets.c
+++ b/sapi/fpm/fpm/fpm_sockets.c
@@ -487,6 +487,7 @@ int fpm_socket_unix_test_connect(struct sockaddr_un *sock, size_t socklen) /* {{
}
if (connect(fd, (struct sockaddr *)sock, socklen) == -1) {
+ close(fd);
return -1;
}
diff --git a/sapi/fpm/fpm/fpm_sockets.h b/sapi/fpm/fpm/fpm_sockets.h
index cce5712b8c..121c016a7b 100644
--- a/sapi/fpm/fpm/fpm_sockets.h
+++ b/sapi/fpm/fpm/fpm_sockets.h
@@ -19,7 +19,7 @@
#if (__FreeBSD__) || (__OpenBSD__)
#define FPM_BACKLOG_DEFAULT -1
#else
-#define FPM_BACKLOG_DEFAULT 128
+#define FPM_BACKLOG_DEFAULT 65535
#endif
enum fpm_address_domain fpm_sockets_domain_from_address(char *addr);
diff --git a/sapi/fpm/php-fpm.conf.in b/sapi/fpm/php-fpm.conf.in
index af4f2fa325..9002a2933b 100644
--- a/sapi/fpm/php-fpm.conf.in
+++ b/sapi/fpm/php-fpm.conf.in
@@ -159,8 +159,8 @@ group = @php_fpm_group@
listen = 127.0.0.1:9000
; Set listen(2) backlog.
-; Default Value: 128 (-1 on FreeBSD and OpenBSD)
-;listen.backlog = 128
+; Default Value: 65535 (-1 on FreeBSD and OpenBSD)
+;listen.backlog = 65535
; Set permissions for unix socket, if one is used. In Linux, read/write
; permissions must be set in order to allow connections from a web server. Many
diff --git a/tests/lang/bug24640.phpt b/tests/lang/bug24640.phpt
index 919b38e29e..e41d0201b7 100644
--- a/tests/lang/bug24640.phpt
+++ b/tests/lang/bug24640.phpt
@@ -36,22 +36,22 @@ test(1.7e-1000);
===DONE===
<?php exit(0); ?>
--EXPECTF--
-1.7E+300
+1.7000000000000001E+300
float(1.7E+300)
1.7E+300
1.7E+300
------
-1.7E-300
+1.7000000000000001E-300
float(1.7E-300)
1.7E-300
1.7E-300
------
-1.7E+79
+1.7000000000000002E+79
float(1.7E+79)
1.7E+79
1.7E+79
------
-1.7E-79
+1.6999999999999999E-79
float(1.7E-79)
1.7E-79
1.7E-79
@@ -71,7 +71,7 @@ float(1.7E+81)
1.7E+81
1.7E+81
------
-1.7E-81
+1.6999999999999999E-81
float(1.7E-81)
1.7E-81
1.7E-81
@@ -81,7 +81,7 @@ float(I%s)
I%s
I%s
------
-1.69998107421E-319
+1.6999810742105611E-319
float(1.69998107421E-319)
1.69998107421E-319
1.69998107421E-319
@@ -91,7 +91,7 @@ float(I%s)
I%s
I%s
------
-1.70007988734E-320
+1.7000798873397294E-320
float(1.70007988734E-320)
1.70007988734E-320
1.70007988734E-320
@@ -101,7 +101,7 @@ float(I%s)
I%s
I%s
------
-1.69958582169E-321
+1.6995858216938881E-321
float(1.69958582169E-321)
1.69958582169E-321
1.69958582169E-321
diff --git a/win32/build/libs_version.txt b/win32/build/libs_version.txt
index 123a75d783..44420ddec8 100644
--- a/win32/build/libs_version.txt
+++ b/win32/build/libs_version.txt
@@ -1,12 +1,11 @@
bz2-1.0.6
cclient-2007f
freetype-2.4.10
-icu-50.1.2
+icu-51.2
jpeglib-9
libcurl-7.30.0
libiconv-1.14
libmcrypt-2.5.8
-libmpir-2.5.1
libmpir-2.6.0
libpng-1.5.14
libpq-9.2.2