diff options
author | 2011-08-18 16:49:37 -0700 | |
---|---|---|
committer | 2011-08-18 16:49:37 -0700 | |
commit | de69d7f8c32be83c405bf5a9c5f15fc655f578fa (patch) | |
tree | cb55a919ba3fc9f5ee0e8f70cf22235bd6161532 | |
parent | 2cfd15d1940c848fd60b454c545a33e2a78d185e (diff) |
Clean up mutexes on shutdown.
Change-Id: Ib961f954280c27f8858c4d6fb9010cc833bb28d2
-rw-r--r-- | src/class_linker.h | 4 | ||||
-rw-r--r-- | src/intern_table.cc | 4 | ||||
-rw-r--r-- | src/intern_table.h | 1 | ||||
-rw-r--r-- | src/jni_internal.cc | 5 | ||||
-rw-r--r-- | src/jni_internal.h | 1 |
5 files changed, 14 insertions, 1 deletions
diff --git a/src/class_linker.h b/src/class_linker.h index 34ad9d7d3a..90ac6780f8 100644 --- a/src/class_linker.h +++ b/src/class_linker.h @@ -24,7 +24,9 @@ class ClassLinker { // Initializes the class linker. static ClassLinker* Create(const std::vector<DexFile*>& boot_class_path); - ~ClassLinker() {} + ~ClassLinker() { + delete classes_lock_; + } // Finds a class by its descriptor name. // If class_loader is null, searches boot_class_path_. diff --git a/src/intern_table.cc b/src/intern_table.cc index 3a0dff8c87..3ef591796e 100644 --- a/src/intern_table.cc +++ b/src/intern_table.cc @@ -10,6 +10,10 @@ InternTable::InternTable() { intern_table_lock_ = Mutex::Create("InternTable::Lock"); } +InternTable::~InternTable() { + delete intern_table_lock_; +} + void InternTable::VisitRoots(Heap::RootVistor* root_visitor, void* arg) { MutexLock mu(intern_table_lock_); typedef Table::const_iterator It; // TODO: C++0x auto diff --git a/src/intern_table.h b/src/intern_table.h index 61da28b211..0a1554df88 100644 --- a/src/intern_table.h +++ b/src/intern_table.h @@ -13,6 +13,7 @@ namespace art { class InternTable { public: InternTable(); + ~InternTable(); String* Intern(int32_t utf16_length, const char* utf8_data); void VisitRoots(Heap::RootVistor* root_visitor, void* arg); diff --git a/src/jni_internal.cc b/src/jni_internal.cc index c53867083c..586b5410c9 100644 --- a/src/jni_internal.cc +++ b/src/jni_internal.cc @@ -2583,4 +2583,9 @@ JavaVMExt::JavaVMExt(Runtime* runtime, bool check_jni, bool verbose_jni) weak_globals(kWeakGlobalsInitial, kWeakGlobalsMax, kWeakGlobal) { } +JavaVMExt::~JavaVMExt() { + delete globals_lock; + delete weak_globals_lock; +} + } // namespace art diff --git a/src/jni_internal.h b/src/jni_internal.h index 1a4235d118..a6fce054ee 100644 --- a/src/jni_internal.h +++ b/src/jni_internal.h @@ -21,6 +21,7 @@ class Thread; struct JavaVMExt { JavaVMExt(Runtime* runtime, bool check_jni, bool verbose_jni); + ~JavaVMExt(); /* * Load native code from the specified absolute pathname. Per the spec, |