diff options
Diffstat (limited to 'runtime/native/java_lang_DexCache.cc')
-rw-r--r-- | runtime/native/java_lang_DexCache.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/runtime/native/java_lang_DexCache.cc b/runtime/native/java_lang_DexCache.cc index a2d9797114..994ccb1ad9 100644 --- a/runtime/native/java_lang_DexCache.cc +++ b/runtime/native/java_lang_DexCache.cc @@ -52,12 +52,14 @@ static jobject DexCache_getDexNative(JNIEnv* env, jobject javaDexCache) { static jobject DexCache_getResolvedType(JNIEnv* env, jobject javaDexCache, jint type_index) { ScopedFastNativeObjectAccess soa(env); mirror::DexCache* dex_cache = soa.Decode<mirror::DexCache*>(javaDexCache); + CHECK_LT(static_cast<size_t>(type_index), dex_cache->NumResolvedTypes()); return soa.AddLocalReference<jobject>(dex_cache->GetResolvedType(type_index)); } static jobject DexCache_getResolvedString(JNIEnv* env, jobject javaDexCache, jint string_index) { ScopedFastNativeObjectAccess soa(env); mirror::DexCache* dex_cache = soa.Decode<mirror::DexCache*>(javaDexCache); + CHECK_LT(static_cast<size_t>(string_index), dex_cache->NumStrings()); return soa.AddLocalReference<jobject>(dex_cache->GetResolvedString(string_index)); } @@ -65,6 +67,7 @@ static void DexCache_setResolvedType(JNIEnv* env, jobject javaDexCache, jint typ jobject type) { ScopedFastNativeObjectAccess soa(env); mirror::DexCache* dex_cache = soa.Decode<mirror::DexCache*>(javaDexCache); + CHECK_LT(static_cast<size_t>(type_index), dex_cache->NumResolvedTypes()); dex_cache->SetResolvedType(type_index, soa.Decode<mirror::Class*>(type)); } @@ -72,6 +75,7 @@ static void DexCache_setResolvedString(JNIEnv* env, jobject javaDexCache, jint s jobject string) { ScopedFastNativeObjectAccess soa(env); mirror::DexCache* dex_cache = soa.Decode<mirror::DexCache*>(javaDexCache); + CHECK_LT(static_cast<size_t>(string_index), dex_cache->NumStrings()); dex_cache->SetResolvedString(string_index, soa.Decode<mirror::String*>(string)); } |