Fix dynamic signals on 64 bit architectures
authorSebastian Dröge <sebastian.droege@collabora.co.uk>
Sat, 4 Apr 2009 12:28:19 +0000 (14:28 +0200)
committerSebastian Dröge <sebastian.droege@collabora.co.uk>
Sat, 4 Apr 2009 12:28:19 +0000 (14:28 +0200)
sizeof(GClosure) is 32 on 64 bit

gstreamer-sharp/DynamicSignal.cs

index 79126f6..138d4d7 100644 (file)
@@ -93,7 +93,8 @@ namespace GLib {
                                si.RegisteredHandler = newHandler;
                        }
                        else {
-                               IntPtr closure = g_closure_new_simple(16, IntPtr.Zero);
+                               /* We use 32 as this is correct for 32 bit and 64 bit architectures */
+                               IntPtr closure = g_closure_new_simple(32, IntPtr.Zero);
                                g_closure_set_meta_marshal(closure, (IntPtr) GCHandle.Alloc(k),  marshalHandler);
                                uint signalId = g_signal_connect_closure(o.Handle, name, closure, after); 
                                SignalHandlers.Add(k, new SignalInfo(signalId, closure, handler));