| OLD | NEW |
| 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 312 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 323 */ | 323 */ |
| 324 template <typename T> class SkAutoTMalloc : SkNoncopyable { | 324 template <typename T> class SkAutoTMalloc : SkNoncopyable { |
| 325 public: | 325 public: |
| 326 /** Takes ownership of the ptr. The ptr must be a value which can be passed
to sk_free. */ | 326 /** Takes ownership of the ptr. The ptr must be a value which can be passed
to sk_free. */ |
| 327 explicit SkAutoTMalloc(T* ptr = NULL) { | 327 explicit SkAutoTMalloc(T* ptr = NULL) { |
| 328 fPtr = ptr; | 328 fPtr = ptr; |
| 329 } | 329 } |
| 330 | 330 |
| 331 /** Allocates space for 'count' Ts. */ | 331 /** Allocates space for 'count' Ts. */ |
| 332 explicit SkAutoTMalloc(size_t count) { | 332 explicit SkAutoTMalloc(size_t count) { |
| 333 fPtr = (T*)sk_malloc_flags(count * sizeof(T), SK_MALLOC_THROW | SK_MALLO
C_TEMP); | 333 fPtr = (T*)sk_malloc_flags(count * sizeof(T), SK_MALLOC_THROW); |
| 334 } | 334 } |
| 335 | 335 |
| 336 ~SkAutoTMalloc() { | 336 ~SkAutoTMalloc() { |
| 337 sk_free(fPtr); | 337 sk_free(fPtr); |
| 338 } | 338 } |
| 339 | 339 |
| 340 /** Resize the memory area pointed to by the current ptr preserving contents
. */ | 340 /** Resize the memory area pointed to by the current ptr preserving contents
. */ |
| 341 void realloc(size_t count) { | 341 void realloc(size_t count) { |
| 342 fPtr = reinterpret_cast<T*>(sk_realloc_throw(fPtr, count * sizeof(T))); | 342 fPtr = reinterpret_cast<T*>(sk_realloc_throw(fPtr, count * sizeof(T))); |
| 343 } | 343 } |
| 344 | 344 |
| 345 /** Resize the memory area pointed to by the current ptr without preserving
contents. */ | 345 /** Resize the memory area pointed to by the current ptr without preserving
contents. */ |
| 346 void reset(size_t count) { | 346 void reset(size_t count) { |
| 347 sk_free(fPtr); | 347 sk_free(fPtr); |
| 348 fPtr = (T*)sk_malloc_flags(count * sizeof(T), SK_MALLOC_THROW | SK_MALLO
C_TEMP); | 348 fPtr = (T*)sk_malloc_flags(count * sizeof(T), SK_MALLOC_THROW); |
| 349 } | 349 } |
| 350 | 350 |
| 351 T* get() const { return fPtr; } | 351 T* get() const { return fPtr; } |
| 352 | 352 |
| 353 operator T*() { | 353 operator T*() { |
| 354 return fPtr; | 354 return fPtr; |
| 355 } | 355 } |
| 356 | 356 |
| 357 operator const T*() const { | 357 operator const T*() const { |
| 358 return fPtr; | 358 return fPtr; |
| (...skipping 111 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 470 /** | 470 /** |
| 471 * Returns void* because this object does not initialize the | 471 * Returns void* because this object does not initialize the |
| 472 * memory. Use placement new for types that require a cons. | 472 * memory. Use placement new for types that require a cons. |
| 473 */ | 473 */ |
| 474 void* get() { return fStorage.get(); } | 474 void* get() { return fStorage.get(); } |
| 475 private: | 475 private: |
| 476 SkAlignedSStorage<sizeof(T)*N> fStorage; | 476 SkAlignedSStorage<sizeof(T)*N> fStorage; |
| 477 }; | 477 }; |
| 478 | 478 |
| 479 #endif | 479 #endif |
| OLD | NEW |