| // | 
 | // Copyright 2010 The Android Open Source Project | 
 | // | 
 | // A simple memory pool. | 
 | // | 
 | #define LOG_TAG "Pool" | 
 |  | 
 | //#define LOG_NDEBUG 0 | 
 |  | 
 | #include <cutils/log.h> | 
 | #include <utils/Pool.h> | 
 |  | 
 | #include <stdlib.h> | 
 |  | 
 | namespace android { | 
 |  | 
 | // TODO Provide a real implementation of a pool.  This is just a stub for initial development. | 
 |  | 
 | PoolImpl::PoolImpl(size_t objSize) : | 
 |     mObjSize(objSize) { | 
 | } | 
 |  | 
 | PoolImpl::~PoolImpl() { | 
 | } | 
 |  | 
 | void* PoolImpl::allocImpl() { | 
 |     void* ptr = malloc(mObjSize); | 
 |     LOG_ALWAYS_FATAL_IF(ptr == NULL, "Cannot allocate new pool object."); | 
 |     return ptr; | 
 | } | 
 |  | 
 | void PoolImpl::freeImpl(void* obj) { | 
 |     LOG_ALWAYS_FATAL_IF(obj == NULL, "Caller attempted to free NULL pool object."); | 
 |     return free(obj); | 
 | } | 
 |  | 
 | } // namespace android |