Skip to content

Commit c2a6d5e

Browse files
committed
[Java.Interop] Change grouping of the JNIEnv functions.
Fixes: #22 Alter the JNIEnv function pointer grouping to more closely match the current JNI documentation: http://docs.oracle.com/javase/8/docs/technotes/guides/jni/spec/functions.html In particular, previously there was a JniEnvironment.Members class which contained all field and method-related functionality. This type has been split up into InstanceFields, InstanceMethods, StaticFields, and StaticMethods types.
1 parent f1f615b commit c2a6d5e

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

42 files changed

+451
-434
lines changed

samples/Hello/Program.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public static unsafe void Main (string[] args)
2929
int i = m.CallVirtualInt32Method (o);
3030
Console.WriteLine ("java.lang.Object={0}", o);
3131
Console.WriteLine ("hashcode={0}", i);
32-
JniEnvironment.Handles.Dispose (ref o);
32+
JniEnvironment.References.Dispose (ref o);
3333
t.Dispose ();
3434
// var o = JniTypes.FindClass ("java/lang/Object");
3535
/*

src/Android.Interop/Java.Interop/AndroidVM.cs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public AndroidVMBuilder ()
1717
NewObjectRequired = ((int) Android.OS.Build.VERSION.SdkInt) <= 10;
1818
using (var env = new JniEnvironment (JNIEnv.Handle)) {
1919
IntPtr vm;
20-
int r = JniEnvironment.Handles.GetJavaVM (out vm);
20+
int r = JniEnvironment.References.GetJavaVM (out vm);
2121
if (r < 0)
2222
throw new InvalidOperationException ("JNIEnv::GetJavaVM() returned: " + r);
2323
InvocationPointer = vm;
@@ -49,10 +49,10 @@ protected override bool TryGC (IJavaPeerable value, ref JniObjectReference handl
4949
if (!handle.IsValid)
5050
return true;
5151
var wgref = handle.NewWeakGlobalRef ();
52-
JniEnvironment.Handles.Dispose (ref handle);
52+
JniEnvironment.References.Dispose (ref handle);
5353
Java.Lang.Runtime.GetRuntime ().Gc ();
5454
handle = wgref.NewGlobalRef ();
55-
JniEnvironment.Handles.Dispose (ref wgref);
55+
JniEnvironment.References.Dispose (ref wgref);
5656
return handle.IsValid;
5757
}
5858

src/Android.Interop/Tests/TestsSample.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -56,11 +56,11 @@ unsafe TimeSpan GetJIMethodCallTiming ()
5656
var sw = Stopwatch.StartNew ();
5757
for (int i = 0; i < Unified_ToString_Iterations; ++i) {
5858
var r = t.CallVirtualObjectMethod (o);
59-
JniEnvironment.Handles.Dispose (ref r);
59+
JniEnvironment.References.Dispose (ref r);
6060
}
6161
sw.Stop ();
6262

63-
JniEnvironment.Handles.Dispose (ref o);
63+
JniEnvironment.References.Dispose (ref o);
6464
return sw.Elapsed;
6565
}
6666
}
@@ -106,7 +106,7 @@ unsafe void GetJICallObjectMethodAndDeleteLocalRefTimings (
106106
var t = k.GetInstanceMethod ("toString", "()Ljava/lang/String;");
107107

108108
var r = t.CallVirtualObjectMethod (o);
109-
JniEnvironment.Handles.Dispose (ref r);
109+
JniEnvironment.References.Dispose (ref r);
110110

111111
var rs = new JniObjectReference [MaxLocalRefs];
112112

@@ -119,7 +119,7 @@ unsafe void GetJICallObjectMethodAndDeleteLocalRefTimings (
119119

120120
sw.Restart ();
121121
for (int i = 0; i < rs.Length; ++i) {
122-
JniEnvironment.Handles.Dispose (ref rs [i]);
122+
JniEnvironment.References.Dispose (ref rs [i]);
123123
}
124124
sw.Stop ();
125125
disposeTime = sw.Elapsed;

src/Java.Interop.Dynamic/Java.Interop.Dynamic/DynamicJavaClass.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ public void Cleanup (object value)
177177
{
178178
if (cleanup != null && obj != null)
179179
cleanup (obj, value);
180-
JniEnvironment.Handles.Dispose (ref lref);
180+
JniEnvironment.References.Dispose (ref lref);
181181
}
182182
}
183183
}

src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaClassInfo.cs

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -191,10 +191,10 @@ List<JavaConstructorInfo> LookupConstructors ()
191191
var ctor = JniEnvironment.Arrays.GetObjectArrayElement (ctors, i);
192192
var m = new JavaConstructorInfo (Members, ctor);
193193
constructors.Add (m);
194-
JniEnvironment.Handles.Dispose (ref ctor);
194+
JniEnvironment.References.Dispose (ref ctor);
195195
}
196196
} finally {
197-
JniEnvironment.Handles.Dispose (ref ctors);
197+
JniEnvironment.References.Dispose (ref ctors);
198198
}
199199

200200
return constructors;
@@ -231,10 +231,10 @@ Dictionary<string, List<JavaFieldInfo>> LookupFields ()
231231
overloads.Add (new JavaFieldInfo (Members, name + "\u0000" + info.JniTypeReference, isStatic));
232232
}
233233

234-
JniEnvironment.Handles.Dispose (ref field);
234+
JniEnvironment.References.Dispose (ref field);
235235
}
236236
} finally {
237-
JniEnvironment.Handles.Dispose (ref fields);
237+
JniEnvironment.References.Dispose (ref fields);
238238
}
239239

240240
return this.fields;
@@ -271,10 +271,10 @@ Dictionary<string, List<JavaMethodInfo>> LookupMethods ()
271271
ReturnType = rt,
272272
};
273273
overloads.Add (m);
274-
JniEnvironment.Handles.Dispose (ref method);
274+
JniEnvironment.References.Dispose (ref method);
275275
}
276276
} finally {
277-
JniEnvironment.Handles.Dispose (ref methods);
277+
JniEnvironment.References.Dispose (ref methods);
278278
}
279279

280280
return this.methods;

src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaFieldInfo.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,7 +141,7 @@ void SetStaticValue (object value)
141141
try {
142142
members.StaticFields.SetValue (JniSignature, lref);
143143
} finally {
144-
JniEnvironment.Handles.Dispose (ref lref);
144+
JniEnvironment.References.Dispose (ref lref);
145145
}
146146
return;
147147
default:
@@ -167,7 +167,7 @@ void SetInstanceValue (IJavaPeerable self, object value)
167167
try {
168168
members.InstanceFields.SetValue (JniSignature, self, lref);
169169
} finally {
170-
JniEnvironment.Handles.Dispose (ref lref);
170+
JniEnvironment.References.Dispose (ref lref);
171171
}
172172
return;
173173
default:

src/Java.Interop.Dynamic/Java.Interop.Dynamic/JavaMethodBase.cs

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ protected override void Dispose (bool disposing)
5252
return;
5353

5454
var pr = PeerReference;
55-
JniEnvironment.Handles.Dispose (ref pr);
55+
JniEnvironment.References.Dispose (ref pr);
5656
PeerReference = pr;
5757

5858
members = null;
@@ -62,7 +62,7 @@ protected override void Dispose (bool disposing)
6262

6363
for (int i = 0; i < arguments.Count; ++i) {
6464
var a = arguments [i];
65-
JniEnvironment.Handles.Dispose (ref a);
65+
JniEnvironment.References.Dispose (ref a);
6666
arguments [i] = a;
6767
}
6868
arguments = null;
@@ -94,11 +94,11 @@ public void LookupArguments ()
9494
sb.Append (JniEnvironment.Types.GetJniTypeNameFromClass (p));
9595
arguments.Add (p.NewGlobalRef ());
9696
} finally {
97-
JniEnvironment.Handles.Dispose (ref p);
97+
JniEnvironment.References.Dispose (ref p);
9898
}
9999
}
100100
} finally {
101-
JniEnvironment.Handles.Dispose (ref parameters);
101+
JniEnvironment.References.Dispose (ref parameters);
102102
}
103103
sb.Append (")").Append (JniReturnType);
104104
JniSignature = sb.ToString ();

src/Java.Interop.Export/Java.Interop/ExportedMemberBuilder.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -282,7 +282,7 @@ protected virtual Expression GetMarshalToJniExpression (Type sourceType, Express
282282
} },
283283
{ typeof (IJavaPeerable), new MarshalInfo {
284284
FromJni = (vm, t, p) => GetThis (vm, t, p),
285-
ToJni = p => Expression.Call (F<IJavaPeerable, IntPtr> (JniEnvironment.Handles.NewReturnToJniRef).Method, p)
285+
ToJni = p => Expression.Call (F<IJavaPeerable, IntPtr> (JniEnvironment.References.NewReturnToJniRef).Method, p)
286286
} },
287287
};
288288

src/Java.Interop.Export/Tests/Java.Interop/ExportedMemberBuilderTest.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -344,7 +344,7 @@ public void CreateMarshalFromJniMethodExpression_FuncIJavaObject ()
344344
__jvm = JniEnvironment.Current.JavaVM;
345345
__this = __jvm.GetObject<ExportTest>(__context);
346346
__mret = __this.FuncIJavaObject();
347-
__jret = Handles.NewReturnToJniRef(__mret);
347+
__jret = References.NewReturnToJniRef(__mret);
348348
return __jret;
349349
}
350350
catch (Exception __e)

src/Java.Interop/Java.Interop.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@
4343
<Compile Include="Java.Interop\JniInstanceMethodID.cs" />
4444
<Compile Include="Java.Interop\JniEnvironment.cs" />
4545
<Compile Include="Java.Interop\JniEnvironment.g.cs" />
46-
<Compile Include="Java.Interop\JniEnvironment.Handles.cs" />
46+
<Compile Include="Java.Interop\JniEnvironment.References.cs" />
4747
<Compile Include="Java.Interop\JniEnvironment.Strings.cs" />
4848
<Compile Include="Java.Interop\JniEnvironment.Types.cs" />
4949
<Compile Include="Java.Interop\JniPeerMembers.cs" />

0 commit comments

Comments
 (0)