Index: src/heap.cc |
diff --git a/src/heap.cc b/src/heap.cc |
index 522861deda05e2a163861ac527be202631387441..05af2cd2d8c68edafe6bdc2391fda89861e51896 100644 |
--- a/src/heap.cc |
+++ b/src/heap.cc |
@@ -2340,7 +2340,6 @@ bool Heap::CreateInitialObjects() { |
set_intrinsic_function_names(StringDictionary::cast(obj)); |
if (InitializeNumberStringCache()->IsFailure()) return false; |
- if (InitializeStringLocks()->IsFailure()) return false; |
// Allocate cache for single character ASCII strings. |
{ MaybeObject* maybe_obj = |
@@ -2557,76 +2556,6 @@ MaybeObject* Heap::Uint32ToString(uint32_t value, |
} |
-MaybeObject* Heap::LockString(String* string) { |
- ASSERT(!string->IsConsString()); |
- FixedArray* locks = string_locks(); |
- ASSERT(locks->length() > 1); |
- int length = locks->length(); |
- int element_count = Smi::cast(locks->get(0))->value(); |
- int element_index = element_count + 1; |
- if (element_index >= length) { |
- int new_length = length * 2; |
- MaybeObject* allocation = AllocateFixedArray(new_length); |
- FixedArray* new_locks = NULL; // Initialized to please compiler. |
- if (!allocation->To<FixedArray>(&new_locks)) return allocation; |
- for (int i = 1; i < length; i++) { |
- new_locks->set(i, locks->get(i)); |
- } |
- set_string_locks(new_locks); |
- locks = new_locks; |
- } |
- locks->set(element_index, string); |
- locks->set(0, Smi::FromInt(element_index)); |
- return string; |
-} |
- |
- |
-void Heap::UnlockString(String* string) { |
- FixedArray* locks = string_locks(); |
- ASSERT(locks->length() > 1); |
- int element_count = Smi::cast(locks->get(0))->value(); |
- ASSERT(element_count > 0); |
- ASSERT(element_count < locks->length()); |
- for (int i = 1; i <= element_count; i++) { |
- String* element = String::cast(locks->get(i)); |
- if (element == string) { |
- if (i < element_count) { |
- locks->set(i, locks->get(element_count)); |
- } |
- locks->set_undefined(element_count); |
- locks->set(0, Smi::FromInt(element_count - 1)); |
- return; |
- } |
- } |
- // We should have found the string. It's an error to try to unlock |
- // a string that hasn't been locked. |
- UNREACHABLE(); |
-} |
- |
- |
-bool Heap::IsStringLocked(String* string) { |
- if (string->IsConsString()) return false; |
- FixedArray* locks = string_locks(); |
- ASSERT(locks->length() > 1); |
- int element_count = Smi::cast(locks->get(0))->value(); |
- for (int i = 1; i <= element_count; i++) { |
- if (locks->get(i) == string) return true; |
- } |
- return false; |
-} |
- |
- |
-MaybeObject* Heap::InitializeStringLocks() { |
- const int kInitialSize = 6; |
- MaybeObject* allocation = AllocateFixedArray(kInitialSize); |
- if (allocation->IsFailure()) return allocation; |
- FixedArray* new_array = FixedArray::cast(allocation->ToObjectUnchecked()); |
- new_array->set(0, Smi::FromInt(0)); |
- set_string_locks(new_array); |
- return new_array; |
-} |
- |
- |
Map* Heap::MapForExternalArrayType(ExternalArrayType array_type) { |
return Map::cast(roots_[RootIndexForExternalArrayType(array_type)]); |
} |