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

Commit 026106f6 authored by Alec Mouri's avatar Alec Mouri
Browse files

[HWUI] Add null check for CanvasContext

If ReliableSurface is forced to acquire a fallback buffer then the
Surface may be abandoned. When getting frame timestamps we need to check
that the Surface still exists.

Bug: 152262035
Test: builds, boots
Test: dumpsys gfxinfo
Change-Id: Ifdb198ebf74cc9dc681c4ab51c4901176a7f5fc9
parent 40c41402
Loading
Loading
Loading
Loading
+5 −3
Original line number Diff line number Diff line
@@ -555,9 +555,11 @@ void CanvasContext::draw() {
        FrameInfo* forthBehind = mLast4FrameInfos.front().first;
        int64_t composedFrameId = mLast4FrameInfos.front().second;
        nsecs_t acquireTime = -1;
        if (mNativeSurface) {
            native_window_get_frame_timestamps(mNativeSurface->getNativeWindow(), composedFrameId,
                                               nullptr, &acquireTime, nullptr, nullptr, nullptr,
                                               nullptr, nullptr, nullptr, nullptr);
        }
        // Ignore default -1, NATIVE_WINDOW_TIMESTAMP_INVALID and NATIVE_WINDOW_TIMESTAMP_PENDING
        forthBehind->set(FrameInfoIndex::GpuCompleted) = acquireTime > 0 ? acquireTime : -1;
        mJankTracker.finishGpuDraw(*forthBehind);