|   | php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
| 
 PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits              [2012-07-18 20:04 UTC] auroraeosrose@php.net
 
-Status: Open
+Status: Feedback
  [2012-07-18 20:04 UTC] auroraeosrose@php.net
  [2012-08-26 11:39 UTC] ptlis at ptlis dot net
  [2012-08-26 11:39 UTC] ptlis at ptlis dot net
 
-Status: Feedback
+Status: Open
  [2012-08-26 11:43 UTC] ptlis at ptlis dot net
  [2012-12-10 18:12 UTC] auroraeosrose@php.net
  [2012-12-10 18:12 UTC] auroraeosrose@php.net
 
-Status:      Open
+Status:      Closed
-Assigned To:
+Assigned To: auroraeosrose
 | |||||||||||||||||||||||||||
|  Copyright © 2001-2025 The PHP Group All rights reserved. | Last updated: Fri Oct 31 07:00:01 2025 UTC | 
Description: ------------ The first time the OK button on the dialog is clicked the custom signal is emitted correctly, on the second click php segfaults on the call to emit(). If no object is provided to emit() the second signal emits without segfault as expected. Test script: --------------- <?php /** Class implements custom signal 'product-ready'. */ class customDialog extends GtkDialog { public $__gsignals = array( 'product-ready' => array( GObject::SIGNAL_RUN_LAST, GObject::TYPE_BOOLEAN, array( GObject::TYPE_PHP_VALUE ) ) ); public function __construct($title, GtkWindow $parent) { parent::__construct($title, $parent, Gtk::DIALOG_MODAL); $product = new stdClass(); $okButton = new GtkButton('OK'); $this->action_area->add($okButton); $okButton->connect_simple('clicked', array($this, 'ok_clicked'), $product); } public function ok_clicked(stdClass $product) { $this->emit('product-ready', $product); } } GObject::register_type('customDialog'); $window = new GtkWindow(); $window->show_all(); $dialog = new customDialog('fire signal dialog', $window); $dialog->show_all(); $dialog->connect('product-ready', 'product_ready'); function product_ready() { echo 'segfaults on second signal' . "\n"; return true; } Gtk::main();