139ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers/* 239ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers * Copyright (C) 2013 The Android Open Source Project 339ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers * 439ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers * Licensed under the Apache License, Version 2.0 (the "License"); 539ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers * you may not use this file except in compliance with the License. 639ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers * You may obtain a copy of the License at 739ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers * 839ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers * http://www.apache.org/licenses/LICENSE-2.0 939ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers * 1039ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers * Unless required by applicable law or agreed to in writing, software 1139ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers * distributed under the License is distributed on an "AS IS" BASIS, 1239ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1339ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers * See the License for the specific language governing permissions and 1439ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers * limitations under the License. 1539ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers */ 1639ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers 17fc0e3219edc9a5bf81b166e82fd5db2796eb6a0dBrian Carlstrom#ifndef ART_RUNTIME_MIRROR_DEX_CACHE_INL_H_ 18fc0e3219edc9a5bf81b166e82fd5db2796eb6a0dBrian Carlstrom#define ART_RUNTIME_MIRROR_DEX_CACHE_INL_H_ 1939ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers 2039ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers#include "dex_cache.h" 2139ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers 2239ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogersnamespace art { 2339ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogersnamespace mirror { 2439ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers 25ea46f950e7a51585db293cd7f047de190a482414Brian Carlstrominline ArtMethod* DexCache::GetResolvedMethod(uint32_t method_idx) const 2639ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers SHARED_LOCKS_REQUIRED(Locks::mutator_lock_) { 27ea46f950e7a51585db293cd7f047de190a482414Brian Carlstrom ArtMethod* method = GetResolvedMethods()->Get(method_idx); 2839ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers // Hide resolution trampoline methods from the caller 2939ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers if (method != NULL && method->IsRuntimeMethod()) { 3039ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers DCHECK(method == Runtime::Current()->GetResolutionMethod()); 3139ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers return NULL; 3239ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers } else { 3339ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers return method; 3439ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers } 3539ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers} 3639ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers 3739ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers} // namespace mirror 3839ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers} // namespace art 3939ebcb800aabedd0ffa6aa4aeac8aa4194c66e61Ian Rogers 40fc0e3219edc9a5bf81b166e82fd5db2796eb6a0dBrian Carlstrom#endif // ART_RUNTIME_MIRROR_DEX_CACHE_INL_H_ 41