Explicitly pass Thread::Current to MutexLock and Alloc.
Change-Id: I8b75bc0617915465f102815b32306aa7760dcae4
diff --git a/src/intern_table.cc b/src/intern_table.cc
index 10dd7f0..5ad3958 100644
--- a/src/intern_table.cc
+++ b/src/intern_table.cc
@@ -25,19 +25,19 @@
}
size_t InternTable::Size() const {
- MutexLock mu(intern_table_lock_);
+ MutexLock mu(Thread::Current(), intern_table_lock_);
return strong_interns_.size() + weak_interns_.size();
}
void InternTable::DumpForSigQuit(std::ostream& os) const {
- MutexLock mu(intern_table_lock_);
+ MutexLock mu(Thread::Current(), intern_table_lock_);
os << "Intern table: " << strong_interns_.size() << " strong; "
<< weak_interns_.size() << " weak; "
<< image_strong_interns_.size() << " image strong\n";
}
void InternTable::VisitRoots(Heap::RootVisitor* visitor, void* arg) const {
- MutexLock mu(intern_table_lock_);
+ MutexLock mu(Thread::Current(), intern_table_lock_);
typedef Table::const_iterator It; // TODO: C++0x auto
for (It it = strong_interns_.begin(), end = strong_interns_.end(); it != end; ++it) {
visitor(it->second, arg);
@@ -46,7 +46,7 @@
}
String* InternTable::Lookup(Table& table, String* s, uint32_t hash_code) {
- intern_table_lock_.AssertHeld();
+ intern_table_lock_.AssertHeld(Thread::Current());
typedef Table::const_iterator It; // TODO: C++0x auto
for (It it = table.find(hash_code), end = table.end(); it != end; ++it) {
String* existing_string = it->second;
@@ -58,18 +58,18 @@
}
String* InternTable::Insert(Table& table, String* s, uint32_t hash_code) {
- intern_table_lock_.AssertHeld();
+ intern_table_lock_.AssertHeld(Thread::Current());
table.insert(std::make_pair(hash_code, s));
return s;
}
void InternTable::RegisterStrong(String* s) {
- MutexLock mu(intern_table_lock_);
+ MutexLock mu(Thread::Current(), intern_table_lock_);
Insert(image_strong_interns_, s, s->GetHashCode());
}
void InternTable::Remove(Table& table, const String* s, uint32_t hash_code) {
- intern_table_lock_.AssertHeld();
+ intern_table_lock_.AssertHeld(Thread::Current());
typedef Table::iterator It; // TODO: C++0x auto
for (It it = table.find(hash_code), end = table.end(); it != end; ++it) {
if (it->second == s) {
@@ -80,7 +80,7 @@
}
String* InternTable::Insert(String* s, bool is_strong) {
- MutexLock mu(intern_table_lock_);
+ MutexLock mu(Thread::Current(), intern_table_lock_);
DCHECK(s != NULL);
uint32_t hash_code = s->GetHashCode();
@@ -129,11 +129,11 @@
}
String* InternTable::InternStrong(int32_t utf16_length, const char* utf8_data) {
- return InternStrong(String::AllocFromModifiedUtf8(utf16_length, utf8_data));
+ return InternStrong(String::AllocFromModifiedUtf8(Thread::Current(), utf16_length, utf8_data));
}
String* InternTable::InternStrong(const char* utf8_data) {
- return InternStrong(String::AllocFromModifiedUtf8(utf8_data));
+ return InternStrong(String::AllocFromModifiedUtf8(Thread::Current(), utf8_data));
}
String* InternTable::InternStrong(String* s) {
@@ -151,13 +151,13 @@
}
bool InternTable::ContainsWeak(String* s) {
- MutexLock mu(intern_table_lock_);
+ MutexLock mu(Thread::Current(), intern_table_lock_);
const String* found = Lookup(weak_interns_, s, s->GetHashCode());
return found == s;
}
void InternTable::SweepInternTableWeaks(Heap::IsMarkedTester is_marked, void* arg) {
- MutexLock mu(intern_table_lock_);
+ MutexLock mu(Thread::Current(), intern_table_lock_);
typedef Table::iterator It; // TODO: C++0x auto
for (It it = weak_interns_.begin(), end = weak_interns_.end(); it != end;) {
Object* object = it->second;