After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 598881 - Unimplemented GdkWindowImplIface methods crash gimp on OSX
Unimplemented GdkWindowImplIface methods crash gimp on OSX
Status: RESOLVED FIXED
Product: gtk+
Classification: Platform
Component: Backend: Quartz
2.18.x
Other Mac OS
: Normal critical
: ---
Assigned To: gtk-quartz maintainers
gtk-bugs
Depends on:
Blocks:
 
 
Reported: 2009-10-18 23:45 UTC by John Ralls
Modified: 2010-03-14 09:40 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Adds empty functions to GdkWindowImplIface for quartz. (1.07 KB, patch)
2009-10-18 23:45 UTC, John Ralls
none Details | Review

Description John Ralls 2009-10-18 23:45:22 UTC
Created attachment 145757 [details] [review]
Adds empty functions to GdkWindowImplIface for quartz.

In
http://git.gnome.org/cgit/gtk+/commit/?id=7372379c24d183aa23e33cef031b774a5cb25ce4,
Alexander Larson added two new methods, input_window_crossing and
input_window_destroy to struct _GdkWindowImplIface and implemented them for
X11. Tor Lilqvist implemented then for Win32 in
http://git.gnome.org/cgit/gtk+/commit/?id=341b8a47529ad5f1bddee19cb6e32fac6c7b8856
2 months later.

They have not been implemented for quartz, causing a bus error (segfault) when
either event is received:

Program received signal EXC_BAD_ACCESS, Could not access memory.
Reason: KERN_PROTECTION_FAILURE at address: 0x00000000
0x00000000 in ?? ()
(gdb) bt 8
  • #0 ??
  • #1 send_crossing_event
    at gdkwindow.c line 9305
  • #2 _gdk_synthesize_crossing_events
    at gdkwindow.c line 9444

(gdb) p *impl_iface
$2 = {
  g_iface = {
    g_type = 21183920, 
    g_instance_type = 21180720
  }, 
  show = 0xe18425 <gdk_window_quartz_show>, 
  hide = 0xe1891f <gdk_window_quartz_hide>, 
  withdraw = 0xe18a52 <gdk_window_quartz_withdraw>, 
  raise = 0xe197d0 <gdk_window_quartz_raise>, 
  lower = 0xe1991e <gdk_window_quartz_lower>, 
  restack_under = 0, 
  restack_toplevel = 0xe19a6c <gdk_window_quartz_restack_toplevel>, 
  move_resize = 0xe19186 <gdk_window_quartz_move_resize>, 
  set_background = 0xe19a74 <gdk_window_quartz_set_background>, 
  set_back_pixmap = 0xe19a7c <gdk_window_quartz_set_back_pixmap>, 
  get_events = 0xe1a548 <gdk_window_quartz_get_events>, 
  set_events = 0xe1a594 <gdk_window_quartz_set_events>, 
  reparent = 0xe193f4 <gdk_window_quartz_reparent>, 
  clear_region = 0, 
  set_cursor = 0xe19a84 <gdk_window_quartz_set_cursor>, 
  get_geometry = 0xe19b04 <gdk_window_quartz_get_geometry>, 
  get_root_coords = 0xe19e21 <gdk_window_quartz_get_root_coords>, 
  get_deskrelative_origin = 0xe1a051
<gdk_window_quartz_get_deskrelative_origin>, 
  get_pointer = 0xe1a2fa <gdk_window_quartz_get_pointer>, 
  shape_combine_region = 0xe1abe0 <gdk_window_quartz_shape_combine_region>, 
  input_shape_combine_region = 0xe1abe8
<gdk_window_quartz_input_shape_combine_region>, 
  set_static_gravities = 0xe1ac24 <gdk_window_quartz_set_static_gravities>, 
  queue_antiexpose = 0xe0e913 <_gdk_quartz_window_queue_antiexpose>, 
  queue_translation = 0xe0e850 <_gdk_quartz_window_queue_translation>, 
  destroy = 0xe1828a <_gdk_quartz_window_destroy>, 
  input_window_destroy = 0, 
  input_window_crossing = 0
}
Comment 1 Kristian Rietveld 2009-10-23 11:56:01 UTC
I have committed a likewise patch to git master.  _gdk_input_window_destroy() was already defined in gdk/quartz/gdkinput.c (where it should be defined).  I have added a dummy _gdk_input_window_crossing() there now.  Of course, both have also been registered in the Impl struct.

Will fix the implementation at some later point.
Comment 2 Gellule 2010-01-27 01:56:48 UTC
Not sure I am entitled to ask but... would it be possible to have this commit picked up by the 2.18 branch?

Just in case these two references can help support this request:
- Inkscape native on OS X is affected
 https://bugs.launchpad.net/inkscape/+bug/488631
- Gimp native on OS X is affected
 http://trac.macports.org/ticket/22451
Comment 3 Kristian Rietveld 2010-03-14 09:40:15 UTC
(In reply to comment #2)
> Not sure I am entitled to ask but... would it be possible to have this commit
> picked up by the 2.18 branch?

The commit has been "cherry picked" on the 2.18 branch and will be in the upcoming 2.18.8 release.