[prev in list] [next in list] [prev in thread] [next in thread] 

List:       php-gtk-cvs
Subject:    [php-gtk-cvs] com gtk/php-gtk: Use proper original handlers when creating custom ones.: generator/ge
From:       David Soria Parra <dsp () php ! net>
Date:       2006-02-19 21:53:44
Message-ID: php-mail-95bd4caaba3235bac14188f5f41f57f01522647682 () git ! php ! net
[Download RAW message or body]

Commit:    6ca129cece1bfe30e2e3cd04eae0e5e6b3bde640
Author:    Andrei Zmievski <andrei@php.net>         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;


--
PHP-GTK CVS Mailing List (http://gtk.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic