Merge "Document VirtualRefBasePtr hazards"
This commit is contained in:
@@ -18,9 +18,12 @@ package com.android.internal.util;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* Helper class that contains a strong reference to a VirtualRefBase native
|
* Helper class that contains a strong reference to a VirtualRefBase native
|
||||||
* object. This will incStrong in the ctor, and decStrong in the finalizer
|
* object. This will incStrong in the ctor, and decStrong in the finalizer.
|
||||||
|
* It currently does no accounting of natively allocated memory, for the
|
||||||
|
* benefit of either GC triggering or heap profiling.
|
||||||
*/
|
*/
|
||||||
public final class VirtualRefBasePtr {
|
public final class VirtualRefBasePtr {
|
||||||
|
// TODO(b/231729094): Convert to NativeAllocationRegistry?
|
||||||
private long mNativePtr;
|
private long mNativePtr;
|
||||||
|
|
||||||
public VirtualRefBasePtr(long ptr) {
|
public VirtualRefBasePtr(long ptr) {
|
||||||
@@ -28,6 +31,14 @@ public final class VirtualRefBasePtr {
|
|||||||
nIncStrong(mNativePtr);
|
nIncStrong(mNativePtr);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Return the RefBase / VirtualLightRefBase native pointer. Warning: The
|
||||||
|
* caller must ensure that the VirtualRefBasePtr object remains reachable
|
||||||
|
* while the result is in use. Ideally, the caller should invoke
|
||||||
|
* {@link java.lang.ref.Reference#reachabilityFence}
|
||||||
|
* on the VirtualRefBasePtr object (or on an object that refers to it) as
|
||||||
|
* soon as the result is no longer needed.
|
||||||
|
*/
|
||||||
public long get() {
|
public long get() {
|
||||||
return mNativePtr;
|
return mNativePtr;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user