com gtk/php-gtk: Give GPointer types something to hold onto...: generator/templates.php main/php_gtk.h main/phpg_gpoint er.c
[email protected] (David Soria Parra)
| Newsgroups | php.gtk.cvs |
|---|---|
| Message-ID | <[email protected]> |
Commit: 6fc9ed83f2ed7c8d53f268db6a35439b02883868 Author: Steph Fox <[email protected]> Sun, 25 Jun 2006 10:48:07 +0000 Parents: 8f2d70252c4134a78d0ce296084c9f7132240f1a Branches: master Link: http://git.php.net/?p=gtk/php-gtk.git;a=commitdiff;h=6fc9ed83f2ed7c8d53f268db6a35439b02883868 Log: Give GPointer types something to hold onto... Changed paths: M generator/templates.php M main/php_gtk.h M main/phpg_gpointer.c Diff: 6fc9ed83f2ed7c8d53f268db6a35439b02883868 diff --git a/generator/templates.php b/generator/templates.php index f8c93a5..e13536f 100644 --- a/generator/templates.php +++ b/generator/templates.php @@ -257,7 +257,7 @@ const register_boxed = " %(ce) = phpg_register_boxed(\"%(class)\", %(methods), %(propinfo), %(create_func), %(typecode) TSRMLS_CC);\n%(extra_reg_info)"; const register_pointer = " - %(ce) = phpg_register_class(\"%(class)\", %(methods), NULL, 0, NULL, phpg_create_gpointer, %(typecode) TSRMLS_CC);\n%(extra_reg_info)"; + %(ce) = phpg_register_pointer(\"%(class)\", %(methods), %(create_func), %(typecode) TSRMLS_CC);\n%(extra_reg_info)"; const register_interface = " diff --git a/main/php_gtk.h b/main/php_gtk.h index fcdf94f..de0221a 100644 --- a/main/php_gtk.h +++ b/main/php_gtk.h @@ -476,6 +476,7 @@ static inline phpg_gboxed_t* phpg_gboxed_get(zval *zobj TSRMLS_DC) /* GPointer */ void phpg_gpointer_register_self(TSRMLS_D); PHP_GTK_API void phpg_gpointer_new(zval **zobj, GType gtype, gpointer pointer TSRMLS_DC); +PHP_GTK_API zend_class_entry* phpg_register_pointer(const char *class_name, function_entry *class_methods, create_object_func_t create_obj_func, GType gtype TSRMLS_DC); PHP_GTK_API zend_object_value phpg_create_gpointer(zend_class_entry *ce TSRMLS_DC); PHP_GTK_API zend_bool phpg_gpointer_check(zval *zobj, GType gtype, zend_bool full_check TSRMLS_DC); diff --git a/main/phpg_gpointer.c b/main/phpg_gpointer.c index 6a88d6c..4d12411 100644 --- a/main/phpg_gpointer.c +++ b/main/phpg_gpointer.c @@ -49,6 +49,16 @@ static void phpg_free_gpointer_storage(phpg_gpointer_t *object TSRMLS_DC) } /* }}} */ +/* {{{ PHP_GTK_API phpg_register_pointer() */ +PHP_GTK_API zend_class_entry* phpg_register_pointer(const char *class_name, + function_entry *class_methods, + create_object_func_t create_obj_func, + GType gtype TSRMLS_DC) +{ + return phpg_register_class(class_name, class_methods, gpointer_ce, 0, NULL, create_obj_func ? create_obj_func : phpg_create_gpointer, gtype TSRMLS_CC); +} +/* }}} */ + /* {{{ PHP_GTK_API phpg_create_gpointer() */ PHP_GTK_API zend_object_value phpg_create_gpointer(zend_class_entry *ce TSRMLS_DC) {