From 585ef1e14a31bfdc83ec40f3362dc1d92c8de977 Mon Sep 17 00:00:00 2001 From: Jeff Brown Date: Wed, 20 Jul 2011 15:19:50 -0700 Subject: [PATCH] Remove unimplemented memory pool. dlmalloc does such a great job that we don't need a pool anyways. Change-Id: I105b28c4a5c491543959190c7c0a9de75a5b8052 --- include/utils/Pool.h | 71 ------------------------------------------- libs/utils/Android.mk | 1 - libs/utils/Pool.cpp | 37 ---------------------- 3 files changed, 109 deletions(-) delete mode 100644 include/utils/Pool.h delete mode 100644 libs/utils/Pool.cpp diff --git a/include/utils/Pool.h b/include/utils/Pool.h deleted file mode 100644 index 2ee768eef..000000000 --- a/include/utils/Pool.h +++ /dev/null @@ -1,71 +0,0 @@ -/* - * Copyright (C) 2010 The Android Open Source Project - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - -#ifndef UTILS_POOL_H -#define UTILS_POOL_H - -#include - -namespace android { - -class PoolImpl { -public: - PoolImpl(size_t objSize); - ~PoolImpl(); - - void* allocImpl(); - void freeImpl(void* obj); - -private: - size_t mObjSize; -}; - -/* - * A homogeneous typed memory pool for fixed size objects. - * Not intended to be thread-safe. - */ -template -class Pool : private PoolImpl { -public: - /* Creates an initially empty pool. */ - Pool() : PoolImpl(sizeof(T)) { } - - /* Destroys the pool. - * Assumes that the pool is empty. */ - ~Pool() { } - - /* Allocates an object from the pool, growing the pool if needed. */ - inline T* alloc() { - void* mem = allocImpl(); - if (! traits::has_trivial_ctor) { - return new (mem) T(); - } else { - return static_cast(mem); - } - } - - /* Frees an object from the pool. */ - inline void free(T* obj) { - if (! traits::has_trivial_dtor) { - obj->~T(); - } - freeImpl(obj); - } -}; - -} // namespace android - -#endif // UTILS_POOL_H diff --git a/libs/utils/Android.mk b/libs/utils/Android.mk index f6333576a..e4eadbd00 100644 --- a/libs/utils/Android.mk +++ b/libs/utils/Android.mk @@ -29,7 +29,6 @@ commonSources:= \ Flattenable.cpp \ LinearTransform.cpp \ ObbFile.cpp \ - Pool.cpp \ PropertyMap.cpp \ RefBase.cpp \ ResourceTypes.cpp \ diff --git a/libs/utils/Pool.cpp b/libs/utils/Pool.cpp deleted file mode 100644 index 8f18cb913..000000000 --- a/libs/utils/Pool.cpp +++ /dev/null @@ -1,37 +0,0 @@ -// -// Copyright 2010 The Android Open Source Project -// -// A simple memory pool. -// -#define LOG_TAG "Pool" - -//#define LOG_NDEBUG 0 - -#include -#include - -#include - -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