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)
 {
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.