Revision: 5692
Author: [email protected]
Date: Thu Oct 21 16:41:09 2010
Log: [Isolates] Clean up some usages of the heap macro.
Review URL: http://codereview.chromium.org/4061002
http://code.google.com/p/v8/source/detail?r=5692
Modified:
/branches/experimental/isolates/src/heap-inl.h
/branches/experimental/isolates/src/heap.cc
/branches/experimental/isolates/src/heap.h
/branches/experimental/isolates/src/mark-compact.cc
/branches/experimental/isolates/src/objects-inl.h
/branches/experimental/isolates/src/objects.cc
/branches/experimental/isolates/src/runtime.cc
=======================================
--- /branches/experimental/isolates/src/heap-inl.h Tue Oct 19 07:22:59 2010
+++ /branches/experimental/isolates/src/heap-inl.h Thu Oct 21 16:41:09 2010
@@ -478,7 +478,7 @@
void ExternalStringTable::AddString(String* string) {
ASSERT(string->IsExternalString());
- if (HEAP->InNewSpace(string)) {
+ if (heap_->InNewSpace(string)) {
new_space_strings_.Add(string);
} else {
old_space_strings_.Add(string);
@@ -503,11 +503,11 @@
void ExternalStringTable::Verify() {
#ifdef DEBUG
for (int i = 0; i < new_space_strings_.length(); ++i) {
- ASSERT(HEAP->InNewSpace(new_space_strings_[i]));
+ ASSERT(heap_->InNewSpace(new_space_strings_[i]));
ASSERT(new_space_strings_[i] != HEAP->raw_unchecked_null_value());
}
for (int i = 0; i < old_space_strings_.length(); ++i) {
- ASSERT(!HEAP->InNewSpace(old_space_strings_[i]));
+ ASSERT(!heap_->InNewSpace(old_space_strings_[i]));
ASSERT(old_space_strings_[i] != HEAP->raw_unchecked_null_value());
}
#endif
@@ -516,7 +516,7 @@
void ExternalStringTable::AddOldString(String* string) {
ASSERT(string->IsExternalString());
- ASSERT(!HEAP->InNewSpace(string));
+ ASSERT(!heap_->InNewSpace(string));
old_space_strings_.Add(string);
}
@@ -528,7 +528,7 @@
void Heap::ClearInstanceofCache() {
- set_instanceof_cache_function(HEAP->the_hole_value());
+ set_instanceof_cache_function(the_hole_value());
}
=======================================
--- /branches/experimental/isolates/src/heap.cc Thu Oct 14 20:21:08 2010
+++ /branches/experimental/isolates/src/heap.cc Thu Oct 21 16:41:09 2010
@@ -1025,12 +1025,13 @@
}
-String* Heap::UpdateNewSpaceReferenceInExternalStringTableEntry(Object**
p) {
+String* Heap::UpdateNewSpaceReferenceInExternalStringTableEntry(Heap* heap,
+ Object**
p) {
MapWord first_word = HeapObject::cast(*p)->map_word();
if (!first_word.IsForwardingAddress()) {
// Unreachable external string can be finalized.
- HEAP->FinalizeExternalString(String::cast(*p));
+ heap->FinalizeExternalString(String::cast(*p));
return NULL;
}
@@ -1051,7 +1052,7 @@
for (Object** p = start; p < end; ++p) {
ASSERT(InFromSpace(*p));
- String* target = updater_func(p);
+ String* target = updater_func(this, p);
if (target == NULL) continue;
@@ -2149,7 +2150,7 @@
// Make sure that an out of memory exception is thrown if the length
// of the new cons string is too large.
if (length > String::kMaxLength || length < 0) {
- Isolate::Current()->context()->mark_out_of_memory();
+ isolate()->context()->mark_out_of_memory();
return Failure::OutOfMemoryException();
}
@@ -2273,7 +2274,7 @@
ExternalAsciiString::Resource* resource) {
size_t length = resource->length();
if (length > static_cast<size_t>(String::kMaxLength)) {
- Isolate::Current()->context()->mark_out_of_memory();
+ isolate()->context()->mark_out_of_memory();
return Failure::OutOfMemoryException();
}
@@ -2294,7 +2295,7 @@
ExternalTwoByteString::Resource* resource) {
size_t length = resource->length();
if (length > static_cast<size_t>(String::kMaxLength)) {
- Isolate::Current()->context()->mark_out_of_memory();
+ isolate()->context()->mark_out_of_memory();
return Failure::OutOfMemoryException();
}
@@ -2627,7 +2628,7 @@
ASSERT(allocation_allowed_ && gc_state_ == NOT_IN_GC);
JSObject* boilerplate =
-
Isolate::Current()->context()->global_context()->arguments_boilerplate();
+ isolate()->context()->global_context()->arguments_boilerplate();
// Check that the size of the boilerplate matches our
// expectations. The ArgumentsAccessStub::GenerateNewObject relies
@@ -3492,7 +3493,7 @@
void Heap::Print() {
if (!HasBeenSetup()) return;
- Isolate::Current()->PrintStack();
+ isolate()->PrintStack();
AllSpaces spaces;
for (Space* space = spaces.next(); space != NULL; space = spaces.next())
space->Print();
@@ -4450,7 +4451,7 @@
void Heap::SetStackLimits() {
ASSERT(isolate_ != NULL);
- ASSERT(isolate_ == Isolate::Current());
+ ASSERT(isolate_ == isolate());
// On 64 bit machines, pointers are generally out of range of Smis. We
write
// something that looks like an out of range Smi to the GC.
=======================================
--- /branches/experimental/isolates/src/heap.h Thu Oct 14 20:21:08 2010
+++ /branches/experimental/isolates/src/heap.h Thu Oct 21 16:41:09 2010
@@ -214,7 +214,8 @@
class Isolate;
-typedef String* (*ExternalStringTableUpdaterCallback)(Object** pointer);
+typedef String* (*ExternalStringTableUpdaterCallback)(Heap* heap,
+ Object** pointer);
typedef bool (*DirtyRegionCallback)(Heap* heap,
Address start,
@@ -1372,6 +1373,7 @@
void Scavenge();
static String* UpdateNewSpaceReferenceInExternalStringTableEntry(
+ Heap* heap,
Object** pointer);
Address DoScavenge(ObjectVisitor* scavenge_visitor, Address
new_space_front);
=======================================
--- /branches/experimental/isolates/src/mark-compact.cc Thu Oct 14 20:21:08
2010
+++ /branches/experimental/isolates/src/mark-compact.cc Thu Oct 21 16:41:09
2010
@@ -1562,7 +1562,8 @@
}
-static String* UpdateNewSpaceReferenceInExternalStringTableEntry(Object
**p) {
+static String* UpdateNewSpaceReferenceInExternalStringTableEntry(Heap*
heap,
+ Object**
p) {
Address old_addr = HeapObject::cast(*p)->address();
Address new_addr = Memory::Address_at(old_addr);
return String::cast(HeapObject::FromAddress(new_addr));
=======================================
--- /branches/experimental/isolates/src/objects-inl.h Thu Oct 14 20:21:08
2010
+++ /branches/experimental/isolates/src/objects-inl.h Thu Oct 21 16:41:09
2010
@@ -1216,8 +1216,8 @@
void JSObject::set_elements(HeapObject* value, WriteBarrierMode mode) {
ASSERT(map()->has_fast_elements() ==
- (value->map() == HEAP->fixed_array_map() ||
- value->map() == HEAP->fixed_cow_array_map()));
+ (value->map() == GetHeap()->fixed_array_map() ||
+ value->map() == GetHeap()->fixed_cow_array_map()));
// In the assert below Dictionary is covered under FixedArray.
ASSERT(value->IsFixedArray() || value->IsPixelArray() ||
value->IsExternalArray());
@@ -1227,14 +1227,14 @@
void JSObject::initialize_properties() {
- ASSERT(!HEAP->InNewSpace(HEAP->empty_fixed_array()));
+ ASSERT(!GetHeap()->InNewSpace(GetHeap()->empty_fixed_array()));
WRITE_FIELD(this, kPropertiesOffset, GetHeap()->empty_fixed_array());
}
void JSObject::initialize_elements() {
ASSERT(map()->has_fast_elements());
- ASSERT(!HEAP->InNewSpace(HEAP->empty_fixed_array()));
+ ASSERT(!GetHeap()->InNewSpace(GetHeap()->empty_fixed_array()));
WRITE_FIELD(this, kElementsOffset, GetHeap()->empty_fixed_array());
}
@@ -1586,10 +1586,10 @@
int DescriptorArray::SearchWithCache(String* name) {
- int number = HEAP->isolate()->descriptor_lookup_cache()->Lookup(this,
name);
+ int number = GetIsolate()->descriptor_lookup_cache()->Lookup(this, name);
if (number == DescriptorLookupCache::kAbsent) {
number = Search(name);
- HEAP->isolate()->descriptor_lookup_cache()->Update(this, name, number);
+ GetIsolate()->descriptor_lookup_cache()->Update(this, name, number);
}
return number;
}
@@ -2859,7 +2859,8 @@
bool SharedFunctionInfo::is_compiled() {
- return code() !=
HEAP->isolate()->builtins()->builtin(Builtins::LazyCompile);
+ return code() !=
+ Isolate::Current()->builtins()->builtin(Builtins::LazyCompile);
}
@@ -2994,7 +2995,7 @@
bool JSFunction::is_compiled() {
- return code() !=
HEAP->isolate()->builtins()->builtin(Builtins::LazyCompile);
+ return code() !=
GetIsolate()->builtins()->builtin(Builtins::LazyCompile);
}
@@ -3271,12 +3272,13 @@
Object* JSObject::EnsureWritableFastElements() {
ASSERT(HasFastElements());
FixedArray* elems = FixedArray::cast(elements());
- if (elems->map() != HEAP->fixed_cow_array_map()) return elems;
- Object* writable_elems = HEAP->CopyFixedArrayWithMap(elems,
-
HEAP->fixed_array_map());
+ Isolate* isolate = GetIsolate();
+ if (elems->map() != isolate->heap()->fixed_cow_array_map()) return elems;
+ Object* writable_elems = isolate->heap()->CopyFixedArrayWithMap(
+ elems, isolate->heap()->fixed_array_map());
if (writable_elems->IsFailure()) return writable_elems;
set_elements(FixedArray::cast(writable_elems));
- COUNTERS->cow_arrays_converted()->Increment();
+ isolate->counters()->cow_arrays_converted()->Increment();
return writable_elems;
}
=======================================
--- /branches/experimental/isolates/src/objects.cc Thu Oct 14 20:21:08 2010
+++ /branches/experimental/isolates/src/objects.cc Thu Oct 21 16:41:09 2010
@@ -1157,14 +1157,14 @@
if (u.bits.exp == 2047) {
// Detect NaN for IEEE double precision floating point.
if ((u.bits.man_low | u.bits.man_high) != 0)
- return HEAP->false_value();
+ return GetHeap()->false_value();
}
if (u.bits.exp == 0) {
// Detect +0, and -0 for IEEE double precision floating point.
if ((u.bits.man_low | u.bits.man_high) == 0)
- return HEAP->false_value();
- }
- return HEAP->true_value();
+ return GetHeap()->false_value();
+ }
+ return GetHeap()->true_value();
}
@@ -2319,7 +2319,7 @@
int new_instance_size = new_map->instance_size();
int instance_size_delta = map()->instance_size() - new_instance_size;
ASSERT(instance_size_delta >= 0);
- HEAP->CreateFillerObjectAt(this->address() + new_instance_size,
+ heap->CreateFillerObjectAt(this->address() + new_instance_size,
instance_size_delta);
set_map(new_map);
@@ -3257,7 +3257,7 @@
new_instance_size -= inobject_properties() * kPointerSize;
}
- Object* result = HEAP->AllocateMap(instance_type(), new_instance_size);
+ Object* result = GetHeap()->AllocateMap(instance_type(),
new_instance_size);
if (result->IsFailure()) return result;
if (mode != CLEAR_INOBJECT_PROPERTIES) {
=======================================
--- /branches/experimental/isolates/src/runtime.cc Tue Oct 19 07:22:59 2010
+++ /branches/experimental/isolates/src/runtime.cc Thu Oct 21 16:41:09 2010
@@ -1464,12 +1464,12 @@
// Having the original JSRegExpResult map guarantees that we have
// fast elements and no properties except the two in-object properties.
ASSERT(result->HasFastElements());
- ASSERT(result->properties() == HEAP->empty_fixed_array());
+ ASSERT(result->properties() == isolate->heap()->empty_fixed_array());
ASSERT_EQ(2, regexp_result_map->inobject_properties());
- Object* new_array_alloc = HEAP->AllocateRaw(JSRegExpResult::kSize,
- NEW_SPACE,
- OLD_POINTER_SPACE);
+ Object* new_array_alloc =
isolate->heap()->AllocateRaw(JSRegExpResult::kSize,
+ NEW_SPACE,
+
OLD_POINTER_SPACE);
if (new_array_alloc->IsFailure()) return new_array_alloc;
// Set HeapObject map to JSRegExpResult map.
@@ -1482,8 +1482,8 @@
// Copy JSObject elements as copy-on-write.
FixedArray* elements = FixedArray::cast(result->elements());
- if (elements != HEAP->empty_fixed_array()) {
- elements->set_map(HEAP->fixed_cow_array_map());
+ if (elements != isolate->heap()->empty_fixed_array()) {
+ elements->set_map(isolate->heap()->fixed_cow_array_map());
}
new_array->set_elements(elements);
@@ -6429,7 +6429,8 @@
int year, month, day;
DateYMDFromTime(static_cast<int>(floor(t / 86400000)), year, month, day);
- RUNTIME_ASSERT(res_array->elements()->map() == HEAP->fixed_array_map());
+ RUNTIME_ASSERT(res_array->elements()->map() ==
+ isolate->heap()->fixed_array_map());
FixedArray* elms = FixedArray::cast(res_array->elements());
RUNTIME_ASSERT(elms->length() == 3);
@@ -7877,8 +7878,8 @@
CONVERT_CHECKED(JSArray, to, args[1]);
HeapObject* new_elements = from->elements();
Object* new_map;
- if (new_elements->map() == HEAP->fixed_array_map() ||
- new_elements->map() == HEAP->fixed_cow_array_map()) {
+ if (new_elements->map() == isolate->heap()->fixed_array_map() ||
+ new_elements->map() == isolate->heap()->fixed_cow_array_map()) {
new_map = to->map()->GetFastElementsMap();
} else {
new_map = to->map()->GetSlowElementsMap();
--
v8-dev mailing list
[email protected]
http://groups.google.com/group/v8-dev