void Reset() {}
- void *Allocate(size_t Size, size_t Alignment) { return malloc(Size); }
+ void *Allocate(size_t Size, size_t /*Alignment*/) { return malloc(Size); }
template <typename T>
T *Allocate() { return static_cast<T*>(malloc(sizeof(T))); }
/// allocating memory, and never deletes it until the entire block is dead. This
/// makes allocation speedy, but must only be used when the trade-off is ok.
class BumpPtrAllocator {
+ BumpPtrAllocator(const BumpPtrAllocator &); // do not implement
+ void operator=(const BumpPtrAllocator &); // do not implement
+
void *TheMemory;
public:
BumpPtrAllocator();
return static_cast<T*>(Allocate(sizeof(T),AlignOf<T>::Alignment));
}
- void Deallocate(void *Ptr) {}
+ template <typename T>
+ T *Allocate(size_t Num) {
+ return static_cast<T*>(Allocate(Num * sizeof(T), AlignOf<T>::Alignment));
+ }
+
+ void Deallocate(void * /*Ptr*/) {}
void PrintStats() const;
};