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

This commit is contained in:
Rob Carr
2022-04-05 22:13:45 +00:00
committed by Android (Google) Code Review
3 changed files with 20 additions and 1 deletions

View File

@@ -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,7 +3440,14 @@ 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.
*

View File

@@ -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
};

View File

@@ -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) {