diff options
| author | 2011-09-11 16:14:31 -0700 | |
|---|---|---|
| committer | 2011-09-11 16:14:31 -0700 | |
| commit | b153906f2cd770ae460a480d3c9eb7ad421ff0ae (patch) | |
| tree | 127c9d02cc53646798982f85aab86a9ada709f66 /src/compiler/codegen/arm/MethodCodegenDriver.cc | |
| parent | 61ae414dc086a0437701ab80c1260611a88af04a (diff) | |
Use the right dex cache in the SGET/SPUT fast paths.
Otherwise we get the wrong types.
Change-Id: Ibd5278e0a94c3cb96b9c2f862b0ee6dcfd0bd15e
Diffstat (limited to 'src/compiler/codegen/arm/MethodCodegenDriver.cc')
| -rw-r--r-- | src/compiler/codegen/arm/MethodCodegenDriver.cc | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/src/compiler/codegen/arm/MethodCodegenDriver.cc b/src/compiler/codegen/arm/MethodCodegenDriver.cc index a9d77ec4e1..929bbef9ce 100644 --- a/src/compiler/codegen/arm/MethodCodegenDriver.cc +++ b/src/compiler/codegen/arm/MethodCodegenDriver.cc @@ -162,7 +162,7 @@ static void genSput(CompilationUnit* cUnit, MIR* mir, RegLocation rlSrc) art::ClassLinker* class_linker = art::Runtime::Current()-> GetClassLinker(); const art::DexFile& dex_file = class_linker-> - FindDexFile(field->GetDeclaringClass()->GetDexCache()); + FindDexFile(cUnit->method->GetDeclaringClass()->GetDexCache()); const art::DexFile::FieldId& field_id = dex_file.GetFieldId(fieldIdx); int typeIdx = field_id.class_idx_; // Using fixed register to sync with slow path @@ -220,7 +220,7 @@ static void genSputWide(CompilationUnit* cUnit, MIR* mir, RegLocation rlSrc) art::ClassLinker* class_linker = art::Runtime::Current()-> GetClassLinker(); const art::DexFile& dex_file = class_linker-> - FindDexFile(field->GetDeclaringClass()->GetDexCache()); + FindDexFile(cUnit->method->GetDeclaringClass()->GetDexCache()); const art::DexFile::FieldId& field_id = dex_file.GetFieldId(fieldIdx); int typeIdx = field_id.class_idx_; // Using fixed register to sync with slow path @@ -278,7 +278,7 @@ static void genSgetWide(CompilationUnit* cUnit, MIR* mir, art::ClassLinker* class_linker = art::Runtime::Current()-> GetClassLinker(); const art::DexFile& dex_file = class_linker-> - FindDexFile(field->GetDeclaringClass()->GetDexCache()); + FindDexFile(cUnit->method->GetDeclaringClass()->GetDexCache()); const art::DexFile::FieldId& field_id = dex_file.GetFieldId(fieldIdx); int typeIdx = field_id.class_idx_; // Using fixed register to sync with slow path @@ -341,7 +341,7 @@ static void genSget(CompilationUnit* cUnit, MIR* mir, art::ClassLinker* class_linker = art::Runtime::Current()-> GetClassLinker(); const art::DexFile& dex_file = class_linker-> - FindDexFile(field->GetDeclaringClass()->GetDexCache()); + FindDexFile(cUnit->method->GetDeclaringClass()->GetDexCache()); const art::DexFile::FieldId& field_id = dex_file.GetFieldId(fieldIdx); int typeIdx = field_id.class_idx_; // Using fixed register to sync with slow path |