[prev in list] [next in list] [prev in thread] [next in thread] 

List:       mapguide-commits
Subject:    [mapguide-commits] r9979 - in trunk/MgDev: . Oem/LinuxApt Oem/php Oem/php/include/Zend Oem/php/inclu
From:       svn_mapguide () osgeo ! org
Date:       2022-10-10 13:14:04
Message-ID: 20221010131405.6DB8413F05D () trac ! osgeo ! org
[Download RAW message or body]

Author: jng
Date: 2022-10-10 06:14:04 -0700 (Mon, 10 Oct 2022)
New Revision: 9979

Added:
   trunk/MgDev/Oem/LinuxApt/php-8.1.11.tar.bz2
   trunk/MgDev/Oem/php/lib/php_dl_test.lib
Removed:
   trunk/MgDev/Oem/LinuxApt/php-5.6.40.tar.bz2
Modified:
   trunk/MgDev/Oem/php/PROVENANCE.TXT
   trunk/MgDev/Oem/php/include/Zend/zend.h
   trunk/MgDev/Oem/php/include/Zend/zend_API.h
   trunk/MgDev/Oem/php/include/Zend/zend_alloc_sizes.h
   trunk/MgDev/Oem/php/include/Zend/zend_compile.h
   trunk/MgDev/Oem/php/include/Zend/zend_constants.h
   trunk/MgDev/Oem/php/include/Zend/zend_execute.h
   trunk/MgDev/Oem/php/include/Zend/zend_ini.h
   trunk/MgDev/Oem/php/include/Zend/zend_operators.h
   trunk/MgDev/Oem/php/include/Zend/zend_portability.h
   trunk/MgDev/Oem/php/include/Zend/zend_types.h
   trunk/MgDev/Oem/php/include/Zend/zend_vm_def.h
   trunk/MgDev/Oem/php/include/Zend/zend_vm_execute.h
   trunk/MgDev/Oem/php/include/ext/date/lib/timelib.h
   trunk/MgDev/Oem/php/include/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h
   trunk/MgDev/Oem/php/include/ext/mysqli/php_mysqli_structs.h
   trunk/MgDev/Oem/php/include/main/SAPI.h
   trunk/MgDev/Oem/php/include/main/php_syslog.h
   trunk/MgDev/Oem/php/include/main/php_version.h
   trunk/MgDev/Oem/php/lib/php8.lib
   trunk/MgDev/Oem/php/lib/php_bz2.lib
   trunk/MgDev/Oem/php/lib/php_com_dotnet.lib
   trunk/MgDev/Oem/php/lib/php_curl.lib
   trunk/MgDev/Oem/php/lib/php_dba.lib
   trunk/MgDev/Oem/php/lib/php_enchant.lib
   trunk/MgDev/Oem/php/lib/php_exif.lib
   trunk/MgDev/Oem/php/lib/php_ffi.lib
   trunk/MgDev/Oem/php/lib/php_fileinfo.lib
   trunk/MgDev/Oem/php/lib/php_ftp.lib
   trunk/MgDev/Oem/php/lib/php_gd.lib
   trunk/MgDev/Oem/php/lib/php_gettext.lib
   trunk/MgDev/Oem/php/lib/php_gmp.lib
   trunk/MgDev/Oem/php/lib/php_imap.lib
   trunk/MgDev/Oem/php/lib/php_intl.lib
   trunk/MgDev/Oem/php/lib/php_ldap.lib
   trunk/MgDev/Oem/php/lib/php_mbstring.lib
   trunk/MgDev/Oem/php/lib/php_mysqli.lib
   trunk/MgDev/Oem/php/lib/php_oci8_19.lib
   trunk/MgDev/Oem/php/lib/php_odbc.lib
   trunk/MgDev/Oem/php/lib/php_opcache.lib
   trunk/MgDev/Oem/php/lib/php_openssl.lib
   trunk/MgDev/Oem/php/lib/php_pdo_firebird.lib
   trunk/MgDev/Oem/php/lib/php_pdo_mysql.lib
   trunk/MgDev/Oem/php/lib/php_pdo_oci.lib
   trunk/MgDev/Oem/php/lib/php_pdo_odbc.lib
   trunk/MgDev/Oem/php/lib/php_pdo_pgsql.lib
   trunk/MgDev/Oem/php/lib/php_pdo_sqlite.lib
   trunk/MgDev/Oem/php/lib/php_pgsql.lib
   trunk/MgDev/Oem/php/lib/php_shmop.lib
   trunk/MgDev/Oem/php/lib/php_snmp.lib
   trunk/MgDev/Oem/php/lib/php_soap.lib
   trunk/MgDev/Oem/php/lib/php_sockets.lib
   trunk/MgDev/Oem/php/lib/php_sodium.lib
   trunk/MgDev/Oem/php/lib/php_sqlite3.lib
   trunk/MgDev/Oem/php/lib/php_sysvshm.lib
   trunk/MgDev/Oem/php/lib/php_tidy.lib
   trunk/MgDev/Oem/php/lib/php_xsl.lib
   trunk/MgDev/Oem/php/lib/php_zend_test.lib
   trunk/MgDev/Oem/php/script/ext_deps.js
   trunk/MgDev/Oem/php/script/phpize.js
   trunk/MgDev/Oem/php/script/run-tests.php
   trunk/MgDev/cmake_linuxapt.sh
Log:
#2852: Update PHP to 8.1.11. 

Also finally remove old PHP 5.6 tarball in Oem/LinuxApt

Deleted: trunk/MgDev/Oem/LinuxApt/php-5.6.40.tar.bz2
===================================================================
(Binary files differ)

Added: trunk/MgDev/Oem/LinuxApt/php-8.1.11.tar.bz2
===================================================================
(Binary files differ)

Index: trunk/MgDev/Oem/LinuxApt/php-8.1.11.tar.bz2
===================================================================
--- trunk/MgDev/Oem/LinuxApt/php-8.1.11.tar.bz2	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/LinuxApt/php-8.1.11.tar.bz2	2022-10-10 13:14:04 UTC (rev 9979)

Property changes on: trunk/MgDev/Oem/LinuxApt/php-8.1.11.tar.bz2
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/MgDev/Oem/php/PROVENANCE.TXT
===================================================================
--- trunk/MgDev/Oem/php/PROVENANCE.TXT	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/PROVENANCE.TXT	2022-10-10 13:14:04 UTC (rev 9979)
@@ -1,6 +1,6 @@
-The contents of this directory originate from the PHP 8.1.4 development package SDK \
with key headers patched for ACE compatbility. +The contents of this directory \
originate from the PHP 8.1.11 development package SDK with key headers patched for \
ACE compatbility.  
-https://windows.php.net/downloads/releases/php-devel-pack-8.1.4-nts-Win32-vs16-x64.zip
                
-sha256: cc7d4a7f62feec88ea94a96d476ad5fae5ea9a953ecbe6a22eda94947d88d8a7
+https://windows.php.net/downloads/releases/php-devel-pack-8.1.11-nts-Win32-vs16-x64.zip
 +sha256: e92f740408a3a5d90143f4352b05106ee93edfea0d49b59ca8b68342189124f4
 
 Refer to CHANGES.TXT for details on what was patched
\ No newline at end of file

Modified: trunk/MgDev/Oem/php/include/Zend/zend.h
===================================================================
--- trunk/MgDev/Oem/php/include/Zend/zend.h	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/include/Zend/zend.h	2022-10-10 13:14:04 UTC (rev 9979)
@@ -20,7 +20,7 @@
 #ifndef ZEND_H
 #define ZEND_H
 
-#define ZEND_VERSION "4.1.4"
+#define ZEND_VERSION "4.1.11"
 
 #define ZEND_ENGINE_3
 
@@ -394,6 +394,7 @@
 ZEND_API void zend_replace_error_handling(zend_error_handling_t error_handling, \
zend_class_entry *exception_class, zend_error_handling *current);  ZEND_API void \
zend_restore_error_handling(zend_error_handling *saved);  ZEND_API void \
zend_begin_record_errors(void); +ZEND_API void zend_emit_recorded_errors(void);
 ZEND_API void zend_free_recorded_errors(void);
 END_EXTERN_C()
 

Modified: trunk/MgDev/Oem/php/include/Zend/zend_API.h
===================================================================
--- trunk/MgDev/Oem/php/include/Zend/zend_API.h	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/include/Zend/zend_API.h	2022-10-10 13:14:04 UTC (rev 9979)
@@ -1333,6 +1333,7 @@
 ZEND_API ZEND_COLD void ZEND_FASTCALL zend_wrong_callback_error(uint32_t num, char \
*error);  ZEND_API ZEND_COLD void ZEND_FASTCALL \
zend_wrong_callback_or_null_error(uint32_t num, char *error);  ZEND_API ZEND_COLD \
void ZEND_FASTCALL zend_unexpected_extra_named_error(void); +ZEND_API ZEND_COLD void \
ZEND_FASTCALL zend_argument_error_variadic(zend_class_entry *error_ce, uint32_t \
arg_num, const char *format, va_list va);  ZEND_API ZEND_COLD void \
zend_argument_error(zend_class_entry *error_ce, uint32_t arg_num, const char *format, \
...);  ZEND_API ZEND_COLD void zend_argument_type_error(uint32_t arg_num, const char \
*format, ...);  ZEND_API ZEND_COLD void zend_argument_value_error(uint32_t arg_num, \
const char *format, ...);

Modified: trunk/MgDev/Oem/php/include/Zend/zend_alloc_sizes.h
===================================================================
--- trunk/MgDev/Oem/php/include/Zend/zend_alloc_sizes.h	2022-10-10 12:47:18 UTC (rev \
                9978)
+++ trunk/MgDev/Oem/php/include/Zend/zend_alloc_sizes.h	2022-10-10 13:14:04 UTC (rev \
9979) @@ -19,7 +19,7 @@
 #ifndef ZEND_ALLOC_SIZES_H
 #define ZEND_ALLOC_SIZES_H
 
-#define ZEND_MM_CHUNK_SIZE (2 * 1024 * 1024)               /* 2 MB  */
+#define ZEND_MM_CHUNK_SIZE ((size_t) (2 * 1024 * 1024))    /* 2 MB  */
 #define ZEND_MM_PAGE_SIZE  (4 * 1024)                      /* 4 KB  */
 #define ZEND_MM_PAGES      (ZEND_MM_CHUNK_SIZE / ZEND_MM_PAGE_SIZE)  /* 512 */
 #define ZEND_MM_FIRST_PAGE (1)

Modified: trunk/MgDev/Oem/php/include/Zend/zend_compile.h
===================================================================
--- trunk/MgDev/Oem/php/include/Zend/zend_compile.h	2022-10-10 12:47:18 UTC (rev \
                9978)
+++ trunk/MgDev/Oem/php/include/Zend/zend_compile.h	2022-10-10 13:14:04 UTC (rev \
9979) @@ -917,6 +917,9 @@
 #define ZEND_NAME_NOT_FQ   1
 #define ZEND_NAME_RELATIVE 2
 
+/* ZEND_FETCH_ flags in class name AST of new const expression must not clash with \
ZEND_NAME_ flags */ +#define ZEND_CONST_EXPR_NEW_FETCH_TYPE_SHIFT 2
+
 #define ZEND_TYPE_NULLABLE (1<<8)
 
 #define ZEND_ARRAY_SYNTAX_LIST 1  /* list() */

Modified: trunk/MgDev/Oem/php/include/Zend/zend_constants.h
===================================================================
--- trunk/MgDev/Oem/php/include/Zend/zend_constants.h	2022-10-10 12:47:18 UTC (rev \
                9978)
+++ trunk/MgDev/Oem/php/include/Zend/zend_constants.h	2022-10-10 13:14:04 UTC (rev \
9979) @@ -26,6 +26,7 @@
 #define CONST_PERSISTENT		(1<<0)				/* Persistent */
 #define CONST_NO_FILE_CACHE		(1<<1)				/* Can't be saved in file cache */
 #define CONST_DEPRECATED		(1<<2)				/* Deprecated */
+#define CONST_OWNED				(1<<3)				/* constant should be destroyed together with class \
*/  
 #define	PHP_USER_CONSTANT   0x7fffff /* a constant defined in user space */
 

Modified: trunk/MgDev/Oem/php/include/Zend/zend_execute.h
===================================================================
--- trunk/MgDev/Oem/php/include/Zend/zend_execute.h	2022-10-10 12:47:18 UTC (rev \
                9978)
+++ trunk/MgDev/Oem/php/include/Zend/zend_execute.h	2022-10-10 13:14:04 UTC (rev \
9979) @@ -74,6 +74,7 @@
 ZEND_API ZEND_COLD void zend_wrong_string_offset_error(void);
 
 ZEND_API ZEND_COLD void ZEND_FASTCALL \
zend_readonly_property_modification_error(zend_property_info *info); +ZEND_API \
ZEND_COLD void ZEND_FASTCALL \
zend_readonly_property_indirect_modification_error(zend_property_info *info);  
 ZEND_API bool zend_verify_scalar_type_hint(uint32_t type_mask, zval *arg, bool \
strict, bool is_internal_arg);  ZEND_API ZEND_COLD void zend_verify_arg_error(

Modified: trunk/MgDev/Oem/php/include/Zend/zend_ini.h
===================================================================
--- trunk/MgDev/Oem/php/include/Zend/zend_ini.h	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/include/Zend/zend_ini.h	2022-10-10 13:14:04 UTC (rev 9979)
@@ -72,7 +72,9 @@
 ZEND_API void zend_ini_sort_entries(void);
 
 ZEND_API zend_result zend_register_ini_entries(const zend_ini_entry_def *ini_entry, \
int module_number); +ZEND_API zend_result zend_register_ini_entries_ex(const \
zend_ini_entry_def *ini_entry, int module_number, int module_type);  ZEND_API void \
zend_unregister_ini_entries(int module_number); +ZEND_API void \
zend_unregister_ini_entries_ex(int module_number, int module_type);  ZEND_API void \
zend_ini_refresh_caches(int stage);  ZEND_API zend_result \
zend_alter_ini_entry(zend_string *name, zend_string *new_value, int modify_type, int \
stage);  ZEND_API zend_result zend_alter_ini_entry_ex(zend_string *name, zend_string \
*new_value, int modify_type, int stage, bool force_change);

Modified: trunk/MgDev/Oem/php/include/Zend/zend_operators.h
===================================================================
--- trunk/MgDev/Oem/php/include/Zend/zend_operators.h	2022-10-10 12:47:18 UTC (rev \
                9978)
+++ trunk/MgDev/Oem/php/include/Zend/zend_operators.h	2022-10-10 13:14:04 UTC (rev \
9979) @@ -99,16 +99,6 @@
 #	define ZEND_DOUBLE_FITS_LONG(d) (!((d) >= (double)ZEND_LONG_MAX || (d) < \
(double)ZEND_LONG_MIN))  #endif
 
-#ifdef ZEND_DVAL_TO_LVAL_CAST_OK
-static zend_always_inline zend_long zend_dval_to_lval(double d)
-{
-    if (EXPECTED(zend_finite(d)) && EXPECTED(!zend_isnan(d))) {
-        return (zend_long)d;
-    } else {
-        return 0;
-    }
-}
-#else
 ZEND_API zend_long ZEND_FASTCALL zend_dval_to_lval_slow(double d);
 
 static zend_always_inline zend_long zend_dval_to_lval(double d)
@@ -120,7 +110,6 @@
 	}
 	return (zend_long)d;
 }
-#endif
 
 /* Used to convert a string float to integer during an (int) cast */
 static zend_always_inline zend_long zend_dval_to_lval_cap(double d)

Modified: trunk/MgDev/Oem/php/include/Zend/zend_portability.h
===================================================================
--- trunk/MgDev/Oem/php/include/Zend/zend_portability.h	2022-10-10 12:47:18 UTC (rev \
                9978)
+++ trunk/MgDev/Oem/php/include/Zend/zend_portability.h	2022-10-10 13:14:04 UTC (rev \
9979) @@ -679,4 +679,10 @@
 # define ZEND_VOIDP(ptr) (ptr)
 #endif
 
+#if defined(__GNUC__) && ZEND_GCC_VERSION >= 9000
+# define ZEND_INDIRECT_RETURN __attribute__((__indirect_return__))
+#else
+# define ZEND_INDIRECT_RETURN
+#endif
+
 #endif /* ZEND_PORTABILITY_H */

Modified: trunk/MgDev/Oem/php/include/Zend/zend_types.h
===================================================================
--- trunk/MgDev/Oem/php/include/Zend/zend_types.h	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/include/Zend/zend_types.h	2022-10-10 13:14:04 UTC (rev 9979)
@@ -724,6 +724,7 @@
 
 #define ZSTR_SET_CE_CACHE_EX(s, ce, validate) do { \
 		if (!(validate) || ZSTR_VALID_CE_CACHE(s)) { \
+			ZEND_ASSERT((validate) || ZSTR_VALID_CE_CACHE(s)); \
 			SET_CE_CACHE(GC_REFCOUNT(s), ce); \
 		} \
 	} while (0)

Modified: trunk/MgDev/Oem/php/include/Zend/zend_vm_def.h
===================================================================
--- trunk/MgDev/Oem/php/include/Zend/zend_vm_def.h	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/include/Zend/zend_vm_def.h	2022-10-10 13:14:04 UTC (rev 9979)
@@ -2541,7 +2541,18 @@
 ZEND_VM_C_LABEL(try_assign_dim_array):
 		SEPARATE_ARRAY(object_ptr);
 		if (OP2_TYPE == IS_UNUSED) {
-			value = GET_OP_DATA_ZVAL_PTR(BP_VAR_R);
+			value = GET_OP_DATA_ZVAL_PTR_UNDEF(BP_VAR_R);
+			if (OP_DATA_TYPE == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					ZEND_VM_C_GOTO(assign_dim_error);
+				}
+			}
 			if (OP_DATA_TYPE == IS_CV || OP_DATA_TYPE == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -4318,6 +4329,7 @@
 							zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
 							ZVAL_COPY_VALUE(return_value, retval_ptr);
 							if (GC_MAY_LEAK(ref)) {
+								SAVE_OPLINE();
 								gc_possible_root(ref);
 							}
 							ZVAL_NULL(retval_ptr);
@@ -8354,8 +8366,8 @@
 		zend_refcounted *garbage = Z_COUNTED_P(variable_ptr);
 
 		ZVAL_REF(variable_ptr, ref);
+		SAVE_OPLINE();
 		if (GC_DELREF(garbage) == 0) {
-			SAVE_OPLINE();
 			rc_dtor_func(garbage);
 			if (UNEXPECTED(EG(exception))) {
 				ZVAL_NULL(variable_ptr);

Modified: trunk/MgDev/Oem/php/include/Zend/zend_vm_execute.h
===================================================================
--- trunk/MgDev/Oem/php/include/Zend/zend_vm_execute.h	2022-10-10 12:47:18 UTC (rev \
                9978)
+++ trunk/MgDev/Oem/php/include/Zend/zend_vm_execute.h	2022-10-10 13:14:04 UTC (rev \
9979) @@ -4217,6 +4217,7 @@
 							zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
 							ZVAL_COPY_VALUE(return_value, retval_ptr);
 							if (GC_MAY_LEAK(ref)) {
+								SAVE_OPLINE();
 								gc_possible_root(ref);
 							}
 							ZVAL_NULL(retval_ptr);
@@ -4294,6 +4295,7 @@
 							zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
 							ZVAL_COPY_VALUE(return_value, retval_ptr);
 							if (GC_MAY_LEAK(ref)) {
+								SAVE_OPLINE();
 								gc_possible_root(ref);
 							}
 							ZVAL_NULL(retval_ptr);
@@ -18796,6 +18798,7 @@
 							zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
 							ZVAL_COPY_VALUE(return_value, retval_ptr);
 							if (GC_MAY_LEAK(ref)) {
+								SAVE_OPLINE();
 								gc_possible_root(ref);
 							}
 							ZVAL_NULL(retval_ptr);
@@ -21452,6 +21455,7 @@
 							zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
 							ZVAL_COPY_VALUE(return_value, retval_ptr);
 							if (GC_MAY_LEAK(ref)) {
+								SAVE_OPLINE();
 								gc_possible_root(ref);
 							}
 							ZVAL_NULL(retval_ptr);
@@ -23407,6 +23411,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CONST == IS_UNUSED) {
 			value = RT_CONSTANT((opline+1), (opline+1)->op1);
+			if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -23544,6 +23559,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CONST == IS_UNUSED) {
 			value = _get_zval_ptr_tmp((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -23682,6 +23708,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CONST == IS_UNUSED) {
 			value = _get_zval_ptr_var((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -23819,7 +23856,18 @@
 try_assign_dim_array:
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CONST == IS_UNUSED) {
-			value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+			value = EX_VAR((opline+1)->op1.var);
+			if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CV == IS_CV || IS_CV == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -26062,6 +26110,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
 			value = RT_CONSTANT((opline+1), (opline+1)->op1);
+			if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -26199,6 +26258,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
 			value = _get_zval_ptr_tmp((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -26337,6 +26407,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
 			value = _get_zval_ptr_var((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -26474,7 +26555,18 @@
 try_assign_dim_array:
 		SEPARATE_ARRAY(object_ptr);
 		if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
-			value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+			value = EX_VAR((opline+1)->op1.var);
+			if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CV == IS_CV || IS_CV == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -27549,6 +27641,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_UNUSED == IS_UNUSED) {
 			value = RT_CONSTANT((opline+1), (opline+1)->op1);
+			if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -27686,6 +27789,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_UNUSED == IS_UNUSED) {
 			value = _get_zval_ptr_tmp((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -27824,6 +27938,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_UNUSED == IS_UNUSED) {
 			value = _get_zval_ptr_var((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -27961,7 +28086,18 @@
 try_assign_dim_array:
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_UNUSED == IS_UNUSED) {
-			value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+			value = EX_VAR((opline+1)->op1.var);
+			if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CV == IS_CV || IS_CV == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -30181,6 +30317,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CV == IS_UNUSED) {
 			value = RT_CONSTANT((opline+1), (opline+1)->op1);
+			if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -30318,6 +30465,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CV == IS_UNUSED) {
 			value = _get_zval_ptr_tmp((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -30456,6 +30614,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CV == IS_UNUSED) {
 			value = _get_zval_ptr_var((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -30593,7 +30762,18 @@
 try_assign_dim_array:
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CV == IS_UNUSED) {
-			value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+			value = EX_VAR((opline+1)->op1.var);
+			if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CV == IS_CV || IS_CV == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -38144,6 +38324,7 @@
 							zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
 							ZVAL_COPY_VALUE(return_value, retval_ptr);
 							if (GC_MAY_LEAK(ref)) {
+								SAVE_OPLINE();
 								gc_possible_root(ref);
 							}
 							ZVAL_NULL(retval_ptr);
@@ -41187,6 +41368,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CONST == IS_UNUSED) {
 			value = RT_CONSTANT((opline+1), (opline+1)->op1);
+			if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -41324,6 +41516,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CONST == IS_UNUSED) {
 			value = _get_zval_ptr_tmp((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -41462,6 +41665,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CONST == IS_UNUSED) {
 			value = _get_zval_ptr_var((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -41599,7 +41813,18 @@
 try_assign_dim_array:
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CONST == IS_UNUSED) {
-			value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+			value = EX_VAR((opline+1)->op1.var);
+			if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CV == IS_CV || IS_CV == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -42894,8 +43119,8 @@
 		zend_refcounted *garbage = Z_COUNTED_P(variable_ptr);
 
 		ZVAL_REF(variable_ptr, ref);
+		SAVE_OPLINE();
 		if (GC_DELREF(garbage) == 0) {
-			SAVE_OPLINE();
 			rc_dtor_func(garbage);
 			if (UNEXPECTED(EG(exception))) {
 				ZVAL_NULL(variable_ptr);
@@ -44921,6 +45146,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
 			value = RT_CONSTANT((opline+1), (opline+1)->op1);
+			if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -45058,6 +45294,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
 			value = _get_zval_ptr_tmp((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -45196,6 +45443,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
 			value = _get_zval_ptr_var((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -45333,7 +45591,18 @@
 try_assign_dim_array:
 		SEPARATE_ARRAY(object_ptr);
 		if ((IS_TMP_VAR|IS_VAR) == IS_UNUSED) {
-			value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+			value = EX_VAR((opline+1)->op1.var);
+			if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CV == IS_CV || IS_CV == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -46855,6 +47124,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_UNUSED == IS_UNUSED) {
 			value = RT_CONSTANT((opline+1), (opline+1)->op1);
+			if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -46992,6 +47272,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_UNUSED == IS_UNUSED) {
 			value = _get_zval_ptr_tmp((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -47130,6 +47421,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_UNUSED == IS_UNUSED) {
 			value = _get_zval_ptr_var((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -47267,7 +47569,18 @@
 try_assign_dim_array:
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_UNUSED == IS_UNUSED) {
-			value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+			value = EX_VAR((opline+1)->op1.var);
+			if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CV == IS_CV || IS_CV == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -50148,6 +50461,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CV == IS_UNUSED) {
 			value = RT_CONSTANT((opline+1), (opline+1)->op1);
+			if (IS_CONST == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CONST == IS_CV || IS_CONST == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -50285,6 +50609,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CV == IS_UNUSED) {
 			value = _get_zval_ptr_tmp((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_TMP_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_TMP_VAR == IS_CV || IS_TMP_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -50423,6 +50758,17 @@
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CV == IS_UNUSED) {
 			value = _get_zval_ptr_var((opline+1)->op1.var EXECUTE_DATA_CC);
+			if (IS_VAR == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_VAR == IS_CV || IS_VAR == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -50560,7 +50906,18 @@
 try_assign_dim_array:
 		SEPARATE_ARRAY(object_ptr);
 		if (IS_CV == IS_UNUSED) {
-			value = _get_zval_ptr_cv_BP_VAR_R((opline+1)->op1.var EXECUTE_DATA_CC);
+			value = EX_VAR((opline+1)->op1.var);
+			if (IS_CV == IS_CV && UNEXPECTED(Z_TYPE_P(value) == IS_UNDEF)) {
+				HashTable *ht = Z_ARRVAL_P(object_ptr);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE)) {
+					GC_ADDREF(ht);
+				}
+				value = zval_undefined_cv((opline+1)->op1.var EXECUTE_DATA_CC);
+				if (!(GC_FLAGS(ht) & IS_ARRAY_IMMUTABLE) && !GC_DELREF(ht)) {
+					zend_array_destroy(ht);
+					goto assign_dim_error;
+				}
+			}
 			if (IS_CV == IS_CV || IS_CV == IS_VAR) {
 				ZVAL_DEREF(value);
 			}
@@ -55650,6 +56007,7 @@
 							zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
 							ZVAL_COPY_VALUE(return_value, retval_ptr);
 							if (GC_MAY_LEAK(ref)) {
+								SAVE_OPLINE();
 								gc_possible_root(ref);
 							}
 							ZVAL_NULL(retval_ptr);
@@ -55728,6 +56086,7 @@
 							zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
 							ZVAL_COPY_VALUE(return_value, retval_ptr);
 							if (GC_MAY_LEAK(ref)) {
+								SAVE_OPLINE();
 								gc_possible_root(ref);
 							}
 							ZVAL_NULL(retval_ptr);
@@ -57261,6 +57620,7 @@
 							zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
 							ZVAL_COPY_VALUE(return_value, retval_ptr);
 							if (GC_MAY_LEAK(ref)) {
+								SAVE_OPLINE();
 								gc_possible_root(ref);
 							}
 							ZVAL_NULL(retval_ptr);
@@ -57566,6 +57926,7 @@
 							zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
 							ZVAL_COPY_VALUE(return_value, retval_ptr);
 							if (GC_MAY_LEAK(ref)) {
+								SAVE_OPLINE();
 								gc_possible_root(ref);
 							}
 							ZVAL_NULL(retval_ptr);
@@ -58699,6 +59060,7 @@
 							zend_refcounted *ref = Z_COUNTED_P(retval_ptr);
 							ZVAL_COPY_VALUE(return_value, retval_ptr);
 							if (GC_MAY_LEAK(ref)) {
+								SAVE_OPLINE();
 								gc_possible_root(ref);
 							}
 							ZVAL_NULL(retval_ptr);

Modified: trunk/MgDev/Oem/php/include/ext/date/lib/timelib.h
===================================================================
--- trunk/MgDev/Oem/php/include/ext/date/lib/timelib.h	2022-10-10 12:47:18 UTC (rev \
                9978)
+++ trunk/MgDev/Oem/php/include/ext/date/lib/timelib.h	2022-10-10 13:14:04 UTC (rev \
9979) @@ -1,7 +1,7 @@
 /*
  * The MIT License (MIT)
  *
- * Copyright (c) 2015-2021 Derick Rethans
+ * Copyright (c) 2015-2022 Derick Rethans
  * Copyright (c) 2018,2021 MongoDB, Inc.
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -30,9 +30,9 @@
 # include "timelib_config.h"
 #endif
 
-#define TIMELIB_VERSION 202111
-#define TIMELIB_EXTENDED_VERSION 20211101
-#define TIMELIB_ASCII_VERSION "2021.11"
+#define TIMELIB_VERSION 202116
+#define TIMELIB_EXTENDED_VERSION 20211601
+#define TIMELIB_ASCII_VERSION "2021.16"
 
 #include <stdlib.h>
 #include <stdbool.h>

Modified: trunk/MgDev/Oem/php/include/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h
===================================================================
--- trunk/MgDev/Oem/php/include/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h	2022-10-10 \
                12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/include/ext/mbstring/libmbfl/mbfl/mbfl_encoding.h	2022-10-10 \
13:14:04 UTC (rev 9979) @@ -74,6 +74,7 @@
  	mbfl_no_encoding_sjis_mac,
 	mbfl_no_encoding_sjis2004,
 	mbfl_no_encoding_cp932,
+	mbfl_no_encoding_sjiswin,
 	mbfl_no_encoding_cp51932,
 	mbfl_no_encoding_jis,
 	mbfl_no_encoding_2022jp,

Modified: trunk/MgDev/Oem/php/include/ext/mysqli/php_mysqli_structs.h
===================================================================
--- trunk/MgDev/Oem/php/include/ext/mysqli/php_mysqli_structs.h	2022-10-10 12:47:18 \
                UTC (rev 9978)
+++ trunk/MgDev/Oem/php/include/ext/mysqli/php_mysqli_structs.h	2022-10-10 13:14:04 \
UTC (rev 9979) @@ -127,8 +127,6 @@
 
 #ifdef PHP_WIN32
 #define PHP_MYSQLI_API __declspec(dllexport)
-#define MYSQLI_LLU_SPEC "%I64u"
-#define MYSQLI_LL_SPEC "%I64d"
 #ifndef L64
 #define L64(x) x##i64
 #endif
@@ -139,10 +137,6 @@
 # else
 #  define PHP_MYSQLI_API
 # endif
-/* we need this for PRIu64 and PRId64 */
-#include <inttypes.h>
-#define MYSQLI_LLU_SPEC "%" PRIu64
-#define MYSQLI_LL_SPEC "%" PRId64
 #ifndef L64
 #define L64(x) x##LL
 #endif
@@ -149,6 +143,11 @@
 typedef int64_t my_longlong;
 #endif
 
+/* we need this for PRIu64 and PRId64 */
+#include <inttypes.h>
+#define MYSQLI_LLU_SPEC "%" PRIu64
+#define MYSQLI_LL_SPEC "%" PRId64
+
 #ifdef ZTS
 #include "TSRM.h"
 #endif

Modified: trunk/MgDev/Oem/php/include/main/SAPI.h
===================================================================
--- trunk/MgDev/Oem/php/include/main/SAPI.h	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/include/main/SAPI.h	2022-10-10 13:14:04 UTC (rev 9979)
@@ -143,6 +143,8 @@
 SAPI_API void sapi_startup(sapi_module_struct *sf);
 SAPI_API void sapi_shutdown(void);
 SAPI_API void sapi_activate(void);
+SAPI_API void sapi_deactivate_module(void);
+SAPI_API void sapi_deactivate_destroy(void);
 SAPI_API void sapi_deactivate(void);
 SAPI_API void sapi_initialize_empty_request(void);
 SAPI_API void sapi_add_request_header(const char *var, unsigned int var_len, char \
*val, unsigned int val_len, void *arg);

Modified: trunk/MgDev/Oem/php/include/main/php_syslog.h
===================================================================
--- trunk/MgDev/Oem/php/include/main/php_syslog.h	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/include/main/php_syslog.h	2022-10-10 13:14:04 UTC (rev 9979)
@@ -38,6 +38,7 @@
 PHPAPI void php_syslog_str(int priority, const zend_string* message);
 PHPAPI void php_syslog(int, const char *format, ...);
 PHPAPI void php_openlog(const char *, int, int);
+PHPAPI void php_closelog(void);
 END_EXTERN_C()
 
 #endif

Modified: trunk/MgDev/Oem/php/include/main/php_version.h
===================================================================
--- trunk/MgDev/Oem/php/include/main/php_version.h	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/include/main/php_version.h	2022-10-10 13:14:04 UTC (rev 9979)
@@ -2,7 +2,7 @@
 /* edit configure.ac to change version number */
 #define PHP_MAJOR_VERSION 8
 #define PHP_MINOR_VERSION 1
-#define PHP_RELEASE_VERSION 4
+#define PHP_RELEASE_VERSION 11
 #define PHP_EXTRA_VERSION ""
-#define PHP_VERSION "8.1.4"
-#define PHP_VERSION_ID 80104
+#define PHP_VERSION "8.1.11"
+#define PHP_VERSION_ID 80111

Modified: trunk/MgDev/Oem/php/lib/php8.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_bz2.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_com_dotnet.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_curl.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_dba.lib
===================================================================
(Binary files differ)

Added: trunk/MgDev/Oem/php/lib/php_dl_test.lib
===================================================================
(Binary files differ)

Index: trunk/MgDev/Oem/php/lib/php_dl_test.lib
===================================================================
--- trunk/MgDev/Oem/php/lib/php_dl_test.lib	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/lib/php_dl_test.lib	2022-10-10 13:14:04 UTC (rev 9979)

Property changes on: trunk/MgDev/Oem/php/lib/php_dl_test.lib
___________________________________________________________________
Added: svn:mime-type
## -0,0 +1 ##
+application/octet-stream
\ No newline at end of property
Modified: trunk/MgDev/Oem/php/lib/php_enchant.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_exif.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_ffi.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_fileinfo.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_ftp.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_gd.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_gettext.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_gmp.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_imap.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_intl.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_ldap.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_mbstring.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_mysqli.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_oci8_19.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_odbc.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_opcache.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_openssl.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_pdo_firebird.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_pdo_mysql.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_pdo_oci.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_pdo_odbc.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_pdo_pgsql.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_pdo_sqlite.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_pgsql.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_shmop.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_snmp.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_soap.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_sockets.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_sodium.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_sqlite3.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_sysvshm.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_tidy.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_xsl.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/lib/php_zend_test.lib
===================================================================
(Binary files differ)

Modified: trunk/MgDev/Oem/php/script/ext_deps.js
===================================================================
--- trunk/MgDev/Oem/php/script/ext_deps.js	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/script/ext_deps.js	2022-10-10 13:14:04 UTC (rev 9979)
@@ -14,6 +14,8 @@
 PHP_DATE_SHARED=false;
 PHP_DBA=true;
 PHP_DBA_SHARED=true;
+PHP_DL_TEST=true;
+PHP_DL_TEST_SHARED=true;
 PHP_ENCHANT=true;
 PHP_ENCHANT_SHARED=true;
 PHP_FFI=true;

Modified: trunk/MgDev/Oem/php/script/phpize.js
===================================================================
--- trunk/MgDev/Oem/php/script/phpize.js	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/script/phpize.js	2022-10-10 13:14:04 UTC (rev 9979)
@@ -3,9 +3,9 @@
 var VC_VERSION=1929
 var PHP_VERSION=8
 var PHP_MINOR_VERSION=1
-var PHP_RELEASE_VERSION=4
+var PHP_RELEASE_VERSION=11
 var PHP_EXTRA_VERSION=""
-var PHP_VERSION_STRING="8.1.4"
+var PHP_VERSION_STRING="8.1.11"
 
 /* Generated extensions list with mode (static/shared) */
 PHP_BCMATH_SHARED=false;
@@ -16,6 +16,7 @@
 PHP_CURL_SHARED=true;
 PHP_DATE_SHARED=false;
 PHP_DBA_SHARED=true;
+PHP_DL_TEST_SHARED=true;
 PHP_ENCHANT_SHARED=true;
 PHP_FFI_SHARED=true;
 PHP_FILEINFO_SHARED=true;

Modified: trunk/MgDev/Oem/php/script/run-tests.php
===================================================================
--- trunk/MgDev/Oem/php/script/run-tests.php	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/Oem/php/script/run-tests.php	2022-10-10 13:14:04 UTC (rev 9979)
@@ -23,7 +23,7 @@
    +----------------------------------------------------------------------+
  */
 
-/* $Id: b718246654392ccb7418d4922e00773b36fe2a89 $ */
+/* $Id: d772c85f95272ae802fd52d7a4ead33d8e254b66 $ */
 
 /* Temporary variables while this file is being refactored. */
 /** @var ?JUnit */
@@ -103,12 +103,12 @@
                 Do not delete 'all' files, 'php' test file, 'skip' or 'clean'
                 file.
 
-    --set-timeout [n]
-                Set timeout for individual tests, where [n] is the number of
+    --set-timeout <n>
+                Set timeout for individual tests, where <n> is the number of
                 seconds. The default value is 60 seconds, or 300 seconds when
                 testing for memory leaks.
 
-    --context [n]
+    --context <n>
                 Sets the number of lines of surrounding context to print for diffs.
                 The default value is 3.
 
@@ -119,8 +119,8 @@
                 'mem'. The result types get written independent of the log format,
                 however 'diff' only exists when a test fails.
 
-    --show-slow [n]
-                Show all tests that took longer than [n] milliseconds to run.
+    --show-slow <n>
+                Show all tests that took longer than <n> milliseconds to run.
 
     --no-clean  Do not execute clean section if any.
 
@@ -530,7 +530,11 @@
                     $just_save_results = true;
                     break;
                 case '--set-timeout':
-                    $environment['TEST_TIMEOUT'] = $argv[++$i];
+                    $timeout = $argv[++$i] ?? '';
+                    if (!preg_match('/^\d+$/', $timeout)) {
+                        error("'$timeout' is not a valid number of seconds, try e.g. \
--set-timeout 60 for 1 minute"); +                    }
+                    $environment['TEST_TIMEOUT'] = intval($timeout, 10);
                     break;
                 case '--context':
                     $context_line_count = $argv[++$i] ?? '';
@@ -545,7 +549,11 @@
                     }
                     break;
                 case '--show-slow':
-                    $slow_min_ms = $argv[++$i];
+                    $slow_min_ms = $argv[++$i] ?? '';
+                    if (!preg_match('/^\d+$/', $slow_min_ms)) {
+                        error("'$slow_min_ms' is not a valid number of milliseconds, \
try e.g. --show-slow 1000 for 1 second"); +                    }
+                    $slow_min_ms = intval($slow_min_ms, 10);
                     break;
                 case '--temp-source':
                     $temp_source = $argv[++$i];
@@ -598,7 +606,7 @@
                     }
                     break;
                 case '--version':
-                    echo '$Id: b718246654392ccb7418d4922e00773b36fe2a89 $' . "\n";
+                    echo '$Id: d772c85f95272ae802fd52d7a4ead33d8e254b66 $' . "\n";
                     exit(1);
 
                 default:
@@ -2085,11 +2093,19 @@
     $ini_settings = $workerID ? ['opcache.cache_id' => "worker$workerID"] : [];
 
     // Additional required extensions
+    $extensions = [];
     if ($test->hasSection('EXTENSIONS')) {
+        $extensions = preg_split("/[\n\r]+/", \
trim($test->getSection('EXTENSIONS'))); +    }
+    if (is_array($IN_REDIRECT) && $IN_REDIRECT['EXTENSIONS'] != []) {
+        $extensions = array_merge($extensions, $IN_REDIRECT['EXTENSIONS']);
+    }
+
+    /* Load required extensions */
+    if ($extensions != []) {
         $ext_params = [];
         settings2array($ini_overwrites, $ext_params);
         $ext_params = settings2params($ext_params);
-        $extensions = preg_split("/[\n\r]+/", \
                trim($test->getSection('EXTENSIONS')));
         [$ext_dir, $loaded] = $skipCache->getExtensions("$orig_php $pass_options \
$extra_options $ext_params $no_file_cache");  $ext_prefix = IS_WINDOWS ? "php_" : "";
         $missing = [];
@@ -2241,6 +2257,7 @@
         $IN_REDIRECT['via'] = "via [$shortname]\n\t";
         $IN_REDIRECT['dir'] = realpath(dirname($file));
         $IN_REDIRECT['prefix'] = $tested;
+        $IN_REDIRECT['EXTENSIONS'] = $extensions;
 
         if (!empty($IN_REDIRECT['TESTS'])) {
             if (is_array($org_file)) {
@@ -3395,6 +3412,9 @@
         'execution_time' => 0,
     ];
 
+    /**
+     * @throws Exception
+     */
     public function __construct(array $env, int $workerID)
     {
         // Check whether a junit log is wanted.
@@ -3612,6 +3632,9 @@
         $this->suites[$suite_name] = self::EMPTY_SUITE + ['name' => $suite_name];
     }
 
+    /**
+     * @throws Exception
+     */
     public function stopTimer(string $file_name): void
     {
         if (!$this->enabled) {
@@ -3811,6 +3834,9 @@
         'CREDITS', 'DESCRIPTION', 'CONFLICTS', 'WHITESPACE_SENSITIVE',
     ];
 
+    /**
+     * @throws BorkageException
+     */
     public function __construct(string $fileName, bool $inRedirect)
     {
         $this->fileName = $fileName;
@@ -3851,6 +3877,9 @@
         return !empty($this->sections[$name]);
     }
 
+    /**
+     * @throws Exception
+     */
     public function getSection(string $name): string
     {
         if (!isset($this->sections[$name])) {
@@ -3866,7 +3895,7 @@
 
     public function isCGI(): bool
     {
-        return $this->sectionNotEmpty('CGI')
+        return $this->hasSection('CGI')
             || $this->sectionNotEmpty('GET')
             || $this->sectionNotEmpty('POST')
             || $this->sectionNotEmpty('GZIP_POST')
@@ -3887,6 +3916,7 @@
 
     /**
      * Load the sections of the test file
+     * @throws BorkageException
      */
     private function readFile(): void
     {
@@ -3949,6 +3979,9 @@
         fclose($fp);
     }
 
+    /**
+     * @throws BorkageException
+     */
     private function validateAndProcess(bool $inRedirect): void
     {
         // the redirect section allows a set of tests to be reused outside of

Modified: trunk/MgDev/cmake_linuxapt.sh
===================================================================
--- trunk/MgDev/cmake_linuxapt.sh	2022-10-10 12:47:18 UTC (rev 9978)
+++ trunk/MgDev/cmake_linuxapt.sh	2022-10-10 13:14:04 UTC (rev 9979)
@@ -119,7 +119,7 @@
     echo "Created LinuxApt working dir at: $LINUXAPT_WORK_DIR"
 fi
 
-PHP_VER=8.1.9
+PHP_VER=8.1.11
 HTTPD_VER=2.4.52
 TC_VER=1.2.48
 APR_VER=1.7.0

_______________________________________________
mapguide-commits mailing list
mapguide-commits@lists.osgeo.org
https://lists.osgeo.org/mailman/listinfo/mapguide-commits


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic