Chromium Code Reviews| Index: runtime/vm/zone.h |
| diff --git a/runtime/vm/zone.h b/runtime/vm/zone.h |
| index 565f3a046054c80905be2ad94f900637e68cb790..fbafa8922cac7a96f520f809d53fbd9e88981ebc 100644 |
| --- a/runtime/vm/zone.h |
| +++ b/runtime/vm/zone.h |
| @@ -16,10 +16,10 @@ namespace dart { |
| // chunks cannot be deallocated individually, but instead zones |
| // support deallocating all chunks in one fast operation. |
| -class BaseZone { |
| +class Zone { |
| private: |
| - BaseZone(); |
| - ~BaseZone(); // Delete all memory associated with the zone. |
| + Zone(); |
| + ~Zone(); // Delete all memory associated with the zone. |
| // Allocate an array sized to hold 'len' elements of type |
| // 'ElementType'. Checks for integer overflow when performing the |
| @@ -103,20 +103,24 @@ class BaseZone { |
| // List of large segments allocated in this zone; may be NULL. |
| Segment* large_segments_; |
| - friend class Zone; |
| + // Structure for managing handles allocation. |
| + VMHandles handles_; |
| + VMHandles* handles() { return &handles_; } |
| + |
| + friend class StackZone; |
| friend class ApiZone; |
| template<typename T, typename B> friend class BaseGrowableArray; |
| - DISALLOW_COPY_AND_ASSIGN(BaseZone); |
| + DISALLOW_COPY_AND_ASSIGN(Zone); |
| }; |
| -class Zone : public StackResource { |
| +class StackZone : public StackResource { |
| public: |
| // Create an empty zone and set is at the current zone for the Isolate. |
| - explicit Zone(BaseIsolate* isolate); |
| + explicit StackZone(BaseIsolate* isolate); |
| // Delete all memory associated with the zone. |
| - ~Zone(); |
| + ~StackZone(); |
| // Allocates an array sized to hold 'len' elements of type |
| // 'ElementType'. Checks for integer overflow when performing the |
| @@ -154,33 +158,31 @@ class Zone : public StackResource { |
| // Make a zone-allocated string based on printf format and args. |
| char* PrintToString(const char* format, ...) PRINTF_ATTRIBUTE(2, 3); |
| - VMHandles* handles() { return &handles_; } |
| + // TODO(tball): remove once zone refactoring is finished. |
| + VMHandles* handles() { return zone_.handles(); } |
| void VisitObjectPointers(ObjectPointerVisitor* visitor); |
| private: |
| - BaseZone* GetBaseZone() { return &zone_; } |
| - |
| - BaseZone zone_; |
| + Zone* GetBaseZone() { return &zone_; } |
|
siva
2012/10/05 18:31:58
ditto question about renaming this to GetZone
Tom Ball
2012/10/05 18:55:47
Done in next CL.
|
| - // Structure for managing handles allocation. |
| - VMHandles handles_; |
| + Zone zone_; |
| // Used for chaining zones in order to allow unwinding of stacks. |
| - Zone* previous_; |
| + StackZone* previous_; |
| template<typename T> friend class GrowableArray; |
| template<typename T> friend class ZoneGrowableArray; |
| - DISALLOW_IMPLICIT_CONSTRUCTORS(Zone); |
| + DISALLOW_IMPLICIT_CONSTRUCTORS(StackZone); |
| }; |
| -inline uword BaseZone::AllocUnsafe(intptr_t size) { |
| +inline uword Zone::AllocUnsafe(intptr_t size) { |
| ASSERT(size >= 0); |
| // Round up the requested size to fit the alignment. |
| if (size > (kIntptrMax - kAlignment)) { |
| - FATAL1("BaseZone::Alloc: 'size' is too large: size=%"Pd"", size); |
| + FATAL1("Zone::Alloc: 'size' is too large: size=%"Pd"", size); |
| } |
| size = Utils::RoundUp(size, kAlignment); |
| @@ -200,17 +202,17 @@ inline uword BaseZone::AllocUnsafe(intptr_t size) { |
| } |
| template <class ElementType> |
| -inline ElementType* BaseZone::Alloc(intptr_t len) { |
| +inline ElementType* Zone::Alloc(intptr_t len) { |
| const intptr_t element_size = sizeof(ElementType); |
| if (len > (kIntptrMax / element_size)) { |
| - FATAL2("BaseZone::Alloc: 'len' is too large: len=%"Pd", element_size=%"Pd, |
| + FATAL2("Zone::Alloc: 'len' is too large: len=%"Pd", element_size=%"Pd, |
| len, element_size); |
| } |
| return reinterpret_cast<ElementType*>(AllocUnsafe(len * element_size)); |
| } |
| template <class ElementType> |
| -inline ElementType* BaseZone::Realloc(ElementType* old_data, |
| +inline ElementType* Zone::Realloc(ElementType* old_data, |
| intptr_t old_len, |
| intptr_t new_len) { |
| ElementType* new_data = Alloc<ElementType>(new_len); |