Skip to content

Commit

Permalink
[Java.Intreop] Rename Dispose methods
Browse files Browse the repository at this point in the history
These have different signatures than the common dispose pattern
methods, thus rename them to avoid confusion.

Also rename other methods working with IJavaPeerable to be consistent.

Catched by gendarme's
https://github.com/spouliot/gendarme/wiki/Gendarme.Rules.Design.UseCorrectDisposeSignaturesRule(2.10)
  • Loading branch information
radekdoulik committed Jan 3, 2018
1 parent 85fc91d commit 10a18ef
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 10a18ef

Please sign in to comment.