summaryrefslogtreecommitdiff
path: root/Zend/zend.h
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend.h')
-rw-r--r--Zend/zend.h13
1 files changed, 9 insertions, 4 deletions
diff --git a/Zend/zend.h b/Zend/zend.h
index 58311ad07a..de932d8c5e 100644
--- a/Zend/zend.h
+++ b/Zend/zend.h
@@ -277,13 +277,18 @@ void zend_error_noreturn(int type, const char *format, ...) __attribute__ ((nore
typedef struct _zval_struct zval;
typedef struct _zend_class_entry zend_class_entry;
+typedef struct _zend_guard {
+ zend_bool in_get;
+ zend_bool in_set;
+ zend_bool in_unset;
+ zend_bool in_isset;
+ zend_bool dummy; /* sizeof(zend_guard) must not be equal to sizeof(void*) */
+} zend_guard;
+
typedef struct _zend_object {
zend_class_entry *ce;
HashTable *properties;
- unsigned int in_get:1;
- unsigned int in_set:1;
- unsigned int in_unset:1;
- unsigned int in_isset:1;
+ HashTable *guards; /* protects from __get/__set ... recursion */
} zend_object;
typedef unsigned int zend_object_handle;