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

Commit 91eeb8cb authored by George Mount's avatar George Mount
Browse files

[VRR] Fix trace begin/end in ViewRootImpl

Fixes: 339159134

There are a few cases where a Trace.traceEnd() can be
called without a Trace.traceBegin() being called. This
CL fixes those places in ViewRootImpl.

Test: ran broken test
Change-Id: I97cebb016070717dbe8bad53755df9d2f8baca50
parent 73e6f4a0
Loading
Loading
Loading
Loading
+18 −6
Original line number Diff line number Diff line
@@ -5300,10 +5300,12 @@ public final class ViewRootImpl implements ViewParent,
        if (DEBUG_CONTENT_CAPTURE) {
            Log.v(mTag, "performContentCaptureInitialReport() on " + rootView);
        }
        boolean traceDispatchCapture = false;
        try {
            if (!isContentCaptureEnabled()) return;
            if (Trace.isTagEnabled(Trace.TRACE_TAG_VIEW)) {
            traceDispatchCapture = Trace.isTagEnabled(Trace.TRACE_TAG_VIEW);
            if (traceDispatchCapture) {
                Trace.traceBegin(Trace.TRACE_TAG_VIEW, "dispatchContentCapture() for "
                        + getClass().getSimpleName());
            }
@@ -5319,18 +5321,22 @@ public final class ViewRootImpl implements ViewParent,
            // Content capture is a go!
            rootView.dispatchInitialProvideContentCaptureStructure();
        } finally {
            if (traceDispatchCapture) {
                Trace.traceEnd(Trace.TRACE_TAG_VIEW);
            }
        }
    }
    private void handleContentCaptureFlush() {
        if (DEBUG_CONTENT_CAPTURE) {
            Log.v(mTag, "handleContentCaptureFlush()");
        }
        boolean traceFlushContentCapture = false;
        try {
            if (!isContentCaptureEnabled()) return;
            if (Trace.isTagEnabled(Trace.TRACE_TAG_VIEW)) {
            traceFlushContentCapture = Trace.isTagEnabled(Trace.TRACE_TAG_VIEW);
            if (traceFlushContentCapture) {
                Trace.traceBegin(Trace.TRACE_TAG_VIEW, "flushContentCapture for "
                        + getClass().getSimpleName());
            }
@@ -5342,9 +5348,11 @@ public final class ViewRootImpl implements ViewParent,
            }
            ccm.flush(ContentCaptureSession.FLUSH_REASON_VIEW_ROOT_ENTERED);
        } finally {
            if (traceFlushContentCapture) {
                Trace.traceEnd(Trace.TRACE_TAG_VIEW);
            }
        }
    }
    private boolean draw(boolean fullRedrawNeeded, @Nullable SurfaceSyncGroup activeSyncGroup,
            boolean syncBuffer) {
@@ -12656,10 +12664,12 @@ public final class ViewRootImpl implements ViewParent,
            view = mFrameRateCategoryView;
        }
        boolean traceFrameRateCategory = false;
        try {
            if (frameRateCategory != FRAME_RATE_CATEGORY_DEFAULT
                    && mLastPreferredFrameRateCategory != frameRateCategory) {
                if (Trace.isTagEnabled(Trace.TRACE_TAG_VIEW)) {
                traceFrameRateCategory = Trace.isTagEnabled(Trace.TRACE_TAG_VIEW);
                if (traceFrameRateCategory) {
                    String reason = reasonToString(frameRateReason);
                    String sourceView = view == null ? "-" : view;
                    String category = categoryToString(frameRateCategory);
@@ -12677,9 +12687,11 @@ public final class ViewRootImpl implements ViewParent,
        } catch (Exception e) {
            Log.e(mTag, "Unable to set frame rate category", e);
        } finally {
            if (traceFrameRateCategory) {
                Trace.traceEnd(Trace.TRACE_TAG_VIEW);
            }
        }
    }
    private static String categoryToString(int frameRateCategory) {
        String category;