Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 90456660 authored by Anton Ivanov's avatar Anton Ivanov
Browse files

Ensure Choreographer is held as sp<> in SurfaceControl.

Test: ChoreographerTests pass
Flag: EXEMPT refactor
Bug: 393217449
Change-Id: I60d42f383d4b73b60de1a7a1bbeec5170b805ebb
parent a4e35c68
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -194,7 +194,7 @@ const std::string& SurfaceControl::getName() const {
    return mName;
}

std::shared_ptr<Choreographer> SurfaceControl::getChoreographer() {
sp<Choreographer> SurfaceControl::getChoreographer() {
    if (mChoreographer) {
        return mChoreographer;
    }
@@ -203,7 +203,7 @@ std::shared_ptr<Choreographer> SurfaceControl::getChoreographer() {
        ALOGE("%s: No looper prepared for thread", __func__);
        return nullptr;
    }
    mChoreographer = std::make_shared<Choreographer>(looper, getHandle());
    mChoreographer = sp<Choreographer>::make(looper, getHandle());
    status_t result = mChoreographer->initialize();
    if (result != OK) {
        ALOGE("Failed to initialize choreographer");
+3 −3
Original line number Diff line number Diff line
@@ -26,6 +26,7 @@

#include <android/gui/ISurfaceComposerClient.h>

#include <gui/Choreographer.h>
#include <ui/FrameStats.h>
#include <ui/PixelFormat.h>
#include <ui/Region.h>
@@ -36,7 +37,6 @@ 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.
    std::shared_ptr<Choreographer> getChoreographer();
    sp<Choreographer> getChoreographer();

    sp<IGraphicBufferProducer> getIGraphicBufferProducer();

@@ -134,7 +134,7 @@ private:
    PixelFormat mFormat = PIXEL_FORMAT_NONE;
    uint32_t mCreateFlags = 0;
    uint64_t mFallbackFrameNumber = 100;
    std::shared_ptr<Choreographer> mChoreographer;
    sp<Choreographer> mChoreographer;
};

}; // namespace android