 Chromium Code Reviews
 Chromium Code Reviews Issue 2373983004:
  [turbofan] inline %StringIteratorPrototype%.next in JSBuiltinReducer.  (Closed)
    
  
    Issue 2373983004:
  [turbofan] inline %StringIteratorPrototype%.next in JSBuiltinReducer.  (Closed) 
  | OLD | NEW | 
|---|---|
| 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 #ifndef V8_SLOT_SET_H | 5 #ifndef V8_SLOT_SET_H | 
| 6 #define V8_SLOT_SET_H | 6 #define V8_SLOT_SET_H | 
| 7 | 7 | 
| 8 #include <stack> | 8 #include <stack> | 
| 9 | 9 | 
| 10 #include "src/allocation.h" | 10 #include "src/allocation.h" | 
| (...skipping 307 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 318 chunk_.SetValue(new Chunk(nullptr, kInitialBufferSize)); | 318 chunk_.SetValue(new Chunk(nullptr, kInitialBufferSize)); | 
| 319 } | 319 } | 
| 320 | 320 | 
| 321 ~TypedSlotSet() { | 321 ~TypedSlotSet() { | 
| 322 Chunk* chunk = chunk_.Value(); | 322 Chunk* chunk = chunk_.Value(); | 
| 323 while (chunk != nullptr) { | 323 while (chunk != nullptr) { | 
| 324 Chunk* next = chunk->next.Value(); | 324 Chunk* next = chunk->next.Value(); | 
| 325 delete chunk; | 325 delete chunk; | 
| 326 chunk = next; | 326 chunk = next; | 
| 327 } | 327 } | 
| 328 FreeToBeFreedChunks(); | |
| 
Benedikt Meurer
2016/09/29 13:04:27
What is this?
 | |
| 328 } | 329 } | 
| 329 | 330 | 
| 330 // The slot offset specifies a slot at address page_start_ + offset. | 331 // The slot offset specifies a slot at address page_start_ + offset. | 
| 331 // This method can only be called on the main thread. | 332 // This method can only be called on the main thread. | 
| 332 void Insert(SlotType type, uint32_t host_offset, uint32_t offset) { | 333 void Insert(SlotType type, uint32_t host_offset, uint32_t offset) { | 
| 333 TypedSlot slot(type, host_offset, offset); | 334 TypedSlot slot(type, host_offset, offset); | 
| 334 Chunk* top_chunk = chunk_.Value(); | 335 Chunk* top_chunk = chunk_.Value(); | 
| 335 if (!top_chunk) { | 336 if (!top_chunk) { | 
| 336 top_chunk = new Chunk(nullptr, kInitialBufferSize); | 337 top_chunk = new Chunk(nullptr, kInitialBufferSize); | 
| 337 chunk_.SetValue(top_chunk); | 338 chunk_.SetValue(top_chunk); | 
| (...skipping 110 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 448 Address page_start_; | 449 Address page_start_; | 
| 449 base::AtomicValue<Chunk*> chunk_; | 450 base::AtomicValue<Chunk*> chunk_; | 
| 450 base::Mutex to_be_freed_chunks_mutex_; | 451 base::Mutex to_be_freed_chunks_mutex_; | 
| 451 std::stack<Chunk*> to_be_freed_chunks_; | 452 std::stack<Chunk*> to_be_freed_chunks_; | 
| 452 }; | 453 }; | 
| 453 | 454 | 
| 454 } // namespace internal | 455 } // namespace internal | 
| 455 } // namespace v8 | 456 } // namespace v8 | 
| 456 | 457 | 
| 457 #endif // V8_SLOT_SET_H | 458 #endif // V8_SLOT_SET_H | 
| OLD | NEW |