From bbea09816015ecf3596acdcc033553127fcc0ef3 Mon Sep 17 00:00:00 2001 From: Sven Gothel Date: Wed, 11 Mar 2015 15:10:15 +0100 Subject: Bug 1144 - Add 'DelegateImplementation': Requires own MethodBinding for delegates impl. / Adding ReturnsOpaque - DelegateImplementation requires own MethodBinding for delegates impl. The delegation name must be included within the FunctionSymbol's aliases _only_ for implementations, where delegation applies. This allows all subsequent type/cfg checks to hit on AliasedSymbol! Hence we need to create individual MethodBinding instances for interfaces and public/private implementations. - Adding ReturnsOpaque Configuration: ReturnsOpaque This feature is necessary to achieve 'Opaque' functionality for function's return type - instead of types in general. - Fix AliasedSymbolImpl copy-ctor, i.e. this.name = o.name ! --- .../gluegen/procaddress/ProcAddressEmitter.java | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) (limited to 'src/java/com/jogamp/gluegen/procaddress/ProcAddressEmitter.java') diff --git a/src/java/com/jogamp/gluegen/procaddress/ProcAddressEmitter.java b/src/java/com/jogamp/gluegen/procaddress/ProcAddressEmitter.java index 423efe9..ec29b08 100644 --- a/src/java/com/jogamp/gluegen/procaddress/ProcAddressEmitter.java +++ b/src/java/com/jogamp/gluegen/procaddress/ProcAddressEmitter.java @@ -55,7 +55,6 @@ import com.jogamp.gluegen.FunctionEmitter; import com.jogamp.gluegen.JavaConfiguration; import com.jogamp.gluegen.JavaEmitter; import com.jogamp.gluegen.JavaMethodBindingEmitter; -import com.jogamp.gluegen.MethodBinding; import com.jogamp.gluegen.cgram.types.FunctionSymbol; import com.jogamp.gluegen.cgram.types.Type; import com.jogamp.gluegen.cgram.types.TypeDictionary; @@ -115,8 +114,8 @@ public class ProcAddressEmitter extends JavaEmitter { } @Override - protected List generateMethodBindingEmitters(final Set methodBindingSet, final FunctionSymbol sym) throws Exception { - return generateMethodBindingEmittersImpl(methodBindingSet, sym); + protected List generateMethodBindingEmitters(final FunctionSymbol sym) throws Exception { + return generateMethodBindingEmittersImpl(sym); } protected boolean needsModifiedEmitters(final FunctionSymbol sym) { @@ -127,8 +126,8 @@ public class ProcAddressEmitter extends JavaEmitter { } } - private List generateMethodBindingEmittersImpl(final Set methodBindingSet, final FunctionSymbol sym) throws Exception { - final List defaultEmitters = super.generateMethodBindingEmitters(methodBindingSet, sym); + private List generateMethodBindingEmittersImpl(final FunctionSymbol sym) throws Exception { + final List defaultEmitters = super.generateMethodBindingEmitters(sym); // if the superclass didn't generate any bindings for the symbol, let's // honor that (for example, the superclass might have caught an Ignore @@ -153,7 +152,7 @@ public class ProcAddressEmitter extends JavaEmitter { if ( callThroughProcAddress ) { if (getProcAddressConfig().emitProcAddressTable()) { // emit an entry in the GL proc address table for this method. - emitProcAddressTableEntryForString(getAliasedSymName(sym)); + emitProcAddressTableEntryForString(sym.getName()); } } for (final FunctionEmitter emitter : defaultEmitters) { @@ -267,14 +266,6 @@ public class ProcAddressEmitter extends JavaEmitter { emitters.add(res); } - private String getAliasedSymName(final FunctionSymbol sym) { - String symName = getConfig().getJavaSymbolRename(sym.getName()); - if (null == symName) { - symName = sym.getName(); - } - return symName; - } - protected boolean callThroughProcAddress(final FunctionSymbol sym) { final ProcAddressConfiguration cfg = getProcAddressConfig(); boolean res = false; -- cgit v1.2.3