aboutsummaryrefslogtreecommitdiffstats
path: root/src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2023-07-02 00:12:58 +0200
committerSven Gothel <[email protected]>2023-07-02 00:12:58 +0200
commit679ce37046c3c68b97e56fb70ea7b316e9dba3ad (patch)
tree95613cd28a3eef3e2fae1358fbbfd49de33ecf70 /src/java/com/jogamp/gluegen/JavaMethodBindingEmitter.java
parentdf0895828e957d97f38510da36eade7a60691d96 (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.java6
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;