cvs: php-gtk /ext/gtk+ gtktreeview.overrides
| From: | Andrei Zmievski | Date: | Wed, 19 Oct 2005 20:38:32 +0000 |
| Subject: | cvs: php-gtk /ext/gtk+ gtktreeview.overrides | ||
| Groups: | php.gtk.cvs | ||
| Request: | Send a blank email to php-gtk-cvs+get-1921@lists.php.net to get a copy of this message | ||
andrei Wed Oct 19 16:38:32 2005 EDT
Modified files:
/php-gtk/ext/gtk+ gtktreeview.overrides
Log:
- Fix crash in GtkListStore::insert();
- Add GtkListStore::prepend() (patch by Scott Mattocks)
http://cvs.php.net/diff.php/php-gtk/ext/gtk+/gtktreeview.overrides?r1=1.19&r2=1.20&ty=u
Index: php-gtk/ext/gtk+/gtktreeview.overrides
diff -u php-gtk/ext/gtk+/gtktreeview.overrides:1.19 php-gtk/ext/gtk+/gtktreeview.overrides:1.20
--- php-gtk/ext/gtk+/gtktreeview.overrides:1.19 Thu Oct 13 01:26:49 2005
+++ php-gtk/ext/gtk+/gtktreeview.overrides Wed Oct 19 16:38:31 2005
@@ -161,11 +161,32 @@
}
%%
+override gtk_list_store_prepend
+PHP_METHOD
+{
+ GtkTreeIter iter;
+ zval *items = NULL;
+
+ NOT_STATIC_METHOD();
+
+ if (!php_gtk_parse_args(ZEND_NUM_ARGS(), "|a", &items))
+ return;
+
+ gtk_list_store_prepend(GTK_LIST_STORE(PHPG_GOBJECT(this_ptr)), &iter);
+
+ if (items && phpg_model_set_row(GTK_TREE_MODEL(PHPG_GOBJECT(this_ptr)), &iter,
items) == FAILURE)
+ return;
+
+ phpg_gboxed_new(&return_value, GTK_TYPE_TREE_ITER, &iter, TRUE, TRUE TSRMLS_CC);
+}
+
+%%
override gtk_list_store_insert
PHP_METHOD
{
GtkTreeIter iter;
GtkTreeModel *model;
+ GObject *obj;
gint position;
zval *items = NULL;
@@ -194,12 +215,13 @@
return;
}
- columns = safe_emalloc(n_cols, sizeof(gint), 0);
- values = safe_emalloc(n_cols, sizeof(GValue), 0);
+ columns = ecalloc(n_cols, sizeof(gint));
+ values = ecalloc(n_cols, sizeof(GValue));
for (zend_hash_internal_pointer_reset(Z_ARRVAL_P(items)), i = 0;
zend_hash_get_current_data(Z_ARRVAL_P(items), (void **)&item) == SUCCESS;
zend_hash_move_forward(Z_ARRVAL_P(items)), i++) {
+
g_value_init(&values[i], gtk_tree_model_get_column_type(model, i));
if (phpg_gvalue_from_zval(&values[i], *item TSRMLS_CC) == FAILURE) {