Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(3)

Side by Side Diff: src/snapshot/deserializer.cc

Issue 2381843002: Add Smi::Zero and replace all Smi::FromInt(0) calls (Closed)
Patch Set: Mark Smi::kZero as V8_EXPORT_PRIVATE Created 4 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/s390/macro-assembler-s390.cc ('k') | src/snapshot/serializer-common.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2016 the V8 project authors. All rights reserved. 1 // Copyright 2016 the V8 project authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #include "src/snapshot/deserializer.h" 5 #include "src/snapshot/deserializer.h"
6 6
7 #include "src/bootstrapper.h" 7 #include "src/bootstrapper.h"
8 #include "src/external-reference-table.h" 8 #include "src/external-reference-table.h"
9 #include "src/heap/heap.h" 9 #include "src/heap/heap.h"
10 #include "src/isolate.h" 10 #include "src/isolate.h"
(...skipping 81 matching lines...) Expand 10 before | Expand all | Expand 10 after
92 isolate_->heap()->RepairFreeListsAfterDeserialization(); 92 isolate_->heap()->RepairFreeListsAfterDeserialization();
93 isolate_->heap()->IterateWeakRoots(this, VISIT_ALL); 93 isolate_->heap()->IterateWeakRoots(this, VISIT_ALL);
94 DeserializeDeferredObjects(); 94 DeserializeDeferredObjects();
95 FlushICacheForNewIsolate(); 95 FlushICacheForNewIsolate();
96 } 96 }
97 97
98 isolate_->heap()->set_native_contexts_list( 98 isolate_->heap()->set_native_contexts_list(
99 isolate_->heap()->undefined_value()); 99 isolate_->heap()->undefined_value());
100 // The allocation site list is build during root iteration, but if no sites 100 // The allocation site list is build during root iteration, but if no sites
101 // were encountered then it needs to be initialized to undefined. 101 // were encountered then it needs to be initialized to undefined.
102 if (isolate_->heap()->allocation_sites_list() == Smi::FromInt(0)) { 102 if (isolate_->heap()->allocation_sites_list() == Smi::kZero) {
103 isolate_->heap()->set_allocation_sites_list( 103 isolate_->heap()->set_allocation_sites_list(
104 isolate_->heap()->undefined_value()); 104 isolate_->heap()->undefined_value());
105 } 105 }
106 106
107 // Issue code events for newly deserialized code objects. 107 // Issue code events for newly deserialized code objects.
108 LOG_CODE_EVENT(isolate_, LogCodeObjects()); 108 LOG_CODE_EVENT(isolate_, LogCodeObjects());
109 LOG_CODE_EVENT(isolate_, LogBytecodeHandlers()); 109 LOG_CODE_EVENT(isolate_, LogBytecodeHandlers());
110 LOG_CODE_EVENT(isolate_, LogCompiledFunctions()); 110 LOG_CODE_EVENT(isolate_, LogCompiledFunctions());
111 } 111 }
112 112
(...skipping 157 matching lines...) Expand 10 before | Expand all | Expand 10 after
270 } 270 }
271 } 271 }
272 if (obj->IsAllocationSite()) { 272 if (obj->IsAllocationSite()) {
273 DCHECK(obj->IsAllocationSite()); 273 DCHECK(obj->IsAllocationSite());
274 // Allocation sites are present in the snapshot, and must be linked into 274 // Allocation sites are present in the snapshot, and must be linked into
275 // a list at deserialization time. 275 // a list at deserialization time.
276 AllocationSite* site = AllocationSite::cast(obj); 276 AllocationSite* site = AllocationSite::cast(obj);
277 // TODO(mvstanton): consider treating the heap()->allocation_sites_list() 277 // TODO(mvstanton): consider treating the heap()->allocation_sites_list()
278 // as a (weak) root. If this root is relocated correctly, this becomes 278 // as a (weak) root. If this root is relocated correctly, this becomes
279 // unnecessary. 279 // unnecessary.
280 if (isolate_->heap()->allocation_sites_list() == Smi::FromInt(0)) { 280 if (isolate_->heap()->allocation_sites_list() == Smi::kZero) {
281 site->set_weak_next(isolate_->heap()->undefined_value()); 281 site->set_weak_next(isolate_->heap()->undefined_value());
282 } else { 282 } else {
283 site->set_weak_next(isolate_->heap()->allocation_sites_list()); 283 site->set_weak_next(isolate_->heap()->allocation_sites_list());
284 } 284 }
285 isolate_->heap()->set_allocation_sites_list(site); 285 isolate_->heap()->set_allocation_sites_list(site);
286 } else if (obj->IsCode()) { 286 } else if (obj->IsCode()) {
287 // We flush all code pages after deserializing the startup snapshot. In that 287 // We flush all code pages after deserializing the startup snapshot. In that
288 // case, we only need to remember code objects in the large object space. 288 // case, we only need to remember code objects in the large object space.
289 // When deserializing user code, remember each individual code object. 289 // When deserializing user code, remember each individual code object.
290 if (deserializing_user_code() || space == LO_SPACE) { 290 if (deserializing_user_code() || space == LO_SPACE) {
(...skipping 534 matching lines...) Expand 10 before | Expand all | Expand 10 after
825 825
826 default: 826 default:
827 CHECK(false); 827 CHECK(false);
828 } 828 }
829 } 829 }
830 CHECK_EQ(limit, current); 830 CHECK_EQ(limit, current);
831 return true; 831 return true;
832 } 832 }
833 } // namespace internal 833 } // namespace internal
834 } // namespace v8 834 } // namespace v8
OLDNEW
« no previous file with comments | « src/s390/macro-assembler-s390.cc ('k') | src/snapshot/serializer-common.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698