Skip to content

Commit

Permalink
[Java.Intreop] Clarify JniValueManager method names (#238)
Browse files Browse the repository at this point in the history
Appease Gendarme's [UseCorrectDisposeSignaturesRule][0] logic:

[0]: https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Design.UseCorrectDisposeSignaturesRule(2.10)

Gendarme doesn't like `Dispose()` overloads except those which
implement the `IDisposable` pattern. Meaning, specifically, Gendarme
doesn't like `JniRuntime.JniValueManager.Dispose(IJavaPeerable)`.

Rename `JniRuntime.JniValueManager.Dispose(IJavaPeerable)` to
`JniRuntime.JniValueManager.DisposePeer(IJavaPeerable)`, and then for
consistency rename many of the other `JniRuntime.JniValueManager`
methods to likewise have a `Peer` suffix.

* `Add(IJavaPeerable)` becomes `AddPeer(IJavaPeerable)`
* `Collect()` becomes `CollectPeers()`
* `Construct(IJavaPeerable)` becomes `ConstructPeer(IJavaPeerable)`
* `Dispose(IJavaPeerable)` becomes `DisposePeer(IJavaPeerable)`
* `DisposeUnlessReferenced(IJavaPeerable)` becomes `DisposePeerUnlessReferenced(IJavaPeerable)`
* `Finalize(IJavaPeerable)` becomes `FinalizePeer(IJavaPeerable)`
* `Remove(IJavaPeerable)` becomes `RemovePeer(IJavaPeerable)`
  • Loading branch information
radekdoulik authored and jonpryor committed Jan 3, 2018
1 parent 9ab5290 commit 19379a3
Show file tree
Hide file tree
Showing 10 changed files with 47 additions and 47 deletions.
4 changes: 2 additions & 2 deletions gendarme-ignore.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,7 @@ M: Java.Interop.JniType Java.Interop.JniLong::get_TypeRef()
M: Java.Interop.JniType Java.Interop.JniPeerMembers::get_JniPeerType()
M: Java.Interop.JniRuntime Java.Interop.JniRuntime::get_CurrentRuntime()
M: System.Void Java.Interop.JniRuntime::RaisePendingException(System.Exception)
M: System.Void Java.Interop.JniRuntime/JniValueManager::DisposeUnlessReferenced(Java.Interop.IJavaPeerable)
M: System.Void Java.Interop.JniRuntime/JniValueManager::DisposePeerUnlessReferenced(Java.Interop.IJavaPeerable)
M: System.Object Java.Interop.JniRuntime/JniValueManager::PeekValue(Java.Interop.JniObjectReference)
M: System.Object Java.Interop.JniRuntime/JniValueManager::PeekBoxedObject(Java.Interop.JniObjectReference)
M: Java.Interop.JniType Java.Interop.JniShort::get_TypeRef()
Expand Down Expand Up @@ -104,7 +104,7 @@ M: System.Void Java.Interop.JniObjectReference::Dispose(Java.Interop.JniObjectRe
M: System.Exception Java.Interop.JniRuntime::GetExceptionForThrowable(Java.Interop.JniObjectReference&,Java.Interop.JniObjectReferenceOptions)
M: System.Void Java.Interop.JniRuntime/JniObjectReferenceManager::DeleteGlobalReference(Java.Interop.JniObjectReference&)
M: System.Void Java.Interop.JniRuntime/JniObjectReferenceManager::DeleteWeakGlobalReference(Java.Interop.JniObjectReference&)
M: System.Void Java.Interop.JniRuntime/JniValueManager::Construct(Java.Interop.IJavaPeerable,Java.Interop.JniObjectReference&,Java.Interop.JniObjectReferenceOptions)
M: System.Void Java.Interop.JniRuntime/JniValueManager::ConstructPeer(Java.Interop.IJavaPeerable,Java.Interop.JniObjectReference&,Java.Interop.JniObjectReferenceOptions)
M: Java.Interop.IJavaPeerable Java.Interop.JniRuntime/JniValueManager::CreatePeer(Java.Interop.JniObjectReference&,Java.Interop.JniObjectReferenceOptions,System.Type)
M: System.Object Java.Interop.JniRuntime/JniValueManager::CreateValue(Java.Interop.JniObjectReference&,Java.Interop.JniObjectReferenceOptions,System.Type)
M: T Java.Interop.JniRuntime/JniValueManager::CreateValue(Java.Interop.JniObjectReference&,Java.Interop.JniObjectReferenceOptions,System.Type)
Expand Down
10 changes: 5 additions & 5 deletions src/Java.Interop/Java.Interop/JavaException.cs
Original file line number Diff line number Diff line change
Expand Up @@ -84,12 +84,12 @@ public JavaException (ref JniObjectReference reference, JniObjectReferenceOption

protected void Construct (ref JniObjectReference reference, JniObjectReferenceOptions options)
{
JniEnvironment.Runtime.ValueManager.Construct (this, ref reference, options);
JniEnvironment.Runtime.ValueManager.ConstructPeer (this, ref reference, options);
}

~JavaException ()
{
JniEnvironment.Runtime.ValueManager.Finalize (this);
JniEnvironment.Runtime.ValueManager.FinalizePeer (this);
}

public JniObjectReference PeerReference {
Expand Down Expand Up @@ -148,17 +148,17 @@ public void UnregisterFromRuntime ()
{
if (!PeerReference.IsValid)
throw new ObjectDisposedException (GetType ().FullName);
JniEnvironment.Runtime.ValueManager.Remove (this);
JniEnvironment.Runtime.ValueManager.RemovePeer (this);
}

public void Dispose ()
{
JniEnvironment.Runtime.ValueManager.Dispose (this);
JniEnvironment.Runtime.ValueManager.DisposePeer (this);
}

public void DisposeUnlessReferenced ()
{
JniEnvironment.Runtime.ValueManager.DisposeUnlessReferenced (this);
JniEnvironment.Runtime.ValueManager.DisposePeerUnlessReferenced (this);
}

protected virtual void Dispose (bool disposing)
Expand Down
10 changes: 5 additions & 5 deletions src/Java.Interop/Java.Interop/JavaObject.cs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ unsafe public class JavaObject : IJavaPeerable

~JavaObject ()
{
JniEnvironment.Runtime.ValueManager.Finalize (this);
JniEnvironment.Runtime.ValueManager.FinalizePeer (this);
}

public JniObjectReference PeerReference {
Expand Down Expand Up @@ -75,7 +75,7 @@ public unsafe JavaObject ()

protected void Construct (ref JniObjectReference reference, JniObjectReferenceOptions options)
{
JniEnvironment.Runtime.ValueManager.Construct (this, ref reference, options);
JniEnvironment.Runtime.ValueManager.ConstructPeer (this, ref reference, options);
}

protected void SetPeerReference (ref JniObjectReference reference, JniObjectReferenceOptions options)
Expand All @@ -100,17 +100,17 @@ public void UnregisterFromRuntime ()
{
if (!PeerReference.IsValid)
throw new ObjectDisposedException (GetType ().FullName);
JniEnvironment.Runtime.ValueManager.Remove (this);
JniEnvironment.Runtime.ValueManager.RemovePeer (this);
}

public void Dispose ()
{
JniEnvironment.Runtime.ValueManager.Dispose (this);
JniEnvironment.Runtime.ValueManager.DisposePeer (this);
}

public void DisposeUnlessReferenced ()
{
JniEnvironment.Runtime.ValueManager.DisposeUnlessReferenced (this);
JniEnvironment.Runtime.ValueManager.DisposePeerUnlessReferenced (this);
}

protected virtual void Dispose (bool disposing)
Expand Down
30 changes: 15 additions & 15 deletions src/Java.Interop/Java.Interop/JniRuntime.JniValueManager.cs
Original file line number Diff line number Diff line change
Expand Up @@ -62,17 +62,17 @@ protected virtual void Dispose (bool disposing)

public abstract void WaitForGCBridgeProcessing ();

public abstract void Collect ();
public abstract void CollectPeers ();

public abstract void Add (IJavaPeerable value);
public abstract void AddPeer (IJavaPeerable value);

public abstract void Remove (IJavaPeerable value);
public abstract void RemovePeer (IJavaPeerable value);

public abstract void Finalize (IJavaPeerable value);
public abstract void FinalizePeer (IJavaPeerable value);

public abstract List<JniSurfacedPeerInfo> GetSurfacedPeers ();

public void Construct (IJavaPeerable peer, ref JniObjectReference reference, JniObjectReferenceOptions options)
public void ConstructPeer (IJavaPeerable peer, ref JniObjectReference reference, JniObjectReferenceOptions options)
{
if (peer == null)
throw new ArgumentNullException (nameof (peer));
Expand Down Expand Up @@ -112,7 +112,7 @@ public void Construct (IJavaPeerable peer, ref JniObjectReference reference, Jni
}

if ((options & DoNotRegisterTarget) != DoNotRegisterTarget) {
Add (peer);
AddPeer (peer);
}
}

Expand All @@ -121,7 +121,7 @@ public int GetJniIdentityHashCode (JniObjectReference reference)
return JniSystem.IdentityHashCode (reference);
}

public virtual void Dispose (IJavaPeerable value)
public virtual void DisposePeer (IJavaPeerable value)
{
if (value == null)
throw new ArgumentNullException (nameof (value));
Expand All @@ -130,13 +130,13 @@ public virtual void Dispose (IJavaPeerable value)
if (!h.IsValid)
return;

Dispose (h, value);
DisposePeer (h, value);
}

void Dispose (JniObjectReference h, IJavaPeerable value)
void DisposePeer (JniObjectReference h, IJavaPeerable value)
{
value.Disposed ();
Remove (value);
RemovePeer (value);
var o = Runtime.ObjectReferenceManager;
if (o.LogGlobalReferenceMessages) {
o.WriteGlobalReferenceLine ("Disposing PeerReference={0} IdentityHashCode=0x{1} Instance=0x{2} Instance.Type={3} Java.Type={4}",
Expand All @@ -160,7 +160,7 @@ void Dispose (JniObjectReference h, IJavaPeerable value)
GC.SuppressFinalize (value);
}

public virtual void DisposeUnlessReferenced (IJavaPeerable value)
public virtual void DisposePeerUnlessReferenced (IJavaPeerable value)
{
if (value == null)
throw new ArgumentNullException (nameof (value));
Expand All @@ -173,7 +173,7 @@ public virtual void DisposeUnlessReferenced (IJavaPeerable value)
if (o != null && object.ReferenceEquals (o, value))
return;

Dispose (h, value);
DisposePeer (h, value);
}

public abstract IJavaPeerable PeekPeer (JniObjectReference reference);
Expand All @@ -188,12 +188,12 @@ public object PeekValue (JniObjectReference reference)
return t;

object r;
return TryUnboxObject (t, out r)
return TryUnboxPeerObject (t, out r)
? r
: t;
}

protected virtual bool TryUnboxObject (IJavaPeerable value, out object result)
protected virtual bool TryUnboxPeerObject (IJavaPeerable value, out object result)
{
result = null;
var p = value as JavaProxyObject;
Expand All @@ -215,7 +215,7 @@ object PeekBoxedObject (JniObjectReference reference)
if (t == null)
return null;
object r;
return TryUnboxObject (t, out r)
return TryUnboxPeerObject (t, out r)
? r
: null;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ public void CrossReferences ()
t.Start ();
t.Join ();

JniEnvironment.Runtime.ValueManager.Collect ();
JniEnvironment.Runtime.ValueManager.CollectPeers ();
CrossReferenceBridge a, b;
a = b = null;
Console.WriteLine ("try get A {0}", root.TryGetTarget (out a));
Expand Down
2 changes: 1 addition & 1 deletion src/Java.Interop/Tests/Java.Interop/JavaObjectArrayTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -145,7 +145,7 @@ public void EndCheckGlobalRefCount ()
int gref = JniEnvironment.Runtime.GlobalReferenceCount;
Assert.IsTrue (gref <= (grefStartCount),
string.Format ("JNI global references: grefStartCount={0}; gref={1}", grefStartCount, gref));
JniEnvironment.Runtime.ValueManager.Collect ();
JniEnvironment.Runtime.ValueManager.CollectPeers ();
}

[Test]
Expand Down
8 changes: 4 additions & 4 deletions src/Java.Interop/Tests/Java.Interop/JavaObjectTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@ public void JavaReferencedInstanceSurvivesCollection ()
});
w.Start ();
w.Join ();
JniEnvironment.Runtime.ValueManager.Collect ();
JniEnvironment.Runtime.ValueManager.CollectPeers ();
GC.WaitForPendingFinalizers ();
GC.WaitForPendingFinalizers ();
var first = array [0];
Expand Down Expand Up @@ -84,7 +84,7 @@ public void UnreferencedInstanceIsCollected ()
});
t.Start ();
t.Join ();
JniEnvironment.Runtime.ValueManager.Collect ();
JniEnvironment.Runtime.ValueManager.CollectPeers ();
GC.WaitForPendingFinalizers ();
GC.WaitForPendingFinalizers ();
Assert.IsFalse (r.IsAlive);
Expand Down Expand Up @@ -115,9 +115,9 @@ public void Dispose_Finalized ()
});
t.Start ();
t.Join ();
JniEnvironment.Runtime.ValueManager.Collect ();
JniEnvironment.Runtime.ValueManager.CollectPeers ();
GC.WaitForPendingFinalizers ();
JniEnvironment.Runtime.ValueManager.Collect ();
JniEnvironment.Runtime.ValueManager.CollectPeers ();
GC.WaitForPendingFinalizers ();
Assert.IsFalse (d);
Assert.IsTrue (f);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,19 +34,19 @@ public override void WaitForGCBridgeProcessing ()
{
}

public override void Collect ()
public override void CollectPeers ()
{
}

public override void Add (IJavaPeerable reference)
public override void AddPeer (IJavaPeerable reference)
{
}

public override void Remove (IJavaPeerable reference)
public override void RemovePeer (IJavaPeerable reference)
{
}

public override void Finalize (IJavaPeerable reference)
public override void FinalizePeer (IJavaPeerable reference)
{
}

Expand Down
8 changes: 4 additions & 4 deletions src/Java.Interop/Tests/Java.Interop/JniRuntimeTest.cs
Original file line number Diff line number Diff line change
Expand Up @@ -129,15 +129,15 @@ public override int WeakGlobalReferenceCount {

class ProxyValueManager : JniValueManager {

public override void Add (IJavaPeerable peer)
public override void AddPeer (IJavaPeerable peer)
{
}

public override void Collect ()
public override void CollectPeers ()
{
}

public override void Finalize (IJavaPeerable peer)
public override void FinalizePeer (IJavaPeerable peer)
{
}

Expand All @@ -151,7 +151,7 @@ public override IJavaPeerable PeekPeer (JniObjectReference reference)
return null;
}

public override void Remove (IJavaPeerable peer)
public override void RemovePeer (IJavaPeerable peer)
{
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ public override void WaitForGCBridgeProcessing ()
NativeMethods.java_interop_gc_bridge_wait_for_bridge_processing (bridge);
}

public override void Collect ()
public override void CollectPeers ()
{
GC.Collect ();
}
Expand Down Expand Up @@ -101,7 +101,7 @@ public override List<JniSurfacedPeerInfo> GetSurfacedPeers ()
}
}

public override void Add (IJavaPeerable value)
public override void AddPeer (IJavaPeerable value)
{
var r = value.PeerReference;
if (!r.IsValid)
Expand Down Expand Up @@ -169,7 +169,7 @@ static bool Replaceable (IJavaPeerable peer)
return (peer.JniManagedPeerState & JniManagedPeerStates.Replaceable) == JniManagedPeerStates.Replaceable;
}

public override void Remove (IJavaPeerable value)
public override void RemovePeer (IJavaPeerable value)
{
if (value == null)
throw new ArgumentNullException (nameof (value));
Expand Down Expand Up @@ -226,7 +226,7 @@ public override IJavaPeerable PeekPeer (JniObjectReference reference)
return null;
}

public override void Finalize (IJavaPeerable value)
public override void FinalizePeer (IJavaPeerable value)
{
var h = value.PeerReference;
var o = Runtime.ObjectReferenceManager;
Expand All @@ -242,7 +242,7 @@ public override void Finalize (IJavaPeerable value)
RuntimeHelpers.GetHashCode (value).ToString ("x"),
value.GetType ().ToString ());
}
Remove (value);
RemovePeer (value);
value.SetPeerReference (new JniObjectReference ());
value.Finalized ();
return;
Expand All @@ -251,7 +251,7 @@ public override void Finalize (IJavaPeerable value)
try {
bool collected = TryGC (value, ref h);
if (collected) {
Remove (value);
RemovePeer (value);
value.SetPeerReference (new JniObjectReference ());
if (o.LogGlobalReferenceMessages) {
o.WriteGlobalReferenceLine ("Finalizing PeerReference={0} IdentityHashCode=0x{1} Instance=0x{2} Instance.Type={3}",
Expand Down

0 comments on commit 19379a3

Please sign in to comment.