summaryrefslogtreecommitdiff
path: root/src/class_linker.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/class_linker.h')
-rw-r--r--src/class_linker.h32
1 files changed, 19 insertions, 13 deletions
diff --git a/src/class_linker.h b/src/class_linker.h
index 3039d55f7a..d41373c7d7 100644
--- a/src/class_linker.h
+++ b/src/class_linker.h
@@ -30,13 +30,13 @@
namespace art {
namespace mirror {
-class ClassLoader;
-class DexCache;
-class DexCacheTest_Open_Test;
-class IfTable;
-template<class T> class ObjectArray;
-class StackTraceElement;
-}
+ class ClassLoader;
+ class DexCache;
+ class DexCacheTest_Open_Test;
+ class IfTable;
+ template<class T> class ObjectArray;
+ class StackTraceElement;
+} // namespace mirror
class ImageSpace;
class InternTable;
class ObjectLock;
@@ -247,10 +247,12 @@ class ClassLinker {
// created oat file.
const DexFile* FindOrCreateOatFileForDexLocation(const std::string& dex_location,
const std::string& oat_location)
- LOCKS_EXCLUDED(dex_lock_);
+ LOCKS_EXCLUDED(dex_lock_)
+ SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
const DexFile* FindOrCreateOatFileForDexLocationLocked(const std::string& dex_location,
const std::string& oat_location)
- EXCLUSIVE_LOCKS_REQUIRED(dex_lock_);
+ EXCLUSIVE_LOCKS_REQUIRED(dex_lock_)
+ SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
// Find a DexFile within an OatFile given a DexFile location. Note
// that this returns null if the location checksum of the DexFile
// does not match the OatFile.
@@ -318,7 +320,8 @@ class ClassLinker {
SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
// Get the oat code for a method from a method index.
- const void* GetOatCodeFor(const DexFile& dex_file, uint32_t method_idx);
+ const void* GetOatCodeFor(const DexFile& dex_file, uint32_t method_idx)
+ SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
pid_t GetClassesLockOwner(); // For SignalCatcher.
pid_t GetDexLockOwner(); // For SignalCatcher.
@@ -404,7 +407,8 @@ class ClassLinker {
void FixupStaticTrampolines(mirror::Class* klass) SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
// Finds the associated oat class for a dex_file and descriptor
- const OatFile::OatClass* GetOatClass(const DexFile& dex_file, const char* descriptor);
+ const OatFile::OatClass* GetOatClass(const DexFile& dex_file, const char* descriptor)
+ SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
// Attempts to insert a class into a class table. Returns NULL if
// the class was inserted, otherwise returns an existing class with
@@ -482,9 +486,11 @@ class ClassLinker {
}
const OatFile* FindOpenedOatFileForDexFile(const DexFile& dex_file)
- LOCKS_EXCLUDED(dex_lock_);
+ LOCKS_EXCLUDED(dex_lock_)
+ SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
const OatFile* FindOpenedOatFileFromDexLocation(const std::string& dex_location)
- EXCLUSIVE_LOCKS_REQUIRED(dex_lock_);
+ EXCLUSIVE_LOCKS_REQUIRED(dex_lock_)
+ SHARED_LOCKS_REQUIRED(Locks::mutator_lock_);
const OatFile* FindOpenedOatFileFromOatLocation(const std::string& oat_location)
EXCLUSIVE_LOCKS_REQUIRED(dex_lock_);
const DexFile* VerifyAndOpenDexFileFromOatFile(const OatFile* oat_file,