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

Side by Side Diff: Source/platform/heap/ThreadState.h

Issue 840223002: Oilpan: Remove duplicated code between HeapPage and LargeObject (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 5 years, 10 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 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 31 matching lines...) Expand 10 before | Expand all | Expand 10 after
42 #include "wtf/Threading.h" 42 #include "wtf/Threading.h"
43 #include "wtf/ThreadingPrimitives.h" 43 #include "wtf/ThreadingPrimitives.h"
44 #include "wtf/Vector.h" 44 #include "wtf/Vector.h"
45 45
46 namespace v8 { 46 namespace v8 {
47 class Isolate; 47 class Isolate;
48 }; 48 };
49 49
50 namespace blink { 50 namespace blink {
51 51
52 class BaseHeap;
53 class BaseHeapPage; 52 class BaseHeapPage;
54 class CallbackStack; 53 class CallbackStack;
55 struct GCInfo; 54 struct GCInfo;
56 class HeapObjectHeader; 55 class HeapObjectHeader;
57 class PageMemoryRegion; 56 class PageMemoryRegion;
58 class PageMemory; 57 class PageMemory;
59 class PersistentNode; 58 class PersistentNode;
60 class SafePointBarrier; 59 class SafePointBarrier;
61 class SafePointAwareMutexLocker; 60 class SafePointAwareMutexLocker;
62 class ThreadHeap; 61 class ThreadHeap;
(...skipping 115 matching lines...) Expand 10 before | Expand all | Expand 10 after
178 H(CSSValue) 177 H(CSSValue)
179 178
180 #define TypedHeapEnumName(Type) Type##Heap, 179 #define TypedHeapEnumName(Type) Type##Heap,
181 180
182 enum TypedHeaps { 181 enum TypedHeaps {
183 GeneralHeap = 0, 182 GeneralHeap = 0,
184 VectorBackingHeap, 183 VectorBackingHeap,
185 InlineVectorBackingHeap, 184 InlineVectorBackingHeap,
186 HashTableBackingHeap, 185 HashTableBackingHeap,
187 FOR_EACH_TYPED_HEAP(TypedHeapEnumName) 186 FOR_EACH_TYPED_HEAP(TypedHeapEnumName)
187 LargeObjectHeap,
188 // Values used for iteration of heap segments. 188 // Values used for iteration of heap segments.
189 NumberOfHeaps, 189 NumberOfHeaps,
190 }; 190 };
191 191
192 class PLATFORM_EXPORT ThreadState { 192 class PLATFORM_EXPORT ThreadState {
193 WTF_MAKE_NONCOPYABLE(ThreadState); 193 WTF_MAKE_NONCOPYABLE(ThreadState);
194 public: 194 public:
195 // When garbage collecting we need to know whether or not there 195 // When garbage collecting we need to know whether or not there
196 // can be pointers to Blink GC managed objects on the stack for 196 // can be pointers to Blink GC managed objects on the stack for
197 // each thread. When threads reach a safe point they record 197 // each thread. When threads reach a safe point they record
(...skipping 258 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 456
457 void recordStackEnd(intptr_t* endOfStack) 457 void recordStackEnd(intptr_t* endOfStack)
458 { 458 {
459 m_endOfStack = endOfStack; 459 m_endOfStack = endOfStack;
460 } 460 }
461 461
462 // Get one of the heap structures for this thread. 462 // Get one of the heap structures for this thread.
463 // 463 //
464 // The heap is split into multiple heap parts based on object 464 // The heap is split into multiple heap parts based on object
465 // types. To get the index for a given type, use 465 // types. To get the index for a given type, use
466 // HeapTypeTrait<Type>::index. 466 // HeapIndexTrait<Type>::index.
467 ThreadHeap* heap(int index) const { return m_heaps[index]; } 467 ThreadHeap* heap(int heapIndex) const { return m_heaps[heapIndex]; }
468 468
469 #if ENABLE(ASSERT) || ENABLE(GC_PROFILE_MARKING) 469 #if ENABLE(ASSERT) || ENABLE(GC_PROFILE_MARKING)
470 // Infrastructure to determine if an address is within one of the 470 // Infrastructure to determine if an address is within one of the
471 // address ranges for the Blink heap. If the address is in the Blink 471 // address ranges for the Blink heap. If the address is in the Blink
472 // heap the containing heap page is returned. 472 // heap the containing heap page is returned.
473 BaseHeapPage* findPageFromAddress(Address); 473 BaseHeapPage* findPageFromAddress(Address);
474 BaseHeapPage* findPageFromAddress(void* pointer) { return findPageFromAddres s(reinterpret_cast<Address>(pointer)); } 474 BaseHeapPage* findPageFromAddress(void* pointer) { return findPageFromAddres s(reinterpret_cast<Address>(pointer)); }
475 #endif 475 #endif
476 476
477 // List of persistent roots allocated on the given thread. 477 // List of persistent roots allocated on the given thread.
(...skipping 247 matching lines...) Expand 10 before | Expand all | Expand 10 after
725 m_locked = false; 725 m_locked = false;
726 } 726 }
727 727
728 MutexBase& m_mutex; 728 MutexBase& m_mutex;
729 bool m_locked; 729 bool m_locked;
730 }; 730 };
731 731
732 } // namespace blink 732 } // namespace blink
733 733
734 #endif // ThreadState_h 734 #endif // ThreadState_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698