mirror of
https://github.com/Divested-Mobile/DivestOS-Build.git
synced 2024-09-18 23:36:11 +00:00
54 lines
2.5 KiB
Diff
54 lines
2.5 KiB
Diff
|
From ad05afeefb51c74813daf3a99eca2b23fc553c7c 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 af3b9cfe8..35e880558 100644
|
||
|
--- a/dalvik/src/main/java/dalvik/system/ZygoteHooks.java
|
||
|
+++ b/dalvik/src/main/java/dalvik/system/ZygoteHooks.java
|
||
|
@@ -48,15 +48,17 @@ private 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 static void onBeginPreload(boolean fullPreload) {
|
||
|
*/
|
||
|
@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);
|
||
|
+ }
|
||
|
}
|
||
|
|
||
|
/**
|