diff options
Diffstat (limited to 'compiler/optimizing/instruction_builder.h')
| -rw-r--r-- | compiler/optimizing/instruction_builder.h | 13 | 
1 files changed, 12 insertions, 1 deletions
| diff --git a/compiler/optimizing/instruction_builder.h b/compiler/optimizing/instruction_builder.h index aef0b94c1f..5efe95094c 100644 --- a/compiler/optimizing/instruction_builder.h +++ b/compiler/optimizing/instruction_builder.h @@ -46,9 +46,11 @@ class HInstructionBuilder : public ValueObject {                        CompilerDriver* driver,                        const uint8_t* interpreter_metadata,                        OptimizingCompilerStats* compiler_stats, -                      Handle<mirror::DexCache> dex_cache) +                      Handle<mirror::DexCache> dex_cache, +                      VariableSizedHandleScope* handles)        : arena_(graph->GetArena()),          graph_(graph), +        handles_(handles),          dex_file_(dex_file),          code_item_(code_item),          return_type_(return_type), @@ -223,6 +225,14 @@ class HInstructionBuilder : public ValueObject {    // Builds an instruction sequence for a switch statement.    void BuildSwitch(const Instruction& instruction, uint32_t dex_pc); +  // Builds a `HLoadClass` loading the given `type_index`. If `outer` is true, +  // this method will use the outer class's dex file to lookup the type at +  // `type_index`. +  HLoadClass* BuildLoadClass(dex::TypeIndex type_index, +                             uint32_t dex_pc, +                             bool check_access, +                             bool outer = false); +    // Returns the outer-most compiling method's class.    mirror::Class* GetOutermostCompilingClass() const; @@ -282,6 +292,7 @@ class HInstructionBuilder : public ValueObject {    ArenaAllocator* const arena_;    HGraph* const graph_; +  VariableSizedHandleScope* handles_;    // The dex file where the method being compiled is, and the bytecode data.    const DexFile* const dex_file_; |