diff options
author | Vladimir Marko <vmarko@google.com> | 2017-09-20 13:37:47 +0100 |
---|---|---|
committer | Vladimir Marko <vmarko@google.com> | 2017-09-20 15:55:10 +0100 |
commit | d8dbc8da0e5cc6b5c2176ce2d3877e6194d72c0c (patch) | |
tree | af6e9fb02471d75ebdea46190a0aa3e9dbdb892d /compiler/compiled_method-inl.h | |
parent | 93780a60090356921b844dbefdc13442c9f18b52 (diff) |
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
Diffstat (limited to 'compiler/compiled_method-inl.h')
-rw-r--r-- | compiler/compiled_method-inl.h | 59 |
1 files changed, 59 insertions, 0 deletions
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<const uint8_t> CompiledCode::GetQuickCode() const { + return GetArray(quick_code_); +} + +template <typename T> +inline ArrayRef<const T> CompiledCode::GetArray(const LengthPrefixedArray<T>* array) { + if (array == nullptr) { + return ArrayRef<const T>(); + } + DCHECK_NE(array->size(), 0u); + return ArrayRef<const T>(&array->At(0), array->size()); +} + +inline ArrayRef<const uint8_t> CompiledMethod::GetMethodInfo() const { + return GetArray(method_info_); +} + +inline ArrayRef<const uint8_t> CompiledMethod::GetVmapTable() const { + return GetArray(vmap_table_); +} + +inline ArrayRef<const uint8_t> CompiledMethod::GetCFIInfo() const { + return GetArray(cfi_info_); +} + +inline ArrayRef<const linker::LinkerPatch> CompiledMethod::GetPatches() const { + return GetArray(patches_); +} + +} // namespace art + +#endif // ART_COMPILER_COMPILED_METHOD_INL_H_ |