summaryrefslogtreecommitdiffstats
path: root/compiler/driver/compiler_driver-inl.h
diff options
context:
space:
mode:
authorMathieu Chartier <mathieuc@google.com>2014-06-05 17:42:53 -0700
committerMathieu Chartier <mathieuc@google.com>2014-06-06 13:12:17 -0700
commit61c5ebc6aee2cac1c363de6fbdac25ada1697fdb (patch)
tree444936c3e3718b692ba7f1981b863190f26b4ed7 /compiler/driver/compiler_driver-inl.h
parent25c4f6a25b3de9b9d7ca5162f1629753a0b7f003 (diff)
downloadart-61c5ebc6aee2cac1c363de6fbdac25ada1697fdb.zip
art-61c5ebc6aee2cac1c363de6fbdac25ada1697fdb.tar.gz
art-61c5ebc6aee2cac1c363de6fbdac25ada1697fdb.tar.bz2
Change FieldHelper to use a handle.
Fixed compaction bugs related to FieldHelper::GetType in: artSet32InstanceFromCode SetFieldValueImpl CheckReceiver Field_set interpreter::DoFieldPut MethodVerifier::VerifyISGet MethodVerifier::VerifyISPut MethodVerifier::VerifyIGetQuick Bug: 13077697 Change-Id: I7de9ded2893b5568d43e4daa86fd135bf5508b72
Diffstat (limited to 'compiler/driver/compiler_driver-inl.h')
-rw-r--r--compiler/driver/compiler_driver-inl.h4
1 files changed, 3 insertions, 1 deletions
diff --git a/compiler/driver/compiler_driver-inl.h b/compiler/driver/compiler_driver-inl.h
index 45abfcc..324f717 100644
--- a/compiler/driver/compiler_driver-inl.h
+++ b/compiler/driver/compiler_driver-inl.h
@@ -135,8 +135,10 @@ inline std::pair<bool, bool> CompilerDriver::IsFastStaticField(
} else {
// Search dex file for localized ssb index, may fail if field's class is a parent
// of the class mentioned in the dex file and there is no dex cache entry.
+ StackHandleScope<1> hs(Thread::Current());
const DexFile::StringId* string_id =
- dex_file->FindStringId(FieldHelper(resolved_field).GetDeclaringClassDescriptor());
+ dex_file->FindStringId(
+ FieldHelper(hs.NewHandle(resolved_field)).GetDeclaringClassDescriptor());
if (string_id != nullptr) {
const DexFile::TypeId* type_id =
dex_file->FindTypeId(dex_file->GetIndexForStringId(*string_id));