com gtk/php-gtk: Use proper original handlers when creating custom ones.: generator/generator.php generator/templates.php main/php_gtk .h main/phpg_gobject.c

[email protected] (David Soria Parra) Sun, 19 Feb 2006 21:53:44 +0000
Newsgroups php.gtk.cvs
Message-ID <[email protected]>
Commit:    6ca129cece1bfe30e2e3cd04eae0e5e6b3bde640
Author:    Andrei Zmievski <[email protected]>         Sun, 19 Feb 2006 21:53:44 +0000
Parents:   849d6d3c9d3fac11aba1bf3cf60eddcfc58856eb
Branches:  master

Link:       http://git.php.net/?p=gtk/php-gtk.git;a=commitdiff;h=6ca129cece1bfe30e2e3cd04eae0e5e6b3bde640

Log:
Use proper original handlers when creating custom ones.

Changed paths:
  M  generator/generator.php
  M  generator/templates.php
  M  main/php_gtk.h
  M  main/phpg_gobject.c


Diff:
6ca129cece1bfe30e2e3cd04eae0e5e6b3bde640
diff --git a/generator/generator.php b/generator/generator.php
index 646e478..3da1815 100644
--- a/generator/generator.php
+++ b/generator/generator.php
@@ -639,10 +639,12 @@ class Generator {
         switch ($object->def_type) {
             case 'object':
                 $dict['create_func'] = 'phpg_create_gobject';
+                $dict['orig_handlers'] = 'phpg_gobject_handlers';
                 break;
 
             case 'boxed':
                 $dict['create_func'] = 'phpg_create_gboxed';
+                $dict['orig_handlers'] = 'php_gtk_handlers';
                 break;
 
             default:
diff --git a/generator/templates.php b/generator/templates.php
index 7ecdddd..d9a6ece 100644
--- a/generator/templates.php
+++ b/generator/templates.php
@@ -199,7 +199,7 @@ static function_entry %s_methods[] = {
 ";
 const functions_decl_end = "\t{ NULL, NULL, NULL }\n};\n";
 
-const custom_handlers_init = "\t%(class)_object_handlers = php_gtk_handlers;\n";
+const custom_handlers_init = "\t%(class)_object_handlers = %(orig_handlers);\n";
 const custom_handler_set = "\t%(class)_object_handlers.%(handler) = phpg_%(class)_%(handler)_handler;\n";
 
 const custom_create_func = "
diff --git a/main/php_gtk.h b/main/php_gtk.h
index 65705c9..63d04bd 100644
--- a/main/php_gtk.h
+++ b/main/php_gtk.h
@@ -236,6 +236,7 @@ extern PHP_GTK_API zend_class_entry *phpg_type_exception;
 extern PHP_GTK_API zend_class_entry *phpg_gerror_exception;
 
 extern PHP_GTK_API zend_object_handlers php_gtk_handlers;
+extern PHP_GTK_API zend_object_handlers phpg_gobject_handlers;
 
 /* Function declarations. */
 
diff --git a/main/phpg_gobject.c b/main/phpg_gobject.c
index 856d4cb..12199d8 100644
--- a/main/phpg_gobject.c
+++ b/main/phpg_gobject.c
@@ -30,7 +30,7 @@ static GQuark gobject_wrapper_handle_key    = 0;
 static GQuark gobject_wrapper_handlers_key  = 0;
 static GQuark gobject_wrapper_owned_key     = 0;
 
-static zend_object_handlers phpg_gobject_handlers;
+PHP_GTK_API zend_object_handlers phpg_gobject_handlers;
 
 HashTable phpg_prop_info;