File tree 1 file changed +11
-1
lines changed
1 file changed +11
-1
lines changed Original file line number Diff line number Diff line change @@ -316,13 +316,20 @@ public extension JNICore {
316
316
}
317
317
318
318
private func checkArgument< Result> ( args: [ jvalue ] , _ block: ( _ argsPtr: UnsafePointer < jvalue > ? ) -> Result ) -> Result {
319
+ var locals = [ jobject] ( )
319
320
if args. count > 0 {
320
321
var args = args
321
322
return withUnsafePointer ( to: & args[ 0 ] ) { argsPtr in
323
+ defer {
324
+ _ = JNI . check ( Void . self, & locals)
325
+ }
322
326
return block ( argsPtr)
323
327
}
324
328
}
325
329
else {
330
+ defer {
331
+ _ = JNI . check ( Void . self, & locals)
332
+ }
326
333
return block ( nil )
327
334
}
328
335
}
@@ -353,8 +360,8 @@ public extension JNICore {
353
360
}
354
361
355
362
private func checkArgumentAndWrap< Result> ( args: [ JNIArgumentProtocol ] , _ block: ( _ argsPtr: UnsafePointer < jvalue > ? ) -> Result ) -> Result {
363
+ var locals = [ jobject] ( )
356
364
if args. count > 0 {
357
- var locals = [ jobject] ( )
358
365
var argsValues = args. map ( { $0. value ( locals: & locals) } )
359
366
return withUnsafePointer ( to: & argsValues[ 0 ] ) { argsPtr in
360
367
defer {
@@ -364,6 +371,9 @@ public extension JNICore {
364
371
}
365
372
}
366
373
else {
374
+ defer {
375
+ _ = JNI . check ( Void . self, & locals)
376
+ }
367
377
return block ( nil )
368
378
}
369
379
}
You can’t perform that action at this time.
0 commit comments