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

Side by Side Diff: runtime/vm/pages.cc

Issue 2583673002: When creating a JIT app snapshot, don't recreate the VM isolate snapshot. (Closed)
Patch Set: Created 4 years 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
OLDNEW
1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 #include "vm/pages.h" 5 #include "vm/pages.h"
6 6
7 #include "platform/assert.h" 7 #include "platform/assert.h"
8 #include "vm/compiler_stats.h" 8 #include "vm/compiler_stats.h"
9 #include "vm/gc_marker.h" 9 #include "vm/gc_marker.h"
10 #include "vm/gc_sweeper.h" 10 #include "vm/gc_sweeper.h"
(...skipping 121 matching lines...) Expand 10 before | Expand all | Expand 10 after
132 } 132 }
133 obj_addr = next_obj_addr; 133 obj_addr = next_obj_addr;
134 } 134 }
135 ASSERT(obj_addr == end_addr); 135 ASSERT(obj_addr == end_addr);
136 } 136 }
137 return Object::null(); 137 return Object::null();
138 } 138 }
139 139
140 140
141 void HeapPage::WriteProtect(bool read_only) { 141 void HeapPage::WriteProtect(bool read_only) {
142 ASSERT(!embedder_allocated());
143
142 VirtualMemory::Protection prot; 144 VirtualMemory::Protection prot;
143 if (read_only) { 145 if (read_only) {
144 if (type_ == kExecutable) { 146 if (type_ == kExecutable) {
145 prot = VirtualMemory::kReadExecute; 147 prot = VirtualMemory::kReadExecute;
146 } else { 148 } else {
147 prot = VirtualMemory::kReadOnly; 149 prot = VirtualMemory::kReadOnly;
148 } 150 }
149 } else { 151 } else {
150 prot = VirtualMemory::kReadWrite; 152 prot = VirtualMemory::kReadWrite;
151 } 153 }
(...skipping 941 matching lines...) Expand 10 before | Expand all | Expand 10 after
1093 first = &exec_pages_; 1095 first = &exec_pages_;
1094 tail = &exec_pages_tail_; 1096 tail = &exec_pages_tail_;
1095 } else { 1097 } else {
1096 page->type_ = HeapPage::kReadOnlyData; 1098 page->type_ = HeapPage::kReadOnlyData;
1097 first = &pages_; 1099 first = &pages_;
1098 tail = &pages_tail_; 1100 tail = &pages_tail_;
1099 } 1101 }
1100 if (*first == NULL) { 1102 if (*first == NULL) {
1101 *first = page; 1103 *first = page;
1102 } else { 1104 } else {
1105 if (is_executable && FLAG_write_protect_code) {
1106 (*tail)->WriteProtect(false);
1107 }
1103 (*tail)->set_next(page); 1108 (*tail)->set_next(page);
1109 if (is_executable && FLAG_write_protect_code) {
1110 (*tail)->WriteProtect(true);
1111 }
1104 } 1112 }
1105 (*tail) = page; 1113 (*tail) = page;
1106 } 1114 }
1107 1115
1108 1116
1109 PageSpaceController::PageSpaceController(Heap* heap, 1117 PageSpaceController::PageSpaceController(Heap* heap,
1110 int heap_growth_ratio, 1118 int heap_growth_ratio,
1111 int heap_growth_max, 1119 int heap_growth_max,
1112 int garbage_collection_time_ratio) 1120 int garbage_collection_time_ratio)
1113 : heap_(heap), 1121 : heap_(heap),
(...skipping 147 matching lines...) Expand 10 before | Expand all | Expand 10 after
1261 return 0; 1269 return 0;
1262 } else { 1270 } else {
1263 ASSERT(total_time >= gc_time); 1271 ASSERT(total_time >= gc_time);
1264 int result = static_cast<int>( 1272 int result = static_cast<int>(
1265 (static_cast<double>(gc_time) / static_cast<double>(total_time)) * 100); 1273 (static_cast<double>(gc_time) / static_cast<double>(total_time)) * 100);
1266 return result; 1274 return result;
1267 } 1275 }
1268 } 1276 }
1269 1277
1270 } // namespace dart 1278 } // namespace dart
OLDNEW
« no previous file with comments | « runtime/vm/dart_api_impl.cc ('k') | runtime/vm/stub_code.h » ('j') | runtime/vm/stub_code.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698