Kiln » TortoiseHg » TortoiseHg
Clone URL:  
Pushed to one repository · View In Graph Contained in 1.0, 1.0.1, and 1.0.2

stable quickop: fix hard crash in python26.dll at exit

The GDialog base class was registering an idle callback for after_init() after
calling quickop.get_body() which registered an idle callback for destroy().
So in the idle queue were: destroy(), after_init() .. bang!

Yuki may come up with a cleaner final solution than this.

Closes #894

Changeset d9240716b7ef

Parent 999d533f4800

by Steve Borho

Changes to 2 files · Browse files at d9240716b7ef Showing diff from parent 999d533f4800 Diff from another changeset...

 
704
705
706
 
707
708
709
 
850
851
852
 
 
 
853
854
855
 
704
705
706
707
708
709
710
 
851
852
853
854
855
856
857
858
859
@@ -704,6 +704,7 @@
  gtklib.set_tortoise_keys(self)   self.set_resizable(resizable)   self.set_has_separator(False) + self.earlyout = False     self.ui = ui.ui()   if norepo: @@ -850,6 +851,9 @@
    # construct dialog body   self.get_body(self.vbox) + if self.earlyout: + gtklib.idle_add_single_call(self.destroy) + return     # focus on default button if needs   name = self.get_default_button()
 
175
176
177
178
 
179
180
181
182
183
 
175
176
177
 
178
179
 
180
181
182
@@ -175,9 +175,8 @@
  if not len(fm):   gdialog.Prompt(_('No appropriate files'),   _('No files found for this operation'), self).run() - gtklib.idle_add_single_call(self.destroy) + self.earlyout=True   self.hide() - return     def get_buttons(self):   return [('go', LABELS[self.command][1], gtk.RESPONSE_OK),