@@ -70,14 +70,21 @@ struct JNIClassTests {
7070 """
7171 @Override
7272 protected Runnable $createDestroyFunction() {
73- long $self = this.$memoryAddress();
73+ long self$ = this.$memoryAddress();
74+ if (CallTraces.TRACE_DOWNCALLS) {
75+ CallTraces.traceDowncall( " MyClass.$createDestroyFunction " ,
76+ " this " , this,
77+ " self " , self$);
78+ }
7479 return new Runnable() {
7580 @Override
7681 public void run() {
77- MyClass.$destroy($self);
82+ if (CallTraces.TRACE_DOWNCALLS) {
83+ CallTraces.traceDowncall( " MyClass.$destroy " , " self " , self$);
84+ }
85+ MyClass.$destroy(self$);
7886 }
7987 };
80- }
8188 """
8289 ] )
8390 }
@@ -200,7 +207,15 @@ struct JNIClassTests {
200207 """
201208 @_cdecl( " Java_com_example_swift_MyClass__00024destroy__J " )
202209 func Java_com_example_swift_MyClass__00024destroy__J(environment: UnsafeMutablePointer<JNIEnv?>!, thisClass: jclass, selfPointer: jlong) {
203- let self$ = UnsafeMutablePointer<MyClass>(bitPattern: Int(Int64(fromJNI: selfPointer, in: environment!)))!
210+ guard let env$ = environment else {
211+ fatalError( " Missing JNIEnv in downcall to \\ (#function) " )
212+ }
213+ assert(selfPointer != 0, " selfPointer memory address was null " )
214+ let selfBits$ = Int(Int64(fromJNI: selfPointer, in: env$))
215+ assert(selfBits$ != 0, " $self memory address was null: selfPointer = \\ (selfPointer) " )
216+ guard let self$ = UnsafeMutablePointer<MySwiftClass>(bitPattern: selfBits$) else {
217+ fatalError( " Missing self pointer in call to \\ (#function)! " )
218+ }
204219 self$.deinitialize(count: 1)
205220 self$.deallocate()
206221 }
@@ -246,7 +261,15 @@ struct JNIClassTests {
246261 """
247262 @_cdecl( " Java_com_example_swift_MyClass__00024doSomething__JJ " )
248263 func Java_com_example_swift_MyClass__00024doSomething__JJ(environment: UnsafeMutablePointer<JNIEnv?>!, thisClass: jclass, x: jlong, selfPointer: jlong) {
249- let self$ = UnsafeMutablePointer<MyClass>(bitPattern: Int(Int64(fromJNI: selfPointer, in: environment!)))!
264+ guard let env$ = environment else {
265+ fatalError( " Missing JNIEnv in downcall to \\ (#function) " )
266+ }
267+ assert(selfPointer != 0, " selfPointer memory address was null " )
268+ let selfBits$ = Int(Int64(fromJNI: selfPointer, in: env$))
269+ assert(selfBits$ != 0, " $self memory address was null: selfPointer = \\ (selfPointer) " )
270+ guard let self$ = UnsafeMutablePointer<MyClass>(bitPattern: selfBits$) else {
271+ fatalError( " Missing self pointer in call to \\ (#function)! " )
272+ }
250273 self$.pointee.doSomething(x: Int64(fromJNI: x, in: environment!))
251274 }
252275 """ ,
0 commit comments