Skip to content

Commit 248d6c6

Browse files
committed
PR feedback
1 parent 0e34680 commit 248d6c6

File tree

7 files changed

+26
-11
lines changed

7 files changed

+26
-11
lines changed

Sources/JExtractSwiftLib/JNI/JNISwift2JavaGenerator+JavaBindingsPrinting.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,7 +214,7 @@ extension JNISwift2JavaGenerator {
214214
}
215215
216216
public static \(decl.swiftNominal.name) wrapMemoryAddressUnsafe(long selfPointer) {
217-
return new \(decl.swiftNominal.name)(selfPointer, SwiftMemoryManagement.GLOBAL_SWIFT_JAVA_ARENA);
217+
return new \(decl.swiftNominal.name)(selfPointer, SwiftMemoryManagement.DEFAULT_SWIFT_JAVA_AUTO_ARENA);
218218
}
219219
"""
220220
)
@@ -546,7 +546,7 @@ extension JNISwift2JavaGenerator {
546546
}
547547

548548
printer.printBraceBlock("\(annotationsStr)\(modifiers.joined(separator: " ")) \(resultType) \(translatedDecl.name)(\(parametersStr))\(throwsClause)") { printer in
549-
let globalArenaName = "SwiftMemoryManagement.GLOBAL_SWIFT_JAVA_ARENA"
549+
let globalArenaName = "SwiftMemoryManagement.DEFAULT_SWIFT_JAVA_AUTO_ARENA"
550550
let arguments = translatedDecl.translatedFunctionSignature.parameters.map(\.parameter.name) + [globalArenaName]
551551
let call = "\(translatedDecl.name)(\(arguments.joined(separator: ", ")))"
552552
if translatedDecl.translatedFunctionSignature.resultType.javaType.isVoid {

Sources/JExtractSwiftLib/JNI/JNISwift2JavaGenerator+SwiftThunkPrinting.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -162,7 +162,7 @@ extension JNISwift2JavaGenerator {
162162
// If the underlying translated method requires
163163
// a SwiftArena, we pass in the global arena
164164
if translatedDecl.translatedFunctionSignature.requiresSwiftArena {
165-
upcallArguments.append("JNI.shared.globalArena")
165+
upcallArguments.append("JNI.shared.defaultAutoArena")
166166
}
167167

168168
let tryClause = function.originalFunctionSignature.isThrowing ? "try " : ""

Sources/SwiftJava/AnyJavaObject.swift

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,11 @@ extension AnyJavaObject {
7777
return String(seq)
7878
}
7979

80+
/// The mangled name for this java class
81+
public static var mangledName: String {
82+
"L\(fullJavaClassNameWithSlashes);"
83+
}
84+
8085
/// Initialize a Java object from its instance.
8186
public init(javaThis: jobject, environment: JNIEnvironment) {
8287
self.init(javaHolder: JavaObjectHolder(object: javaThis, environment: environment))

Sources/SwiftJavaRuntimeSupport/JNI.swift

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,21 @@
1515
import SwiftJava
1616
import CSwiftJavaJNI
1717

18+
/// A type that represents the shared JNI environment
19+
/// used to share any global JNI variables.
20+
///
21+
/// This is initialized when the `JNI_OnLoad` is triggered,
22+
/// which happens when you call `System.loadLibrary(...)`
23+
/// from Java.
1824
public final class JNI {
25+
/// The shared JNI object, initialized by `JNI_OnLoad`
1926
public fileprivate(set) static var shared: JNI!
2027

28+
/// The default application class loader
2129
public let applicationClassLoader: JavaClassLoader
22-
public let globalArena: JavaSwiftArena
30+
31+
/// The default auto arena of SwiftKitCore
32+
public let defaultAutoArena: JavaSwiftArena
2333

2434
init(fromVM javaVM: JavaVirtualMachine) {
2535
let environment = try! javaVM.environment()
@@ -31,11 +41,11 @@ public final class JNI {
3141
let arenaFieldID = environment.interface.GetStaticFieldID(
3242
environment,
3343
swiftMemoryClass,
34-
"GLOBAL_SWIFT_JAVA_ARENA",
35-
"Lorg/swift/swiftkit/core/SwiftArena;"
44+
"DEFAULT_SWIFT_JAVA_AUTO_ARENA",
45+
JavaSwiftArena.mangledName
3646
)
3747
let localObject = environment.interface.GetStaticObjectField(environment, swiftMemoryClass, arenaFieldID)!
38-
self.globalArena = JavaSwiftArena(javaThis: localObject, environment: environment)
48+
self.defaultAutoArena = JavaSwiftArena(javaThis: localObject, environment: environment)
3949
environment.interface.DeleteLocalRef(environment, localObject)
4050
}
4151
}

SwiftKitCore/src/main/java/org/swift/swiftkit/core/SwiftMemoryManagement.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,5 +15,5 @@
1515
package org.swift.swiftkit.core;
1616

1717
public class SwiftMemoryManagement {
18-
public static final SwiftArena GLOBAL_SWIFT_JAVA_ARENA = SwiftArena.ofAuto();
18+
public static final SwiftArena DEFAULT_SWIFT_JAVA_AUTO_ARENA = SwiftArena.ofAuto();
1919
}

Tests/JExtractSwiftTests/JNI/JNIProtocolTests.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -307,7 +307,7 @@ struct JNIProtocolTests {
307307
let cClass = try! JavaClass<JavaSomeClass>(environment: JavaVirtualMachine.shared().environment())
308308
let cPointer = UnsafeMutablePointer<SomeClass>.allocate(capacity: 1)
309309
cPointer.initialize(to: c)
310-
guard let unwrapped$ = _javaSomeProtocolInterface.withObject(cClass.wrapMemoryAddressUnsafe(Int64(Int(bitPattern: cPointer))), JNI.shared.globalArena) else {
310+
guard let unwrapped$ = _javaSomeProtocolInterface.withObject(cClass.wrapMemoryAddressUnsafe(Int64(Int(bitPattern: cPointer))), JNI.shared.defaultAutoArena) else {
311311
fatalError("Upcall to withObject unexpectedly returned nil")
312312
}
313313
let result$MemoryAddress$ = unwrapped$.as(JavaJNISwiftInstance.self)!.memoryAddress()

Tests/JExtractSwiftTests/MemoryManagementModeTests.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ struct MemoryManagementModeTests {
6363
expectedChunks: [
6464
"""
6565
public static MyClass f() {
66-
return f(SwiftMemoryManagement.GLOBAL_SWIFT_JAVA_ARENA);
66+
return f(SwiftMemoryManagement.DEFAULT_SWIFT_JAVA_AUTO_ARENA);
6767
}
6868
""",
6969
"""
@@ -95,7 +95,7 @@ struct MemoryManagementModeTests {
9595
expectedChunks: [
9696
"""
9797
public default MyClass f() {
98-
return f(SwiftMemoryManagement.GLOBAL_SWIFT_JAVA_ARENA);
98+
return f(SwiftMemoryManagement.DEFAULT_SWIFT_JAVA_AUTO_ARENA);
9999
}
100100
""",
101101
"""

0 commit comments

Comments
 (0)