diff org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/accessibility/gtk/ATK.d @ 49:7a2dd761a8b2

more work until dmd 2.026 linux segfaults.
author Frank Benoit <benoit@tionex.de>
date Fri, 27 Mar 2009 12:59:54 +0100
parents ddbfe84d86df
children
line wrap: on
line diff
--- a/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/accessibility/gtk/ATK.d	Fri Mar 27 12:05:20 2009 +0100
+++ b/org.eclipse.swt.gtk.linux.x86/src/org/eclipse/swt/internal/accessibility/gtk/ATK.d	Fri Mar 27 12:59:54 2009 +0100
@@ -25,8 +25,11 @@
 import org.eclipse.swt.internal.c.gtk;
 
 version(Tango){
-import tango.core.Traits;
+    import tango.core.Traits;
+    import tango.core.Tuple;
 } else { // Phobos
+    import std.traits;
+    import std.typetuple;
 }
 
 alias org.eclipse.swt.internal.c.atk.AtkObjectFactory AtkObjectFactory;
@@ -77,13 +80,23 @@
 }
 
 template ForwardGtkAtkCFunc( alias cFunc ) {
-    alias ParameterTupleOf!(cFunc) P;
-    alias ReturnTypeOf!(cFunc) R;
-    mixin("public static R " ~ NameOfFunc!(cFunc) ~ "( P p ){
-        lock.lock();
-        scope(exit) lock.unlock();
-        return cFunc(p);
-    }");
+    version(Tango){
+        alias ParameterTupleOf!(cFunc) P;
+        alias ReturnTypeOf!(cFunc) R;
+        mixin("public static R " ~ NameOfFunc!(cFunc) ~ "( P p ){
+            lock.lock();
+            scope(exit) lock.unlock();
+            return cFunc(p);
+        }");
+    } else { // Phobos
+        alias ParameterTypeTuple!(cFunc) P;
+        alias ReturnType!(cFunc) R;
+        mixin("public static R " ~ NameOfFunc!(cFunc) ~ "( P p ){
+            lock.lock();
+            scope(exit) lock.unlock();
+            return cFunc(p);
+        }");
+    }
 }
 /+
 // alternative template implementation, might be more stable