Make the code more defensive against null DexCache values
Change-Id: Iaa3f17dced518a5d2a53479b3ae3cebacb1e3b6a
diff --git a/src/class_linker.cc b/src/class_linker.cc
index ecf33ac..8d92d01 100644
--- a/src/class_linker.cc
+++ b/src/class_linker.cc
@@ -3248,6 +3248,7 @@
String* ClassLinker::ResolveString(const DexFile& dex_file,
uint32_t string_idx, DexCache* dex_cache) {
+ CHECK(dex_cache != NULL);
String* resolved = dex_cache->GetResolvedString(string_idx);
if (resolved != NULL) {
return resolved;
@@ -3264,6 +3265,7 @@
uint16_t type_idx,
DexCache* dex_cache,
const ClassLoader* class_loader) {
+ CHECK(dex_cache != NULL);
Class* resolved = dex_cache->GetResolvedType(type_idx);
if (resolved == NULL) {
const char* descriptor = dex_file.StringByTypeIdx(type_idx);
@@ -3291,6 +3293,7 @@
DexCache* dex_cache,
const ClassLoader* class_loader,
bool is_direct) {
+ CHECK(dex_cache != NULL);
Method* resolved = dex_cache->GetResolvedMethod(method_idx);
if (resolved != NULL) {
return resolved;
@@ -3340,6 +3343,7 @@
DexCache* dex_cache,
const ClassLoader* class_loader,
bool is_static) {
+ CHECK(dex_cache != NULL);
Field* resolved = dex_cache->GetResolvedField(field_idx);
if (resolved != NULL) {
return resolved;
@@ -3378,6 +3382,7 @@
uint32_t field_idx,
DexCache* dex_cache,
const ClassLoader* class_loader) {
+ CHECK(dex_cache != NULL);
Field* resolved = dex_cache->GetResolvedField(field_idx);
if (resolved != NULL) {
return resolved;