diff options
author | Nay <dnpd.dd@gmail.com> | 2013-01-28 01:04:37 +0000 |
---|---|---|
committer | Nay <dnpd.dd@gmail.com> | 2013-01-28 01:04:37 +0000 |
commit | b404e0bec1d39a90a516ed935d882faa47e54a04 (patch) | |
tree | 575ae3ed3c0a631dc8a1b2ca2f824161c65e73b1 /dep/recastnavigation/Recast/RecastAlloc.cpp | |
parent | a3d07b5e6ac45c23ec4116028c4bccae9307083b (diff) | |
parent | da080ac4e796be6039a239b7e035ead02e73b333 (diff) |
Merge remote-tracking branch 'origin/master' into 4.3.4
Conflicts:
dep/PackageList.txt
src/server/game/Battlegrounds/Battleground.cpp
src/server/game/Combat/ThreatManager.cpp
src/server/game/Entities/Object/Object.cpp
src/server/game/Entities/Player/Player.cpp
src/server/game/Entities/Unit/Unit.cpp
src/server/game/Handlers/BattleGroundHandler.cpp
src/server/game/Movement/MovementGenerators/RandomMovementGenerator.cpp
src/server/game/Movement/MovementGenerators/TargetedMovementGenerator.cpp
src/server/game/Movement/Spline/MoveSplineInit.cpp
src/server/game/Spells/Auras/SpellAuraEffects.cpp
src/server/game/Spells/SpellEffects.cpp
src/server/game/World/World.cpp
src/server/game/World/World.h
src/server/scripts/EasternKingdoms/ZulGurub/boss_arlokk.cpp
src/server/scripts/EasternKingdoms/ZulGurub/instance_zulgurub.cpp
src/server/scripts/EasternKingdoms/ZulGurub/zulgurub.h
src/server/scripts/Spells/spell_druid.cpp
src/server/scripts/Spells/spell_mage.cpp
src/server/scripts/Spells/spell_paladin.cpp
src/server/scripts/Spells/spell_priest.cpp
src/server/scripts/Spells/spell_rogue.cpp
src/server/scripts/Spells/spell_shaman.cpp
src/server/scripts/Spells/spell_warlock.cpp
src/server/scripts/Spells/spell_warrior.cpp
src/tools/map_extractor/CMakeLists.txt
src/tools/map_extractor/System.cpp
src/tools/map_extractor/loadlib.cpp
src/tools/map_extractor/mpq_libmpq.cpp
src/tools/map_extractor/mpq_libmpq04.h
src/tools/vmap4_assembler/CMakeLists.txt
src/tools/vmap4_extractor/CMakeLists.txt
src/tools/vmap4_extractor/mpq_libmpq.cpp
src/tools/vmap4_extractor/mpq_libmpq04.h
Diffstat (limited to 'dep/recastnavigation/Recast/RecastAlloc.cpp')
-rw-r--r-- | dep/recastnavigation/Recast/RecastAlloc.cpp | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/dep/recastnavigation/Recast/RecastAlloc.cpp b/dep/recastnavigation/Recast/RecastAlloc.cpp new file mode 100644 index 00000000000..2c7396a1bfa --- /dev/null +++ b/dep/recastnavigation/Recast/RecastAlloc.cpp @@ -0,0 +1,67 @@ +// +// Copyright (c) 2009-2010 Mikko Mononen memon@inside.org +// +// 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. +// + +#include <stdlib.h> +#include <string.h> +#include "RecastAlloc.h" + +static void *rcAllocDefault(int size, rcAllocHint) +{ + return malloc(size); +} + +static void rcFreeDefault(void *ptr) +{ + free(ptr); +} + +static rcAllocFunc* sRecastAllocFunc = rcAllocDefault; +static rcFreeFunc* sRecastFreeFunc = rcFreeDefault; + +void rcAllocSetCustom(rcAllocFunc *allocFunc, rcFreeFunc *freeFunc) +{ + sRecastAllocFunc = allocFunc ? allocFunc : rcAllocDefault; + sRecastFreeFunc = freeFunc ? freeFunc : rcFreeDefault; +} + +void* rcAlloc(int size, rcAllocHint hint) +{ + return sRecastAllocFunc(size, hint); +} + +void rcFree(void* ptr) +{ + if (ptr) + sRecastFreeFunc(ptr); +} + + +void rcIntArray::resize(int n) +{ + if (n > m_cap) + { + if (!m_cap) m_cap = n; + while (m_cap < n) m_cap *= 2; + int* newData = (int*)rcAlloc(m_cap*sizeof(int), RC_ALLOC_TEMP); + if (m_size && newData) memcpy(newData, m_data, m_size*sizeof(int)); + rcFree(m_data); + m_data = newData; + } + m_size = n; +} + |