summaryrefslogtreecommitdiff
path: root/Zend/zend_objects_API.h
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@zend.com>2015-02-04 15:24:13 +0300
committerDmitry Stogov <dmitry@zend.com>2015-02-04 15:24:13 +0300
commit9e70d7672dd646b8c9b29ccc452e4dc5aa015437 (patch)
tree0b852db11ab8fdcab020d6f13ee631291849b6d2 /Zend/zend_objects_API.h
parent87377c1707beec44f35cd6d91e5822a31479f170 (diff)
downloadphp-git-9e70d7672dd646b8c9b29ccc452e4dc5aa015437.tar.gz
Move zend_object->guards into additional slot of zend_object->properties_table[]. As result size of objects without __get/__set/__unset/__isset magic methods is reduced.
Diffstat (limited to 'Zend/zend_objects_API.h')
-rw-r--r--Zend/zend_objects_API.h8
1 files changed, 8 insertions, 0 deletions
diff --git a/Zend/zend_objects_API.h b/Zend/zend_objects_API.h
index cffdb4876b..5bc7d774bc 100644
--- a/Zend/zend_objects_API.h
+++ b/Zend/zend_objects_API.h
@@ -23,6 +23,7 @@
#define ZEND_OBJECTS_API_H
#include "zend.h"
+#include "zend_compile.h"
#define OBJ_BUCKET_INVALID (1<<0)
@@ -80,6 +81,13 @@ static zend_always_inline void zend_object_release(zend_object *obj)
}
}
+static zend_always_inline size_t zend_object_properties_size(zend_class_entry *ce)
+{
+ return sizeof(zval) *
+ (ce->default_properties_count -
+ ((ce->ce_flags & ZEND_ACC_USE_GUARDS) ? 0 : 1));
+}
+
#endif /* ZEND_OBJECTS_H */
/*