Loading core/java/android/view/SurfaceControl.java +20 −2 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ public final class SurfaceControl implements Parcelable { private static native void nativeApplyTransaction(long transactionObj, boolean sync); private static native void nativeMergeTransaction(long transactionObj, long otherTransactionObj); private static native void nativeClearTransaction(long transactionObj); private static native void nativeSetAnimationTransaction(long transactionObj); private static native void nativeSetEarlyWakeupStart(long transactionObj); private static native void nativeSetEarlyWakeupEnd(long transactionObj); Loading Loading @@ -2601,6 +2602,19 @@ public final class SurfaceControl implements Parcelable { apply(false); } /** * Clear the transaction object, without applying it. * * @hide */ public void clear() { mResizedSurfaces.clear(); mReparentedSurfaces.clear(); if (mNativeObject != 0) { nativeClearTransaction(mNativeObject); } } /** * Release the native transaction object, without applying it. */ Loading Loading @@ -3411,10 +3425,14 @@ public final class SurfaceControl implements Parcelable { public void writeToParcel(@NonNull Parcel dest, @WriteFlags int flags) { if (mNativeObject == 0) { dest.writeInt(0); } else { dest.writeInt(1); return; } dest.writeInt(1); nativeWriteTransactionToParcel(mNativeObject, dest); if ((flags & Parcelable.PARCELABLE_WRITE_RETURN_VALUE) != 0) { nativeClearTransaction(mNativeObject); } } private void readFromParcel(Parcel in) { Loading core/java/android/view/ViewRootImpl.java +4 −1 Original line number Diff line number Diff line Loading @@ -3906,7 +3906,10 @@ public final class ViewRootImpl implements ViewParent, mDrawsNeededToReport = 0; mWindowSession.finishDrawing(mWindow, mSurfaceChangedTransaction); } catch (RemoteException e) { // Have fun! Log.e(mTag, "Unable to report draw finished", e); mSurfaceChangedTransaction.apply(); } finally { mSurfaceChangedTransaction.clear(); } } Loading core/jni/android_view_SurfaceControl.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -1562,6 +1562,13 @@ static void nativeWriteTransactionToParcel(JNIEnv* env, jclass clazz, jlong nati reinterpret_cast<SurfaceComposerClient::Transaction *>(nativeObject); if (self != nullptr) { self->writeToParcel(parcel); } } static void nativeClearTransaction(JNIEnv* env, jclass clazz, jlong nativeObject) { SurfaceComposerClient::Transaction* const self = reinterpret_cast<SurfaceComposerClient::Transaction*>(nativeObject); if (self != nullptr) { self->clear(); } } Loading Loading @@ -1880,6 +1887,8 @@ static const JNINativeMethod sSurfaceControlMethods[] = { (void*)nativeReadTransactionFromParcel }, {"nativeWriteTransactionToParcel", "(JLandroid/os/Parcel;)V", (void*)nativeWriteTransactionToParcel }, {"nativeClearTransaction", "(J)V", (void*)nativeClearTransaction }, {"nativeMirrorSurface", "(J)J", (void*)nativeMirrorSurface }, {"nativeSetGlobalShadowSettings", "([F[FFFF)V", Loading Loading
core/java/android/view/SurfaceControl.java +20 −2 Original line number Diff line number Diff line Loading @@ -104,6 +104,7 @@ public final class SurfaceControl implements Parcelable { private static native void nativeApplyTransaction(long transactionObj, boolean sync); private static native void nativeMergeTransaction(long transactionObj, long otherTransactionObj); private static native void nativeClearTransaction(long transactionObj); private static native void nativeSetAnimationTransaction(long transactionObj); private static native void nativeSetEarlyWakeupStart(long transactionObj); private static native void nativeSetEarlyWakeupEnd(long transactionObj); Loading Loading @@ -2601,6 +2602,19 @@ public final class SurfaceControl implements Parcelable { apply(false); } /** * Clear the transaction object, without applying it. * * @hide */ public void clear() { mResizedSurfaces.clear(); mReparentedSurfaces.clear(); if (mNativeObject != 0) { nativeClearTransaction(mNativeObject); } } /** * Release the native transaction object, without applying it. */ Loading Loading @@ -3411,10 +3425,14 @@ public final class SurfaceControl implements Parcelable { public void writeToParcel(@NonNull Parcel dest, @WriteFlags int flags) { if (mNativeObject == 0) { dest.writeInt(0); } else { dest.writeInt(1); return; } dest.writeInt(1); nativeWriteTransactionToParcel(mNativeObject, dest); if ((flags & Parcelable.PARCELABLE_WRITE_RETURN_VALUE) != 0) { nativeClearTransaction(mNativeObject); } } private void readFromParcel(Parcel in) { Loading
core/java/android/view/ViewRootImpl.java +4 −1 Original line number Diff line number Diff line Loading @@ -3906,7 +3906,10 @@ public final class ViewRootImpl implements ViewParent, mDrawsNeededToReport = 0; mWindowSession.finishDrawing(mWindow, mSurfaceChangedTransaction); } catch (RemoteException e) { // Have fun! Log.e(mTag, "Unable to report draw finished", e); mSurfaceChangedTransaction.apply(); } finally { mSurfaceChangedTransaction.clear(); } } Loading
core/jni/android_view_SurfaceControl.cpp +9 −0 Original line number Diff line number Diff line Loading @@ -1562,6 +1562,13 @@ static void nativeWriteTransactionToParcel(JNIEnv* env, jclass clazz, jlong nati reinterpret_cast<SurfaceComposerClient::Transaction *>(nativeObject); if (self != nullptr) { self->writeToParcel(parcel); } } static void nativeClearTransaction(JNIEnv* env, jclass clazz, jlong nativeObject) { SurfaceComposerClient::Transaction* const self = reinterpret_cast<SurfaceComposerClient::Transaction*>(nativeObject); if (self != nullptr) { self->clear(); } } Loading Loading @@ -1880,6 +1887,8 @@ static const JNINativeMethod sSurfaceControlMethods[] = { (void*)nativeReadTransactionFromParcel }, {"nativeWriteTransactionToParcel", "(JLandroid/os/Parcel;)V", (void*)nativeWriteTransactionToParcel }, {"nativeClearTransaction", "(J)V", (void*)nativeClearTransaction }, {"nativeMirrorSurface", "(J)J", (void*)nativeMirrorSurface }, {"nativeSetGlobalShadowSettings", "([F[FFFF)V", Loading