public virtual void DeleteWeakGlobalReference(ref JniObjectReference reference)
 {
     if (!reference.IsValid)
     {
         return;
     }
     AssertReferenceType(ref reference, JniObjectReferenceType.WeakGlobal);
     AssertCount(WeakGlobalReferenceCount, "WGREF", reference.ToString());
     JniEnvironment.References.DeleteWeakGlobalRef(reference.Handle);
     reference.Invalidate();
 }
 public virtual void DeleteLocalReference(ref JniObjectReference reference, ref int localReferenceCount)
 {
     if (!reference.IsValid)
     {
         return;
     }
     AssertReferenceType(ref reference, JniObjectReferenceType.Local);
     localReferenceCount--;
     AssertCount(localReferenceCount, "LREF", reference.ToString());
     JniEnvironment.References.DeleteLocalRef(reference.Handle);
     reference.Invalidate();
 }
            public virtual IntPtr ReleaseLocalReference(ref JniObjectReference reference, ref int localReferenceCount)
            {
                if (!reference.IsValid)
                {
                    return(IntPtr.Zero);
                }
                localReferenceCount--;
                AssertCount(localReferenceCount, "LREF", reference.ToString());
                var h = reference.Handle;

                reference.Invalidate();
                return(h);
            }