@@ -589,35 +589,40 @@ static sw_inline void add_assoc_ulong_safe(zval *arg, const char *key, zend_ulon
589
589
590
590
/* PHP 7 class declaration macros */
591
591
592
- #define SW_INIT_CLASS_ENTRY_BASE (module , namespaceName , snake_name , shortName , methods , parent_ce ) do { \
592
+ #define SW_INIT_CLASS_ENTRY_BASE (module , namespace_name , snake_name , short_name , methods , parent_ce ) do { \
593
593
zend_class_entry _##module##_ce = {}; \
594
- INIT_CLASS_ENTRY(_##module##_ce, namespaceName , methods); \
594
+ INIT_CLASS_ENTRY(_##module##_ce, namespace_name , methods); \
595
595
module##_ce = zend_register_internal_class_ex(&_##module##_ce, parent_ce); \
596
- SW_CLASS_ALIAS(snake_name, module); \
597
- SW_CLASS_ALIAS_SHORT_NAME(shortName , module); \
596
+ if (snake_name) SW_CLASS_ALIAS(snake_name, module); \
597
+ if (short_name) SW_CLASS_ALIAS_SHORT_NAME(short_name , module); \
598
598
} while (0)
599
599
600
- #define SW_INIT_CLASS_ENTRY (module , namespaceName , snake_name , shortName , methods ) \
601
- SW_INIT_CLASS_ENTRY_BASE(module, namespaceName , snake_name, shortName , methods, NULL); \
600
+ #define SW_INIT_CLASS_ENTRY (module , namespace_name , snake_name , short_name , methods ) \
601
+ SW_INIT_CLASS_ENTRY_BASE(module, namespace_name , snake_name, short_name , methods, NULL); \
602
602
memcpy(&module##_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers))
603
603
604
- #define SW_INIT_CLASS_ENTRY_EX (module , namespaceName , snake_name , shortName , methods , parent_module ) \
605
- SW_INIT_CLASS_ENTRY_BASE(module, namespaceName , snake_name, shortName , methods, parent_module##_ce); \
604
+ #define SW_INIT_CLASS_ENTRY_EX (module , namespace_name , snake_name , short_name , methods , parent_module ) \
605
+ SW_INIT_CLASS_ENTRY_BASE(module, namespace_name , snake_name, short_name , methods, parent_module##_ce); \
606
606
memcpy(&module##_handlers, &parent_module##_handlers, sizeof(zend_object_handlers))
607
607
608
- #define SW_INIT_CLASS_ENTRY_EX2 (module , namespaceName , snake_name , shortName , methods , parent_module_ce , parent_module_handlers ) \
609
- SW_INIT_CLASS_ENTRY_BASE(module, namespaceName , snake_name, shortName , methods, parent_module_ce); \
608
+ #define SW_INIT_CLASS_ENTRY_EX2 (module , namespace_name , snake_name , short_name , methods , parent_module_ce , parent_module_handlers ) \
609
+ SW_INIT_CLASS_ENTRY_BASE(module, namespace_name , snake_name, short_name , methods, parent_module_ce); \
610
610
memcpy(&module##_handlers, parent_module_handlers, sizeof(zend_object_handlers))
611
611
612
+ // Data Object: no methods, no parent
613
+ #define SW_INIT_CLASS_ENTRY_DATA_OBJECT (module , namespace_name ) \
614
+ SW_INIT_CLASS_ENTRY_BASE(module, namespace_name, NULL, NULL, NULL, NULL); \
615
+ memcpy(&module##_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers))
616
+
612
617
#define SW_CLASS_ALIAS (name , module ) do { \
613
618
if (name) { \
614
619
sw_zend_register_class_alias(ZEND_STRL(name), module##_ce); \
615
620
} \
616
621
} while (0)
617
622
618
- #define SW_CLASS_ALIAS_SHORT_NAME (shortName , module ) do { \
623
+ #define SW_CLASS_ALIAS_SHORT_NAME (short_name , module ) do { \
619
624
if (SWOOLE_G(use_shortname)) { \
620
- SW_CLASS_ALIAS(shortName , module); \
625
+ SW_CLASS_ALIAS(short_name , module); \
621
626
} \
622
627
} while (0)
623
628
0 commit comments