]> Raphaƫl G. Git Repositories - bbcode/blobdiff - bbcode.c
Add debug
[bbcode] / bbcode.c
index 3a9ac76e1dabae597fa97d05d17f5385a1828bae..863d84f523578408f9db9429f6709ff3985381f7 100644 (file)
--- a/bbcode.c
+++ b/bbcode.c
@@ -18,11 +18,12 @@ typedef struct _bbcode_object {
        zval *smiley;
        zval *flag;*/
        zend_long flag;
-       zend_object_handlers bbcode_handlers;
        zend_object std;
 } bbcode_object;
 
 /* True global resources - no need for thread safety here */
+zend_object_handlers bbcode_handlers;
+
 /* BBCode object */
 zend_class_entry *bbcode_ce;
 
@@ -109,18 +110,14 @@ static zend_object *bbcode_clone(zval *obj TSRMLS_DC) {
 
        bbcode_object *oldobj = (bbcode_object *)((char *)obj - XtOffsetOf(bbcode_object, std));
 
+       printf("bbcode_clone=%d\n", sizeof(bbcode_object) + zend_object_properties_size(Z_OBJCE_P(obj)));
+
        bbcode_object *newobj = ecalloc(1, sizeof(bbcode_object) + zend_object_properties_size(Z_OBJCE_P(obj)));
 
        zend_object_std_init(&newobj->std, Z_OBJCE_P(obj) TSRMLS_CC);
        object_properties_init(&newobj->std, Z_OBJCE_P(obj) TSRMLS_CC);
 
-       memcpy(&newobj->bbcode_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
-       newobj->bbcode_handlers.offset = XtOffsetOf(bbcode_object, std);
-       newobj->bbcode_handlers.dtor_obj = (zend_object_dtor_obj_t) bbcode_destroy;
-       newobj->bbcode_handlers.free_obj = (zend_object_free_obj_t) bbcode_free;
-       newobj->bbcode_handlers.clone_obj = (zend_object_clone_obj_t) bbcode_clone;
-
-       newobj->std.handlers = &(newobj->bbcode_handlers);
+       //newobj->std.handlers = &bbcode_handlers;
 
        zend_objects_clone_members(&newobj->std, &oldobj->std);
 
@@ -170,6 +167,8 @@ static zend_object_value bbcode_clone(zval *obj TSRMLS_DC)
 #endif
 
 static zend_object *bbcode_create(zend_class_entry *ce TSRMLS_DC) {
+       printf("bbcode_clone=%d\n", sizeof(bbcode_object) + zend_object_properties_size(ce));
+
        bbcode_object *obj = ecalloc(1, sizeof(bbcode_object) + zend_object_properties_size(ce));//emalloc(sizeof(bbcode_object));
        obj->flag = 0;
        //memset(obj, 0, sizeof(bbcode_object));
@@ -179,11 +178,11 @@ static zend_object *bbcode_create(zend_class_entry *ce TSRMLS_DC) {
 
        /**/
 
-       memcpy(&obj->bbcode_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
-       obj->bbcode_handlers.offset = XtOffsetOf(bbcode_object, std);
-       obj->bbcode_handlers.dtor_obj = (zend_object_dtor_obj_t) bbcode_destroy;
-       obj->bbcode_handlers.free_obj = (zend_object_free_obj_t) bbcode_free;
-       obj->bbcode_handlers.clone_obj = (zend_object_clone_obj_t) bbcode_clone;
+       memcpy(&bbcode_handlers, zend_get_std_object_handlers(), sizeof(zend_object_handlers));
+       bbcode_handlers.offset = XtOffsetOf(bbcode_object, std);
+       bbcode_handlers.dtor_obj = (zend_object_dtor_obj_t) bbcode_destroy;
+       bbcode_handlers.free_obj = (zend_object_free_obj_t) bbcode_free;
+       bbcode_handlers.clone_obj = (zend_object_clone_obj_t) bbcode_clone;
        //bbcode_handlers.offset = XtOffsetOf(bbcode_object, std);
        //bbcode_handlers.dtor_obj = (zend_object_dtor_obj_t) bbcode_destroy;
        //bbcode_handlers.free_obj = (zend_object_free_obj_t) bbcode_free;
@@ -200,7 +199,7 @@ static zend_object *bbcode_create(zend_class_entry *ce TSRMLS_DC) {
 
        return retval;*/
 
-       obj->std.handlers = &(obj->bbcode_handlers);
+       obj->std.handlers = &bbcode_handlers;
 
        return &obj->std;
 }