1 // 2 // Copyright 2010 The Android Open Source Project 3 // 4 // A simple memory pool. 5 // 6 #define LOG_TAG "Pool" 7 8 //#define LOG_NDEBUG 0 9 10 #include <cutils/log.h> 11 #include <utils/Pool.h> 12 13 #include <stdlib.h> 14 15 namespace android { 16 17 // TODO Provide a real implementation of a pool. This is just a stub for initial development. 18 PoolImpl(size_t objSize)19PoolImpl::PoolImpl(size_t objSize) : 20 mObjSize(objSize) { 21 } 22 ~PoolImpl()23PoolImpl::~PoolImpl() { 24 } 25 allocImpl()26void* PoolImpl::allocImpl() { 27 void* ptr = malloc(mObjSize); 28 LOG_ALWAYS_FATAL_IF(ptr == NULL, "Cannot allocate new pool object."); 29 return ptr; 30 } 31 freeImpl(void * obj)32void PoolImpl::freeImpl(void* obj) { 33 LOG_ALWAYS_FATAL_IF(obj == NULL, "Caller attempted to free NULL pool object."); 34 return free(obj); 35 } 36 37 } // namespace android 38