com gtk/php-gtk: Another segfault, this time when var_dumping a selection: test/bug_dnd_segfault_dump_select ion.phpw
[email protected] (David Soria Parra)
| Newsgroups | php.gtk.cvs |
|---|---|
| Message-ID | <[email protected]> |
Commit: 2f5447293678b0cb8592d7a30a500b8f1f147d77 Author: Christian Weiske <[email protected]> Wed, 3 May 2006 07:44:40 +0000 Parents: 73c4bb850e1546d804fba44569a87c30cb933bd0 Branches: master Link: http://git.php.net/?p=gtk/php-gtk.git;a=commitdiff;h=2f5447293678b0cb8592d7a30a500b8f1f147d77 Log: Another segfault, this time when var_dumping a selection Changed paths: A test/bug_dnd_segfault_dump_selection.phpw Diff: 2f5447293678b0cb8592d7a30a500b8f1f147d77 diff --git a/test/bug_dnd_segfault_dump_selection.phpw b/test/bug_dnd_segfault_dump_selection.phpw new file mode 100644 index 0000000..35c22fc --- /dev/null +++ b/test/bug_dnd_segfault_dump_selection.phpw @@ -0,0 +1,72 @@ +<?php +/** +* Bug in drag'n'drop: +* Drag from "from" button to "to" button. +* You will get a segfault. +* +* Backtrace for the segfault: +------------------------- +Program received signal SIGSEGV, Segmentation fault. +[Switching to Thread 16384 (LWP 20870)] +0xb7c5b203 in strlen () from /lib/libc.so.6 +(gdb) bt +#0 0xb7c5b203 in strlen () from /lib/libc.so.6 +#1 0xb75dbcbd in phpg_GtkSelectionData_read_type (object=0x8eb03ec, + return_value=0xbf8f3cf0) at gen_gtk.c:45552 +#2 0xb75ff86b in phpg_get_properties (object=0x8d9bb74) + at /data/cvs/phpgtk2/php-gtk/main/phpg_support.c:173 +#3 0x082c852b in php_var_dump (struc=0x87d1e64, level=1) + at /data/cvs/php/php-5.1.2/ext/standard/var.c:139 +#4 0x082c8736 in zif_var_dump (ht=1, return_value=0x8da9a74, + return_value_ptr=0x0, this_ptr=0x0, return_value_used=0) + at /data/cvs/php/php-5.1.2/ext/standard/var.c:192 +#5 0x0834a906 in zend_do_fcall_common_helper_SPEC (execute_data=0xbf8f3e20) + at zend_vm_execute.h:192 +#6 0x0834a218 in execute (op_array=0x8d95078) at zend_vm_execute.h:92 +#7 0x08328339 in zend_call_function (fci=0xbf8f3f50, fci_cache=0x0) + at /data/cvs/php/php-5.1.2/Zend/zend_execute_API.c:907 +#8 0x08327bae in call_user_function_ex (function_table=0x0, object_pp=0x0, + function_name=0x0, retval_ptr_ptr=0x0, param_count=0, params=0x0, + no_separation=0, symbol_table=0x0) + at /data/cvs/php/php-5.1.2/Zend/zend_execute_API.c:571 +#9 0xb7605a8a in phpg_closure_marshal (closure=0x8da9b50, return_value=0x0, + n_param_values=5, param_values=0xbf8f4210, invocation_hint=0xbf8f40f8, + marshal_data=0x0) at /data/cvs/phpgtk2/php-gtk/main/phpg_closure.c:124 +#10 0xb6fe330e in g_closure_invoke () from /usr/lib/libgobject-2.0.so.0 +------------------------- +*/ +$wnd = new GtkWindow(); +$wnd->connect_simple('destroy', array('Gtk', 'main_quit')); +$hbox = new GtkHBox(); +$wnd->add($hbox); + +$btnFrom = new GtkButton('From'); +$btnTo = new GtkButton('To'); + +$hbox->pack_start($btnFrom); +$hbox->pack_start($btnTo); + +$btnFrom->drag_source_set( + Gdk::BUTTON1_MASK, + //change to text/plain, and it works + array(array('text/xml', 0, 1)), + Gdk::ACTION_COPY | Gdk::ACTION_MOVE +); +$btnFrom->connect('drag-data-get', 'onGetDragData'); + + +$btnTo->drag_dest_set( + Gtk::DEST_DEFAULT_ALL, + //change to text/plain, and it works + array(array('text/xml', 0, 1)), + Gdk::ACTION_COPY | Gdk::ACTION_MOVE +); + +function onGetDragData($widget, $context, $selection, $info, $time) { + var_dump($selection); +} + + +$wnd->show_all(); +Gtk::main(); +?> \ No newline at end of file