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

Side by Side Diff: src/mark-compact.cc

Issue 6765023: Fix a couple of TLS isolate accesses in mark-compact. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 9 years, 8 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 | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2006-2008 the V8 project authors. All rights reserved. 1 // Copyright 2006-2008 the V8 project authors. All rights reserved.
2 // Redistribution and use in source and binary forms, with or without 2 // Redistribution and use in source and binary forms, with or without
3 // modification, are permitted provided that the following conditions are 3 // modification, are permitted provided that the following conditions are
4 // met: 4 // met:
5 // 5 //
6 // * Redistributions of source code must retain the above copyright 6 // * Redistributions of source code must retain the above copyright
7 // notice, this list of conditions and the following disclaimer. 7 // notice, this list of conditions and the following disclaimer.
8 // * Redistributions in binary form must reproduce the above 8 // * Redistributions in binary form must reproduce the above
9 // copyright notice, this list of conditions and the following 9 // copyright notice, this list of conditions and the following
10 // disclaimer in the documentation and/or other materials provided 10 // disclaimer in the documentation and/or other materials provided
(...skipping 143 matching lines...) Expand 10 before | Expand all | Expand 10 after
154 154
155 void MarkCompactCollector::Finish() { 155 void MarkCompactCollector::Finish() {
156 #ifdef DEBUG 156 #ifdef DEBUG
157 ASSERT(state_ == SWEEP_SPACES || state_ == RELOCATE_OBJECTS); 157 ASSERT(state_ == SWEEP_SPACES || state_ == RELOCATE_OBJECTS);
158 state_ = IDLE; 158 state_ = IDLE;
159 #endif 159 #endif
160 // The stub cache is not traversed during GC; clear the cache to 160 // The stub cache is not traversed during GC; clear the cache to
161 // force lazy re-initialization of it. This must be done after the 161 // force lazy re-initialization of it. This must be done after the
162 // GC, because it relies on the new address of certain old space 162 // GC, because it relies on the new address of certain old space
163 // objects (empty string, illegal builtin). 163 // objects (empty string, illegal builtin).
164 Isolate::Current()->stub_cache()->Clear(); 164 heap_->isolate()->stub_cache()->Clear();
165 165
166 heap_->external_string_table_.CleanUp(); 166 heap_->external_string_table_.CleanUp();
167 167
168 // If we've just compacted old space there's no reason to check the 168 // If we've just compacted old space there's no reason to check the
169 // fragmentation limit. Just return. 169 // fragmentation limit. Just return.
170 if (HasCompacted()) return; 170 if (HasCompacted()) return;
171 171
172 // We compact the old generation on the next GC if it has gotten too 172 // We compact the old generation on the next GC if it has gotten too
173 // fragmented (ie, we could recover an expected amount of space by 173 // fragmented (ie, we could recover an expected amount of space by
174 // reclaiming the waste and free list blocks). 174 // reclaiming the waste and free list blocks).
(...skipping 388 matching lines...) Expand 10 before | Expand all | Expand 10 after
563 563
564 inline static bool HasSourceCode(SharedFunctionInfo* info) { 564 inline static bool HasSourceCode(SharedFunctionInfo* info) {
565 Object* undefined = HEAP->raw_unchecked_undefined_value(); 565 Object* undefined = HEAP->raw_unchecked_undefined_value();
566 return (info->script() != undefined) && 566 return (info->script() != undefined) &&
567 (reinterpret_cast<Script*>(info->script())->source() != undefined); 567 (reinterpret_cast<Script*>(info->script())->source() != undefined);
568 } 568 }
569 569
570 570
571 inline static bool IsCompiled(JSFunction* function) { 571 inline static bool IsCompiled(JSFunction* function) {
572 return function->unchecked_code() != 572 return function->unchecked_code() !=
573 Isolate::Current()->builtins()->builtin(Builtins::kLazyCompile); 573 function->GetIsolate()->builtins()->builtin(Builtins::kLazyCompile);
574 } 574 }
575 575
576 inline static bool IsCompiled(SharedFunctionInfo* function) { 576 inline static bool IsCompiled(SharedFunctionInfo* function) {
577 return function->unchecked_code() != 577 return function->unchecked_code() !=
578 Isolate::Current()->builtins()->builtin(Builtins::kLazyCompile); 578 function->GetIsolate()->builtins()->builtin(Builtins::kLazyCompile);
579 } 579 }
580 580
581 inline static bool IsFlushable(JSFunction* function) { 581 inline static bool IsFlushable(JSFunction* function) {
582 SharedFunctionInfo* shared_info = function->unchecked_shared(); 582 SharedFunctionInfo* shared_info = function->unchecked_shared();
583 583
584 // Code is either on stack, in compilation cache or referenced 584 // Code is either on stack, in compilation cache or referenced
585 // by optimized version of function. 585 // by optimized version of function.
586 if (function->unchecked_code()->IsMarked()) { 586 if (function->unchecked_code()->IsMarked()) {
587 shared_info->set_code_age(0); 587 shared_info->set_code_age(0);
588 return false; 588 return false;
(...skipping 2478 matching lines...) Expand 10 before | Expand all | Expand 10 after
3067 } 3067 }
3068 3068
3069 3069
3070 void MarkCompactCollector::Initialize() { 3070 void MarkCompactCollector::Initialize() {
3071 StaticPointersToNewGenUpdatingVisitor::Initialize(); 3071 StaticPointersToNewGenUpdatingVisitor::Initialize();
3072 StaticMarkingVisitor::Initialize(); 3072 StaticMarkingVisitor::Initialize();
3073 } 3073 }
3074 3074
3075 3075
3076 } } // namespace v8::internal 3076 } } // namespace v8::internal
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698