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

Commit 2e3b77a4 authored by Rob Carr's avatar Rob Carr Committed by Android (Google) Code Review
Browse files

Merge "DO NOT MERGE: WM: Call Transaction#sanitize" into sc-qpr1-dev

parents 5b62c515 d1de60ac
Loading
Loading
Loading
Loading
+9 −1
Original line number Diff line number Diff line
@@ -239,6 +239,7 @@ public final class SurfaceControl implements Parcelable {
    private static native int nativeGetGPUContextPriority();
    private static native void nativeSetTransformHint(long nativeObject, int transformHint);
    private static native int nativeGetTransformHint(long nativeObject);
    private static native void nativeSanitize(long transactionObject);

    @Nullable
    @GuardedBy("mLock")
@@ -3439,6 +3440,13 @@ public final class SurfaceControl implements Parcelable {
            return this;
        }

        /**
         * @hide
         */
        public void sanitize() {
            nativeSanitize(mNativeObject);
        }

        /**
         * Merge the other transaction into this transaction, clearing the
         * other transaction as if it had been applied.
+7 −0
Original line number Diff line number Diff line
@@ -875,6 +875,11 @@ static void nativeSetDropInputMode(JNIEnv* env, jclass clazz, jlong transactionO
    transaction->setDropInputMode(ctrl, static_cast<gui::DropInputMode>(mode));
}

static void nativeSanitize(JNIEnv* env, jclass clazz, jlong transactionObj) {
    auto transaction = reinterpret_cast<SurfaceComposerClient::Transaction*>(transactionObj);
    transaction->sanitize();
}

static jlongArray nativeGetPhysicalDisplayIds(JNIEnv* env, jclass clazz) {
    const auto displayIds = SurfaceComposerClient::getPhysicalDisplayIds();
    jlongArray array = env->NewLongArray(displayIds.size());
@@ -2003,6 +2008,8 @@ static const JNINativeMethod sSurfaceControlMethods[] = {
            (void*)nativeSetTrustedOverlay },
    {"nativeSetDropInputMode", "(JJI)V",
            (void*)nativeSetDropInputMode},
    {"nativeSanitize", "(J)V",
            (void*) nativeSanitize }
        // clang-format on
};

+4 −0
Original line number Diff line number Diff line
@@ -2643,6 +2643,10 @@ public class WindowManagerService extends IWindowManager.Stub

    void finishDrawingWindow(Session session, IWindow client,
            @Nullable SurfaceControl.Transaction postDrawTransaction) {
        if (postDrawTransaction != null) {
            postDrawTransaction.sanitize();
        }

        final long origId = Binder.clearCallingIdentity();
        try {
            synchronized (mGlobalLock) {