summaryrefslogtreecommitdiff
path: root/compiler/optimizing/nodes.cc
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/optimizing/nodes.cc')
-rw-r--r--compiler/optimizing/nodes.cc11
1 files changed, 5 insertions, 6 deletions
diff --git a/compiler/optimizing/nodes.cc b/compiler/optimizing/nodes.cc
index a5e0991578..3ea13b66f7 100644
--- a/compiler/optimizing/nodes.cc
+++ b/compiler/optimizing/nodes.cc
@@ -39,12 +39,11 @@ namespace art {
// double).
static constexpr bool kEnableFloatingPointStaticEvaluation = (FLT_EVAL_METHOD == 0);
-void HGraph::InitializeInexactObjectRTI(VariableSizedHandleScope* handles) {
+ReferenceTypeInfo::TypeHandle HandleCache::CreateRootHandle(VariableSizedHandleScope* handles,
+ ClassRoot class_root) {
+ // Mutator lock is required for NewHandle and GetClassRoot().
ScopedObjectAccess soa(Thread::Current());
- // Create the inexact Object reference type and store it in the HGraph.
- inexact_object_rti_ = ReferenceTypeInfo::Create(
- handles->NewHandle(GetClassRoot<mirror::Object>()),
- /* is_exact= */ false);
+ return handles->NewHandle(GetClassRoot(class_root));
}
void HGraph::AddBlock(HBasicBlock* block) {
@@ -662,7 +661,7 @@ HNullConstant* HGraph::GetNullConstant(uint32_t dex_pc) {
// id and/or any invariants the graph is assuming when adding new instructions.
if ((cached_null_constant_ == nullptr) || (cached_null_constant_->GetBlock() == nullptr)) {
cached_null_constant_ = new (allocator_) HNullConstant(dex_pc);
- cached_null_constant_->SetReferenceTypeInfo(inexact_object_rti_);
+ cached_null_constant_->SetReferenceTypeInfo(GetInexactObjectRti());
InsertConstant(cached_null_constant_);
}
if (kIsDebugBuild) {