// // Copyright 2002 The ANGLE Project Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // #ifndef COMPILER_TRANSLATOR_POOLALLOC_H_ #define COMPILER_TRANSLATOR_POOLALLOC_H_ // // This header defines the pool_allocator class that allows STL containers // to use the angle::PoolAllocator class by using the pool_allocator // class as the allocator (second) template argument. // // It also defines functions for managing the GlobalPoolAllocator used by the compiler. // #include <stddef.h> #include <string.h> #include <vector> #include "common/PoolAlloc.h" // // There could potentially be many pools with pops happening at // different times. But a simple use is to have a global pop // with everyone using the same global allocator. // extern angle::PoolAllocator *GetGlobalPoolAllocator(); extern void SetGlobalPoolAllocator(angle::PoolAllocator *poolAllocator); // // This STL compatible allocator is intended to be used as the allocator // parameter to templatized STL containers, like vector and map. // // It will use the pools for allocation, and not // do any deallocation, but will still do destruction. // template <class T> class pool_allocator { … }; #endif // COMPILER_TRANSLATOR_POOLALLOC_H_