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

Commit ed5b8994 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "SF: Register layers on first strong reference"

parents 5d02a1f7 7584836d
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -120,7 +120,10 @@ Layer::Layer(const LayerCreationArgs& args)

    mCallingPid = args.callingPid;
    mCallingUid = args.callingUid;
    mFlinger->onLayerCreated(this);
}

void Layer::onFirstRef() {
    mFlinger->onLayerFirstRef(this);
}

Layer::~Layer() {
+2 −0
Original line number Diff line number Diff line
@@ -222,6 +222,8 @@ public:
    explicit Layer(const LayerCreationArgs& args);
    virtual ~Layer();

    void onFirstRef() override;

    int getWindowType() const { return mWindowType; }

    void setPrimaryDisplayOnly() { mPrimaryDisplayOnly = true; }
+1 −1
Original line number Diff line number Diff line
@@ -5502,7 +5502,7 @@ sp<Layer> SurfaceFlinger::fromHandle(const sp<IBinder>& handle) {
    return nullptr;
}

void SurfaceFlinger::onLayerCreated(Layer* layer) {
void SurfaceFlinger::onLayerFirstRef(Layer* layer) {
    mNumLayers++;
    mScheduler->registerLayer(layer);
}
+1 −1
Original line number Diff line number Diff line
@@ -310,7 +310,7 @@ public:
    bool authenticateSurfaceTextureLocked(
        const sp<IGraphicBufferProducer>& bufferProducer) const;

    void onLayerCreated(Layer*);
    void onLayerFirstRef(Layer*);
    void onLayerDestroyed(Layer*);

    TransactionCompletedThread& getTransactionCompletedThread() {