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