diff options
author | Sven Gothel <[email protected]> | 2023-07-02 00:12:58 +0200 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2023-07-02 00:12:58 +0200 |
commit | 679ce37046c3c68b97e56fb70ea7b316e9dba3ad (patch) | |
tree | 95613cd28a3eef3e2fae1358fbbfd49de33ecf70 /src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java | |
parent | df0895828e957d97f38510da36eade7a60691d96 (diff) |
GlueGen JavaCallback: Native callback: Check ObjectRef validity and synchronize (MonitorEnter/Exit) with same Object of Java impl. -> thread safe
Diffstat (limited to 'src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java')
-rw-r--r-- | src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java b/src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java index 1737ba1..6a93973 100644 --- a/src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java +++ b/src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java @@ -421,7 +421,7 @@ public class JavaMethodBindingEmitter extends FunctionEmitter { if (needComma) { unit.emit(", "); } - unit.emit("String callbackSignature, long[/*1*/] nativeUserParam"); + unit.emit("String callbackSignature, Object lockObj, long[/*1*/] nativeUserParam"); ++numEmitted; } return numEmitted; @@ -1095,10 +1095,12 @@ public class JavaMethodBindingEmitter extends FunctionEmitter { ++numArgsEmitted; } if( null != javaCallback ) { + final String lowIfaceName = CodeGenUtils.decapitalizeString( getInterfaceName() ); + final String lockInstanceName = lowIfaceName+"Lock"; if (needComma) { unit.emit(", "); } - unit.emit("\"" + javaCallback.cbMethodSignature + "\", nativeUserParam"); + unit.emit("\"" + javaCallback.cbMethodSignature + "\", "+lockInstanceName+", nativeUserParam"); ++numArgsEmitted; } return numArgsEmitted; |