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

Commit 2eb4cdbe authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Add StringCache, and use it when unparceling Strings" into main

parents 2b79f7a4 c64df8c3
Loading
Loading
Loading
Loading
+3 −0
Original line number Diff line number Diff line
@@ -94,3 +94,6 @@ Lcom/android/internal/pm/SystemFeaturesMetadata;
# TOOD(b/417492941): Remove after inclusion in generated boot-image-profile.txt.
HSPLandroid/os/Process;->setThreadPriority(II)V
HSPLandroid/os/Process;->setThreadPriority(I)V

# TODO: remove after the generated profile is updated.
HSPLcom/android/internal/util/StringCache;->*
+1 −0
Original line number Diff line number Diff line
@@ -13974,6 +13974,7 @@ com.android.internal.util.StateMachine$SmHandler$StateInfo
com.android.internal.util.StateMachine$SmHandler
com.android.internal.util.StateMachine-IA
com.android.internal.util.StateMachine
com.android.internal.util.StringCache
com.android.internal.util.StringPool
com.android.internal.util.SyncResultReceiver$TimeoutException
com.android.internal.util.SyncResultReceiver
+10 −0
Original line number Diff line number Diff line
@@ -256,6 +256,7 @@ import com.android.internal.protolog.ProtoLog;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.FastPrintWriter;
import com.android.internal.util.Preconditions;
import com.android.internal.util.StringCache;
import com.android.internal.util.function.pooled.PooledLambda;
import com.android.org.conscrypt.TrustedCertificateStore;
import com.android.server.am.BitmapDumpProto;
@@ -1953,6 +1954,10 @@ public final class ActivityThread extends ClientTransactionHandler
            }

            pw.println(" ");

            if (android.os.Flags.parcelStringCacheEnabled()) {
                StringCache.INSTANCE.dump(pw);
            }
        }

        @NeverCompile
@@ -7717,6 +7722,11 @@ public final class ActivityThread extends ClientTransactionHandler
        }

        WindowManagerGlobal.getInstance().trimMemory(level);

        if (android.os.Flags.parcelStringCacheEnabled()
                && level >= ComponentCallbacks2.TRIM_MEMORY_BACKGROUND) {
            StringCache.INSTANCE.clear();
        }
    }

    private void setupGraphicsSupport(Context context) {
+11 −2
Original line number Diff line number Diff line
@@ -50,6 +50,7 @@ import android.util.SparseIntArray;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.annotations.VisibleForTesting;
import com.android.internal.util.ArrayUtils;
import com.android.internal.util.StringCache;

import dalvik.annotation.optimization.CriticalNative;
import dalvik.annotation.optimization.FastNative;
@@ -3450,13 +3451,21 @@ public final class Parcel {

    /** @hide */
    public @Nullable String readString8NoHelper() {
        if (Flags.parcelStringCacheEnabled()) {
            return StringCache.INSTANCE.cache(nativeReadString8(mNativePtr));
        } else {
            return nativeReadString8(mNativePtr);
        }
    }

    /** @hide */
    public @Nullable String readString16NoHelper() {
        if (Flags.parcelStringCacheEnabled()) {
            return StringCache.INSTANCE.cache(nativeReadString16(mNativePtr));
        } else {
            return nativeReadString16(mNativePtr);
        }
    }

    /**
     * Read a boolean value from the parcel at the current dataPosition().
+3 −0
Original line number Diff line number Diff line
@@ -9,3 +9,6 @@ per-file *Screenshot* = file:/packages/SystemUI/src/com/android/systemui/screens
per-file *LatencyTracker* = file:/core/java/com/android/internal/util/LATENCY_TRACKER_OWNERS
# Haptics
per-file *Vibrat*.java = file:/services/core/java/com/android/server/vibrator/OWNERS

# Performance
per-file StringCache.java = file:/PERFORMANCE_OWNERS
Loading