added simple poolallocator, increased version to 2.57

This commit is contained in:
ejcoumans
2007-09-08 06:02:55 +00:00
parent 87df3d0f32
commit be8cc0bc24
4 changed files with 84 additions and 12 deletions

View File

@@ -1,3 +1,3 @@
Bullet Collision Detection and Physics Library version 2.56
Bullet Collision Detection and Physics Library version 2.57
http://bullet.sourceforge.net

20
configure vendored
View File

@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.59 for bullet 2.56.
# Generated by GNU Autoconf 2.59 for bullet 2.57.
#
# Report bugs to <bullet@erwincoumans.com>.
#
@@ -271,8 +271,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='bullet'
PACKAGE_TARNAME='bullet'
PACKAGE_VERSION='2.56'
PACKAGE_STRING='bullet 2.56'
PACKAGE_VERSION='2.57'
PACKAGE_STRING='bullet 2.57'
PACKAGE_BUGREPORT='bullet@erwincoumans.com'
ac_unique_file="mk/jam/build.jam"
@@ -790,7 +790,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
\`configure' configures bullet 2.56 to adapt to many kinds of systems.
\`configure' configures bullet 2.57 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -855,7 +855,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
short | recursive ) echo "Configuration of bullet 2.56:";;
short | recursive ) echo "Configuration of bullet 2.57:";;
esac
cat <<\_ACEOF
@@ -980,7 +980,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
bullet configure 2.56
bullet configure 2.57
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -994,7 +994,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
It was created by bullet $as_me 2.56, which was
It was created by bullet $as_me 2.57, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -9898,7 +9898,7 @@ cs_jamconfig_text="${cs_jamconfig_text}PACKAGE_NAME ?= \"$PACKAGE_NAME\" ;
"
cs_jamconfig_text="${cs_jamconfig_text}PACKAGE_COPYRIGHT ?= \"$PACKAGE_COPYRIGHT\" ;
"
for cs_veritem in 2 56; do
for cs_veritem in 2 57; do
cs_jamconfig_text="${cs_jamconfig_text}PACKAGE_VERSION_LIST += \"$cs_veritem\" ;
"
done
@@ -10275,7 +10275,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
This file was extended by bullet $as_me 2.56, which was
This file was extended by bullet $as_me 2.57, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -10338,7 +10338,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
bullet config.status 2.56
bullet config.status 2.57
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"

View File

@@ -9,7 +9,7 @@ AC_PREREQ([2.54])
#----------------------------------------------------------------------------
AC_INIT(
[bullet],
[2.56],
[2.57],
[bullet@erwincoumans.com])
CS_PACKAGEINFO(
[Bullet Continuous Collision Detection and Physics Library],

View File

@@ -0,0 +1,72 @@
/*
Copyright (c) 2003-2006 Gino van den Bergen / Erwin Coumans http://continuousphysics.com/Bullet/
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it freely,
subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not claim that you wrote the original software. If you use this software in a product, an acknowledgment in the product documentation would be appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
*/
#ifndef _BT_POOL_ALLOCATOR_H
#define _BT_POOL_ALLOCATOR_H
#include "btScalar.h"
class btPoolAllocator
{
int m_elemSize;
int m_maxElements;
int m_freeCount;
void* m_firstFree;
unsigned char* m_pool;
public:
btPoolAllocator(int elemSize, int maxElements)
:m_elemSize(elemSize),
m_maxElements(maxElements)
{
m_pool = new unsigned char[m_elemSize*m_maxElements];
unsigned char* p = m_pool;
m_firstFree = p;
m_freeCount = m_maxElements;
int count = m_maxElements;
while (--count) {
*(void**)p = (p + m_elemSize);
p += m_elemSize;
}
*(void**)p = 0;
}
void* allocate(int size)
{
btAssert(!size || size<=m_elemSize);
btAssert(m_freeCount>0);
void* result = m_firstFree;
m_firstFree = *(void**)m_firstFree;
--m_freeCount;
return result;
}
void free(void* ptr)
{
if (ptr) {
btAssert((unsigned char*)ptr >= m_pool && (unsigned char*)ptr < m_pool + m_maxElements * m_elemSize);
*(void**)ptr = m_firstFree;
m_firstFree = ptr;
++m_freeCount;
}
}
};
#endif //_BT_POOL_ALLOCATOR_H