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

Side by Side Diff: src/objects-inl.h

Issue 316533002: Fix PathTracer. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 6 years, 6 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 | Annotate | Revision Log
« no previous file with comments | « src/heap.cc ('k') | test/cctest/test-heap.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 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 // Review notes: 5 // Review notes:
6 // 6 //
7 // - The use of macros in these inline functions may seem superfluous 7 // - The use of macros in these inline functions may seem superfluous
8 // but it is absolutely needed to make sure gcc generates optimal 8 // but it is absolutely needed to make sure gcc generates optimal
9 // code. gcc is not happy when attempting to inline too deep. 9 // code. gcc is not happy when attempting to inline too deep.
10 // 10 //
(...skipping 1310 matching lines...) Expand 10 before | Expand all | Expand 10 after
1321 return heap; 1321 return heap;
1322 } 1322 }
1323 1323
1324 1324
1325 Isolate* HeapObject::GetIsolate() { 1325 Isolate* HeapObject::GetIsolate() {
1326 return GetHeap()->isolate(); 1326 return GetHeap()->isolate();
1327 } 1327 }
1328 1328
1329 1329
1330 Map* HeapObject::map() { 1330 Map* HeapObject::map() {
1331 #ifdef DEBUG
1332 // Clear mark potentially added by PathTracer.
1333 uintptr_t raw_value =
1334 map_word().ToRawValue() & ~static_cast<uintptr_t>(PathTracer::kMarkTag);
1335 return MapWord::FromRawValue(raw_value).ToMap();
1336 #else
1331 return map_word().ToMap(); 1337 return map_word().ToMap();
1338 #endif
1332 } 1339 }
1333 1340
1334 1341
1335 void HeapObject::set_map(Map* value) { 1342 void HeapObject::set_map(Map* value) {
1336 set_map_word(MapWord::FromMap(value)); 1343 set_map_word(MapWord::FromMap(value));
1337 if (value != NULL) { 1344 if (value != NULL) {
1338 // TODO(1600) We are passing NULL as a slot because maps can never be on 1345 // TODO(1600) We are passing NULL as a slot because maps can never be on
1339 // evacuation candidate. 1346 // evacuation candidate.
1340 value->GetHeap()->incremental_marking()->RecordWrite(this, NULL, value); 1347 value->GetHeap()->incremental_marking()->RecordWrite(this, NULL, value);
1341 } 1348 }
(...skipping 5495 matching lines...) Expand 10 before | Expand all | Expand 10 after
6837 #undef READ_SHORT_FIELD 6844 #undef READ_SHORT_FIELD
6838 #undef WRITE_SHORT_FIELD 6845 #undef WRITE_SHORT_FIELD
6839 #undef READ_BYTE_FIELD 6846 #undef READ_BYTE_FIELD
6840 #undef WRITE_BYTE_FIELD 6847 #undef WRITE_BYTE_FIELD
6841 #undef NOBARRIER_READ_BYTE_FIELD 6848 #undef NOBARRIER_READ_BYTE_FIELD
6842 #undef NOBARRIER_WRITE_BYTE_FIELD 6849 #undef NOBARRIER_WRITE_BYTE_FIELD
6843 6850
6844 } } // namespace v8::internal 6851 } } // namespace v8::internal
6845 6852
6846 #endif // V8_OBJECTS_INL_H_ 6853 #endif // V8_OBJECTS_INL_H_
OLDNEW
« no previous file with comments | « src/heap.cc ('k') | test/cctest/test-heap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698