#include "zend_constants.h"
#include "zend_ini.h"
+/* Class entry pointers */
+zend_class_entry *reflector_ptr;
+zend_class_entry *reflection_exception_ptr;
+zend_class_entry *reflection_ptr;
+zend_class_entry *reflection_function_ptr;
+zend_class_entry *reflection_class_ptr;
+zend_class_entry *reflection_method_ptr;
+zend_class_entry *reflection_property_ptr;
+zend_class_entry *reflection_extension_ptr;
+
/* Method macros */
#define METHOD_NOTSTATIC \
if (!this_ptr) { \
/* Exception throwing macro */
#define _DO_THROW(msg) \
- zend_throw_exception(msg, 0 TSRMLS_CC); \
+ zend_throw_exception(reflection_exception_ptr, msg, 0 TSRMLS_CC); \
return; \
/* Smart string macros */
unsigned int free_ptr:1;
} reflection_object;
-/* Class entry pointers */
-zend_class_entry *reflector_ptr;
-zend_class_entry *reflection_ptr;
-zend_class_entry *reflection_function_ptr;
-zend_class_entry *reflection_class_ptr;
-zend_class_entry *reflection_method_ptr;
-zend_class_entry *reflection_property_ptr;
-zend_class_entry *reflection_extension_ptr;
-
static zend_object_handlers reflection_object_handlers;
static void _default_get_entry(zval *object, char *name, int name_len, zval *return_value TSRMLS_DC)
memcpy(&reflection_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
+ INIT_CLASS_ENTRY(_reflection_entry, "reflection_exception", reflection_functions);
+ reflection_exception_ptr = zend_register_internal_class_ex(&_reflection_entry, zend_exception_get_default(), NULL TSRMLS_CC);
+
INIT_CLASS_ENTRY(_reflection_entry, "reflection", reflection_functions);
reflection_ptr = zend_register_internal_class(&_reflection_entry TSRMLS_CC);
#include "zend_constants.h"
#include "zend_ini.h"
+/* Class entry pointers */
+zend_class_entry *reflector_ptr;
+zend_class_entry *reflection_exception_ptr;
+zend_class_entry *reflection_ptr;
+zend_class_entry *reflection_function_ptr;
+zend_class_entry *reflection_class_ptr;
+zend_class_entry *reflection_method_ptr;
+zend_class_entry *reflection_property_ptr;
+zend_class_entry *reflection_extension_ptr;
+
/* Method macros */
#define METHOD_NOTSTATIC \
if (!this_ptr) { \
/* Exception throwing macro */
#define _DO_THROW(msg) \
- zend_throw_exception(msg, 0 TSRMLS_CC); \
+ zend_throw_exception(reflection_exception_ptr, msg, 0 TSRMLS_CC); \
return; \
/* Smart string macros */
unsigned int free_ptr:1;
} reflection_object;
-/* Class entry pointers */
-zend_class_entry *reflector_ptr;
-zend_class_entry *reflection_ptr;
-zend_class_entry *reflection_function_ptr;
-zend_class_entry *reflection_class_ptr;
-zend_class_entry *reflection_method_ptr;
-zend_class_entry *reflection_property_ptr;
-zend_class_entry *reflection_extension_ptr;
-
static zend_object_handlers reflection_object_handlers;
static void _default_get_entry(zval *object, char *name, int name_len, zval *return_value TSRMLS_DC)
memcpy(&reflection_object_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
+ INIT_CLASS_ENTRY(_reflection_entry, "reflection_exception", reflection_functions);
+ reflection_exception_ptr = zend_register_internal_class_ex(&_reflection_entry, zend_exception_get_default(), NULL TSRMLS_CC);
+
INIT_CLASS_ENTRY(_reflection_entry, "reflection", reflection_functions);
reflection_ptr = zend_register_internal_class(&_reflection_entry TSRMLS_CC);