merge in klp-release (no-op)
diff --git a/vm/native/dalvik_system_VMRuntime.cpp b/vm/native/dalvik_system_VMRuntime.cpp
index 002d014..4123426 100644
--- a/vm/native/dalvik_system_VMRuntime.cpp
+++ b/vm/native/dalvik_system_VMRuntime.cpp
@@ -353,7 +353,7 @@
}
// Skip static methods for uninitialized classes because a filled
// cache entry implies the class is initialized.
- if ((methodType != METHOD_STATIC) && !dvmIsClassInitialized(clazz)) {
+ if ((methodType == METHOD_STATIC) && !dvmIsClassInitialized(clazz)) {
return;
}
const char* methodName = dexStringById(pDexFile, pMethodId->nameIdx);
@@ -459,16 +459,18 @@
// We use a std::map to avoid heap allocating StringObjects to lookup in gDvm.literalStrings
StringTable strings;
- dvmLockMutex(&gDvm.internLock);
- dvmHashTableLock(gDvm.literalStrings);
- for (int i = 0; i < gDvm.literalStrings->tableSize; ++i) {
- HashEntry *entry = &gDvm.literalStrings->pEntries[i];
- if (entry->data != NULL && entry->data != HASH_TOMBSTONE) {
- preloadDexCachesStringsVisitor(&entry->data, 0, ROOT_INTERNED_STRING, &strings);
+ if (kPreloadDexCachesStrings) {
+ dvmLockMutex(&gDvm.internLock);
+ dvmHashTableLock(gDvm.literalStrings);
+ for (int i = 0; i < gDvm.literalStrings->tableSize; ++i) {
+ HashEntry *entry = &gDvm.literalStrings->pEntries[i];
+ if (entry->data != NULL && entry->data != HASH_TOMBSTONE) {
+ preloadDexCachesStringsVisitor(&entry->data, 0, ROOT_INTERNED_STRING, &strings);
+ }
}
+ dvmHashTableUnlock(gDvm.literalStrings);
+ dvmUnlockMutex(&gDvm.internLock);
}
- dvmHashTableUnlock(gDvm.literalStrings);
- dvmUnlockMutex(&gDvm.internLock);
for (ClassPathEntry* cpe = gDvm.bootClassPath; cpe->kind != kCpeLastEntry; cpe++) {
DvmDex* pDvmDex = getDvmDexFromClassPathEntry(cpe);