summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorandroid-build-prod (mdb) <android-build-team-robot@google.com>2018-01-25 00:01:56 +0000
committerGerrit Code Review <noreply-gerritcodereview@google.com>2018-01-25 00:01:56 +0000
commitc7d172ed635d001ca4b9a261a1bc6a26ff43d939 (patch)
tree5aacf7d5bef3b669bb9be8256d7b8be57cc21244
parente025438a0339bd89662a7c7fac49299ad7143380 (diff)
parenta18ee8ab3b8155c9c22f0e20f0904472349fef97 (diff)
downloadnative-oreo-vts-release.tar.gz
Merge "Snap for 4563796 from f9439589f40d29b5a8e0935783f5e3508f68e413 to oreo-vts-release" into oreo-vts-releaseandroid-vts-8.0_r9android-vts-8.0_r8android-vts-8.0_r7android-vts-8.0_r13android-vts-8.0_r12android-vts-8.0_r11android-vts-8.0_r10oreo-vts-release
-rw-r--r--include/gui/ConsumerBase.h4
-rw-r--r--libs/binder/tests/Android.bp24
-rw-r--r--libs/binder/tests/binderLibTest.cpp8
-rw-r--r--libs/gui/ConsumerBase.cpp6
-rw-r--r--services/surfaceflinger/Layer.cpp3
-rw-r--r--services/surfaceflinger/SurfaceFlingerConsumer.cpp7
6 files changed, 35 insertions, 17 deletions
diff --git a/include/gui/ConsumerBase.h b/include/gui/ConsumerBase.h
index 891290bd42..7912528ba7 100644
--- a/include/gui/ConsumerBase.h
+++ b/include/gui/ConsumerBase.h
@@ -241,9 +241,7 @@ protected:
// mFrameAvailableListener is the listener object that will be called when a
// new frame becomes available. If it is not NULL it will be called from
- // queueBuffer. The listener object is protected by mFrameAvailableMutex
- // (not mMutex).
- Mutex mFrameAvailableMutex;
+ // queueBuffer.
wp<FrameAvailableListener> mFrameAvailableListener;
// The ConsumerBase has-a BufferQueue and is responsible for creating this object
diff --git a/libs/binder/tests/Android.bp b/libs/binder/tests/Android.bp
index 853ca1630e..3071408540 100644
--- a/libs/binder/tests/Android.bp
+++ b/libs/binder/tests/Android.bp
@@ -15,6 +15,13 @@
//
cc_test {
+ name: "binderDriverInterfaceTest_IPC_32",
+ srcs: ["binderDriverInterfaceTest.cpp"],
+ compile_multilib: "32",
+ cflags: ["-DBINDER_IPC_32BIT=1"],
+}
+
+cc_test {
product_variables: {
binder32bit: {
cflags: ["-DBINDER_IPC_32BIT=1"],
@@ -35,6 +42,23 @@ cc_test {
}
cc_test {
+ name: "binderLibTest_IPC_32",
+ srcs: ["binderLibTest.cpp"],
+ shared_libs: [
+ "libbinder",
+ "libutils",
+ ],
+ compile_multilib: "32",
+ cflags: ["-DBINDER_IPC_32BIT=1"],
+}
+
+cc_test {
+ product_variables: {
+ binder32bit: {
+ cflags: ["-DBINDER_IPC_32BIT=1"],
+ },
+ },
+
name: "binderLibTest",
srcs: ["binderLibTest.cpp"],
shared_libs: [
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/libs/gui/ConsumerBase.cpp b/libs/gui/ConsumerBase.cpp
index 3d3637648c..c2b10a91dd 100644
--- a/libs/gui/ConsumerBase.cpp
+++ b/libs/gui/ConsumerBase.cpp
@@ -106,7 +106,7 @@ void ConsumerBase::onFrameAvailable(const BufferItem& item) {
sp<FrameAvailableListener> listener;
{ // scope for the lock
- Mutex::Autolock lock(mFrameAvailableMutex);
+ Mutex::Autolock lock(mMutex);
listener = mFrameAvailableListener.promote();
}
@@ -121,7 +121,7 @@ void ConsumerBase::onFrameReplaced(const BufferItem &item) {
sp<FrameAvailableListener> listener;
{
- Mutex::Autolock lock(mFrameAvailableMutex);
+ Mutex::Autolock lock(mMutex);
listener = mFrameAvailableListener.promote();
}
@@ -185,7 +185,7 @@ bool ConsumerBase::isAbandoned() {
void ConsumerBase::setFrameAvailableListener(
const wp<FrameAvailableListener>& listener) {
CB_LOGV("setFrameAvailableListener");
- Mutex::Autolock lock(mFrameAvailableMutex);
+ Mutex::Autolock lock(mMutex);
mFrameAvailableListener = listener;
}
diff --git a/services/surfaceflinger/Layer.cpp b/services/surfaceflinger/Layer.cpp
index 230520611b..022b41634d 100644
--- a/services/surfaceflinger/Layer.cpp
+++ b/services/surfaceflinger/Layer.cpp
@@ -1947,6 +1947,7 @@ void Layer::deferTransactionUntil(const sp<Layer>& barrierLayer,
mCurrentState.barrierLayer = nullptr;
mCurrentState.frameNumber = 0;
mCurrentState.modified = false;
+ ALOGE("Deferred transaction");
}
void Layer::deferTransactionUntil(const sp<IBinder>& barrierHandle,
@@ -2682,7 +2683,7 @@ Transform Layer::getTransform() const {
// for in the transform. We need to mirror this scaling in child surfaces
// or we will break the contract where WM can treat child surfaces as
// pixels in the parent surface.
- if (p->isFixedSize() && p->mActiveBuffer != nullptr) {
+ if (p->isFixedSize()) {
int bufferWidth;
int bufferHeight;
if ((p->mCurrentTransform & NATIVE_WINDOW_TRANSFORM_ROT_90) == 0) {
diff --git a/services/surfaceflinger/SurfaceFlingerConsumer.cpp b/services/surfaceflinger/SurfaceFlingerConsumer.cpp
index abc8fde26b..9babeef87f 100644
--- a/services/surfaceflinger/SurfaceFlingerConsumer.cpp
+++ b/services/surfaceflinger/SurfaceFlingerConsumer.cpp
@@ -240,15 +240,10 @@ void SurfaceFlingerConsumer::setContentsChangedListener(
}
void SurfaceFlingerConsumer::onSidebandStreamChanged() {
- FrameAvailableListener* unsafeFrameAvailableListener = nullptr;
- {
- Mutex::Autolock lock(mFrameAvailableMutex);
- unsafeFrameAvailableListener = mFrameAvailableListener.unsafe_get();
- }
sp<ContentsChangedListener> listener;
{ // scope for the lock
Mutex::Autolock lock(mMutex);
- ALOG_ASSERT(unsafeFrameAvailableListener == mContentsChangedListener.unsafe_get());
+ ALOG_ASSERT(mFrameAvailableListener.unsafe_get() == mContentsChangedListener.unsafe_get());
listener = mContentsChangedListener.promote();
}