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

Side by Side Diff: runtime/platform/growable_array.h

Issue 2974233002: VM: Re-format to use at most one newline between functions (Closed)
Patch Set: Rebase and merge Created 3 years, 5 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
« no previous file with comments | « runtime/platform/globals.h ('k') | runtime/platform/hashmap.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 // Defines growable array classes, that differ where they are allocated: 4 // Defines growable array classes, that differ where they are allocated:
5 // - GrowableArray: allocated on stack. 5 // - GrowableArray: allocated on stack.
6 // - ZoneGrowableArray: allocated in the zone. 6 // - ZoneGrowableArray: allocated in the zone.
7 // - MallocGrowableArray: allocates using malloc/realloc; free is only called 7 // - MallocGrowableArray: allocates using malloc/realloc; free is only called
8 // at destruction. 8 // at destruction.
9 9
10 #ifndef RUNTIME_PLATFORM_GROWABLE_ARRAY_H_ 10 #ifndef RUNTIME_PLATFORM_GROWABLE_ARRAY_H_
(...skipping 113 matching lines...) Expand 10 before | Expand all | Expand 10 after
124 intptr_t capacity_; 124 intptr_t capacity_;
125 T* data_; 125 T* data_;
126 Allocator* allocator_; // Used to (re)allocate the array. 126 Allocator* allocator_; // Used to (re)allocate the array.
127 127
128 // Used for growing the array. 128 // Used for growing the array.
129 void Resize(intptr_t new_length); 129 void Resize(intptr_t new_length);
130 130
131 DISALLOW_COPY_AND_ASSIGN(BaseGrowableArray); 131 DISALLOW_COPY_AND_ASSIGN(BaseGrowableArray);
132 }; 132 };
133 133
134
135 template <typename T, typename B, typename Allocator> 134 template <typename T, typename B, typename Allocator>
136 inline void BaseGrowableArray<T, B, Allocator>::Sort(int compare(const T*, 135 inline void BaseGrowableArray<T, B, Allocator>::Sort(int compare(const T*,
137 const T*)) { 136 const T*)) {
138 typedef int (*CompareFunction)(const void*, const void*); 137 typedef int (*CompareFunction)(const void*, const void*);
139 qsort(data_, length_, sizeof(T), reinterpret_cast<CompareFunction>(compare)); 138 qsort(data_, length_, sizeof(T), reinterpret_cast<CompareFunction>(compare));
140 } 139 }
141 140
142
143 template <typename T, typename B, typename Allocator> 141 template <typename T, typename B, typename Allocator>
144 void BaseGrowableArray<T, B, Allocator>::Resize(intptr_t new_length) { 142 void BaseGrowableArray<T, B, Allocator>::Resize(intptr_t new_length) {
145 if (new_length > capacity_) { 143 if (new_length > capacity_) {
146 intptr_t new_capacity = Utils::RoundUpToPowerOfTwo(new_length); 144 intptr_t new_capacity = Utils::RoundUpToPowerOfTwo(new_length);
147 T* new_data = 145 T* new_data =
148 allocator_->template Realloc<T>(data_, capacity_, new_capacity); 146 allocator_->template Realloc<T>(data_, capacity_, new_capacity);
149 ASSERT(new_data != NULL); 147 ASSERT(new_data != NULL);
150 data_ = new_data; 148 data_ = new_data;
151 capacity_ = new_capacity; 149 capacity_ = new_capacity;
152 } 150 }
153 length_ = new_length; 151 length_ = new_length;
154 } 152 }
155 153
156
157 template <typename T, typename B, typename Allocator> 154 template <typename T, typename B, typename Allocator>
158 void BaseGrowableArray<T, B, Allocator>::SetLength(intptr_t new_length) { 155 void BaseGrowableArray<T, B, Allocator>::SetLength(intptr_t new_length) {
159 if (new_length > capacity_) { 156 if (new_length > capacity_) {
160 T* new_data = allocator_->template Alloc<T>(new_length); 157 T* new_data = allocator_->template Alloc<T>(new_length);
161 ASSERT(new_data != NULL); 158 ASSERT(new_data != NULL);
162 data_ = new_data; 159 data_ = new_data;
163 capacity_ = new_length; 160 capacity_ = new_length;
164 } 161 }
165 length_ = new_length; 162 length_ = new_length;
166 } 163 }
167 164
168
169 class Malloc : public AllStatic { 165 class Malloc : public AllStatic {
170 public: 166 public:
171 template <class T> 167 template <class T>
172 static inline T* Alloc(intptr_t len) { 168 static inline T* Alloc(intptr_t len) {
173 return reinterpret_cast<T*>(malloc(len * sizeof(T))); 169 return reinterpret_cast<T*>(malloc(len * sizeof(T)));
174 } 170 }
175 171
176 template <class T> 172 template <class T>
177 static inline T* Realloc(T* old_array, intptr_t old_len, intptr_t new_len) { 173 static inline T* Realloc(T* old_array, intptr_t old_len, intptr_t new_len) {
178 return reinterpret_cast<T*>(realloc(old_array, new_len * sizeof(T))); 174 return reinterpret_cast<T*>(realloc(old_array, new_len * sizeof(T)));
179 } 175 }
180 176
181 template <class T> 177 template <class T>
182 static inline void Free(T* old_array, intptr_t old_len) { 178 static inline void Free(T* old_array, intptr_t old_len) {
183 free(old_array); 179 free(old_array);
184 } 180 }
185 }; 181 };
186 182
187
188 class EmptyBase {}; 183 class EmptyBase {};
189 184
190
191 template <typename T> 185 template <typename T>
192 class MallocGrowableArray : public BaseGrowableArray<T, EmptyBase, Malloc> { 186 class MallocGrowableArray : public BaseGrowableArray<T, EmptyBase, Malloc> {
193 public: 187 public:
194 explicit MallocGrowableArray(intptr_t initial_capacity) 188 explicit MallocGrowableArray(intptr_t initial_capacity)
195 : BaseGrowableArray<T, EmptyBase, Malloc>(initial_capacity, NULL) {} 189 : BaseGrowableArray<T, EmptyBase, Malloc>(initial_capacity, NULL) {}
196 MallocGrowableArray() : BaseGrowableArray<T, EmptyBase, Malloc>(NULL) {} 190 MallocGrowableArray() : BaseGrowableArray<T, EmptyBase, Malloc>(NULL) {}
197 }; 191 };
198 192
199 } // namespace dart 193 } // namespace dart
200 194
201 #endif // RUNTIME_PLATFORM_GROWABLE_ARRAY_H_ 195 #endif // RUNTIME_PLATFORM_GROWABLE_ARRAY_H_
OLDNEW
« no previous file with comments | « runtime/platform/globals.h ('k') | runtime/platform/hashmap.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698