Home | History | Annotate | Download | only in pathops
      1 /*
      2  * Copyright 2014 Google Inc.
      3  *
      4  * Use of this source code is governed by a BSD-style license that can be
      5  * found in the LICENSE file.
      6  */
      7 #ifndef SkOpTAllocator_DEFINED
      8 #define SkOpTAllocator_DEFINED
      9 
     10 #include "SkChunkAlloc.h"
     11 
     12 // T is SkOpAngle2, SkOpSpan2, or SkOpSegment2
     13 template<typename T>
     14 class SkOpTAllocator {
     15 public:
     16     static T* Allocate(SkChunkAlloc* allocator) {
     17         void* ptr = allocator->allocThrow(sizeof(T));
     18         T* record = (T*) ptr;
     19         return record;
     20     }
     21 
     22     static T* AllocateArray(SkChunkAlloc* allocator, int count) {
     23         void* ptr = allocator->allocThrow(sizeof(T) * count);
     24         T* record = (T*) ptr;
     25         return record;
     26     }
     27 
     28     static T* New(SkChunkAlloc* allocator) {
     29         return new (Allocate(allocator)) T();
     30     }
     31 };
     32 
     33 #endif
     34