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

Side by Side Diff: include/core/SkTArray.h

Issue 1316123003: Style Change: SkNEW->new; SkDELETE->delete (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: 2015-08-26 (Wednesday) 15:59:00 EDT Created 5 years, 3 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 | « include/core/SkRefCnt.h ('k') | include/core/SkTDArray.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #ifndef SkTArray_DEFINED 8 #ifndef SkTArray_DEFINED
9 #define SkTArray_DEFINED 9 #define SkTArray_DEFINED
10 10
(...skipping 14 matching lines...) Expand all
25 inline void copy(SkTArray<T, true>* self, const T* array) { 25 inline void copy(SkTArray<T, true>* self, const T* array) {
26 memcpy(self->fMemArray, array, self->fCount * sizeof(T)); 26 memcpy(self->fMemArray, array, self->fCount * sizeof(T));
27 } 27 }
28 template<typename T> 28 template<typename T>
29 inline void copyAndDelete(SkTArray<T, true>* self, char* newMemArray) { 29 inline void copyAndDelete(SkTArray<T, true>* self, char* newMemArray) {
30 memcpy(newMemArray, self->fMemArray, self->fCount * sizeof(T)); 30 memcpy(newMemArray, self->fMemArray, self->fCount * sizeof(T));
31 } 31 }
32 32
33 template<typename T> 33 template<typename T>
34 inline void copy(SkTArray<T, false>* self, int dst, int src) { 34 inline void copy(SkTArray<T, false>* self, int dst, int src) {
35 SkNEW_PLACEMENT_ARGS(&self->fItemArray[dst], T, (self->fItemArray[src])); 35 new (&self->fItemArray[dst]) T(self->fItemArray[src]);
36 } 36 }
37 template<typename T> 37 template<typename T>
38 inline void copy(SkTArray<T, false>* self, const T* array) { 38 inline void copy(SkTArray<T, false>* self, const T* array) {
39 for (int i = 0; i < self->fCount; ++i) { 39 for (int i = 0; i < self->fCount; ++i) {
40 SkNEW_PLACEMENT_ARGS(self->fItemArray + i, T, (array[i])); 40 new (self->fItemArray + i) T(array[i]);
41 } 41 }
42 } 42 }
43 template<typename T> 43 template<typename T>
44 inline void copyAndDelete(SkTArray<T, false>* self, char* newMemArray) { 44 inline void copyAndDelete(SkTArray<T, false>* self, char* newMemArray) {
45 for (int i = 0; i < self->fCount; ++i) { 45 for (int i = 0; i < self->fCount; ++i) {
46 SkNEW_PLACEMENT_ARGS(newMemArray + sizeof(T) * i, T, (self->fItemArray[i ])); 46 new (newMemArray + sizeof(T) * i) T(self->fItemArray[i]);
47 self->fItemArray[i].~T(); 47 self->fItemArray[i].~T();
48 } 48 }
49 } 49 }
50 50
51 } 51 }
52 52
53 template <typename T, bool MEM_COPY> void* operator new(size_t, SkTArray<T, MEM_ COPY>*, int); 53 template <typename T, bool MEM_COPY> void* operator new(size_t, SkTArray<T, MEM_ COPY>*, int);
54 54
55 /** When MEM_COPY is true T will be bit copied when moved. 55 /** When MEM_COPY is true T will be bit copied when moved.
56 When MEM_COPY is false, T will be copy constructed / destructed. 56 When MEM_COPY is false, T will be copy constructed / destructed.
(...skipping 71 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 void reset(int n) { 128 void reset(int n) {
129 SkASSERT(n >= 0); 129 SkASSERT(n >= 0);
130 for (int i = 0; i < fCount; ++i) { 130 for (int i = 0; i < fCount; ++i) {
131 fItemArray[i].~T(); 131 fItemArray[i].~T();
132 } 132 }
133 // set fCount to 0 before calling checkRealloc so that no copy cons. are called. 133 // set fCount to 0 before calling checkRealloc so that no copy cons. are called.
134 fCount = 0; 134 fCount = 0;
135 this->checkRealloc(n); 135 this->checkRealloc(n);
136 fCount = n; 136 fCount = n;
137 for (int i = 0; i < fCount; ++i) { 137 for (int i = 0; i < fCount; ++i) {
138 SkNEW_PLACEMENT(fItemArray + i, T); 138 new (fItemArray + i) T;
139 } 139 }
140 } 140 }
141 141
142 /** 142 /**
143 * Resets to a copy of a C array. 143 * Resets to a copy of a C array.
144 */ 144 */
145 void reset(const T* array, int count) { 145 void reset(const T* array, int count) {
146 for (int i = 0; i < fCount; ++i) { 146 for (int i = 0; i < fCount; ++i) {
147 fItemArray[i].~T(); 147 fItemArray[i].~T();
148 } 148 }
(...skipping 24 matching lines...) Expand all
173 */ 173 */
174 bool empty() const { return !fCount; } 174 bool empty() const { return !fCount; }
175 175
176 /** 176 /**
177 * Adds 1 new default-initialized T value and returns it by reference. Note 177 * Adds 1 new default-initialized T value and returns it by reference. Note
178 * the reference only remains valid until the next call that adds or removes 178 * the reference only remains valid until the next call that adds or removes
179 * elements. 179 * elements.
180 */ 180 */
181 T& push_back() { 181 T& push_back() {
182 T* newT = reinterpret_cast<T*>(this->push_back_raw(1)); 182 T* newT = reinterpret_cast<T*>(this->push_back_raw(1));
183 SkNEW_PLACEMENT(newT, T); 183 new (newT) T;
184 return *newT; 184 return *newT;
185 } 185 }
186 186
187 /** 187 /**
188 * Version of above that uses a copy constructor to initialize the new item 188 * Version of above that uses a copy constructor to initialize the new item
189 */ 189 */
190 T& push_back(const T& t) { 190 T& push_back(const T& t) {
191 T* newT = reinterpret_cast<T*>(this->push_back_raw(1)); 191 T* newT = reinterpret_cast<T*>(this->push_back_raw(1));
192 SkNEW_PLACEMENT_ARGS(newT, T, (t)); 192 new (newT) T(t);
193 return *newT; 193 return *newT;
194 } 194 }
195 195
196 /** 196 /**
197 * Allocates n more default-initialized T values, and returns the address of 197 * Allocates n more default-initialized T values, and returns the address of
198 * the start of that new range. Note: this address is only valid until the 198 * the start of that new range. Note: this address is only valid until the
199 * next API call made on the array that might add or remove elements. 199 * next API call made on the array that might add or remove elements.
200 */ 200 */
201 T* push_back_n(int n) { 201 T* push_back_n(int n) {
202 SkASSERT(n >= 0); 202 SkASSERT(n >= 0);
203 T* newTs = reinterpret_cast<T*>(this->push_back_raw(n)); 203 T* newTs = reinterpret_cast<T*>(this->push_back_raw(n));
204 for (int i = 0; i < n; ++i) { 204 for (int i = 0; i < n; ++i) {
205 SkNEW_PLACEMENT(newTs + i, T); 205 new (newTs + i) T;
206 } 206 }
207 return newTs; 207 return newTs;
208 } 208 }
209 209
210 /** 210 /**
211 * Version of above that uses a copy constructor to initialize all n items 211 * Version of above that uses a copy constructor to initialize all n items
212 * to the same T. 212 * to the same T.
213 */ 213 */
214 T* push_back_n(int n, const T& t) { 214 T* push_back_n(int n, const T& t) {
215 SkASSERT(n >= 0); 215 SkASSERT(n >= 0);
216 T* newTs = reinterpret_cast<T*>(this->push_back_raw(n)); 216 T* newTs = reinterpret_cast<T*>(this->push_back_raw(n));
217 for (int i = 0; i < n; ++i) { 217 for (int i = 0; i < n; ++i) {
218 SkNEW_PLACEMENT_ARGS(newTs[i], T, (t)); 218 new (newTs[i]) T(t);
219 } 219 }
220 return newTs; 220 return newTs;
221 } 221 }
222 222
223 /** 223 /**
224 * Version of above that uses a copy constructor to initialize the n items 224 * Version of above that uses a copy constructor to initialize the n items
225 * to separate T values. 225 * to separate T values.
226 */ 226 */
227 T* push_back_n(int n, const T t[]) { 227 T* push_back_n(int n, const T t[]) {
228 SkASSERT(n >= 0); 228 SkASSERT(n >= 0);
229 this->checkRealloc(n); 229 this->checkRealloc(n);
230 for (int i = 0; i < n; ++i) { 230 for (int i = 0; i < n; ++i) {
231 SkNEW_PLACEMENT_ARGS(fItemArray + fCount + i, T, (t[i])); 231 new (fItemArray + fCount + i) T(t[i]);
232 } 232 }
233 fCount += n; 233 fCount += n;
234 return fItemArray + fCount - n; 234 return fItemArray + fCount - n;
235 } 235 }
236 236
237 /** 237 /**
238 * Removes the last element. Not safe to call when count() == 0. 238 * Removes the last element. Not safe to call when count() == 0.
239 */ 239 */
240 void pop_back() { 240 void pop_back() {
241 SkASSERT(fCount > 0); 241 SkASSERT(fCount > 0);
(...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after
541 SkSTArray& operator= (const INHERITED& array) { 541 SkSTArray& operator= (const INHERITED& array) {
542 INHERITED::operator=(array); 542 INHERITED::operator=(array);
543 return *this; 543 return *this;
544 } 544 }
545 545
546 private: 546 private:
547 SkAlignedSTStorage<N,T> fStorage; 547 SkAlignedSTStorage<N,T> fStorage;
548 }; 548 };
549 549
550 #endif 550 #endif
OLDNEW
« no previous file with comments | « include/core/SkRefCnt.h ('k') | include/core/SkTDArray.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698