| Index: src/serialize.cc
|
| diff --git a/src/serialize.cc b/src/serialize.cc
|
| index ebc453ccc2d3a61ab3c9f02a566ace8e7831f2f8..5a54543910883b3aee59865838fb4d3fe2b1e0e5 100644
|
| --- a/src/serialize.cc
|
| +++ b/src/serialize.cc
|
| @@ -94,12 +94,12 @@ void ExternalReferenceTable::Add(Address address,
|
| TypeCode type,
|
| uint16_t id,
|
| const char* name) {
|
| - ASSERT_NE(NULL, address);
|
| + DCHECK_NE(NULL, address);
|
| ExternalReferenceEntry entry;
|
| entry.address = address;
|
| entry.code = EncodeExternal(type, id);
|
| entry.name = name;
|
| - ASSERT_NE(0, entry.code);
|
| + DCHECK_NE(0, entry.code);
|
| refs_.Add(entry);
|
| if (id > max_id_[type]) max_id_[type] = id;
|
| }
|
| @@ -554,7 +554,7 @@ ExternalReferenceEncoder::ExternalReferenceEncoder(Isolate* isolate)
|
|
|
| uint32_t ExternalReferenceEncoder::Encode(Address key) const {
|
| int index = IndexOf(key);
|
| - ASSERT(key == NULL || index >= 0);
|
| + DCHECK(key == NULL || index >= 0);
|
| return index >= 0 ?
|
| ExternalReferenceTable::instance(isolate_)->code(index) : 0;
|
| }
|
| @@ -666,11 +666,11 @@ class CodeAddressMap: public CodeEventLogger {
|
| void Move(Address from, Address to) {
|
| if (from == to) return;
|
| HashMap::Entry* from_entry = FindEntry(from);
|
| - ASSERT(from_entry != NULL);
|
| + DCHECK(from_entry != NULL);
|
| void* value = from_entry->value;
|
| RemoveEntry(from_entry);
|
| HashMap::Entry* to_entry = FindOrCreateEntry(to);
|
| - ASSERT(to_entry->value == NULL);
|
| + DCHECK(to_entry->value == NULL);
|
| to_entry->value = value;
|
| }
|
|
|
| @@ -739,13 +739,13 @@ void Deserializer::FlushICacheForNewCodeObjects() {
|
|
|
| void Deserializer::Deserialize(Isolate* isolate) {
|
| isolate_ = isolate;
|
| - ASSERT(isolate_ != NULL);
|
| + DCHECK(isolate_ != NULL);
|
| isolate_->heap()->ReserveSpace(reservations_, &high_water_[0]);
|
| // No active threads.
|
| - ASSERT_EQ(NULL, isolate_->thread_manager()->FirstThreadStateInUse());
|
| + DCHECK_EQ(NULL, isolate_->thread_manager()->FirstThreadStateInUse());
|
| // No active handles.
|
| - ASSERT(isolate_->handle_scope_implementer()->blocks()->is_empty());
|
| - ASSERT_EQ(NULL, external_reference_decoder_);
|
| + DCHECK(isolate_->handle_scope_implementer()->blocks()->is_empty());
|
| + DCHECK_EQ(NULL, external_reference_decoder_);
|
| external_reference_decoder_ = new ExternalReferenceDecoder(isolate);
|
| isolate_->heap()->IterateSmiRoots(this);
|
| isolate_->heap()->IterateStrongRoots(this, VISIT_ONLY_STRONG);
|
| @@ -785,7 +785,7 @@ void Deserializer::Deserialize(Isolate* isolate) {
|
| void Deserializer::DeserializePartial(Isolate* isolate, Object** root) {
|
| isolate_ = isolate;
|
| for (int i = NEW_SPACE; i < kNumberOfSpaces; i++) {
|
| - ASSERT(reservations_[i] != kUninitializedReservation);
|
| + DCHECK(reservations_[i] != kUninitializedReservation);
|
| }
|
| isolate_->heap()->ReserveSpace(reservations_, &high_water_[0]);
|
| if (external_reference_decoder_ == NULL) {
|
| @@ -809,7 +809,7 @@ void Deserializer::DeserializePartial(Isolate* isolate, Object** root) {
|
|
|
| Deserializer::~Deserializer() {
|
| // TODO(svenpanne) Re-enable this assertion when v8 initialization is fixed.
|
| - // ASSERT(source_->AtEOF());
|
| + // DCHECK(source_->AtEOF());
|
| if (external_reference_decoder_) {
|
| delete external_reference_decoder_;
|
| external_reference_decoder_ = NULL;
|
| @@ -842,7 +842,7 @@ class StringTableInsertionKey : public HashTableKey {
|
| public:
|
| explicit StringTableInsertionKey(String* string)
|
| : string_(string), hash_(HashForObject(string)) {
|
| - ASSERT(string->IsInternalizedString());
|
| + DCHECK(string->IsInternalizedString());
|
| }
|
|
|
| virtual bool IsMatch(Object* string) {
|
| @@ -924,7 +924,7 @@ void Deserializer::ReadObject(int space_number,
|
| *write_back = obj;
|
| #ifdef DEBUG
|
| bool is_codespace = (space_number == CODE_SPACE);
|
| - ASSERT(obj->IsCode() == is_codespace);
|
| + DCHECK(obj->IsCode() == is_codespace);
|
| #endif
|
| }
|
|
|
| @@ -988,20 +988,20 @@ void Deserializer::ReadChunk(Object** current,
|
| new_object = ProcessBackRefInSerializedCode(new_object); \
|
| } \
|
| } else if (where == kBuiltin) { \
|
| - ASSERT(deserializing_user_code()); \
|
| + DCHECK(deserializing_user_code()); \
|
| int builtin_id = source_->GetInt(); \
|
| - ASSERT_LE(0, builtin_id); \
|
| - ASSERT_LT(builtin_id, Builtins::builtin_count); \
|
| + DCHECK_LE(0, builtin_id); \
|
| + DCHECK_LT(builtin_id, Builtins::builtin_count); \
|
| Builtins::Name name = static_cast<Builtins::Name>(builtin_id); \
|
| new_object = isolate->builtins()->builtin(name); \
|
| emit_write_barrier = false; \
|
| } else if (where == kAttachedReference) { \
|
| - ASSERT(deserializing_user_code()); \
|
| + DCHECK(deserializing_user_code()); \
|
| int index = source_->GetInt(); \
|
| new_object = attached_objects_->at(index); \
|
| emit_write_barrier = isolate->heap()->InNewSpace(new_object); \
|
| } else { \
|
| - ASSERT(where == kBackrefWithSkip); \
|
| + DCHECK(where == kBackrefWithSkip); \
|
| int skip = source_->GetInt(); \
|
| current = reinterpret_cast<Object**>( \
|
| reinterpret_cast<Address>(current) + skip); \
|
| @@ -1017,7 +1017,7 @@ void Deserializer::ReadChunk(Object** current,
|
| new_object = \
|
| reinterpret_cast<Object*>(new_code_object->instruction_start()); \
|
| } else { \
|
| - ASSERT(space_number == CODE_SPACE); \
|
| + DCHECK(space_number == CODE_SPACE); \
|
| Cell* cell = Cell::cast(new_object); \
|
| new_object = reinterpret_cast<Object*>(cell->ValueAddress()); \
|
| } \
|
| @@ -1132,7 +1132,7 @@ void Deserializer::ReadChunk(Object** current,
|
| SIXTEEN_CASES(kRootArrayConstants + kNoSkipDistance + 16) {
|
| int root_id = RootArrayConstantFromByteCode(data);
|
| Object* object = isolate->heap()->roots_array_start()[root_id];
|
| - ASSERT(!isolate->heap()->InNewSpace(object));
|
| + DCHECK(!isolate->heap()->InNewSpace(object));
|
| *current++ = object;
|
| break;
|
| }
|
| @@ -1144,7 +1144,7 @@ void Deserializer::ReadChunk(Object** current,
|
| current = reinterpret_cast<Object**>(
|
| reinterpret_cast<intptr_t>(current) + skip);
|
| Object* object = isolate->heap()->roots_array_start()[root_id];
|
| - ASSERT(!isolate->heap()->InNewSpace(object));
|
| + DCHECK(!isolate->heap()->InNewSpace(object));
|
| *current++ = object;
|
| break;
|
| }
|
| @@ -1152,7 +1152,7 @@ void Deserializer::ReadChunk(Object** current,
|
| case kRepeat: {
|
| int repeats = source_->GetInt();
|
| Object* object = current[-1];
|
| - ASSERT(!isolate->heap()->InNewSpace(object));
|
| + DCHECK(!isolate->heap()->InNewSpace(object));
|
| for (int i = 0; i < repeats; i++) current[i] = object;
|
| current += repeats;
|
| break;
|
| @@ -1167,7 +1167,7 @@ void Deserializer::ReadChunk(Object** current,
|
| FOUR_CASES(kConstantRepeat + 9) {
|
| int repeats = RepeatsForCode(data);
|
| Object* object = current[-1];
|
| - ASSERT(!isolate->heap()->InNewSpace(object));
|
| + DCHECK(!isolate->heap()->InNewSpace(object));
|
| for (int i = 0; i < repeats; i++) current[i] = object;
|
| current += repeats;
|
| break;
|
| @@ -1284,7 +1284,7 @@ void Deserializer::ReadChunk(Object** current,
|
| UNREACHABLE();
|
| }
|
| }
|
| - ASSERT_EQ(limit, current);
|
| + DCHECK_EQ(limit, current);
|
| }
|
|
|
|
|
| @@ -1406,7 +1406,7 @@ int PartialSerializer::PartialSnapshotCacheIndex(HeapObject* heap_object) {
|
| startup_serializer_->VisitPointer(reinterpret_cast<Object**>(&heap_object));
|
| // We don't recurse from the startup snapshot generator into the partial
|
| // snapshot generator.
|
| - ASSERT(length == isolate->serialize_partial_snapshot_cache_length() - 1);
|
| + DCHECK(length == isolate->serialize_partial_snapshot_cache_length() - 1);
|
| return length;
|
| }
|
|
|
| @@ -1548,7 +1548,7 @@ void PartialSerializer::SerializeObject(
|
| if (heap_object->IsMap()) {
|
| // The code-caches link to context-specific code objects, which
|
| // the startup and context serializes cannot currently handle.
|
| - ASSERT(Map::cast(heap_object)->code_cache() ==
|
| + DCHECK(Map::cast(heap_object)->code_cache() ==
|
| heap_object->GetHeap()->empty_fixed_array());
|
| }
|
|
|
| @@ -1574,10 +1574,10 @@ void PartialSerializer::SerializeObject(
|
| // Pointers from the partial snapshot to the objects in the startup snapshot
|
| // should go through the root array or through the partial snapshot cache.
|
| // If this is not the case you may have to add something to the root array.
|
| - ASSERT(!startup_serializer_->address_mapper()->IsMapped(heap_object));
|
| + DCHECK(!startup_serializer_->address_mapper()->IsMapped(heap_object));
|
| // All the internalized strings that the partial snapshot needs should be
|
| // either in the root table or in the partial snapshot cache.
|
| - ASSERT(!heap_object->IsInternalizedString());
|
| + DCHECK(!heap_object->IsInternalizedString());
|
|
|
| if (address_mapper_.IsMapped(heap_object)) {
|
| int space = SpaceOfObject(heap_object);
|
| @@ -1652,7 +1652,7 @@ void Serializer::ObjectSerializer::VisitPointers(Object** start,
|
| root_index != kInvalidRootIndex &&
|
| root_index < kRootArrayNumberOfConstantEncodings &&
|
| current_contents == current[-1]) {
|
| - ASSERT(!serializer_->isolate()->heap()->InNewSpace(current_contents));
|
| + DCHECK(!serializer_->isolate()->heap()->InNewSpace(current_contents));
|
| int repeat_count = 1;
|
| while (current < end - 1 && current[repeat_count] == current_contents) {
|
| repeat_count++;
|
| @@ -1810,7 +1810,7 @@ int Serializer::ObjectSerializer::OutputRawData(
|
| bytes_processed_so_far_ += to_skip;
|
| // This assert will fail if the reloc info gives us the target_address_address
|
| // locations in a non-ascending order. Luckily that doesn't happen.
|
| - ASSERT(to_skip >= 0);
|
| + DCHECK(to_skip >= 0);
|
| bool outputting_code = false;
|
| if (to_skip != 0 && code_object_ && !code_has_been_output_) {
|
| // Output the code all at once and fix later.
|
| @@ -1863,7 +1863,7 @@ int Serializer::SpaceOfObject(HeapObject* object) {
|
| for (int i = FIRST_SPACE; i <= LAST_SPACE; i++) {
|
| AllocationSpace s = static_cast<AllocationSpace>(i);
|
| if (object->GetHeap()->InSpace(object, s)) {
|
| - ASSERT(i < kNumberOfSpaces);
|
| + DCHECK(i < kNumberOfSpaces);
|
| return i;
|
| }
|
| }
|
| @@ -1928,7 +1928,7 @@ void CodeSerializer::SerializeObject(Object* o, HowToCode how_to_code,
|
|
|
| // The code-caches link to context-specific code objects, which
|
| // the startup and context serializes cannot currently handle.
|
| - ASSERT(!heap_object->IsMap() ||
|
| + DCHECK(!heap_object->IsMap() ||
|
| Map::cast(heap_object)->code_cache() ==
|
| heap_object->GetHeap()->empty_fixed_array());
|
|
|
| @@ -1941,7 +1941,7 @@ void CodeSerializer::SerializeObject(Object* o, HowToCode how_to_code,
|
| // TODO(yangguo) wire up stubs from stub cache.
|
| // TODO(yangguo) wire up global object.
|
| // TODO(yangguo) We cannot deal with different hash seeds yet.
|
| - ASSERT(!heap_object->IsHashTable());
|
| + DCHECK(!heap_object->IsHashTable());
|
|
|
| if (address_mapper_.IsMapped(heap_object)) {
|
| int space = SpaceOfObject(heap_object);
|
| @@ -1990,11 +1990,11 @@ void CodeSerializer::SerializeBuiltin(Code* builtin, HowToCode how_to_code,
|
| sink_->PutInt(skip, "SkipDistanceFromSerializeBuiltin");
|
| }
|
|
|
| - ASSERT((how_to_code == kPlain && where_to_point == kStartOfObject) ||
|
| + DCHECK((how_to_code == kPlain && where_to_point == kStartOfObject) ||
|
| (how_to_code == kFromCode && where_to_point == kInnerPointer));
|
| int builtin_index = builtin->builtin_index();
|
| - ASSERT_LT(builtin_index, Builtins::builtin_count);
|
| - ASSERT_LE(0, builtin_index);
|
| + DCHECK_LT(builtin_index, Builtins::builtin_count);
|
| + DCHECK_LE(0, builtin_index);
|
| sink_->Put(kBuiltin + how_to_code + where_to_point, "Builtin");
|
| sink_->PutInt(builtin_index, "builtin_index");
|
| }
|
| @@ -2008,7 +2008,7 @@ void CodeSerializer::SerializeSourceObject(HowToCode how_to_code,
|
| sink_->PutInt(skip, "SkipDistanceFromSerializeSourceObject");
|
| }
|
|
|
| - ASSERT(how_to_code == kPlain && where_to_point == kStartOfObject);
|
| + DCHECK(how_to_code == kPlain && where_to_point == kStartOfObject);
|
| sink_->Put(kAttachedReference + how_to_code + where_to_point, "Source");
|
| sink_->PutInt(kSourceObjectIndex, "kSourceObjectIndex");
|
| }
|
| @@ -2049,7 +2049,7 @@ SerializedCodeData::SerializedCodeData(List<byte>* payload, CodeSerializer* cs)
|
| DisallowHeapAllocation no_gc;
|
| int data_length = payload->length() + kHeaderEntries * kIntSize;
|
| byte* data = NewArray<byte>(data_length);
|
| - ASSERT(IsAligned(reinterpret_cast<intptr_t>(data), kPointerAlignment));
|
| + DCHECK(IsAligned(reinterpret_cast<intptr_t>(data), kPointerAlignment));
|
| CopyBytes(data + kHeaderEntries * kIntSize, payload->begin(),
|
| static_cast<size_t>(payload->length()));
|
| script_data_ = new ScriptData(data, data_length);
|
|
|