On Wed, Sep 16, 2009 at 3:36 PM, Bo Jangeborg <b...@softwave.se> wrote:
> I have seen a troubling error for some time now. > Occasionally I get a segmentation error with no indication of what > went wrong. The error is not repeatable in a reliable way and I get > no error trace. Repeating the error can take hours. > > After seeing this I have tried to pin down, with the debugger running, > what's going wrong but the nearest I can get is that the event object > gets turned into a long at different times. > > Running with a debugger I got this trace. I have included the calling > line were you can see that the event seem to be correct, but at some > point the event object seem to become corrupted. > Included is also the code between the call and the eventual point > of error. I am at loss at what may be going wrong. > > Bo) > > Traceback (most recent call last): > File "C:\Program > Files\eclipse\plugins\org.python.pydev.debug_1.4.7.2843\pysrc\pydevd.py", > line 881, in <module> > debugger.run(setup['file'], None, None) > File "C:\Program > Files\eclipse\plugins\org.python.pydev.debug_1.4.7.2843\pysrc\pydevd.py", > line 710, in run > execfile(file, globals, locals) #execute the script > File "C:\Projekt\eclipse\Pyos\Program\Solitaire\solitaire.py", line 761, > in <module> > main() > File "C:\Projekt\eclipse\Pyos\Program\Solitaire\solitaire.py", line 80, in > main > if screen.main_loop(app): > File "C:\Projekt\eclipse\Pyos\System\widgets\gui.py", line 328, in > main_loop > = self.mouse_button_up(event, mob_pos, mousemove) > File "C:\Projekt\eclipse\Pyos\System\widgets\gui.py", line 573, in > mouse_button_up > if event.button == 1: > AttributeError: 'long' object has no attribute 'button' > > > > elif event.type is MOUSEBUTTONUP: > mob_pos, mousemove, mouse_pos, hit_pos \ > = self.mouse_button_up(event, mob_pos, mousemove) > > > > a ha def mouse_button_up(self, event, mob_pos, mousemove): ''' handle mouse button up events''' > mousebtn_event = False > mouse_pos = event.pos > widget, hit_pos = self.mouse_hit_widget(mouse_pos[0], > mouse_pos[1]) > if widget is None or not widget.enabled: > self.moving_object = None > self.repeating_object = None > self.last_over_drop_widget = None > else: > event_data = {'hit_pos':hit_pos, 'over_widget':widget} > event_data['gui'] = self > if widget and widget.exists('event_click_release_data'): > event_data.update(widget.event_click_release_data) > #InsideButton (Left) > if event.button == 1: > > a ha Well, from where comes event ? -- claudio