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

Commit dba5b4ae authored by Xin Guan's avatar Xin Guan
Browse files

Fix traceEnd missing for LoadedApk.makeApplication

Bug: 268727663
Test: build/flash and catpure a perfetto trace.
Change-Id: I119fad8dfe58bd3ed1ba093f73d8746b5a6aa50f
parent 93800f31
Loading
Loading
Loading
Loading
+76 −72
Original line number Diff line number Diff line
@@ -1401,16 +1401,21 @@ public final class LoadedApk {
        if (mApplication != null) {
            return mApplication;
        }


        if (Trace.isTagEnabled(Trace.TRACE_TAG_ACTIVITY_MANAGER)) {
            Trace.traceBegin(Trace.TRACE_TAG_ACTIVITY_MANAGER, "makeApplication");
        }

        try {
            synchronized (sApplications) {
                final Application cached = sApplications.get(mPackageName);
                if (cached != null) {
                    // Looks like this is always happening for the system server, because
                    // the LoadedApk created in systemMain() -> attach() isn't cached properly?
                    if (!"android".equals(mPackageName)) {
                    Slog.wtfStack(TAG, "App instance already created for package=" + mPackageName
                            + " instance=" + cached);
                        Slog.wtfStack(TAG, "App instance already created for package="
                                + mPackageName + " instance=" + cached);
                    }
                    if (!allowDuplicateInstances) {
                        mApplication = cached;
@@ -1460,7 +1465,6 @@ public final class LoadedApk {
                appContext.setOuterContext(app);
            } catch (Exception e) {
                if (!mActivityThread.mInstrumentation.onException(app, e)) {
                Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
                    throw new RuntimeException(
                        "Unable to instantiate application " + appClass
                        + " package " + mPackageName + ": " + e.toString(), e);
@@ -1479,7 +1483,6 @@ public final class LoadedApk {
                    instrumentation.callApplicationOnCreate(app);
                } catch (Exception e) {
                    if (!instrumentation.onException(app, e)) {
                    Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
                        throw new RuntimeException(
                            "Unable to create application " + app.getClass().getName()
                            + ": " + e.toString(), e);
@@ -1487,9 +1490,10 @@ public final class LoadedApk {
                }
            }

        Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);

            return app;
        } finally {
            Trace.traceEnd(Trace.TRACE_TAG_ACTIVITY_MANAGER);
        }
    }

    @UnsupportedAppUsage