From 8d9fbec4ce29c9f5a56f06912e6e214c1cc6ed32 Mon Sep 17 00:00:00 2001 From: Shoghi Cervantes Date: Sun, 28 Dec 2014 02:19:46 +0100 Subject: [PATCH] Fixed memory leak issues on chunk generation under 32-bit hosts, fixed issue with generated chunks not having a provider. Closes #2419, fixes #2308, closes #2421 --- src/pocketmine/level/Level.php | 1 + src/pocketmine/level/generator/GenerationChunkManager.php | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/level/Level.php b/src/pocketmine/level/Level.php index 46c784562..f761b8c91 100644 --- a/src/pocketmine/level/Level.php +++ b/src/pocketmine/level/Level.php @@ -1755,6 +1755,7 @@ class Level implements ChunkManager, Metadatable{ public function generateChunkCallback($x, $z, FullChunk $chunk){ $oldChunk = $this->getChunk($x, $z, false); unset($this->chunkGenerationQueue[Level::chunkHash($x, $z)]); + $chunk->setProvider($this->provider); $this->setChunk($x, $z, $chunk); if($chunk !== null and ($oldChunk === null or $oldChunk->isPopulated() === false) and $chunk->isPopulated()){ $this->server->getPluginManager()->callEvent(new ChunkPopulateEvent($chunk)); diff --git a/src/pocketmine/level/generator/GenerationChunkManager.php b/src/pocketmine/level/generator/GenerationChunkManager.php index 40bf3a3ab..e9c1d3c0a 100644 --- a/src/pocketmine/level/generator/GenerationChunkManager.php +++ b/src/pocketmine/level/generator/GenerationChunkManager.php @@ -163,7 +163,7 @@ class GenerationChunkManager implements ChunkManager{ try{ $chunk = $this->getChunk($chunkX, $chunkZ); $chunk->setGenerated(true); - $this->changes["$chunkX:$chunkZ"] = $chunk; + $this->changes[Level::chunkHash($chunkX, $chunkZ)] = $chunk; }catch(\Exception $e){ } } @@ -172,7 +172,7 @@ class GenerationChunkManager implements ChunkManager{ try{ $chunk = $this->getChunk($chunkX, $chunkZ); $chunk->setPopulated(true); - $this->changes["$chunkX:$chunkZ"] = $chunk; + $this->changes[Level::chunkHash($chunkX, $chunkZ)] = $chunk; }catch(\Exception $e){ } }