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

Commit 507bd034 authored by Peter Kalauskas's avatar Peter Kalauskas
Browse files

Check if tracing is on before generating strings

Guard Trace.beginSection to avoid unnecessary StringBuilder usage, which
would result in GC garbage churn.

Also, convert sections to instants when that is more applicable. This
also guards against potential run-time crashes if the trace section
string is longer than 127 characters.

Finally, correct some tracing usage in try blocks.

Test: manual
Bug: 257075630
Change-Id: Ibe6f194c779256615a7887931256324f7c78811a
parent 3aac1079
Loading
Loading
Loading
Loading
+13 −8
Original line number Diff line number Diff line
@@ -291,8 +291,10 @@ public class KeyButtonRipple extends Drawable {
    }

    private void endAnimations(String reason, boolean cancel) {
        Trace.beginSection("KeyButtonRipple.endAnim: reason=" + reason + " cancel=" + cancel);
        Trace.endSection();
        if (Trace.isEnabled()) {
            Trace.instant(Trace.TRACE_TAG_APP,
                    "KeyButtonRipple.endAnim: reason=" + reason + " cancel=" + cancel);
        }
        mVisible = false;
        mTmpArray.addAll(mRunningAnimations);
        int size = mTmpArray.size();
@@ -502,20 +504,23 @@ public class KeyButtonRipple extends Drawable {

        @Override
        public void onAnimationStart(Animator animation) {
            Trace.beginSection("KeyButtonRipple.start." + mName);
            Trace.endSection();
            if (Trace.isEnabled()) {
                Trace.instant(Trace.TRACE_TAG_APP, "KeyButtonRipple.start." + mName);
            }
        }

        @Override
        public void onAnimationCancel(Animator animation) {
            Trace.beginSection("KeyButtonRipple.cancel." + mName);
            Trace.endSection();
            if (Trace.isEnabled()) {
                Trace.instant(Trace.TRACE_TAG_APP, "KeyButtonRipple.cancel." + mName);
            }
        }

        @Override
        public void onAnimationEnd(Animator animation) {
            Trace.beginSection("KeyButtonRipple.end." + mName);
            Trace.endSection();
            if (Trace.isEnabled()) {
                Trace.instant(Trace.TRACE_TAG_APP, "KeyButtonRipple.end." + mName);
            }
        }
    }

+30 −9
Original line number Diff line number Diff line
@@ -278,7 +278,11 @@ public class SystemUIApplication extends Application implements
    }

    private static void notifyBootCompleted(CoreStartable coreStartable) {
        Trace.beginSection(coreStartable.getClass().getSimpleName() + ".onBootCompleted()");
        if (Trace.isEnabled()) {
            Trace.traceBegin(
                    Trace.TRACE_TAG_APP,
                    coreStartable.getClass().getSimpleName() + ".onBootCompleted()");
        }
        coreStartable.onBootCompleted();
        Trace.endSection();
    }
@@ -300,14 +304,18 @@ public class SystemUIApplication extends Application implements
    private static CoreStartable startAdditionalStartable(String clsName) {
        CoreStartable startable;
        if (DEBUG) Log.d(TAG, "loading: " + clsName);
        if (Trace.isEnabled()) {
            Trace.traceBegin(
                    Trace.TRACE_TAG_APP, clsName + ".newInstance()");
        }
        try {
            Trace.beginSection(clsName + ".newInstance()");
            startable = (CoreStartable) Class.forName(clsName).newInstance();
            Trace.endSection();
        } catch (ClassNotFoundException
                | IllegalAccessException
                | InstantiationException ex) {
            throw new RuntimeException(ex);
        } finally {
            Trace.endSection();
        }

        return startStartable(startable);
@@ -315,7 +323,10 @@ public class SystemUIApplication extends Application implements

    private static CoreStartable startStartable(String clsName, Provider<CoreStartable> provider) {
        if (DEBUG) Log.d(TAG, "loading: " + clsName);
        Trace.beginSection("Provider<" + clsName + ">.get()");
        if (Trace.isEnabled()) {
            Trace.traceBegin(
                    Trace.TRACE_TAG_APP, "Provider<" + clsName + ">.get()");
        }
        CoreStartable startable = provider.get();
        Trace.endSection();
        return startStartable(startable);
@@ -323,7 +334,10 @@ public class SystemUIApplication extends Application implements

    private static CoreStartable startStartable(CoreStartable startable) {
        if (DEBUG) Log.d(TAG, "running: " + startable);
        Trace.beginSection(startable.getClass().getSimpleName() + ".start()");
        if (Trace.isEnabled()) {
            Trace.traceBegin(
                    Trace.TRACE_TAG_APP, startable.getClass().getSimpleName() + ".start()");
        }
        startable.start();
        Trace.endSection();

@@ -364,15 +378,22 @@ public class SystemUIApplication extends Application implements
    public void onConfigurationChanged(Configuration newConfig) {
        if (mServicesStarted) {
            ConfigurationController configController = mSysUIComponent.getConfigurationController();
            Trace.beginSection(
            if (Trace.isEnabled()) {
                Trace.traceBegin(
                        Trace.TRACE_TAG_APP,
                        configController.getClass().getSimpleName() + ".onConfigurationChanged()");
            }
            configController.onConfigurationChanged(newConfig);
            Trace.endSection();
            int len = mServices.length;
            for (int i = 0; i < len; i++) {
                if (mServices[i] != null) {
                    Trace.beginSection(
                            mServices[i].getClass().getSimpleName() + ".onConfigurationChanged()");
                    if (Trace.isEnabled()) {
                        Trace.traceBegin(
                                Trace.TRACE_TAG_APP,
                                mServices[i].getClass().getSimpleName()
                                        + ".onConfigurationChanged()");
                    }
                    mServices[i].onConfigurationChanged(newConfig);
                    Trace.endSection();
                }
+9 −2
Original line number Diff line number Diff line
@@ -127,7 +127,10 @@ open class UserBroadcastDispatcher(
                action,
                userId,
                {
                    Trace.beginSection("registerReceiver act=$action user=$userId")
                    if (Trace.isEnabled()) {
                        Trace.traceBegin(
                                Trace.TRACE_TAG_APP, "registerReceiver act=$action user=$userId")
                    }
                    context.registerReceiverAsUser(
                            this,
                            UserHandle.of(userId),
@@ -141,7 +144,11 @@ open class UserBroadcastDispatcher(
                },
                {
                    try {
                        Trace.beginSection("unregisterReceiver act=$action user=$userId")
                        if (Trace.isEnabled()) {
                            Trace.traceBegin(
                                    Trace.TRACE_TAG_APP,
                                    "unregisterReceiver act=$action user=$userId")
                        }
                        context.unregisterReceiver(this)
                        Trace.endSection()
                        logger.logContextReceiverUnregistered(userId, action)
+4 −1
Original line number Diff line number Diff line
@@ -171,7 +171,10 @@ public class DozeScreenBrightness extends BroadcastReceiver implements DozeMachi

    @Override
    public void onSensorChanged(SensorEvent event) {
        Trace.beginSection("DozeScreenBrightness.onSensorChanged" + event.values[0]);
        if (Trace.isEnabled()) {
            Trace.traceBegin(
                    Trace.TRACE_TAG_APP, "DozeScreenBrightness.onSensorChanged" + event.values[0]);
        }
        try {
            if (mRegistered) {
                mLastSensorValue = (int) event.values[0];
+4 −1
Original line number Diff line number Diff line
@@ -118,7 +118,10 @@ public final class DeviceStateRotationLockSettingController

    private void updateDeviceState(int state) {
        Log.v(TAG, "updateDeviceState [state=" + state + "]");
        Trace.beginSection("updateDeviceState [state=" + state + "]");
        if (Trace.isEnabled()) {
            Trace.traceBegin(
                    Trace.TRACE_TAG_APP, "updateDeviceState [state=" + state + "]");
        }
        try {
            if (mDeviceState == state) {
                return;