cvs: php-gtk /ext/gtk+ php_gtk+_types.c /generator arg_types.php /main php_gtk.h

From: Date: Tue, 31 Jul 2001 21:12:32 +0000
Subject: cvs: php-gtk /ext/gtk+ php_gtk+_types.c /generator arg_types.php /main php_gtk.h
Groups: php.gtk 
Request: Send a blank email to php-gtk+get-2430@lists.php.net to get a copy of this message
andrei Tue Jul 31 17:12:32 2001 EDT Modified files: /php-gtk/ext/gtk+ php_gtk+_types.c /php-gtk/generator arg_types.php /php-gtk/main php_gtk.h Log: Fixed bug with GtkStyle::copy() that could cause crash in certain cases depending on where the result was used. Index: php-gtk/ext/gtk+/php_gtk+_types.c diff -u php-gtk/ext/gtk+/php_gtk+_types.c:1.8 php-gtk/ext/gtk+/php_gtk+_types.c:1.9 --- php-gtk/ext/gtk+/php_gtk+_types.c:1.8 Tue Jul 31 01:27:00 2001 +++ php-gtk/ext/gtk+/php_gtk+_types.c Tue Jul 31 17:12:31 2001 @@ -18,7 +18,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* $Id: php_gtk+_types.c,v 1.8 2001/07/31 05:27:00 andrei Exp $ */ +/* $Id: php_gtk+_types.c,v 1.9 2001/07/31 21:12:31 andrei Exp $ */ #include "php_gtk.h" @@ -1927,6 +1927,7 @@ PHP_FUNCTION(gtk_style_copy) { GtkStyle *style; + zval *ret; NOT_STATIC_METHOD(); @@ -1934,7 +1935,7 @@ return; style = gtk_style_copy(PHP_GTK_STYLE_GET(this_ptr)); - *return_value = *php_gtk_style_new(style); + PHP_GTK_SEPARATE_RETURN(return_value, php_gtk_style_new(style)); gtk_style_unref(style); } Index: php-gtk/generator/arg_types.php diff -u php-gtk/generator/arg_types.php:1.26 php-gtk/generator/arg_types.php:1.27 --- php-gtk/generator/arg_types.php:1.26 Tue Jul 31 01:27:00 2001 +++ php-gtk/generator/arg_types.php Tue Jul 31 17:12:32 2001 @@ -19,7 +19,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* $Id: arg_types.php,v 1.26 2001/07/31 05:27:00 andrei Exp $ */ +/* $Id: arg_types.php,v 1.27 2001/07/31 21:12:32 andrei Exp $ */ /*======================================================================*\ Function: convert_typename @@ -412,11 +412,13 @@ function write_return($type, &$var_list, $separate) { - $var_list->add('zval', '*ret'); - return " ret = php_gtk_new((GtkObject *)%s);\n" . - ($separate ? " SEPARATE_ZVAL(&ret);\n" : "") . - " *return_value = *ret;\n" . - "%s return;"; + if ($separate) { + return " PHP_GTK_SEPARATE_RETURN(return_value, php_gtk_new((GtkObject *)%s));\n" . + "%s return;"; + } else { + return " *return_value = *php_gtk_new((GtkObject *)%s);\n" . + "%s return;"; + } } } @@ -492,11 +494,13 @@ function write_return($type, &$var_list, $separate) { - $var_list->add('zval', '*ret'); - return " ret = php_" . $this->php_type . "_new(%s);\n" . - ($separate ? " SEPARATE_ZVAL(&ret);\n" : "") . - " *return_value = *ret;\n" . - "%s return;"; + if ($separate) { + return " PHP_GTK_SEPARATE_RETURN(return_value, php_" . $this->php_type . "_new(%s));\n" . + "%s return;"; + } else { + return " *return_value = *php_" . $this->php_type . "_new(%s);\n" . + "%s return;"; + } } } @@ -508,6 +512,8 @@ } } +/* This is a hack -- the $default handling doesn't work, neither does + write_return(). */ class Drawable_Arg extends Arg_Type { var $type = 'GdkDrawable'; Index: php-gtk/main/php_gtk.h diff -u php-gtk/main/php_gtk.h:1.47 php-gtk/main/php_gtk.h:1.48 --- php-gtk/main/php_gtk.h:1.47 Tue Jul 31 01:27:01 2001 +++ php-gtk/main/php_gtk.h Tue Jul 31 17:12:32 2001 @@ -18,7 +18,7 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ -/* $Id: php_gtk.h,v 1.47 2001/07/31 05:27:01 andrei Exp $: */ +/* $Id: php_gtk.h,v 1.48 2001/07/31 21:12:32 andrei Exp $: */ #ifndef _PHP_GTK_H #define _PHP_GTK_H @@ -30,6 +30,14 @@ #define PHP_GTK_EXPORT_CE(ce) zend_class_entry *ce #define PHP_GTK_EXPORT_FUNC(func) func #define PHP_GTK_GET_GENERIC(w, type, le) ((type)php_gtk_get_object(w, le)) +#define PHP_GTK_SEPARATE_RETURN(return_value, result) \ + { \ + zval *ret; \ + \ + ret = result; \ + SEPARATE_ZVAL(&ret); \ + *return_value = *ret; \ + } #undef PG_ERROR #define PG_ERROR -2

« previous php.gtk (#2430) next »