@@ -239,36 +239,6 @@ static void zend_weakref_free(zend_object *zo) {
239
239
#define zend_weakref_unsupported (object , thing ) \
240
240
zend_throw_error(NULL, "%s objects do not support " thing, ZSTR_VAL(object->ce->name));
241
241
242
- static ZEND_COLD zval * zend_weakref_no_write (zend_object * object , zend_string * member , zval * value , void * * rtc ) {
243
- zend_weakref_unsupported (object , "properties" );
244
-
245
- return & EG (uninitialized_zval );
246
- }
247
-
248
- static ZEND_COLD zval * zend_weakref_no_read (zend_object * object , zend_string * member , int type , void * * rtc , zval * rv ) {
249
- if (!EG (exception )) {
250
- zend_weakref_unsupported (object , "properties" );
251
- }
252
-
253
- return & EG (uninitialized_zval );
254
- }
255
-
256
- static ZEND_COLD zval * zend_weakref_no_read_ptr (zend_object * object , zend_string * member , int type , void * * rtc ) {
257
- zend_weakref_unsupported (object , "property references" );
258
- return NULL ;
259
- }
260
-
261
- static ZEND_COLD int zend_weakref_no_isset (zend_object * object , zend_string * member , int hse , void * * rtc ) {
262
- if (hse != 2 ) {
263
- zend_weakref_unsupported (object , "properties" );
264
- }
265
- return 0 ;
266
- }
267
-
268
- static ZEND_COLD void zend_weakref_no_unset (zend_object * object , zend_string * member , void * * rtc ) {
269
- zend_weakref_unsupported (object , "properties" );
270
- }
271
-
272
242
ZEND_COLD ZEND_METHOD (WeakReference , __construct )
273
243
{
274
244
zend_throw_error (NULL ,
@@ -619,7 +589,7 @@ void zend_register_weakref_ce(void) /* {{{ */
619
589
620
590
INIT_CLASS_ENTRY (ce , "WeakReference" , class_WeakReference_methods );
621
591
zend_ce_weakref = zend_register_internal_class (& ce );
622
- zend_ce_weakref -> ce_flags |= ZEND_ACC_FINAL ;
592
+ zend_ce_weakref -> ce_flags |= ZEND_ACC_FINAL | ZEND_ACC_NO_DYNAMIC_PROPERTIES ;
623
593
624
594
zend_ce_weakref -> create_object = zend_weakref_new ;
625
595
zend_ce_weakref -> serialize = zend_class_serialize_deny ;
@@ -629,16 +599,11 @@ void zend_register_weakref_ce(void) /* {{{ */
629
599
zend_weakref_handlers .offset = XtOffsetOf (zend_weakref , std );
630
600
631
601
zend_weakref_handlers .free_obj = zend_weakref_free ;
632
- zend_weakref_handlers .read_property = zend_weakref_no_read ;
633
- zend_weakref_handlers .write_property = zend_weakref_no_write ;
634
- zend_weakref_handlers .has_property = zend_weakref_no_isset ;
635
- zend_weakref_handlers .unset_property = zend_weakref_no_unset ;
636
- zend_weakref_handlers .get_property_ptr_ptr = zend_weakref_no_read_ptr ;
637
602
zend_weakref_handlers .clone_obj = NULL ;
638
603
639
604
INIT_CLASS_ENTRY (ce , "WeakMap" , class_WeakMap_methods );
640
605
zend_ce_weakmap = zend_register_internal_class (& ce );
641
- zend_ce_weakmap -> ce_flags |= ZEND_ACC_FINAL ;
606
+ zend_ce_weakmap -> ce_flags |= ZEND_ACC_FINAL | ZEND_ACC_NO_DYNAMIC_PROPERTIES ;
642
607
643
608
zend_ce_weakmap -> create_object = zend_weakmap_create_object ;
644
609
zend_ce_weakmap -> get_iterator = zend_weakmap_get_iterator ;
@@ -660,11 +625,6 @@ void zend_register_weakref_ce(void) /* {{{ */
660
625
zend_weakmap_handlers .get_properties_for = zend_weakmap_get_properties_for ;
661
626
zend_weakmap_handlers .get_gc = zend_weakmap_get_gc ;
662
627
zend_weakmap_handlers .clone_obj = zend_weakmap_clone_obj ;
663
- zend_weakmap_handlers .read_property = zend_weakref_no_read ;
664
- zend_weakmap_handlers .write_property = zend_weakref_no_write ;
665
- zend_weakmap_handlers .has_property = zend_weakref_no_isset ;
666
- zend_weakmap_handlers .unset_property = zend_weakref_no_unset ;
667
- zend_weakmap_handlers .get_property_ptr_ptr = zend_weakref_no_read_ptr ;
668
628
}
669
629
/* }}} */
670
630
0 commit comments