Home | History | Annotate | Download | only in utils
      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 
     19 PoolImpl::PoolImpl(size_t objSize) :
     20     mObjSize(objSize) {
     21 }
     22 
     23 PoolImpl::~PoolImpl() {
     24 }
     25 
     26 void* PoolImpl::allocImpl() {
     27     void* ptr = malloc(mObjSize);
     28     LOG_ALWAYS_FATAL_IF(ptr == NULL, "Cannot allocate new pool object.");
     29     return ptr;
     30 }
     31 
     32 void 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