summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-team Robot <android-build-team-robot@google.com>2017-08-10 07:29:28 +0000
committerandroid-build-team Robot <android-build-team-robot@google.com>2017-08-10 07:29:28 +0000
commit97c16519526f3678b09ed86f8dcde3b83f0e1759 (patch)
treee67e750ff1c98d3c787bb70a22b89c9a9638e27f
parent0472cd8254c2e82e50ffd7520f2d7e7a4823a277 (diff)
parentc165493cfe23241004666ec8885236b35c6e1233 (diff)
downloadnative-97c16519526f3678b09ed86f8dcde3b83f0e1759.tar.gz
release-request-0dde025a-b646-47ba-a39d-3b7f1b411086-for-git_oc-dr1-release-4262262 snap-temp-L18300000091440802
Change-Id: I3d1e9d1f55ee10e699333cbc1f0a865b5ae7ec88
-rw-r--r--libs/binder/tests/binderLibTest.cpp8
-rw-r--r--services/surfaceflinger/SurfaceFlinger.cpp10
2 files changed, 10 insertions, 8 deletions
diff --git a/libs/binder/tests/binderLibTest.cpp b/libs/binder/tests/binderLibTest.cpp
index 757291cd2a..a04869ae62 100644
--- a/libs/binder/tests/binderLibTest.cpp
+++ b/libs/binder/tests/binderLibTest.cpp
@@ -681,10 +681,10 @@ TEST_F(BinderLibTest, CheckHandleZeroBinderHighBitsZeroCookie) {
const flat_binder_object *fb = reply.readObject(false);
ASSERT_TRUE(fb != NULL);
- EXPECT_EQ(fb->type, BINDER_TYPE_HANDLE);
- EXPECT_EQ(ProcessState::self()->getStrongProxyForHandle(fb->handle), m_server);
- EXPECT_EQ(fb->cookie, (binder_uintptr_t)0);
- EXPECT_EQ(fb->binder >> 32, (binder_uintptr_t)0);
+ EXPECT_EQ(BINDER_TYPE_HANDLE, fb->type);
+ EXPECT_EQ(m_server, ProcessState::self()->getStrongProxyForHandle(fb->handle));
+ EXPECT_EQ((binder_uintptr_t)0, fb->cookie);
+ EXPECT_EQ((uint64_t)0, (uint64_t)fb->binder >> 32);
}
TEST_F(BinderLibTest, FreedBinder) {
diff --git a/services/surfaceflinger/SurfaceFlinger.cpp b/services/surfaceflinger/SurfaceFlinger.cpp
index a57e8cf3e4..2703db8e93 100644
--- a/services/surfaceflinger/SurfaceFlinger.cpp
+++ b/services/surfaceflinger/SurfaceFlinger.cpp
@@ -2861,10 +2861,12 @@ void SurfaceFlinger::setTransactionState(
}
}
- // If a synchronous transaction is explicitly requested without any changes,
- // force a transaction anyway. This can be used as a flush mechanism for
- // previous async transactions.
- if (transactionFlags == 0 && (flags & eSynchronous)) {
+ // If a synchronous transaction is explicitly requested without any changes, force a transaction
+ // anyway. This can be used as a flush mechanism for previous async transactions.
+ // Empty animation transaction can be used to simulate back-pressure, so also force a
+ // transaction for empty animation transactions.
+ if (transactionFlags == 0 &&
+ ((flags & eSynchronous) || (flags & eAnimation))) {
transactionFlags = eTransactionNeeded;
}