summaryrefslogtreecommitdiff
path: root/Zend/zend_objects.c
diff options
context:
space:
mode:
authorJoe Watkins <krakjoe@php.net>2019-03-12 00:37:28 +0100
committerJoe Watkins <krakjoe@php.net>2019-03-12 00:37:28 +0100
commit99230784f5524f5387a8a6760bdaf9aa2eb91545 (patch)
tree8e7b56d0e65d2d82c4d84c680cef7ac41b6825fa /Zend/zend_objects.c
parentdbcdf857968d72a7045610dccb6da650a1a8deda (diff)
parent6529d7acd9912a609924633a43e6562799566225 (diff)
downloadphp-git-99230784f5524f5387a8a6760bdaf9aa2eb91545.tar.gz
Merge branch 'PHP-7.4'
* PHP-7.4: zend_weakrefs
Diffstat (limited to 'Zend/zend_objects.c')
-rw-r--r--Zend/zend_objects.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/Zend/zend_objects.c b/Zend/zend_objects.c
index f73ef91178..fca24d209d 100644
--- a/Zend/zend_objects.c
+++ b/Zend/zend_objects.c
@@ -24,6 +24,7 @@
#include "zend_API.h"
#include "zend_interfaces.h"
#include "zend_exceptions.h"
+#include "zend_weakrefs.h"
static zend_always_inline void _zend_object_std_init(zend_object *object, zend_class_entry *ce)
{
@@ -70,6 +71,7 @@ ZEND_API void zend_object_std_dtor(zend_object *object)
p++;
} while (p != end);
}
+
if (UNEXPECTED(object->ce->ce_flags & ZEND_ACC_USE_GUARDS)) {
if (EXPECTED(Z_TYPE_P(p) == IS_STRING)) {
zval_ptr_dtor_str(p);
@@ -82,6 +84,10 @@ ZEND_API void zend_object_std_dtor(zend_object *object)
FREE_HASHTABLE(guards);
}
}
+
+ if (UNEXPECTED(GC_FLAGS(object) & IS_OBJ_WEAKLY_REFERENCED)) {
+ zend_weakrefs_notify(object);
+ }
}
ZEND_API void zend_objects_destroy_object(zend_object *object)