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

List:       php-gtk
Subject:    [PHP-GTK] cvs: php-gtk /generator generator.php templates.php  /src Makefile.in php_gtk.h php_gtk_ob
From:       "Andrei Zmievski" <andrei () ispi ! net>
Date:       2001-02-27 16:54:02
[Download RAW message or body]

andrei		Tue Feb 27 08:54:02 2001 EDT

  Modified files:              
    /php-gtk/generator	generator.php templates.php 
    /php-gtk/src	Makefile.in php_gtk.h php_gtk_object.c php_gtk_types.c 
  Log:
  Generic property handlers now percolate up the inheritance chain
  to see whether parent objects have the needed property.
  
  
["andrei-20010227085402.txt" (text/plain)]

Index: php-gtk/generator/generator.php
diff -u php-gtk/generator/generator.php:1.7 php-gtk/generator/generator.php:1.8
--- php-gtk/generator/generator.php:1.7	Mon Feb 26 21:16:35 2001
+++ php-gtk/generator/generator.php	Tue Feb 27 08:54:01 2001
@@ -309,10 +309,11 @@
 								 $obj_cast . '(PHP_GTK_GET(object))->' . $field_name);
 			$prop_code = str_replace("\n", "\n\t", $prop_code);
 
+			$var_list_code = $var_list->to_string();
 			$prop_checks .= sprintf($prop_check_tpl,
 									$else_clause,
 									$field_name,
-									"\t" . $var_list->to_string(),
+									$var_list_code ? $var_list_code . "\t" : '',
 									$prop_code);
 			$else_clause = ' else ';
 		}
Index: php-gtk/generator/templates.php
diff -u php-gtk/generator/templates.php:1.3 php-gtk/generator/templates.php:1.4
--- php-gtk/generator/templates.php:1.3	Mon Feb 26 21:16:35 2001
+++ php-gtk/generator/templates.php	Tue Feb 27 08:54:01 2001
@@ -69,17 +69,20 @@
 
 $prop_check_tpl =
 "%sif (!strcmp(prop_name, \"%s\")) {
-%s	%s
+	%s	*found = SUCCESS;
+	%s
 	}";
 
 $prop_getter_tpl = "
-static void %s_get_property(zval *return_value, zval *object, zend_llist_element \
**element) +static void %s_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found)  {
 	char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
 
 	ZVAL_NULL(return_value);
 
 %s
+
+	*found = FAILURE;
 }\n\n";
 
 $init_class_tpl = "\n\tINIT_OVERLOADED_CLASS_ENTRY(ce, \"%s\", %s_functions, NULL, \
                %s, NULL);\n";
Index: php-gtk/src/Makefile.in
diff -u php-gtk/src/Makefile.in:1.1.1.1 php-gtk/src/Makefile.in:1.2
--- php-gtk/src/Makefile.in:1.1.1.1	Mon Jan 29 14:15:58 2001
+++ php-gtk/src/Makefile.in	Tue Feb 27 08:54:01 2001
@@ -1,5 +1,5 @@
 LTLIBRARY_NAME = libphp_gtk_src.la
-LTLIBRARY_SOURCES = php_gtk.c php_gtk_object.c php_gtk_types.c php_gtk_util.c \
php_gtk_gen.c +LTLIBRARY_SOURCES = php_gtk.c php_gtk_object.c php_gtk_types.c \
php_gtk_util.c $(srcdir)/php_gtk_gen.c  
 $(srcdir)/php_gtk_gen.c: $(top_srcdir)/generator/gtk.defs  \
$(top_srcdir)/generator/gdk.defs \  $(top_srcdir)/generator/gtk-extrafuncs.defs  \
                $(top_srcdir)/generator/gtk.overrides
Index: php-gtk/src/php_gtk.h
diff -u php-gtk/src/php_gtk.h:1.13 php-gtk/src/php_gtk.h:1.14
--- php-gtk/src/php_gtk.h:1.13	Mon Feb 26 21:16:35 2001
+++ php-gtk/src/php_gtk.h	Tue Feb 27 08:54:01 2001
@@ -18,7 +18,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
  
-/* $Id: php_gtk.h,v 1.13 2001/02/27 05:16:35 andrei Exp $: */
+/* $Id: php_gtk.h,v 1.14 2001/02/27 16:54:01 andrei Exp $: */
 
 #ifndef _PHP_GTK_H
 #define _PHP_GTK_H
@@ -62,7 +62,7 @@
 extern zend_class_entry *gtk_accel_group_ce;
 extern zend_class_entry *gtk_style_ce;
 
-typedef void (*prop_getter_t)(zval *result, zval *object, zend_llist_element \
**element); +typedef void (*prop_getter_t)(zval *return_value, zval *object, \
zend_llist_element **element, int *found);  typedef int (*prop_setter_t)(zval \
*object, zend_llist_element **element, zval *value);  
 /* Useful macros. */
Index: php-gtk/src/php_gtk_object.c
diff -u php-gtk/src/php_gtk_object.c:1.10 php-gtk/src/php_gtk_object.c:1.11
--- php-gtk/src/php_gtk_object.c:1.10	Mon Feb 26 21:16:35 2001
+++ php-gtk/src/php_gtk_object.c	Tue Feb 27 08:54:01 2001
@@ -18,7 +18,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-/* $Id: php_gtk_object.c,v 1.10 2001/02/27 05:16:35 andrei Exp $ */
+/* $Id: php_gtk_object.c,v 1.11 2001/02/27 16:54:01 andrei Exp $ */
 
 #include "php_gtk.h"
 
@@ -568,6 +568,8 @@
 	zend_llist_element *element;
 	zval *object = property_reference->object;
 	prop_getter_t *getter;
+	zend_class_entry *ce;
+	int found = FAILURE;
 
 	for (element=property_reference->elements_list->head; element; \
element=element->next) {  overloaded_property = (zend_overloaded_element *) \
element->data; @@ -578,9 +580,12 @@
 			return result;
 		}
 
-		if (zend_hash_index_find(&php_gtk_prop_getters, (long)object->value.obj.ce, (void \
                **)&getter) == SUCCESS) {
-			(*getter)(&result, object, &element);
-		} else {
+		for (ce = Z_OBJCE_P(object); ce != NULL && found != SUCCESS; ce = ce->parent) {
+			if (zend_hash_index_find(&php_gtk_prop_getters, (long)ce, (void **)&getter) == \
SUCCESS) { +				(*getter)(&result, object, &element, &found);
+			}
+		}
+		if (found == FAILURE) {
 			convert_to_null(&result);
 			return result;
 		}
@@ -601,7 +606,8 @@
 	zval *object = property_reference->object;
 	prop_getter_t *getter;
 	prop_setter_t *setter;
-	int retval;
+	zend_class_entry *ce;
+	int retval, found = FAILURE;
 
 	/*
 	 * We want to stop at the last overloaded object reference - the rest can
@@ -619,11 +625,13 @@
 			return FAILURE;
 		}
 
-		if (zend_hash_index_find(&php_gtk_prop_getters, (long)object->value.obj.ce, (void \
                **)&getter) == SUCCESS) {
-			(*getter)(&result, object, &element);
-		} else {
-			return FAILURE;
+		for (ce = Z_OBJCE_P(object); ce != NULL && found != SUCCESS; ce = ce->parent) {
+			if (zend_hash_index_find(&php_gtk_prop_getters, (long)ce, (void **)&getter) == \
SUCCESS) { +				(*getter)(&result, object, &element, &found);
+			}
 		}
+		if (found == FAILURE)
+			return FAILURE;
 		object = &result;
 
 		zval_dtor(&overloaded_property->element);
Index: php-gtk/src/php_gtk_types.c
diff -u php-gtk/src/php_gtk_types.c:1.14 php-gtk/src/php_gtk_types.c:1.15
--- php-gtk/src/php_gtk_types.c:1.14	Mon Feb 26 13:21:20 2001
+++ php-gtk/src/php_gtk_types.c	Tue Feb 27 08:54:01 2001
@@ -18,7 +18,7 @@
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
  */
 
-/* $Id: php_gtk_types.c,v 1.14 2001/02/26 21:21:20 andrei Exp $ */
+/* $Id: php_gtk_types.c,v 1.15 2001/02/27 16:54:01 andrei Exp $ */
 
 #include "php_gtk.h"
 
@@ -573,7 +573,7 @@
 	return result;
 }
 
-static void gdk_window_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_window_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found)  {
 	zval *value;
 	GdkWindow *win = PHP_GDK_WINDOW_GET(object);
@@ -581,55 +581,60 @@
 	GdkModifierType p_mask;
 	char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
 	
-	ZVAL_NULL(result);
+	ZVAL_NULL(return_value);
 
 	if (!strcmp(prop_name, "width")) {
 		gdk_window_get_size(win, &x, NULL);
-		ZVAL_LONG(result, x);
+		ZVAL_LONG(return_value, x);
 	} else if (!strcmp(prop_name, "height")) {
 		gdk_window_get_size(win, NULL, &y);
-		ZVAL_LONG(result, y);
+		ZVAL_LONG(return_value, y);
 	} else if (!strcmp(prop_name, "x")) {
 		gdk_window_get_position(win, &x, NULL);
-		ZVAL_LONG(result, x);
+		ZVAL_LONG(return_value, x);
 	} else if (!strcmp(prop_name, "y")) {
 		gdk_window_get_position(win, NULL, &y);
-		ZVAL_LONG(result, y);
+		ZVAL_LONG(return_value, y);
 	} else if (!strcmp(prop_name, "colormap")) {
-		*result = *php_gdk_colormap_new(gdk_window_get_colormap(win));
+		*return_value = *php_gdk_colormap_new(gdk_window_get_colormap(win));
 	} else if (!strcmp(prop_name, "pointer")) {
 		gdk_window_get_pointer(win, &x, &y, NULL);
-		*result = *php_gtk_build_value("(ii)", x, y);
+		*return_value = *php_gtk_build_value("(ii)", x, y);
 	} else if (!strcmp(prop_name, "pointer_state")) {
 		gdk_window_get_pointer(win, NULL, NULL, &p_mask);
-		ZVAL_LONG(result, p_mask);
+		ZVAL_LONG(return_value, p_mask);
 	} else if (!strcmp(prop_name, "parent")) {
 		GdkWindow *parent = gdk_window_get_parent(win);
 		if (parent)
-			*result = *php_gdk_window_new(parent);
+			*return_value = *php_gdk_window_new(parent);
 	} else if (!strcmp(prop_name, "toplevel")) {
-		*result = *php_gdk_window_new(gdk_window_get_toplevel(win));
+		*return_value = *php_gdk_window_new(gdk_window_get_toplevel(win));
 	} else if (!strcmp(prop_name, "children")) {
 		GList *children, *tmp;
 		zval *child;
 		children = gdk_window_get_children(win);
-		array_init(result);
+		array_init(return_value);
 		for (tmp = children; tmp; tmp = tmp->next) {
 			child = php_gdk_window_new(tmp->data);
-			zend_hash_next_index_insert(Z_ARRVAL_P(result), &child, sizeof(zval *), NULL);
+			zend_hash_next_index_insert(Z_ARRVAL_P(return_value), &child, sizeof(zval *), \
NULL);  }
 		g_list_free(children);
 	} else if (!strcmp(prop_name, "type")) {
-		ZVAL_LONG(result, gdk_window_get_type(win));
+		ZVAL_LONG(return_value, gdk_window_get_type(win));
 	} else if (!strcmp(prop_name, "depth")) {
 		gdk_window_get_geometry(win, NULL, NULL, NULL, NULL, &x);
-		ZVAL_LONG(result, x);
+		ZVAL_LONG(return_value, x);
 	}
-#ifdef WITH_XSTUFF
+#ifndef G_OS_WIN32
 	else if (!strcmp(prop_name, "xid")) {
-		ZVAL_LONG(result, GDK_WINDOW_XWINDOW(win));
+		ZVAL_LONG(return_value, GDK_WINDOW_XWINDOW(win));
 	}
 #endif
+	else {
+		*found = FAILURE;
+	}
+
+	*found = SUCCESS;
 }
 
 
@@ -691,22 +696,26 @@
 	return result;
 }
 
-static void gdk_color_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_color_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found)  {
 	GdkColor *color = PHP_GDK_COLOR_GET(object);
 	char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
 
-	ZVAL_NULL(result);
+	ZVAL_NULL(return_value);
 
 	if (!strcmp(prop_name, "red")) {
-		ZVAL_LONG(result, color->red);
+		ZVAL_LONG(return_value, color->red);
 	} else if (!strcmp(prop_name, "green")) {
-		ZVAL_LONG(result, color->green);
+		ZVAL_LONG(return_value, color->green);
 	} else if (!strcmp(prop_name, "blue")) {
-		ZVAL_LONG(result, color->blue);
+		ZVAL_LONG(return_value, color->blue);
 	} else if (!strcmp(prop_name, "pixel")) {
-		ZVAL_LONG(result, color->pixel);
+		ZVAL_LONG(return_value, color->pixel);
+	} else {
+		*found = FAILURE;
 	}
+
+	*found = SUCCESS;
 }
 
 static int gdk_color_set_property(zval *object, zend_llist_element **element, zval \
*value) @@ -804,7 +813,7 @@
 	gdk_colormap_unref(obj);
 }
 
-static void gdk_colormap_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_colormap_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found)  {
 	GdkColormap *cmap = PHP_GDK_COLORMAP_GET(object);
 	zend_overloaded_element *property = (zend_overloaded_element *)(*element)->data;
@@ -812,7 +821,7 @@
 	char *prop_name = Z_STRVAL(property->element);
 	int prop_index, i;
 
-	ZVAL_NULL(result);
+	ZVAL_NULL(return_value);
 
 	if (!strcmp(prop_name, "colors") && cmap->colors) {
 		next = (*element)->next;
@@ -825,15 +834,19 @@
 					php_error(E_WARNING, "colormap index out of range");
 					return;
 				}
-				*result = *php_gdk_color_new(&cmap->colors[prop_index]);
+				*return_value = *php_gdk_color_new(&cmap->colors[prop_index]);
 			}
 		} else {
-			array_init(result);
+			array_init(return_value);
 			
 			for (i = 0; i < cmap->size; i++)
-				add_next_index_zval(result, php_gdk_color_new(&cmap->colors[i]));
+				add_next_index_zval(return_value, php_gdk_color_new(&cmap->colors[i]));
 		}
+	} else {
+		*found = FAILURE;
 	}
+
+	*found = SUCCESS;
 }
 
 
@@ -898,25 +911,29 @@
 	gdk_cursor_destroy(obj);
 }
 
-static void gdk_cursor_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_cursor_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found)  {
 	GdkCursor *cursor = PHP_GDK_CURSOR_GET(object);
 	char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
 
-	ZVAL_NULL(result);
+	ZVAL_NULL(return_value);
 
 	if (!strcmp(prop_name, "type")) {
-		ZVAL_LONG(result, cursor->type);
+		ZVAL_LONG(return_value, cursor->type);
 	} else if (!strcmp(prop_name, "name")) {
 		GtkEnumValue *vals = gtk_type_enum_get_values(GTK_TYPE_GDK_CURSOR_TYPE);
 		while (vals->value_name != NULL && vals->value != cursor->type)
 			vals++;
 		if (vals->value_nick) {
-			ZVAL_STRING(result, vals->value_nick, 1);
+			ZVAL_STRING(return_value, vals->value_nick, 1);
 		} else {
-			ZVAL_STRINGL(result, "*unknown*", sizeof("*unknown*"), 1);
+			ZVAL_STRINGL(return_value, "*unknown*", sizeof("*unknown*"), 1);
 		}
+	} else {
+		*found = FAILURE;
 	}
+
+	*found = SUCCESS;
 }
 
 
@@ -950,42 +967,46 @@
 	gdk_visual_unref(obj);
 }
 
-static void gdk_visual_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_visual_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found)  {
 	GdkVisual *visual = PHP_GDK_VISUAL_GET(object);
 	char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
 
-	ZVAL_NULL(result);
+	ZVAL_NULL(return_value);
 
 	if (!strcmp(prop_name, "type")) {
-		ZVAL_LONG(result, visual->type);
+		ZVAL_LONG(return_value, visual->type);
 	} else if (!strcmp(prop_name, "depth")) {
-		ZVAL_LONG(result, visual->depth);
+		ZVAL_LONG(return_value, visual->depth);
 	} else if (!strcmp(prop_name, "byte_order")) {
-		ZVAL_LONG(result, visual->byte_order);
+		ZVAL_LONG(return_value, visual->byte_order);
 	} else if (!strcmp(prop_name, "colormap_size")) {
-		ZVAL_LONG(result, visual->colormap_size);
+		ZVAL_LONG(return_value, visual->colormap_size);
 	} else if (!strcmp(prop_name, "bits_per_rgb")) {
-		ZVAL_LONG(result, visual->bits_per_rgb);
+		ZVAL_LONG(return_value, visual->bits_per_rgb);
 	} else if (!strcmp(prop_name, "red_mask")) {
-		ZVAL_LONG(result, visual->red_shift);
+		ZVAL_LONG(return_value, visual->red_shift);
 	} else if (!strcmp(prop_name, "red_shift")) {
-		ZVAL_LONG(result, visual->red_prec);
+		ZVAL_LONG(return_value, visual->red_prec);
 	} else if (!strcmp(prop_name, "red_prec")) {
-		ZVAL_LONG(result, visual->red_mask);
+		ZVAL_LONG(return_value, visual->red_mask);
 	} else if (!strcmp(prop_name, "green_mask")) {
-		ZVAL_LONG(result, visual->green_mask);
+		ZVAL_LONG(return_value, visual->green_mask);
 	} else if (!strcmp(prop_name, "green_shift")) {
-		ZVAL_LONG(result, visual->green_shift);
+		ZVAL_LONG(return_value, visual->green_shift);
 	} else if (!strcmp(prop_name, "green_prec")) {
-		ZVAL_LONG(result, visual->green_prec);
+		ZVAL_LONG(return_value, visual->green_prec);
 	} else if (!strcmp(prop_name, "blue_mask")) {
-		ZVAL_LONG(result, visual->blue_mask);
+		ZVAL_LONG(return_value, visual->blue_mask);
 	} else if (!strcmp(prop_name, "blue_shift")) {
-		ZVAL_LONG(result, visual->blue_shift);
+		ZVAL_LONG(return_value, visual->blue_shift);
 	} else if (!strcmp(prop_name, "blue_prec")) {
-		ZVAL_LONG(result, visual->blue_prec);
+		ZVAL_LONG(return_value, visual->blue_prec);
+	} else {
+		*found = FAILURE;
 	}
+
+	*found = SUCCESS;
 }
 
 
@@ -1076,20 +1097,24 @@
 	gdk_font_unref(obj);
 }
 
-static void gdk_font_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_font_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found)  {
 	GdkFont *font = PHP_GDK_FONT_GET(object);
 	char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
 
-	ZVAL_NULL(result);
+	ZVAL_NULL(return_value);
 
 	if (!strcmp(prop_name, "type")) {
-		ZVAL_LONG(result, font->type);
+		ZVAL_LONG(return_value, font->type);
 	} else if (!strcmp(prop_name, "ascent")) {
-		ZVAL_LONG(result, font->ascent);
+		ZVAL_LONG(return_value, font->ascent);
 	} else if (!strcmp(prop_name, "descent")) {
-		ZVAL_LONG(result, font->descent);
+		ZVAL_LONG(return_value, font->descent);
+	} else {
+		*found = FAILURE;
 	}
+
+	*found = SUCCESS;
 }
 
 
@@ -1162,56 +1187,60 @@
 	gdk_gc_unref(obj);
 }
 
-static void gdk_gc_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gdk_gc_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found)  {
 	GdkGC *gc = PHP_GDK_GC_GET(object);
 	char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
 	GdkGCValues gcv;
 
-	ZVAL_NULL(result);
+	ZVAL_NULL(return_value);
 
 	gdk_gc_get_values(gc, &gcv);
 
 	if (!strcmp(prop_name, "foreground")) {
-		*result = *php_gdk_color_new(&gcv.foreground);
+		*return_value = *php_gdk_color_new(&gcv.foreground);
 	} else if (!strcmp(prop_name, "background")) {
-		*result = *php_gdk_color_new(&gcv.background);
+		*return_value = *php_gdk_color_new(&gcv.background);
 	} else if (!strcmp(prop_name, "font")) {
-		*result = *php_gdk_font_new(gcv.font);
+		*return_value = *php_gdk_font_new(gcv.font);
 	} else if (!strcmp(prop_name, "function")) {
-		ZVAL_LONG(result, gcv.function);
+		ZVAL_LONG(return_value, gcv.function);
 	} else if (!strcmp(prop_name, "fill")) {
-		ZVAL_LONG(result, gcv.fill);
+		ZVAL_LONG(return_value, gcv.fill);
 	} else if (!strcmp(prop_name, "tile")) {
 		if (gcv.tile)
-			*result = *php_gdk_window_new(gcv.tile);
+			*return_value = *php_gdk_window_new(gcv.tile);
 	} else if (!strcmp(prop_name, "stipple")) {
 		if (gcv.stipple)
-			*result = *php_gdk_window_new(gcv.stipple);
+			*return_value = *php_gdk_window_new(gcv.stipple);
 	} else if (!strcmp(prop_name, "clip_mask")) {
 		if (gcv.clip_mask)
-			*result = *php_gdk_window_new(gcv.clip_mask);
+			*return_value = *php_gdk_window_new(gcv.clip_mask);
 	} else if (!strcmp(prop_name, "subwindow_mode")) {
-		ZVAL_LONG(result, gcv.subwindow_mode);
+		ZVAL_LONG(return_value, gcv.subwindow_mode);
 	} else if (!strcmp(prop_name, "ts_x_origin")) {
-		ZVAL_LONG(result, gcv.ts_x_origin);
+		ZVAL_LONG(return_value, gcv.ts_x_origin);
 	} else if (!strcmp(prop_name, "ts_y_origin")) {
-		ZVAL_LONG(result, gcv.ts_y_origin);
+		ZVAL_LONG(return_value, gcv.ts_y_origin);
 	} else if (!strcmp(prop_name, "clip_x_origin")) {
-		ZVAL_LONG(result, gcv.clip_x_origin);
+		ZVAL_LONG(return_value, gcv.clip_x_origin);
 	} else if (!strcmp(prop_name, "clip_y_origin")) {
-		ZVAL_LONG(result, gcv.clip_y_origin);
+		ZVAL_LONG(return_value, gcv.clip_y_origin);
 	} else if (!strcmp(prop_name, "graphics_exposures")) {
-		ZVAL_LONG(result, gcv.graphics_exposures);
+		ZVAL_LONG(return_value, gcv.graphics_exposures);
 	} else if (!strcmp(prop_name, "line_width")) {
-		ZVAL_LONG(result, gcv.line_width);
+		ZVAL_LONG(return_value, gcv.line_width);
 	} else if (!strcmp(prop_name, "line_style")) {
-		ZVAL_LONG(result, gcv.line_style);
+		ZVAL_LONG(return_value, gcv.line_style);
 	} else if (!strcmp(prop_name, "cap_style")) {
-		ZVAL_LONG(result, gcv.cap_style);
+		ZVAL_LONG(return_value, gcv.cap_style);
 	} else if (!strcmp(prop_name, "join_style")) {
-		ZVAL_LONG(result, gcv.join_style);
+		ZVAL_LONG(return_value, gcv.join_style);
+	} else {
+		*found = FAILURE;
 	}
+
+	*found = SUCCESS;
 }
 
 static int gdk_gc_set_property(zval *object, zend_llist_element **element, zval \
*value) @@ -1324,38 +1353,42 @@
 	gdk_drag_context_unref(obj);
 }
 
-static void gdk_drag_context_get_property(zval *result, zval *object, \
zend_llist_element **element) +static void gdk_drag_context_get_property(zval \
*return_value, zval *object, zend_llist_element **element, int *found)  {
 	GdkDragContext *context = PHP_GDK_DRAG_CONTEXT_GET(object);
 	char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
 
-	ZVAL_NULL(result);
+	ZVAL_NULL(return_value);
 
 	if (!strcmp(prop_name, "protocol")) {
-		ZVAL_LONG(result, context->protocol);
+		ZVAL_LONG(return_value, context->protocol);
 	} else if (!strcmp(prop_name, "is_source")) {
-		ZVAL_BOOL(result, context->is_source);
+		ZVAL_BOOL(return_value, context->is_source);
 	} else if (!strcmp(prop_name, "source_window")) {
 		if (context->source_window)
-			*result = *php_gdk_window_new(context->source_window);
+			*return_value = *php_gdk_window_new(context->source_window);
 	} else if (!strcmp(prop_name, "dest_window")) {
 		if (context->dest_window)
-			*result = *php_gdk_window_new(context->dest_window);
+			*return_value = *php_gdk_window_new(context->dest_window);
 	} else if (!strcmp(prop_name, "targets")) {
 		GList *tmp;
 
-		array_init(result);
+		array_init(return_value);
 		for (tmp = context->targets; tmp; tmp = tmp->next)
-			add_next_index_zval(result, php_gdk_atom_new(GPOINTER_TO_INT(tmp->data)));
+			add_next_index_zval(return_value, php_gdk_atom_new(GPOINTER_TO_INT(tmp->data)));
 	} else if (!strcmp(prop_name, "actions")) {
-		ZVAL_LONG(result, context->actions);
+		ZVAL_LONG(return_value, context->actions);
 	} else if (!strcmp(prop_name, "suggested_action")) {
-		ZVAL_LONG(result, context->suggested_action);
+		ZVAL_LONG(return_value, context->suggested_action);
 	} else if (!strcmp(prop_name, "action")) {
-		ZVAL_LONG(result, context->action);
+		ZVAL_LONG(return_value, context->action);
 	} else if (!strcmp(prop_name, "start_time")) {
-		ZVAL_LONG(result, context->start_time);
+		ZVAL_LONG(return_value, context->start_time);
+	} else {
+		*found = FAILURE;
 	}
+
+	*found = SUCCESS;
 }
 
 
@@ -1398,26 +1431,30 @@
 	return result;
 }
 
-static void gtk_selection_data_get_property(zval *result, zval *object, \
zend_llist_element **element) +static void gtk_selection_data_get_property(zval \
*return_value, zval *object, zend_llist_element **element, int *found)  {
 	GtkSelectionData *data = PHP_GTK_SELECTION_DATA_GET(object);
 	char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
 
-	ZVAL_NULL(result);
+	ZVAL_NULL(return_value);
 
 	if (!strcmp(prop_name, "selection")) {
-		*result = *php_gdk_atom_new(data->selection);
+		*return_value = *php_gdk_atom_new(data->selection);
 	} else if (!strcmp(prop_name, "target")) {
-		*result = *php_gdk_atom_new(data->target);
+		*return_value = *php_gdk_atom_new(data->target);
 	} else if (!strcmp(prop_name, "type")) {
-		*result = *php_gdk_atom_new(data->type);
+		*return_value = *php_gdk_atom_new(data->type);
 	} else if (!strcmp(prop_name, "format")) {
-		ZVAL_LONG(result, data->format);
+		ZVAL_LONG(return_value, data->format);
 	} else if (!strcmp(prop_name, "length")) {
-		ZVAL_LONG(result, data->length);
+		ZVAL_LONG(return_value, data->length);
 	} else if (!strcmp(prop_name, "data") && data->length > -1) {
-		ZVAL_STRINGL(result, data->data, data->length, 1);
+		ZVAL_STRINGL(return_value, data->data, data->length, 1);
+	} else {
+		*found = FAILURE;
 	}
+
+	*found = SUCCESS;
 }
 
 /* GtkCtreeNode */
@@ -1443,40 +1480,44 @@
 	return result;
 }
 
-static void gtk_ctree_node_get_property(zval *result, zval *object, \
zend_llist_element **element) +static void gtk_ctree_node_get_property(zval \
*return_value, zval *object, zend_llist_element **element, int *found)  {
 	GtkCTreeNode *node = PHP_GTK_CTREE_NODE_GET(object);
 	GtkCTreeNode *temp;
 	char *prop_name = Z_STRVAL(((zend_overloaded_element *)(*element)->data)->element);
 
-	ZVAL_NULL(result);
+	ZVAL_NULL(return_value);
 
 	if (!strcmp(prop_name, "parent")) {
 		temp = GTK_CTREE_ROW(node)->parent;
 		if (temp)
-			*result = *php_gtk_ctree_node_new(temp);
+			*return_value = *php_gtk_ctree_node_new(temp);
 	} else if (!strcmp(prop_name, "sibling")) {
 		temp = GTK_CTREE_ROW(node)->sibling;
 		if (temp)
-			*result = *php_gtk_ctree_node_new(temp);
+			*return_value = *php_gtk_ctree_node_new(temp);
 	} else if (!strcmp(prop_name, "children")) {
 		zval *php_node;
 		temp = GTK_CTREE_ROW(node)->children;
 
-		array_init(result);
+		array_init(return_value);
 		while (temp) {
 			php_node = php_gtk_ctree_node_new(temp);
-			add_next_index_zval(result, php_node);
+			add_next_index_zval(return_value, php_node);
 			zval_ptr_dtor(&php_node);
 			temp = GTK_CTREE_ROW(temp)->sibling;
 		}
 	} else if (!strcmp(prop_name, "level")) {
-		ZVAL_LONG(result, GTK_CTREE_ROW(node)->level);
+		ZVAL_LONG(return_value, GTK_CTREE_ROW(node)->level);
 	} else if (!strcmp(prop_name, "is_leaf")) {
-		ZVAL_BOOL(result, GTK_CTREE_ROW(node)->is_leaf);
+		ZVAL_BOOL(return_value, GTK_CTREE_ROW(node)->is_leaf);
 	} else if (!strcmp(prop_name, "expanded")) {
-		ZVAL_BOOL(result, GTK_CTREE_ROW(node)->expanded);
+		ZVAL_BOOL(return_value, GTK_CTREE_ROW(node)->expanded);
+	} else {
+		*found = FAILURE;
 	}
+
+	*found = SUCCESS;
 }
 
 
@@ -1688,58 +1729,62 @@
 	}
 }
 
-static void gtk_style_get_property(zval *result, zval *object, zend_llist_element \
**element) +static void gtk_style_get_property(zval *return_value, zval *object, \
zend_llist_element **element, int *found)  {
 	GtkStyle *style = PHP_GTK_STYLE_GET(object);
 	zend_overloaded_element *property = (zend_overloaded_element *)(*element)->data;
 	char *prop_name = Z_STRVAL(property->element);
 
-	ZVAL_NULL(result);
+	ZVAL_NULL(return_value);
 
 	if (!strcmp(prop_name, "black")) {
-		*result = *php_gdk_color_new(&style->black);
+		*return_value = *php_gdk_color_new(&style->black);
 	} else if (!strcmp(prop_name, "white")) {
-		*result = *php_gdk_color_new(&style->white);
+		*return_value = *php_gdk_color_new(&style->white);
 	} else if (!strcmp(prop_name, "font")) {
-		*result = *php_gdk_font_new(style->font);
+		*return_value = *php_gdk_font_new(style->font);
 	} else if (!strcmp(prop_name, "black_gc")) {
-		*result = *php_gdk_gc_new(style->black_gc);
+		*return_value = *php_gdk_gc_new(style->black_gc);
 	} else if (!strcmp(prop_name, "white_gc")) {
-		*result = *php_gdk_gc_new(style->white_gc);
+		*return_value = *php_gdk_gc_new(style->white_gc);
 	} else if (!strcmp(prop_name, "colormap")) {
 		if (style->colormap)
-			*result = *php_gdk_colormap_new(style->colormap);
+			*return_value = *php_gdk_colormap_new(style->colormap);
 	} else if (!strcmp(prop_name, "fg")) {
-		style_helper_get(result, STYLE_COLOR_ARRAY, style->fg, element);
+		style_helper_get(return_value, STYLE_COLOR_ARRAY, style->fg, element);
 	} else if (!strcmp(prop_name, "bg")) {
-		style_helper_get(result, STYLE_COLOR_ARRAY, style->bg, element);
+		style_helper_get(return_value, STYLE_COLOR_ARRAY, style->bg, element);
 	} else if (!strcmp(prop_name, "light")) {
-		style_helper_get(result, STYLE_COLOR_ARRAY, style->light, element);
+		style_helper_get(return_value, STYLE_COLOR_ARRAY, style->light, element);
 	} else if (!strcmp(prop_name, "dark")) {
-		style_helper_get(result, STYLE_COLOR_ARRAY, style->dark, element);
+		style_helper_get(return_value, STYLE_COLOR_ARRAY, style->dark, element);
 	} else if (!strcmp(prop_name, "mid")) {
-		style_helper_get(result, STYLE_COLOR_ARRAY, style->mid, element);
+		style_helper_get(return_value, STYLE_COLOR_ARRAY, style->mid, element);
 	} else if (!strcmp(prop_name, "text")) {
-		style_helper_get(result, STYLE_COLOR_ARRAY, style->text, element);
+		style_helper_get(return_value, STYLE_COLOR_ARRAY, style->text, element);
 	} else if (!strcmp(prop_name, "base")) {
-		style_helper_get(result, STYLE_COLOR_ARRAY, style->base, element);
+		style_helper_get(return_value, STYLE_COLOR_ARRAY, style->base, element);
 	} else if (!strcmp(prop_name, "fg_gc")) {
-		style_helper_get(result, STYLE_GC_ARRAY, style->fg_gc, element);
+		style_helper_get(return_value, STYLE_GC_ARRAY, style->fg_gc, element);
 	} else if (!strcmp(prop_name, "bg_gc")) {
-		style_helper_get(result, STYLE_GC_ARRAY, style->bg_gc, element);
+		style_helper_get(return_value, STYLE_GC_ARRAY, style->bg_gc, element);
 	} else if (!strcmp(prop_name, "light_gc")) {
-		style_helper_get(result, STYLE_GC_ARRAY, style->light_gc, element);
+		style_helper_get(return_value, STYLE_GC_ARRAY, style->light_gc, element);
 	} else if (!strcmp(prop_name, "dark_gc")) {
-		style_helper_get(result, STYLE_GC_ARRAY, style->dark_gc, element);
+		style_helper_get(return_value, STYLE_GC_ARRAY, style->dark_gc, element);
 	} else if (!strcmp(prop_name, "mid_gc")) {
-		style_helper_get(result, STYLE_GC_ARRAY, style->mid_gc, element);
+		style_helper_get(return_value, STYLE_GC_ARRAY, style->mid_gc, element);
 	} else if (!strcmp(prop_name, "text_gc")) {
-		style_helper_get(result, STYLE_GC_ARRAY, style->text_gc, element);
+		style_helper_get(return_value, STYLE_GC_ARRAY, style->text_gc, element);
 	} else if (!strcmp(prop_name, "base_gc")) {
-		style_helper_get(result, STYLE_GC_ARRAY, style->base_gc, element);
+		style_helper_get(return_value, STYLE_GC_ARRAY, style->base_gc, element);
 	} else if (!strcmp(prop_name, "bg_pixmap")) {
-		style_helper_get(result, STYLE_PIXMAP_ARRAY, style->bg_pixmap, element);
+		style_helper_get(return_value, STYLE_PIXMAP_ARRAY, style->bg_pixmap, element);
+	} else {
+		*found = FAILURE;
 	}
+
+	*found = SUCCESS;
 }
 
 static int style_helper_set(style_array_type type, gpointer array, zval *value, \
zend_llist_element **element)



-- 
PHP GTK Mailing List (http://www.php.net/)
To unsubscribe, e-mail: php-gtk-unsubscribe@lists.php.net
For additional commands, e-mail: php-gtk-help@lists.php.net
To contact the list administrators, e-mail: php-list-admin@lists.php.net

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

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