• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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)19 PoolImpl::PoolImpl(size_t objSize) :
20     mObjSize(objSize) {
21 }
22 
~PoolImpl()23 PoolImpl::~PoolImpl() {
24 }
25 
allocImpl()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 
freeImpl(void * obj)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