summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Zend/zend_compile.c4
-rw-r--r--Zend/zend_compile.h3
2 files changed, 7 insertions, 0 deletions
diff --git a/Zend/zend_compile.c b/Zend/zend_compile.c
index 1323dbc778..2e98f10c6a 100644
--- a/Zend/zend_compile.c
+++ b/Zend/zend_compile.c
@@ -1608,6 +1608,10 @@ ZEND_API void zend_initialize_class_data(zend_class_entry *ce, zend_bool nullify
ce->refcount = 1;
ce->ce_flags = ZEND_ACC_CONSTANTS_UPDATED;
+ if (CG(compiler_options) & ZEND_COMPILE_GUARDS) {
+ ce->ce_flags |= ZEND_ACC_USE_GUARDS;
+ }
+
ce->default_properties_table = NULL;
ce->default_static_members_table = NULL;
zend_hash_init_ex(&ce->properties_info, 8, NULL, (persistent_hashes ? zend_destroy_property_info_internal : NULL), persistent_hashes, 0);
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index dae8d173a0..06c7d02149 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -1005,6 +1005,9 @@ END_EXTERN_C()
/* generate ZEND_INIT_FCALL_BY_NAME for userland functions instead of ZEND_INIT_FCALL */
#define ZEND_COMPILE_IGNORE_USER_FUNCTIONS (1<<8)
+/* force IS_OBJ_USE_GUARDS for all classes */
+#define ZEND_COMPILE_GUARDS (1<<9)
+
/* The default value for CG(compiler_options) */
#define ZEND_COMPILE_DEFAULT ZEND_COMPILE_HANDLE_OP_ARRAY