From 23752548fee828c824fb174a19b1618d12cb8aed Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Wed, 30 Aug 2017 15:42:31 +0100 Subject: [PATCH] Address several LevelDB related crashdumps in the crash archive --- src/pocketmine/level/format/Chunk.php | 2 +- src/pocketmine/level/format/io/leveldb/LevelDB.php | 3 ++- src/pocketmine/tile/Tile.php | 4 ++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/src/pocketmine/level/format/Chunk.php b/src/pocketmine/level/format/Chunk.php index fe7636eef..3b8714198 100644 --- a/src/pocketmine/level/format/Chunk.php +++ b/src/pocketmine/level/format/Chunk.php @@ -634,7 +634,7 @@ class Chunk{ * @param Tile $tile */ public function addTile(Tile $tile){ - if($tile->closed){ + if($tile->isClosed()){ throw new \InvalidArgumentException("Attempted to add a garbage closed Tile to a chunk"); } $this->tiles[$tile->getId()] = $tile; diff --git a/src/pocketmine/level/format/io/leveldb/LevelDB.php b/src/pocketmine/level/format/io/leveldb/LevelDB.php index 37a4b9af6..fe8fc49bf 100644 --- a/src/pocketmine/level/format/io/leveldb/LevelDB.php +++ b/src/pocketmine/level/format/io/leveldb/LevelDB.php @@ -514,8 +514,9 @@ class LevelDB extends BaseLevelProvider{ private function writeTags(array $targets, string $index){ $nbt = new NBT(NBT::LITTLE_ENDIAN); $out = []; + /** @var Entity|Tile $target */ foreach($targets as $target){ - if(!$target->closed){ + if(!$target->isClosed()){ $target->saveNBT(); $out[] = $target->namedtag; } diff --git a/src/pocketmine/tile/Tile.php b/src/pocketmine/tile/Tile.php index ecb93639e..da43b1953 100644 --- a/src/pocketmine/tile/Tile.php +++ b/src/pocketmine/tile/Tile.php @@ -180,6 +180,10 @@ abstract class Tile extends Position{ $this->level->updateTiles[$this->id] = $this; } + public function isClosed() : bool{ + return $this->closed; + } + public function __destruct(){ $this->close(); }