Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5ee3cfe1 authored by Hans Boehm's avatar Hans Boehm Committed by Gerrit Code Review
Browse files

Merge "Document VirtualRefBasePtr hazards"

parents 1e3e6921 d72e4724
Loading
Loading
Loading
Loading
+12 −1
Original line number Diff line number Diff line
@@ -18,9 +18,12 @@ package com.android.internal.util;

/**
 * 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 {
    // TODO(b/231729094): Convert to NativeAllocationRegistry?
    private long mNativePtr;

    public VirtualRefBasePtr(long ptr) {
@@ -28,6 +31,14 @@ public final class VirtualRefBasePtr {
        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() {
        return mNativePtr;
    }