@@ -104,7 +104,8 @@ extension AnyJavaObject {
104104 resultType: Result . Type
105105 ) throws -> jmethodID {
106106 // Retrieve the Java class instance from the object.
107- let environment = javaEnvironment
107+ let environment = try JavaVirtualMachine . shared ( ) . environment ( )
108+
108109 let thisClass = try environment. translatingJNIExceptions {
109110 environment. interface. GetObjectClass ( environment, javaThis)
110111 } !
@@ -115,7 +116,7 @@ extension AnyJavaObject {
115116 methodName: methodName,
116117 parameterTypes: repeat each parameterTypes,
117118 resultType: Result . javaType,
118- in: javaEnvironment
119+ in: environment
119120 )
120121 }
121122 }
@@ -126,7 +127,8 @@ extension AnyJavaObject {
126127 parameterTypes: repeat ( each Param ) . Type
127128 ) throws -> jmethodID {
128129 // Retrieve the Java class instance from the object.
129- let environment = javaEnvironment
130+ let environment = try JavaVirtualMachine . shared ( ) . environment ( )
131+
130132 let thisClass = try environment. translatingJNIExceptions {
131133 environment. interface. GetObjectClass ( environment, javaThis)
132134 } !
@@ -137,7 +139,7 @@ extension AnyJavaObject {
137139 methodName: methodName,
138140 parameterTypes: repeat each parameterTypes,
139141 resultType: . void,
140- in: javaEnvironment
142+ in: environment
141143 )
142144 }
143145 }
@@ -167,8 +169,10 @@ extension AnyJavaObject {
167169 method: jmethodID ,
168170 args: repeat each Param
169171 ) throws -> Result {
172+ let environment = try JavaVirtualMachine . shared ( ) . environment ( )
173+
170174 return try Self . javaMethodCall (
171- in: javaEnvironment ,
175+ in: environment ,
172176 this: javaThis,
173177 method: method,
174178 args: repeat each args
@@ -229,8 +233,10 @@ extension AnyJavaObject {
229233 method: jmethodID ,
230234 args: repeat each Param
231235 ) throws {
236+ let environment = try JavaVirtualMachine . shared ( ) . environment ( )
237+
232238 try Self . javaMethodCall (
233- in: javaEnvironment ,
239+ in: environment ,
234240 this: javaThis,
235241 method: method,
236242 args: repeat each args
@@ -276,7 +282,7 @@ extension AnyJavaObject {
276282 private func getJNIFieldID< FieldType: JavaValue > ( _ fieldName: String , fieldType: FieldType . Type ) -> jfieldID ?
277283 where FieldType: ~ Copyable {
278284 let this = javaThis
279- let environment = javaEnvironment
285+ let environment = try ! JavaVirtualMachine . shared ( ) . environment ( )
280286
281287 // Retrieve the Java class instance from the object.
282288 let thisClass = environment. interface. GetObjectClass ( environment, this) !
@@ -289,15 +295,19 @@ extension AnyJavaObject {
289295 fieldType fieldType: FieldType . Type
290296 ) -> FieldType where FieldType: ~ Copyable {
291297 get {
298+ let environment = try ! JavaVirtualMachine . shared ( ) . environment ( )
299+
292300 let fieldID = getJNIFieldID ( fieldName, fieldType: fieldType) !
293- let jniMethod = FieldType . jniFieldGet ( in: javaEnvironment )
294- return FieldType ( fromJNI: jniMethod ( javaEnvironment , javaThis, fieldID) , in: javaEnvironment )
301+ let jniMethod = FieldType . jniFieldGet ( in: environment )
302+ return FieldType ( fromJNI: jniMethod ( environment , javaThis, fieldID) , in: environment )
295303 }
296304
297305 nonmutating set {
306+ let environment = try ! JavaVirtualMachine . shared ( ) . environment ( )
307+
298308 let fieldID = getJNIFieldID ( fieldName, fieldType: fieldType) !
299- let jniMethod = FieldType . jniFieldSet ( in: javaEnvironment )
300- jniMethod ( javaEnvironment , javaThis, fieldID, newValue. getJNIValue ( in: javaEnvironment ) )
309+ let jniMethod = FieldType . jniFieldSet ( in: environment )
310+ jniMethod ( environment , javaThis, fieldID, newValue. getJNIValue ( in: environment ) )
301311 }
302312 }
303313}
@@ -311,7 +321,7 @@ extension JavaClass {
311321 resultType: Result . Type
312322 ) throws -> Result {
313323 let thisClass = javaThis
314- let environment = javaEnvironment
324+ let environment = try ! JavaVirtualMachine . shared ( ) . environment ( )
315325
316326 // Compute the method signature so we can find the right method, then look up the
317327 // method within the class.
@@ -345,7 +355,7 @@ extension JavaClass {
345355 arguments: repeat each Param
346356 ) throws {
347357 let thisClass = javaThis
348- let environment = javaEnvironment
358+ let environment = try JavaVirtualMachine . shared ( ) . environment ( )
349359
350360 // Compute the method signature so we can find the right method, then look up the
351361 // method within the class.
@@ -372,7 +382,7 @@ extension JavaClass {
372382
373383 /// Retrieve the JNI field ID for a field with the given name and type.
374384 private func getJNIStaticFieldID< FieldType: JavaValue > ( _ fieldName: String , fieldType: FieldType . Type ) -> jfieldID ? {
375- let environment = javaEnvironment
385+ let environment = try ! JavaVirtualMachine . shared ( ) . environment ( )
376386
377387 return environment. interface. GetStaticFieldID ( environment, javaThis, fieldName, FieldType . jniMangling)
378388 }
@@ -382,15 +392,19 @@ extension JavaClass {
382392 fieldType fieldType: FieldType . Type
383393 ) -> FieldType {
384394 get {
395+ let environment = try ! JavaVirtualMachine . shared ( ) . environment ( )
396+
385397 let fieldID = getJNIStaticFieldID ( fieldName, fieldType: fieldType) !
386- let jniMethod = FieldType . jniStaticFieldGet ( in: javaEnvironment )
387- return FieldType ( fromJNI: jniMethod ( javaEnvironment , javaThis, fieldID) , in: javaEnvironment )
398+ let jniMethod = FieldType . jniStaticFieldGet ( in: environment )
399+ return FieldType ( fromJNI: jniMethod ( environment , javaThis, fieldID) , in: environment )
388400 }
389401
390402 set {
403+ let environment = try ! JavaVirtualMachine . shared ( ) . environment ( )
404+
391405 let fieldID = getJNIStaticFieldID ( fieldName, fieldType: fieldType) !
392- let jniMethod = FieldType . jniStaticFieldSet ( in: javaEnvironment )
393- jniMethod ( javaEnvironment , javaThis, fieldID, newValue. getJNIValue ( in: javaEnvironment ) )
406+ let jniMethod = FieldType . jniStaticFieldSet ( in: environment )
407+ jniMethod ( environment , javaThis, fieldID, newValue. getJNIValue ( in: environment ) )
394408 }
395409 }
396410}
0 commit comments