mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-10-01 01:35:54 -04:00
e7968e1269
Signed-off-by: Tad <tad@spotco.us>
54 lines
2.5 KiB
Diff
54 lines
2.5 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Daniel Micay <danielmicay@gmail.com>
|
|
Date: Wed, 11 Sep 2019 06:47:11 -0400
|
|
Subject: [PATCH] disable ICU cache pinning for exec spawning
|
|
|
|
---
|
|
.../main/java/dalvik/system/ZygoteHooks.java | 26 +++++++++++--------
|
|
1 file changed, 15 insertions(+), 11 deletions(-)
|
|
|
|
diff --git a/dalvik/src/main/java/dalvik/system/ZygoteHooks.java b/dalvik/src/main/java/dalvik/system/ZygoteHooks.java
|
|
index af3b9cfe8bf..35e880558ac 100644
|
|
--- a/dalvik/src/main/java/dalvik/system/ZygoteHooks.java
|
|
+++ b/dalvik/src/main/java/dalvik/system/ZygoteHooks.java
|
|
@@ -48,15 +48,17 @@ public final class ZygoteHooks {
|
|
*/
|
|
@libcore.api.CorePlatformApi
|
|
public static void onBeginPreload(boolean fullPreload) {
|
|
- // Pin ICU data in memory from this point that would normally be held by soft references.
|
|
- // Without this, any references created immediately below or during class preloading
|
|
- // would be collected when the Zygote GC runs in gcAndFinalize().
|
|
- CacheValue.setStrength(CacheValue.Strength.STRONG);
|
|
-
|
|
- // Explicitly exercise code to cache data apps are likely to need.
|
|
- ULocale[] localesToPin = { ULocale.ROOT, ULocale.US, ULocale.getDefault() };
|
|
- for (ULocale uLocale : localesToPin) {
|
|
- new DecimalFormatSymbols(uLocale);
|
|
+ if (fullPreload) {
|
|
+ // Pin ICU data in memory from this point that would normally be held by soft references.
|
|
+ // Without this, any references created immediately below or during class preloading
|
|
+ // would be collected when the Zygote GC runs in gcAndFinalize().
|
|
+ CacheValue.setStrength(CacheValue.Strength.STRONG);
|
|
+
|
|
+ // Explicitly exercise code to cache data apps are likely to need.
|
|
+ ULocale[] localesToPin = { ULocale.ROOT, ULocale.US, ULocale.getDefault() };
|
|
+ for (ULocale uLocale : localesToPin) {
|
|
+ new DecimalFormatSymbols(uLocale);
|
|
+ }
|
|
}
|
|
}
|
|
|
|
@@ -65,8 +67,10 @@ public final class ZygoteHooks {
|
|
*/
|
|
@libcore.api.CorePlatformApi
|
|
public static void onEndPreload(boolean fullPreload) {
|
|
- // All cache references created by ICU from this point will be soft.
|
|
- CacheValue.setStrength(CacheValue.Strength.SOFT);
|
|
+ if (fullPreload) {
|
|
+ // All cache references created by ICU from this point will be soft.
|
|
+ CacheValue.setStrength(CacheValue.Strength.SOFT);
|
|
+ }
|
|
}
|
|
|
|
/**
|