From d8dbc8da0e5cc6b5c2176ce2d3877e6194d72c0c Mon Sep 17 00:00:00 2001 From: Vladimir Marko Date: Wed, 20 Sep 2017 13:37:47 +0100 Subject: Refactor compiled_method.h . Move LinkerPatch to compiler/linker/linker_patch.h . Move SrcMapElem to compiler/debug/src_map_elem.h . Introduce compiled_method-inl.h to reduce the number of `#include`s in compiled_method.h . Test: m test-art-host-gtest Test: testrunner.py --host Change-Id: Id211cdf94a63ad265bf4709f1a5e06dffbe30f64 --- compiler/compiled_method-inl.h | 59 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 compiler/compiled_method-inl.h (limited to 'compiler/compiled_method-inl.h') diff --git a/compiler/compiled_method-inl.h b/compiler/compiled_method-inl.h new file mode 100644 index 0000000000..c43274782e --- /dev/null +++ b/compiler/compiled_method-inl.h @@ -0,0 +1,59 @@ +/* + * Copyright (C) 2017 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef ART_COMPILER_COMPILED_METHOD_INL_H_ +#define ART_COMPILER_COMPILED_METHOD_INL_H_ + +#include "compiled_method.h" + +#include "base/array_ref.h" +#include "base/length_prefixed_array.h" +#include "linker/linker_patch.h" + +namespace art { + +inline ArrayRef CompiledCode::GetQuickCode() const { + return GetArray(quick_code_); +} + +template +inline ArrayRef CompiledCode::GetArray(const LengthPrefixedArray* array) { + if (array == nullptr) { + return ArrayRef(); + } + DCHECK_NE(array->size(), 0u); + return ArrayRef(&array->At(0), array->size()); +} + +inline ArrayRef CompiledMethod::GetMethodInfo() const { + return GetArray(method_info_); +} + +inline ArrayRef CompiledMethod::GetVmapTable() const { + return GetArray(vmap_table_); +} + +inline ArrayRef CompiledMethod::GetCFIInfo() const { + return GetArray(cfi_info_); +} + +inline ArrayRef CompiledMethod::GetPatches() const { + return GetArray(patches_); +} + +} // namespace art + +#endif // ART_COMPILER_COMPILED_METHOD_INL_H_ -- cgit v1.2.3-59-g8ed1b