summaryrefslogtreecommitdiff
path: root/Zend/zend_compile.h
diff options
context:
space:
mode:
Diffstat (limited to 'Zend/zend_compile.h')
-rw-r--r--Zend/zend_compile.h16
1 files changed, 11 insertions, 5 deletions
diff --git a/Zend/zend_compile.h b/Zend/zend_compile.h
index c13184c7d8..5490263f0e 100644
--- a/Zend/zend_compile.h
+++ b/Zend/zend_compile.h
@@ -360,9 +360,8 @@ struct _zend_execute_data {
zend_execute_data *call; /* current call */
void **run_time_cache;
zend_function *func; /* executed op_array */
- uint32_t num_args;
- zend_uchar flags;
- zend_uchar frame_kind;
+ uint32_t num_args;
+ uint32_t frame_info;
zend_class_entry *called_scope;
zval This;
zend_execute_data *prev_execute_data;
@@ -374,8 +373,15 @@ struct _zend_execute_data {
zval old_error_reporting;
};
-#define ZEND_CALL_CTOR (1 << 0)
-#define ZEND_CALL_CTOR_RESULT_UNUSED (1 << 1)
+#define VM_FRAME_KIND_MASK 0x000000ff
+#define VM_FRAME_FLAGS_MASK 0xffffff00
+
+#define ZEND_CALL_CTOR (1 << 8)
+#define ZEND_CALL_CTOR_RESULT_UNUSED (1 << 9)
+
+#define VM_FRAME_INFO(kind, flags) ((kind) | (flags))
+#define VM_FRAME_KIND(info) ((info) & VM_FRAME_KIND_MASK)
+#define VM_FRAME_FLAGS(info) ((info) & VM_FRAME_FLAGS_MASK)
#define ZEND_CALL_FRAME_SLOT \
((ZEND_MM_ALIGNED_SIZE(sizeof(zend_execute_data)) + ZEND_MM_ALIGNED_SIZE(sizeof(zval)) - 1) / ZEND_MM_ALIGNED_SIZE(sizeof(zval)))