Mercurial > projects > dwt2
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