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

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

Issue 13982023: Do not dereference handles during relocation. (Closed) Base URL: https://v8.googlecode.com/svn/branches/bleeding_edge
Patch Set: Created 7 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
OLDNEW
1 // Copyright 2012 the V8 project authors. All rights reserved. 1 // Copyright 2012 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 3107 matching lines...) Expand 10 before | Expand all | Expand 10 after
3118 if (code != NULL) { 3118 if (code != NULL) {
3119 code->Iterate(visitor); 3119 code->Iterate(visitor);
3120 SetMarkBitsUnderInvalidatedCode(code, false); 3120 SetMarkBitsUnderInvalidatedCode(code, false);
3121 } 3121 }
3122 } 3122 }
3123 invalidated_code_.Rewind(0); 3123 invalidated_code_.Rewind(0);
3124 } 3124 }
3125 3125
3126 3126
3127 void MarkCompactCollector::EvacuateNewSpaceAndCandidates() { 3127 void MarkCompactCollector::EvacuateNewSpaceAndCandidates() {
3128 Heap::RelocationLock relocation_lock(heap());
3129
3128 bool code_slots_filtering_required; 3130 bool code_slots_filtering_required;
3129 { GCTracer::Scope gc_scope(tracer_, GCTracer::Scope::MC_SWEEP_NEWSPACE); 3131 { GCTracer::Scope gc_scope(tracer_, GCTracer::Scope::MC_SWEEP_NEWSPACE);
3130 code_slots_filtering_required = MarkInvalidatedCode(); 3132 code_slots_filtering_required = MarkInvalidatedCode();
3131 3133
3132 EvacuateNewSpace(); 3134 EvacuateNewSpace();
3133 } 3135 }
3134 3136
3135 3137
3136 { GCTracer::Scope gc_scope(tracer_, GCTracer::Scope::MC_EVACUATE_PAGES); 3138 { GCTracer::Scope gc_scope(tracer_, GCTracer::Scope::MC_EVACUATE_PAGES);
3137 EvacuatePages(); 3139 EvacuatePages();
(...skipping 993 matching lines...) Expand 10 before | Expand all | Expand 10 after
4131 while (buffer != NULL) { 4133 while (buffer != NULL) {
4132 SlotsBuffer* next_buffer = buffer->next(); 4134 SlotsBuffer* next_buffer = buffer->next();
4133 DeallocateBuffer(buffer); 4135 DeallocateBuffer(buffer);
4134 buffer = next_buffer; 4136 buffer = next_buffer;
4135 } 4137 }
4136 *buffer_address = NULL; 4138 *buffer_address = NULL;
4137 } 4139 }
4138 4140
4139 4141
4140 } } // namespace v8::internal 4142 } } // namespace v8::internal
OLDNEW
« src/heap.h ('K') | « src/hydrogen.cc ('k') | src/optimizing-compiler-thread.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698