DO NOT MERGE: WM: Call Transaction#sanitize am: 20303e05bf

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16811293

Change-Id: Ic9ef9b4e3b852abad4f48db78c9b24a560ebf5d8
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
This commit is contained in:
Robert Carr
2022-04-05 22:30:27 +00:00
committed by Automerger Merge Worker
3 changed files with 19 additions and 0 deletions

View File

@@ -245,6 +245,7 @@ public final class SurfaceControl implements Parcelable {
@SurfaceControl.BufferTransform int transformHint); @SurfaceControl.BufferTransform int transformHint);
private static native int nativeGetTransformHint(long nativeObject); private static native int nativeGetTransformHint(long nativeObject);
private static native int nativeGetLayerId(long nativeObject); private static native int nativeGetLayerId(long nativeObject);
private static native void nativeSanitize(long transactionObject);
/** /**
* Transforms that can be applied to buffers as they are displayed to a window. * Transforms that can be applied to buffers as they are displayed to a window.
@@ -3543,6 +3544,13 @@ public final class SurfaceControl implements Parcelable {
return this; return this;
} }
/**
* @hide
*/
public void sanitize() {
nativeSanitize(mNativeObject);
}
/** /**
* Merge the other transaction into this transaction, clearing the * Merge the other transaction into this transaction, clearing the
* other transaction as if it had been applied. * other transaction as if it had been applied.

View File

@@ -877,6 +877,11 @@ static void nativeSetDropInputMode(JNIEnv* env, jclass clazz, jlong transactionO
transaction->setDropInputMode(ctrl, static_cast<gui::DropInputMode>(mode)); 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) { static jlongArray nativeGetPhysicalDisplayIds(JNIEnv* env, jclass clazz) {
const auto displayIds = SurfaceComposerClient::getPhysicalDisplayIds(); const auto displayIds = SurfaceComposerClient::getPhysicalDisplayIds();
jlongArray array = env->NewLongArray(displayIds.size()); jlongArray array = env->NewLongArray(displayIds.size());
@@ -2030,6 +2035,8 @@ static const JNINativeMethod sSurfaceControlMethods[] = {
(void*)nativeSetDropInputMode }, (void*)nativeSetDropInputMode },
{"nativeGetLayerId", "(J)I", {"nativeGetLayerId", "(J)I",
(void*)nativeGetLayerId }, (void*)nativeGetLayerId },
{"nativeSanitize", "(J)V",
(void*) nativeSanitize }
// clang-format on // clang-format on
}; };

View File

@@ -2676,6 +2676,10 @@ public class WindowManagerService extends IWindowManager.Stub
void finishDrawingWindow(Session session, IWindow client, void finishDrawingWindow(Session session, IWindow client,
@Nullable SurfaceControl.Transaction postDrawTransaction) { @Nullable SurfaceControl.Transaction postDrawTransaction) {
if (postDrawTransaction != null) {
postDrawTransaction.sanitize();
}
final long origId = Binder.clearCallingIdentity(); final long origId = Binder.clearCallingIdentity();
try { try {
synchronized (mGlobalLock) { synchronized (mGlobalLock) {