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

Side by Side Diff: include/private/SkTemplates.h

Issue 1516833003: Switch SkAutoMalloc to SkAutoTMalloc to avoid cast (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Go back to patch set 3 Created 5 years 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/effects/SkColorCubeFilter.h ('k') | samplecode/SampleApp.cpp » ('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 /* 2 /*
3 * Copyright 2006 The Android Open Source Project 3 * Copyright 2006 The Android Open Source Project
4 * 4 *
5 * Use of this source code is governed by a BSD-style license that can be 5 * Use of this source code is governed by a BSD-style license that can be
6 * found in the LICENSE file. 6 * found in the LICENSE file.
7 */ 7 */
8 8
9 9
10 #ifndef SkTemplates_DEFINED 10 #ifndef SkTemplates_DEFINED
(...skipping 254 matching lines...) Expand 10 before | Expand all | Expand 10 after
265 ~SkAutoTMalloc() { 265 ~SkAutoTMalloc() {
266 sk_free(fPtr); 266 sk_free(fPtr);
267 } 267 }
268 268
269 /** Resize the memory area pointed to by the current ptr preserving contents . */ 269 /** Resize the memory area pointed to by the current ptr preserving contents . */
270 void realloc(size_t count) { 270 void realloc(size_t count) {
271 fPtr = reinterpret_cast<T*>(sk_realloc_throw(fPtr, count * sizeof(T))); 271 fPtr = reinterpret_cast<T*>(sk_realloc_throw(fPtr, count * sizeof(T)));
272 } 272 }
273 273
274 /** Resize the memory area pointed to by the current ptr without preserving contents. */ 274 /** Resize the memory area pointed to by the current ptr without preserving contents. */
275 void reset(size_t count) { 275 T* reset(size_t count) {
276 sk_free(fPtr); 276 sk_free(fPtr);
277 fPtr = (T*)sk_malloc_flags(count * sizeof(T), SK_MALLOC_THROW); 277 fPtr = (T*)sk_malloc_flags(count * sizeof(T), SK_MALLOC_THROW);
278 return fPtr;
278 } 279 }
279 280
280 T* get() const { return fPtr; } 281 T* get() const { return fPtr; }
281 282
282 operator T*() { 283 operator T*() {
283 return fPtr; 284 return fPtr;
284 } 285 }
285 286
286 operator const T*() const { 287 operator const T*() const {
287 return fPtr; 288 return fPtr;
288 } 289 }
289 290
290 T& operator[](int index) { 291 T& operator[](int index) {
291 return fPtr[index]; 292 return fPtr[index];
292 } 293 }
293 294
294 const T& operator[](int index) const { 295 const T& operator[](int index) const {
295 return fPtr[index]; 296 return fPtr[index];
296 } 297 }
297 298
298 /** 299 /**
300 * Releases the block back to the heap
301 */
302 void free() {
303 this->reset(0);
304 }
305
306 /**
299 * Transfer ownership of the ptr to the caller, setting the internal 307 * Transfer ownership of the ptr to the caller, setting the internal
300 * pointer to NULL. Note that this differs from get(), which also returns 308 * pointer to NULL. Note that this differs from get(), which also returns
301 * the pointer, but it does not transfer ownership. 309 * the pointer, but it does not transfer ownership.
302 */ 310 */
303 T* detach() { 311 T* detach() {
304 T* ptr = fPtr; 312 T* ptr = fPtr;
305 fPtr = NULL; 313 fPtr = NULL;
306 return ptr; 314 return ptr;
307 } 315 }
308 316
(...skipping 133 matching lines...) Expand 10 before | Expand all | Expand 10 after
442 * Returns void* because this object does not initialize the 450 * Returns void* because this object does not initialize the
443 * memory. Use placement new for types that require a cons. 451 * memory. Use placement new for types that require a cons.
444 */ 452 */
445 void* get() { return fStorage.get(); } 453 void* get() { return fStorage.get(); }
446 const void* get() const { return fStorage.get(); } 454 const void* get() const { return fStorage.get(); }
447 private: 455 private:
448 SkAlignedSStorage<sizeof(T)*N> fStorage; 456 SkAlignedSStorage<sizeof(T)*N> fStorage;
449 }; 457 };
450 458
451 #endif 459 #endif
OLDNEW
« no previous file with comments | « include/effects/SkColorCubeFilter.h ('k') | samplecode/SampleApp.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698