diff options
author | 2025-03-26 17:24:45 -0700 | |
---|---|---|
committer | 2025-04-07 19:59:20 -0700 | |
commit | 02eff543a4f684fe5d7e53efaed469ffc8dbe536 (patch) | |
tree | ffb4d203a6fb785c872863b8f81ca61ad17aab35 | |
parent | c127ba1b5c51e19546dbda092c5d43ffd9559785 (diff) |
Revert "Ensure Choreographer is held as sp<> in SurfaceControl."
This reverts commit 9045666047d55134c2e4f0108a88b5799653003e.
Reason for revert: Supsected cause for b/405669080
Test: presubmit
Flag: EXEMPT refactor
Bug: 405669080
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:ade9b0ca6046beae913335000cdd398ac4381bb9)
Merged-In: I96c45abfe8446c924e9ea31f822e040134e87db9
Change-Id: I96c45abfe8446c924e9ea31f822e040134e87db9
-rw-r--r-- | libs/gui/SurfaceControl.cpp | 4 | ||||
-rw-r--r-- | libs/gui/include/gui/Choreographer.h | 7 | ||||
-rw-r--r-- | libs/gui/include/gui/SurfaceControl.h | 6 |
3 files changed, 8 insertions, 9 deletions
diff --git a/libs/gui/SurfaceControl.cpp b/libs/gui/SurfaceControl.cpp index 50877f8c56..1eb9b87c3c 100644 --- a/libs/gui/SurfaceControl.cpp +++ b/libs/gui/SurfaceControl.cpp @@ -194,7 +194,7 @@ const std::string& SurfaceControl::getName() const { return mName; } -sp<Choreographer> SurfaceControl::getChoreographer() { +std::shared_ptr<Choreographer> SurfaceControl::getChoreographer() { if (mChoreographer) { return mChoreographer; } @@ -203,7 +203,7 @@ sp<Choreographer> SurfaceControl::getChoreographer() { ALOGE("%s: No looper prepared for thread", __func__); return nullptr; } - mChoreographer = sp<Choreographer>::make(looper, getHandle()); + mChoreographer = std::make_shared<Choreographer>(looper, getHandle()); status_t result = mChoreographer->initialize(); if (result != OK) { ALOGE("Failed to initialize choreographer"); diff --git a/libs/gui/include/gui/Choreographer.h b/libs/gui/include/gui/Choreographer.h index b436af1eb3..c632098fb9 100644 --- a/libs/gui/include/gui/Choreographer.h +++ b/libs/gui/include/gui/Choreographer.h @@ -79,6 +79,9 @@ public: }; static Context gChoreographers; + explicit Choreographer(const sp<Looper>& looper, const sp<IBinder>& layerHandle = nullptr) + EXCLUDES(gChoreographers.lock); + void postFrameCallbackDelayed(AChoreographer_frameCallback cb, AChoreographer_frameCallback64 cb64, AChoreographer_vsyncCallback vsyncCallback, void* data, @@ -111,10 +114,6 @@ public: private: Choreographer(const Choreographer&) = delete; - explicit Choreographer(const sp<Looper>& looper, const sp<IBinder>& layerHandle = nullptr) - EXCLUDES(gChoreographers.lock); - friend class sp<Choreographer>; - friend AChoreographer* AChoreographer_create(); void dispatchVsync(nsecs_t timestamp, PhysicalDisplayId displayId, uint32_t count, VsyncEventData vsyncEventData) override; diff --git a/libs/gui/include/gui/SurfaceControl.h b/libs/gui/include/gui/SurfaceControl.h index 91a422d155..344b957ba7 100644 --- a/libs/gui/include/gui/SurfaceControl.h +++ b/libs/gui/include/gui/SurfaceControl.h @@ -26,7 +26,6 @@ #include <android/gui/ISurfaceComposerClient.h> -#include <gui/Choreographer.h> #include <ui/FrameStats.h> #include <ui/PixelFormat.h> #include <ui/Region.h> @@ -37,6 +36,7 @@ namespace android { // --------------------------------------------------------------------------- +class Choreographer; class IGraphicBufferProducer; class Surface; class SurfaceComposerClient; @@ -82,7 +82,7 @@ public: const std::string& getName() const; // TODO(b/267195698): Consider renaming. - sp<Choreographer> getChoreographer(); + std::shared_ptr<Choreographer> getChoreographer(); sp<IGraphicBufferProducer> getIGraphicBufferProducer(); @@ -134,7 +134,7 @@ private: PixelFormat mFormat = PIXEL_FORMAT_NONE; uint32_t mCreateFlags = 0; uint64_t mFallbackFrameNumber = 100; - sp<Choreographer> mChoreographer; + std::shared_ptr<Choreographer> mChoreographer; }; }; // namespace android |