diff options
author | android-build-prod (mdb) <android-build-team-robot@google.com> | 2018-01-25 00:01:56 +0000 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2018-01-25 00:01:56 +0000 |
commit | c7d172ed635d001ca4b9a261a1bc6a26ff43d939 (patch) | |
tree | 5aacf7d5bef3b669bb9be8256d7b8be57cc21244 | |
parent | e025438a0339bd89662a7c7fac49299ad7143380 (diff) | |
parent | a18ee8ab3b8155c9c22f0e20f0904472349fef97 (diff) | |
download | native-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.h | 4 | ||||
-rw-r--r-- | libs/binder/tests/Android.bp | 24 | ||||
-rw-r--r-- | libs/binder/tests/binderLibTest.cpp | 8 | ||||
-rw-r--r-- | libs/gui/ConsumerBase.cpp | 6 | ||||
-rw-r--r-- | services/surfaceflinger/Layer.cpp | 3 | ||||
-rw-r--r-- | services/surfaceflinger/SurfaceFlingerConsumer.cpp | 7 |
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(); } |