Loading core/java/android/database/CursorWindow.java +27 −2 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,10 @@ import android.database.sqlite.SQLiteClosable; import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteException; import android.os.Parcel; import android.os.Parcel; import android.os.Parcelable; import android.os.Parcelable; import android.ravenwood.annotation.RavenwoodKeepWholeClass; import android.ravenwood.annotation.RavenwoodRedirect; import android.ravenwood.annotation.RavenwoodRedirectionClass; import android.ravenwood.annotation.RavenwoodThrow; import dalvik.annotation.optimization.FastNative; import dalvik.annotation.optimization.FastNative; import dalvik.system.CloseGuard; import dalvik.system.CloseGuard; Loading @@ -40,8 +44,8 @@ import dalvik.system.CloseGuard; * consumer for reading. * consumer for reading. * </p> * </p> */ */ @android.ravenwood.annotation.RavenwoodKeepWholeClass @RavenwoodKeepWholeClass @android.ravenwood.annotation.RavenwoodNativeSubstitutionClass( @RavenwoodRedirectionClass( "com.android.platform.test.ravenwood.nativesubstitution.CursorWindow_host") "com.android.platform.test.ravenwood.nativesubstitution.CursorWindow_host") public class CursorWindow extends SQLiteClosable implements Parcelable { public class CursorWindow extends SQLiteClosable implements Parcelable { private static final String STATS_TAG = "CursorWindowStats"; private static final String STATS_TAG = "CursorWindowStats"; Loading @@ -63,48 +67,69 @@ public class CursorWindow extends SQLiteClosable implements Parcelable { private final CloseGuard mCloseGuard; private final CloseGuard mCloseGuard; // May throw CursorWindowAllocationException // May throw CursorWindowAllocationException @RavenwoodRedirect private static native long nativeCreate(String name, int cursorWindowSize); private static native long nativeCreate(String name, int cursorWindowSize); // May throw CursorWindowAllocationException // May throw CursorWindowAllocationException @RavenwoodRedirect private static native long nativeCreateFromParcel(Parcel parcel); private static native long nativeCreateFromParcel(Parcel parcel); @RavenwoodRedirect private static native void nativeDispose(long windowPtr); private static native void nativeDispose(long windowPtr); @RavenwoodRedirect private static native void nativeWriteToParcel(long windowPtr, Parcel parcel); private static native void nativeWriteToParcel(long windowPtr, Parcel parcel); @RavenwoodRedirect private static native String nativeGetName(long windowPtr); private static native String nativeGetName(long windowPtr); @RavenwoodRedirect private static native byte[] nativeGetBlob(long windowPtr, int row, int column); private static native byte[] nativeGetBlob(long windowPtr, int row, int column); @RavenwoodRedirect private static native String nativeGetString(long windowPtr, int row, int column); private static native String nativeGetString(long windowPtr, int row, int column); @RavenwoodThrow private static native void nativeCopyStringToBuffer(long windowPtr, int row, int column, private static native void nativeCopyStringToBuffer(long windowPtr, int row, int column, CharArrayBuffer buffer); CharArrayBuffer buffer); @RavenwoodRedirect private static native boolean nativePutBlob(long windowPtr, byte[] value, int row, int column); private static native boolean nativePutBlob(long windowPtr, byte[] value, int row, int column); @RavenwoodRedirect private static native boolean nativePutString(long windowPtr, String value, private static native boolean nativePutString(long windowPtr, String value, int row, int column); int row, int column); // Below native methods don't do unconstrained work, so are FastNative for performance // Below native methods don't do unconstrained work, so are FastNative for performance @FastNative @FastNative @RavenwoodThrow private static native void nativeClear(long windowPtr); private static native void nativeClear(long windowPtr); @FastNative @FastNative @RavenwoodRedirect private static native int nativeGetNumRows(long windowPtr); private static native int nativeGetNumRows(long windowPtr); @FastNative @FastNative @RavenwoodRedirect private static native boolean nativeSetNumColumns(long windowPtr, int columnNum); private static native boolean nativeSetNumColumns(long windowPtr, int columnNum); @FastNative @FastNative @RavenwoodRedirect private static native boolean nativeAllocRow(long windowPtr); private static native boolean nativeAllocRow(long windowPtr); @FastNative @FastNative @RavenwoodThrow private static native void nativeFreeLastRow(long windowPtr); private static native void nativeFreeLastRow(long windowPtr); @FastNative @FastNative @RavenwoodRedirect private static native int nativeGetType(long windowPtr, int row, int column); private static native int nativeGetType(long windowPtr, int row, int column); @FastNative @FastNative @RavenwoodRedirect private static native long nativeGetLong(long windowPtr, int row, int column); private static native long nativeGetLong(long windowPtr, int row, int column); @FastNative @FastNative @RavenwoodRedirect private static native double nativeGetDouble(long windowPtr, int row, int column); private static native double nativeGetDouble(long windowPtr, int row, int column); @FastNative @FastNative @RavenwoodRedirect private static native boolean nativePutLong(long windowPtr, long value, int row, int column); private static native boolean nativePutLong(long windowPtr, long value, int row, int column); @FastNative @FastNative @RavenwoodRedirect private static native boolean nativePutDouble(long windowPtr, double value, int row, int column); private static native boolean nativePutDouble(long windowPtr, double value, int row, int column); @FastNative @FastNative @RavenwoodThrow private static native boolean nativePutNull(long windowPtr, int row, int column); private static native boolean nativePutNull(long windowPtr, int row, int column); Loading core/java/android/os/ConcurrentMessageQueue/MessageQueue.java +11 −5 Original line number Original line Diff line number Diff line Loading @@ -19,9 +19,9 @@ package android.os; import android.annotation.IntDef; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.TestApi; import android.annotation.TestApi; import android.os.Handler; import android.ravenwood.annotation.RavenwoodKeepWholeClass; import android.os.Looper; import android.ravenwood.annotation.RavenwoodRedirect; import android.os.Trace; import android.ravenwood.annotation.RavenwoodRedirectionClass; import android.util.Log; import android.util.Log; import android.util.Printer; import android.util.Printer; import android.util.SparseArray; import android.util.SparseArray; Loading Loading @@ -51,8 +51,8 @@ import java.util.concurrent.locks.ReentrantLock; * <p>You can retrieve the MessageQueue for the current thread with * <p>You can retrieve the MessageQueue for the current thread with * {@link Looper#myQueue() Looper.myQueue()}. * {@link Looper#myQueue() Looper.myQueue()}. */ */ @android.ravenwood.annotation.RavenwoodKeepWholeClass @RavenwoodKeepWholeClass @android.ravenwood.annotation.RavenwoodNativeSubstitutionClass( @RavenwoodRedirectionClass( "com.android.platform.test.ravenwood.nativesubstitution.MessageQueue_host") "com.android.platform.test.ravenwood.nativesubstitution.MessageQueue_host") public final class MessageQueue { public final class MessageQueue { private static final String TAG = "ConcurrentMessageQueue"; private static final String TAG = "ConcurrentMessageQueue"; Loading Loading @@ -345,11 +345,17 @@ public final class MessageQueue { // Barriers are indicated by messages with a null target whose arg1 field carries the token. // Barriers are indicated by messages with a null target whose arg1 field carries the token. private final AtomicInteger mNextBarrierToken = new AtomicInteger(1); private final AtomicInteger mNextBarrierToken = new AtomicInteger(1); @RavenwoodRedirect private static native long nativeInit(); private static native long nativeInit(); @RavenwoodRedirect private static native void nativeDestroy(long ptr); private static native void nativeDestroy(long ptr); @RavenwoodRedirect private native void nativePollOnce(long ptr, int timeoutMillis); /*non-static for callbacks*/ private native void nativePollOnce(long ptr, int timeoutMillis); /*non-static for callbacks*/ @RavenwoodRedirect private static native void nativeWake(long ptr); private static native void nativeWake(long ptr); @RavenwoodRedirect private static native boolean nativeIsPolling(long ptr); private static native boolean nativeIsPolling(long ptr); @RavenwoodRedirect private static native void nativeSetFileDescriptorEvents(long ptr, int fd, int events); private static native void nativeSetFileDescriptorEvents(long ptr, int fd, int events); MessageQueue(boolean quitAllowed) { MessageQueue(boolean quitAllowed) { Loading core/java/android/os/LegacyMessageQueue/MessageQueue.java +11 −5 Original line number Original line Diff line number Diff line Loading @@ -20,9 +20,9 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.TestApi; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage; import android.os.Handler; import android.ravenwood.annotation.RavenwoodKeepWholeClass; import android.os.Process; import android.ravenwood.annotation.RavenwoodRedirect; import android.os.Trace; import android.ravenwood.annotation.RavenwoodRedirectionClass; import android.util.Log; import android.util.Log; import android.util.Printer; import android.util.Printer; import android.util.SparseArray; import android.util.SparseArray; Loading @@ -42,8 +42,8 @@ import java.util.concurrent.atomic.AtomicLong; * <p>You can retrieve the MessageQueue for the current thread with * <p>You can retrieve the MessageQueue for the current thread with * {@link Looper#myQueue() Looper.myQueue()}. * {@link Looper#myQueue() Looper.myQueue()}. */ */ @android.ravenwood.annotation.RavenwoodKeepWholeClass @RavenwoodKeepWholeClass @android.ravenwood.annotation.RavenwoodNativeSubstitutionClass( @RavenwoodRedirectionClass( "com.android.platform.test.ravenwood.nativesubstitution.MessageQueue_host") "com.android.platform.test.ravenwood.nativesubstitution.MessageQueue_host") public final class MessageQueue { public final class MessageQueue { private static final String TAG = "MessageQueue"; private static final String TAG = "MessageQueue"; Loading Loading @@ -79,12 +79,18 @@ public final class MessageQueue { @UnsupportedAppUsage @UnsupportedAppUsage private int mNextBarrierToken; private int mNextBarrierToken; @RavenwoodRedirect private native static long nativeInit(); private native static long nativeInit(); @RavenwoodRedirect private native static void nativeDestroy(long ptr); private native static void nativeDestroy(long ptr); @UnsupportedAppUsage @UnsupportedAppUsage @RavenwoodRedirect private native void nativePollOnce(long ptr, int timeoutMillis); /*non-static for callbacks*/ private native void nativePollOnce(long ptr, int timeoutMillis); /*non-static for callbacks*/ @RavenwoodRedirect private native static void nativeWake(long ptr); private native static void nativeWake(long ptr); @RavenwoodRedirect private native static boolean nativeIsPolling(long ptr); private native static boolean nativeIsPolling(long ptr); @RavenwoodRedirect private native static void nativeSetFileDescriptorEvents(long ptr, int fd, int events); private native static void nativeSetFileDescriptorEvents(long ptr, int fd, int events); MessageQueue(boolean quitAllowed) { MessageQueue(boolean quitAllowed) { Loading core/java/android/os/LockedMessageQueue/MessageQueue.java +11 −4 Original line number Original line Diff line number Diff line Loading @@ -20,8 +20,9 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.TestApi; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage; import android.os.Handler; import android.ravenwood.annotation.RavenwoodKeepWholeClass; import android.os.Trace; import android.ravenwood.annotation.RavenwoodRedirect; import android.ravenwood.annotation.RavenwoodRedirectionClass; import android.util.Log; import android.util.Log; import android.util.Printer; import android.util.Printer; import android.util.SparseArray; import android.util.SparseArray; Loading @@ -44,8 +45,8 @@ import java.util.concurrent.atomic.AtomicLong; * <p>You can retrieve the MessageQueue for the current thread with * <p>You can retrieve the MessageQueue for the current thread with * {@link Looper#myQueue() Looper.myQueue()}. * {@link Looper#myQueue() Looper.myQueue()}. */ */ @android.ravenwood.annotation.RavenwoodKeepWholeClass @RavenwoodKeepWholeClass @android.ravenwood.annotation.RavenwoodNativeSubstitutionClass( @RavenwoodRedirectionClass( "com.android.platform.test.ravenwood.nativesubstitution.MessageQueue_host") "com.android.platform.test.ravenwood.nativesubstitution.MessageQueue_host") public final class MessageQueue { public final class MessageQueue { private static final String TAG = "LockedMessageQueue"; private static final String TAG = "LockedMessageQueue"; Loading Loading @@ -389,12 +390,18 @@ public final class MessageQueue { @UnsupportedAppUsage @UnsupportedAppUsage private int mNextBarrierToken; private int mNextBarrierToken; @RavenwoodRedirect private native static long nativeInit(); private native static long nativeInit(); @RavenwoodRedirect private native static void nativeDestroy(long ptr); private native static void nativeDestroy(long ptr); @UnsupportedAppUsage @UnsupportedAppUsage @RavenwoodRedirect private native void nativePollOnce(long ptr, int timeoutMillis); /*non-static for callbacks*/ private native void nativePollOnce(long ptr, int timeoutMillis); /*non-static for callbacks*/ @RavenwoodRedirect private native static void nativeWake(long ptr); private native static void nativeWake(long ptr); @RavenwoodRedirect private native static boolean nativeIsPolling(long ptr); private native static boolean nativeIsPolling(long ptr); @RavenwoodRedirect private native static void nativeSetFileDescriptorEvents(long ptr, int fd, int events); private native static void nativeSetFileDescriptorEvents(long ptr, int fd, int events); MessageQueue(boolean quitAllowed) { MessageQueue(boolean quitAllowed) { Loading core/java/android/os/Parcel.java +44 −2 Original line number Original line Diff line number Diff line Loading @@ -28,7 +28,8 @@ import android.annotation.TestApi; import android.app.AppOpsManager; import android.app.AppOpsManager; import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage; import android.ravenwood.annotation.RavenwoodKeepWholeClass; import android.ravenwood.annotation.RavenwoodKeepWholeClass; import android.ravenwood.annotation.RavenwoodNativeSubstitutionClass; import android.ravenwood.annotation.RavenwoodRedirect; import android.ravenwood.annotation.RavenwoodRedirectionClass; import android.ravenwood.annotation.RavenwoodReplace; import android.ravenwood.annotation.RavenwoodReplace; import android.ravenwood.annotation.RavenwoodThrow; import android.ravenwood.annotation.RavenwoodThrow; import android.text.TextUtils; import android.text.TextUtils; Loading Loading @@ -233,7 +234,7 @@ import java.util.function.IntFunction; * {@link #readSparseArray(ClassLoader, Class)}. * {@link #readSparseArray(ClassLoader, Class)}. */ */ @RavenwoodKeepWholeClass @RavenwoodKeepWholeClass @RavenwoodNativeSubstitutionClass( @RavenwoodRedirectionClass( "com.android.platform.test.ravenwood.nativesubstitution.Parcel_host") "com.android.platform.test.ravenwood.nativesubstitution.Parcel_host") public final class Parcel { public final class Parcel { Loading Loading @@ -387,6 +388,7 @@ public final class Parcel { private static final int SIZE_COMPLEX_TYPE = 1; private static final int SIZE_COMPLEX_TYPE = 1; @CriticalNative @CriticalNative @RavenwoodRedirect private static native void nativeMarkSensitive(long nativePtr); private static native void nativeMarkSensitive(long nativePtr); @FastNative @FastNative @RavenwoodThrow @RavenwoodThrow Loading @@ -395,86 +397,126 @@ public final class Parcel { @RavenwoodThrow @RavenwoodThrow private static native boolean nativeIsForRpc(long nativePtr); private static native boolean nativeIsForRpc(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeDataSize(long nativePtr); private static native int nativeDataSize(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeDataAvail(long nativePtr); private static native int nativeDataAvail(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeDataPosition(long nativePtr); private static native int nativeDataPosition(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeDataCapacity(long nativePtr); private static native int nativeDataCapacity(long nativePtr); @FastNative @FastNative @RavenwoodRedirect private static native void nativeSetDataSize(long nativePtr, int size); private static native void nativeSetDataSize(long nativePtr, int size); @CriticalNative @CriticalNative @RavenwoodRedirect private static native void nativeSetDataPosition(long nativePtr, int pos); private static native void nativeSetDataPosition(long nativePtr, int pos); @FastNative @FastNative @RavenwoodRedirect private static native void nativeSetDataCapacity(long nativePtr, int size); private static native void nativeSetDataCapacity(long nativePtr, int size); @CriticalNative @CriticalNative @RavenwoodRedirect private static native boolean nativePushAllowFds(long nativePtr, boolean allowFds); private static native boolean nativePushAllowFds(long nativePtr, boolean allowFds); @CriticalNative @CriticalNative @RavenwoodRedirect private static native void nativeRestoreAllowFds(long nativePtr, boolean lastValue); private static native void nativeRestoreAllowFds(long nativePtr, boolean lastValue); @RavenwoodRedirect private static native void nativeWriteByteArray(long nativePtr, byte[] b, int offset, int len); private static native void nativeWriteByteArray(long nativePtr, byte[] b, int offset, int len); @RavenwoodRedirect private static native void nativeWriteBlob(long nativePtr, byte[] b, int offset, int len); private static native void nativeWriteBlob(long nativePtr, byte[] b, int offset, int len); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeWriteInt(long nativePtr, int val); private static native int nativeWriteInt(long nativePtr, int val); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeWriteLong(long nativePtr, long val); private static native int nativeWriteLong(long nativePtr, long val); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeWriteFloat(long nativePtr, float val); private static native int nativeWriteFloat(long nativePtr, float val); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeWriteDouble(long nativePtr, double val); private static native int nativeWriteDouble(long nativePtr, double val); @RavenwoodThrow @RavenwoodThrow private static native void nativeSignalExceptionForError(int error); private static native void nativeSignalExceptionForError(int error); @FastNative @FastNative @RavenwoodRedirect private static native void nativeWriteString8(long nativePtr, String val); private static native void nativeWriteString8(long nativePtr, String val); @FastNative @FastNative @RavenwoodRedirect private static native void nativeWriteString16(long nativePtr, String val); private static native void nativeWriteString16(long nativePtr, String val); @FastNative @FastNative @RavenwoodThrow @RavenwoodThrow private static native void nativeWriteStrongBinder(long nativePtr, IBinder val); private static native void nativeWriteStrongBinder(long nativePtr, IBinder val); @FastNative @FastNative @RavenwoodRedirect private static native void nativeWriteFileDescriptor(long nativePtr, FileDescriptor val); private static native void nativeWriteFileDescriptor(long nativePtr, FileDescriptor val); @RavenwoodRedirect private static native byte[] nativeCreateByteArray(long nativePtr); private static native byte[] nativeCreateByteArray(long nativePtr); @RavenwoodRedirect private static native boolean nativeReadByteArray(long nativePtr, byte[] dest, int destLen); private static native boolean nativeReadByteArray(long nativePtr, byte[] dest, int destLen); @RavenwoodRedirect private static native byte[] nativeReadBlob(long nativePtr); private static native byte[] nativeReadBlob(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeReadInt(long nativePtr); private static native int nativeReadInt(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native long nativeReadLong(long nativePtr); private static native long nativeReadLong(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native float nativeReadFloat(long nativePtr); private static native float nativeReadFloat(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native double nativeReadDouble(long nativePtr); private static native double nativeReadDouble(long nativePtr); @FastNative @FastNative @RavenwoodRedirect private static native String nativeReadString8(long nativePtr); private static native String nativeReadString8(long nativePtr); @FastNative @FastNative @RavenwoodRedirect private static native String nativeReadString16(long nativePtr); private static native String nativeReadString16(long nativePtr); @FastNative @FastNative @RavenwoodThrow @RavenwoodThrow private static native IBinder nativeReadStrongBinder(long nativePtr); private static native IBinder nativeReadStrongBinder(long nativePtr); @FastNative @FastNative @RavenwoodRedirect private static native FileDescriptor nativeReadFileDescriptor(long nativePtr); private static native FileDescriptor nativeReadFileDescriptor(long nativePtr); @RavenwoodRedirect private static native long nativeCreate(); private static native long nativeCreate(); @RavenwoodRedirect private static native void nativeFreeBuffer(long nativePtr); private static native void nativeFreeBuffer(long nativePtr); @RavenwoodRedirect private static native void nativeDestroy(long nativePtr); private static native void nativeDestroy(long nativePtr); @RavenwoodRedirect private static native byte[] nativeMarshall(long nativePtr); private static native byte[] nativeMarshall(long nativePtr); @RavenwoodRedirect private static native void nativeUnmarshall( private static native void nativeUnmarshall( long nativePtr, byte[] data, int offset, int length); long nativePtr, byte[] data, int offset, int length); @RavenwoodRedirect private static native int nativeCompareData(long thisNativePtr, long otherNativePtr); private static native int nativeCompareData(long thisNativePtr, long otherNativePtr); @RavenwoodRedirect private static native boolean nativeCompareDataInRange( private static native boolean nativeCompareDataInRange( long ptrA, int offsetA, long ptrB, int offsetB, int length); long ptrA, int offsetA, long ptrB, int offsetB, int length); @RavenwoodRedirect private static native void nativeAppendFrom( private static native void nativeAppendFrom( long thisNativePtr, long otherNativePtr, int offset, int length); long thisNativePtr, long otherNativePtr, int offset, int length); @CriticalNative @CriticalNative @RavenwoodRedirect private static native boolean nativeHasFileDescriptors(long nativePtr); private static native boolean nativeHasFileDescriptors(long nativePtr); @RavenwoodRedirect private static native boolean nativeHasFileDescriptorsInRange( private static native boolean nativeHasFileDescriptorsInRange( long nativePtr, int offset, int length); long nativePtr, int offset, int length); @RavenwoodRedirect private static native boolean nativeHasBinders(long nativePtr); private static native boolean nativeHasBinders(long nativePtr); @RavenwoodRedirect private static native boolean nativeHasBindersInRange( private static native boolean nativeHasBindersInRange( long nativePtr, int offset, int length); long nativePtr, int offset, int length); @RavenwoodThrow @RavenwoodThrow Loading Loading
core/java/android/database/CursorWindow.java +27 −2 Original line number Original line Diff line number Diff line Loading @@ -26,6 +26,10 @@ import android.database.sqlite.SQLiteClosable; import android.database.sqlite.SQLiteException; import android.database.sqlite.SQLiteException; import android.os.Parcel; import android.os.Parcel; import android.os.Parcelable; import android.os.Parcelable; import android.ravenwood.annotation.RavenwoodKeepWholeClass; import android.ravenwood.annotation.RavenwoodRedirect; import android.ravenwood.annotation.RavenwoodRedirectionClass; import android.ravenwood.annotation.RavenwoodThrow; import dalvik.annotation.optimization.FastNative; import dalvik.annotation.optimization.FastNative; import dalvik.system.CloseGuard; import dalvik.system.CloseGuard; Loading @@ -40,8 +44,8 @@ import dalvik.system.CloseGuard; * consumer for reading. * consumer for reading. * </p> * </p> */ */ @android.ravenwood.annotation.RavenwoodKeepWholeClass @RavenwoodKeepWholeClass @android.ravenwood.annotation.RavenwoodNativeSubstitutionClass( @RavenwoodRedirectionClass( "com.android.platform.test.ravenwood.nativesubstitution.CursorWindow_host") "com.android.platform.test.ravenwood.nativesubstitution.CursorWindow_host") public class CursorWindow extends SQLiteClosable implements Parcelable { public class CursorWindow extends SQLiteClosable implements Parcelable { private static final String STATS_TAG = "CursorWindowStats"; private static final String STATS_TAG = "CursorWindowStats"; Loading @@ -63,48 +67,69 @@ public class CursorWindow extends SQLiteClosable implements Parcelable { private final CloseGuard mCloseGuard; private final CloseGuard mCloseGuard; // May throw CursorWindowAllocationException // May throw CursorWindowAllocationException @RavenwoodRedirect private static native long nativeCreate(String name, int cursorWindowSize); private static native long nativeCreate(String name, int cursorWindowSize); // May throw CursorWindowAllocationException // May throw CursorWindowAllocationException @RavenwoodRedirect private static native long nativeCreateFromParcel(Parcel parcel); private static native long nativeCreateFromParcel(Parcel parcel); @RavenwoodRedirect private static native void nativeDispose(long windowPtr); private static native void nativeDispose(long windowPtr); @RavenwoodRedirect private static native void nativeWriteToParcel(long windowPtr, Parcel parcel); private static native void nativeWriteToParcel(long windowPtr, Parcel parcel); @RavenwoodRedirect private static native String nativeGetName(long windowPtr); private static native String nativeGetName(long windowPtr); @RavenwoodRedirect private static native byte[] nativeGetBlob(long windowPtr, int row, int column); private static native byte[] nativeGetBlob(long windowPtr, int row, int column); @RavenwoodRedirect private static native String nativeGetString(long windowPtr, int row, int column); private static native String nativeGetString(long windowPtr, int row, int column); @RavenwoodThrow private static native void nativeCopyStringToBuffer(long windowPtr, int row, int column, private static native void nativeCopyStringToBuffer(long windowPtr, int row, int column, CharArrayBuffer buffer); CharArrayBuffer buffer); @RavenwoodRedirect private static native boolean nativePutBlob(long windowPtr, byte[] value, int row, int column); private static native boolean nativePutBlob(long windowPtr, byte[] value, int row, int column); @RavenwoodRedirect private static native boolean nativePutString(long windowPtr, String value, private static native boolean nativePutString(long windowPtr, String value, int row, int column); int row, int column); // Below native methods don't do unconstrained work, so are FastNative for performance // Below native methods don't do unconstrained work, so are FastNative for performance @FastNative @FastNative @RavenwoodThrow private static native void nativeClear(long windowPtr); private static native void nativeClear(long windowPtr); @FastNative @FastNative @RavenwoodRedirect private static native int nativeGetNumRows(long windowPtr); private static native int nativeGetNumRows(long windowPtr); @FastNative @FastNative @RavenwoodRedirect private static native boolean nativeSetNumColumns(long windowPtr, int columnNum); private static native boolean nativeSetNumColumns(long windowPtr, int columnNum); @FastNative @FastNative @RavenwoodRedirect private static native boolean nativeAllocRow(long windowPtr); private static native boolean nativeAllocRow(long windowPtr); @FastNative @FastNative @RavenwoodThrow private static native void nativeFreeLastRow(long windowPtr); private static native void nativeFreeLastRow(long windowPtr); @FastNative @FastNative @RavenwoodRedirect private static native int nativeGetType(long windowPtr, int row, int column); private static native int nativeGetType(long windowPtr, int row, int column); @FastNative @FastNative @RavenwoodRedirect private static native long nativeGetLong(long windowPtr, int row, int column); private static native long nativeGetLong(long windowPtr, int row, int column); @FastNative @FastNative @RavenwoodRedirect private static native double nativeGetDouble(long windowPtr, int row, int column); private static native double nativeGetDouble(long windowPtr, int row, int column); @FastNative @FastNative @RavenwoodRedirect private static native boolean nativePutLong(long windowPtr, long value, int row, int column); private static native boolean nativePutLong(long windowPtr, long value, int row, int column); @FastNative @FastNative @RavenwoodRedirect private static native boolean nativePutDouble(long windowPtr, double value, int row, int column); private static native boolean nativePutDouble(long windowPtr, double value, int row, int column); @FastNative @FastNative @RavenwoodThrow private static native boolean nativePutNull(long windowPtr, int row, int column); private static native boolean nativePutNull(long windowPtr, int row, int column); Loading
core/java/android/os/ConcurrentMessageQueue/MessageQueue.java +11 −5 Original line number Original line Diff line number Diff line Loading @@ -19,9 +19,9 @@ package android.os; import android.annotation.IntDef; import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.TestApi; import android.annotation.TestApi; import android.os.Handler; import android.ravenwood.annotation.RavenwoodKeepWholeClass; import android.os.Looper; import android.ravenwood.annotation.RavenwoodRedirect; import android.os.Trace; import android.ravenwood.annotation.RavenwoodRedirectionClass; import android.util.Log; import android.util.Log; import android.util.Printer; import android.util.Printer; import android.util.SparseArray; import android.util.SparseArray; Loading Loading @@ -51,8 +51,8 @@ import java.util.concurrent.locks.ReentrantLock; * <p>You can retrieve the MessageQueue for the current thread with * <p>You can retrieve the MessageQueue for the current thread with * {@link Looper#myQueue() Looper.myQueue()}. * {@link Looper#myQueue() Looper.myQueue()}. */ */ @android.ravenwood.annotation.RavenwoodKeepWholeClass @RavenwoodKeepWholeClass @android.ravenwood.annotation.RavenwoodNativeSubstitutionClass( @RavenwoodRedirectionClass( "com.android.platform.test.ravenwood.nativesubstitution.MessageQueue_host") "com.android.platform.test.ravenwood.nativesubstitution.MessageQueue_host") public final class MessageQueue { public final class MessageQueue { private static final String TAG = "ConcurrentMessageQueue"; private static final String TAG = "ConcurrentMessageQueue"; Loading Loading @@ -345,11 +345,17 @@ public final class MessageQueue { // Barriers are indicated by messages with a null target whose arg1 field carries the token. // Barriers are indicated by messages with a null target whose arg1 field carries the token. private final AtomicInteger mNextBarrierToken = new AtomicInteger(1); private final AtomicInteger mNextBarrierToken = new AtomicInteger(1); @RavenwoodRedirect private static native long nativeInit(); private static native long nativeInit(); @RavenwoodRedirect private static native void nativeDestroy(long ptr); private static native void nativeDestroy(long ptr); @RavenwoodRedirect private native void nativePollOnce(long ptr, int timeoutMillis); /*non-static for callbacks*/ private native void nativePollOnce(long ptr, int timeoutMillis); /*non-static for callbacks*/ @RavenwoodRedirect private static native void nativeWake(long ptr); private static native void nativeWake(long ptr); @RavenwoodRedirect private static native boolean nativeIsPolling(long ptr); private static native boolean nativeIsPolling(long ptr); @RavenwoodRedirect private static native void nativeSetFileDescriptorEvents(long ptr, int fd, int events); private static native void nativeSetFileDescriptorEvents(long ptr, int fd, int events); MessageQueue(boolean quitAllowed) { MessageQueue(boolean quitAllowed) { Loading
core/java/android/os/LegacyMessageQueue/MessageQueue.java +11 −5 Original line number Original line Diff line number Diff line Loading @@ -20,9 +20,9 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.TestApi; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage; import android.os.Handler; import android.ravenwood.annotation.RavenwoodKeepWholeClass; import android.os.Process; import android.ravenwood.annotation.RavenwoodRedirect; import android.os.Trace; import android.ravenwood.annotation.RavenwoodRedirectionClass; import android.util.Log; import android.util.Log; import android.util.Printer; import android.util.Printer; import android.util.SparseArray; import android.util.SparseArray; Loading @@ -42,8 +42,8 @@ import java.util.concurrent.atomic.AtomicLong; * <p>You can retrieve the MessageQueue for the current thread with * <p>You can retrieve the MessageQueue for the current thread with * {@link Looper#myQueue() Looper.myQueue()}. * {@link Looper#myQueue() Looper.myQueue()}. */ */ @android.ravenwood.annotation.RavenwoodKeepWholeClass @RavenwoodKeepWholeClass @android.ravenwood.annotation.RavenwoodNativeSubstitutionClass( @RavenwoodRedirectionClass( "com.android.platform.test.ravenwood.nativesubstitution.MessageQueue_host") "com.android.platform.test.ravenwood.nativesubstitution.MessageQueue_host") public final class MessageQueue { public final class MessageQueue { private static final String TAG = "MessageQueue"; private static final String TAG = "MessageQueue"; Loading Loading @@ -79,12 +79,18 @@ public final class MessageQueue { @UnsupportedAppUsage @UnsupportedAppUsage private int mNextBarrierToken; private int mNextBarrierToken; @RavenwoodRedirect private native static long nativeInit(); private native static long nativeInit(); @RavenwoodRedirect private native static void nativeDestroy(long ptr); private native static void nativeDestroy(long ptr); @UnsupportedAppUsage @UnsupportedAppUsage @RavenwoodRedirect private native void nativePollOnce(long ptr, int timeoutMillis); /*non-static for callbacks*/ private native void nativePollOnce(long ptr, int timeoutMillis); /*non-static for callbacks*/ @RavenwoodRedirect private native static void nativeWake(long ptr); private native static void nativeWake(long ptr); @RavenwoodRedirect private native static boolean nativeIsPolling(long ptr); private native static boolean nativeIsPolling(long ptr); @RavenwoodRedirect private native static void nativeSetFileDescriptorEvents(long ptr, int fd, int events); private native static void nativeSetFileDescriptorEvents(long ptr, int fd, int events); MessageQueue(boolean quitAllowed) { MessageQueue(boolean quitAllowed) { Loading
core/java/android/os/LockedMessageQueue/MessageQueue.java +11 −4 Original line number Original line Diff line number Diff line Loading @@ -20,8 +20,9 @@ import android.annotation.IntDef; import android.annotation.NonNull; import android.annotation.NonNull; import android.annotation.TestApi; import android.annotation.TestApi; import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage; import android.os.Handler; import android.ravenwood.annotation.RavenwoodKeepWholeClass; import android.os.Trace; import android.ravenwood.annotation.RavenwoodRedirect; import android.ravenwood.annotation.RavenwoodRedirectionClass; import android.util.Log; import android.util.Log; import android.util.Printer; import android.util.Printer; import android.util.SparseArray; import android.util.SparseArray; Loading @@ -44,8 +45,8 @@ import java.util.concurrent.atomic.AtomicLong; * <p>You can retrieve the MessageQueue for the current thread with * <p>You can retrieve the MessageQueue for the current thread with * {@link Looper#myQueue() Looper.myQueue()}. * {@link Looper#myQueue() Looper.myQueue()}. */ */ @android.ravenwood.annotation.RavenwoodKeepWholeClass @RavenwoodKeepWholeClass @android.ravenwood.annotation.RavenwoodNativeSubstitutionClass( @RavenwoodRedirectionClass( "com.android.platform.test.ravenwood.nativesubstitution.MessageQueue_host") "com.android.platform.test.ravenwood.nativesubstitution.MessageQueue_host") public final class MessageQueue { public final class MessageQueue { private static final String TAG = "LockedMessageQueue"; private static final String TAG = "LockedMessageQueue"; Loading Loading @@ -389,12 +390,18 @@ public final class MessageQueue { @UnsupportedAppUsage @UnsupportedAppUsage private int mNextBarrierToken; private int mNextBarrierToken; @RavenwoodRedirect private native static long nativeInit(); private native static long nativeInit(); @RavenwoodRedirect private native static void nativeDestroy(long ptr); private native static void nativeDestroy(long ptr); @UnsupportedAppUsage @UnsupportedAppUsage @RavenwoodRedirect private native void nativePollOnce(long ptr, int timeoutMillis); /*non-static for callbacks*/ private native void nativePollOnce(long ptr, int timeoutMillis); /*non-static for callbacks*/ @RavenwoodRedirect private native static void nativeWake(long ptr); private native static void nativeWake(long ptr); @RavenwoodRedirect private native static boolean nativeIsPolling(long ptr); private native static boolean nativeIsPolling(long ptr); @RavenwoodRedirect private native static void nativeSetFileDescriptorEvents(long ptr, int fd, int events); private native static void nativeSetFileDescriptorEvents(long ptr, int fd, int events); MessageQueue(boolean quitAllowed) { MessageQueue(boolean quitAllowed) { Loading
core/java/android/os/Parcel.java +44 −2 Original line number Original line Diff line number Diff line Loading @@ -28,7 +28,8 @@ import android.annotation.TestApi; import android.app.AppOpsManager; import android.app.AppOpsManager; import android.compat.annotation.UnsupportedAppUsage; import android.compat.annotation.UnsupportedAppUsage; import android.ravenwood.annotation.RavenwoodKeepWholeClass; import android.ravenwood.annotation.RavenwoodKeepWholeClass; import android.ravenwood.annotation.RavenwoodNativeSubstitutionClass; import android.ravenwood.annotation.RavenwoodRedirect; import android.ravenwood.annotation.RavenwoodRedirectionClass; import android.ravenwood.annotation.RavenwoodReplace; import android.ravenwood.annotation.RavenwoodReplace; import android.ravenwood.annotation.RavenwoodThrow; import android.ravenwood.annotation.RavenwoodThrow; import android.text.TextUtils; import android.text.TextUtils; Loading Loading @@ -233,7 +234,7 @@ import java.util.function.IntFunction; * {@link #readSparseArray(ClassLoader, Class)}. * {@link #readSparseArray(ClassLoader, Class)}. */ */ @RavenwoodKeepWholeClass @RavenwoodKeepWholeClass @RavenwoodNativeSubstitutionClass( @RavenwoodRedirectionClass( "com.android.platform.test.ravenwood.nativesubstitution.Parcel_host") "com.android.platform.test.ravenwood.nativesubstitution.Parcel_host") public final class Parcel { public final class Parcel { Loading Loading @@ -387,6 +388,7 @@ public final class Parcel { private static final int SIZE_COMPLEX_TYPE = 1; private static final int SIZE_COMPLEX_TYPE = 1; @CriticalNative @CriticalNative @RavenwoodRedirect private static native void nativeMarkSensitive(long nativePtr); private static native void nativeMarkSensitive(long nativePtr); @FastNative @FastNative @RavenwoodThrow @RavenwoodThrow Loading @@ -395,86 +397,126 @@ public final class Parcel { @RavenwoodThrow @RavenwoodThrow private static native boolean nativeIsForRpc(long nativePtr); private static native boolean nativeIsForRpc(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeDataSize(long nativePtr); private static native int nativeDataSize(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeDataAvail(long nativePtr); private static native int nativeDataAvail(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeDataPosition(long nativePtr); private static native int nativeDataPosition(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeDataCapacity(long nativePtr); private static native int nativeDataCapacity(long nativePtr); @FastNative @FastNative @RavenwoodRedirect private static native void nativeSetDataSize(long nativePtr, int size); private static native void nativeSetDataSize(long nativePtr, int size); @CriticalNative @CriticalNative @RavenwoodRedirect private static native void nativeSetDataPosition(long nativePtr, int pos); private static native void nativeSetDataPosition(long nativePtr, int pos); @FastNative @FastNative @RavenwoodRedirect private static native void nativeSetDataCapacity(long nativePtr, int size); private static native void nativeSetDataCapacity(long nativePtr, int size); @CriticalNative @CriticalNative @RavenwoodRedirect private static native boolean nativePushAllowFds(long nativePtr, boolean allowFds); private static native boolean nativePushAllowFds(long nativePtr, boolean allowFds); @CriticalNative @CriticalNative @RavenwoodRedirect private static native void nativeRestoreAllowFds(long nativePtr, boolean lastValue); private static native void nativeRestoreAllowFds(long nativePtr, boolean lastValue); @RavenwoodRedirect private static native void nativeWriteByteArray(long nativePtr, byte[] b, int offset, int len); private static native void nativeWriteByteArray(long nativePtr, byte[] b, int offset, int len); @RavenwoodRedirect private static native void nativeWriteBlob(long nativePtr, byte[] b, int offset, int len); private static native void nativeWriteBlob(long nativePtr, byte[] b, int offset, int len); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeWriteInt(long nativePtr, int val); private static native int nativeWriteInt(long nativePtr, int val); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeWriteLong(long nativePtr, long val); private static native int nativeWriteLong(long nativePtr, long val); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeWriteFloat(long nativePtr, float val); private static native int nativeWriteFloat(long nativePtr, float val); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeWriteDouble(long nativePtr, double val); private static native int nativeWriteDouble(long nativePtr, double val); @RavenwoodThrow @RavenwoodThrow private static native void nativeSignalExceptionForError(int error); private static native void nativeSignalExceptionForError(int error); @FastNative @FastNative @RavenwoodRedirect private static native void nativeWriteString8(long nativePtr, String val); private static native void nativeWriteString8(long nativePtr, String val); @FastNative @FastNative @RavenwoodRedirect private static native void nativeWriteString16(long nativePtr, String val); private static native void nativeWriteString16(long nativePtr, String val); @FastNative @FastNative @RavenwoodThrow @RavenwoodThrow private static native void nativeWriteStrongBinder(long nativePtr, IBinder val); private static native void nativeWriteStrongBinder(long nativePtr, IBinder val); @FastNative @FastNative @RavenwoodRedirect private static native void nativeWriteFileDescriptor(long nativePtr, FileDescriptor val); private static native void nativeWriteFileDescriptor(long nativePtr, FileDescriptor val); @RavenwoodRedirect private static native byte[] nativeCreateByteArray(long nativePtr); private static native byte[] nativeCreateByteArray(long nativePtr); @RavenwoodRedirect private static native boolean nativeReadByteArray(long nativePtr, byte[] dest, int destLen); private static native boolean nativeReadByteArray(long nativePtr, byte[] dest, int destLen); @RavenwoodRedirect private static native byte[] nativeReadBlob(long nativePtr); private static native byte[] nativeReadBlob(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native int nativeReadInt(long nativePtr); private static native int nativeReadInt(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native long nativeReadLong(long nativePtr); private static native long nativeReadLong(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native float nativeReadFloat(long nativePtr); private static native float nativeReadFloat(long nativePtr); @CriticalNative @CriticalNative @RavenwoodRedirect private static native double nativeReadDouble(long nativePtr); private static native double nativeReadDouble(long nativePtr); @FastNative @FastNative @RavenwoodRedirect private static native String nativeReadString8(long nativePtr); private static native String nativeReadString8(long nativePtr); @FastNative @FastNative @RavenwoodRedirect private static native String nativeReadString16(long nativePtr); private static native String nativeReadString16(long nativePtr); @FastNative @FastNative @RavenwoodThrow @RavenwoodThrow private static native IBinder nativeReadStrongBinder(long nativePtr); private static native IBinder nativeReadStrongBinder(long nativePtr); @FastNative @FastNative @RavenwoodRedirect private static native FileDescriptor nativeReadFileDescriptor(long nativePtr); private static native FileDescriptor nativeReadFileDescriptor(long nativePtr); @RavenwoodRedirect private static native long nativeCreate(); private static native long nativeCreate(); @RavenwoodRedirect private static native void nativeFreeBuffer(long nativePtr); private static native void nativeFreeBuffer(long nativePtr); @RavenwoodRedirect private static native void nativeDestroy(long nativePtr); private static native void nativeDestroy(long nativePtr); @RavenwoodRedirect private static native byte[] nativeMarshall(long nativePtr); private static native byte[] nativeMarshall(long nativePtr); @RavenwoodRedirect private static native void nativeUnmarshall( private static native void nativeUnmarshall( long nativePtr, byte[] data, int offset, int length); long nativePtr, byte[] data, int offset, int length); @RavenwoodRedirect private static native int nativeCompareData(long thisNativePtr, long otherNativePtr); private static native int nativeCompareData(long thisNativePtr, long otherNativePtr); @RavenwoodRedirect private static native boolean nativeCompareDataInRange( private static native boolean nativeCompareDataInRange( long ptrA, int offsetA, long ptrB, int offsetB, int length); long ptrA, int offsetA, long ptrB, int offsetB, int length); @RavenwoodRedirect private static native void nativeAppendFrom( private static native void nativeAppendFrom( long thisNativePtr, long otherNativePtr, int offset, int length); long thisNativePtr, long otherNativePtr, int offset, int length); @CriticalNative @CriticalNative @RavenwoodRedirect private static native boolean nativeHasFileDescriptors(long nativePtr); private static native boolean nativeHasFileDescriptors(long nativePtr); @RavenwoodRedirect private static native boolean nativeHasFileDescriptorsInRange( private static native boolean nativeHasFileDescriptorsInRange( long nativePtr, int offset, int length); long nativePtr, int offset, int length); @RavenwoodRedirect private static native boolean nativeHasBinders(long nativePtr); private static native boolean nativeHasBinders(long nativePtr); @RavenwoodRedirect private static native boolean nativeHasBindersInRange( private static native boolean nativeHasBindersInRange( long nativePtr, int offset, int length); long nativePtr, int offset, int length); @RavenwoodThrow @RavenwoodThrow Loading