From 82974e027143e4a6d59749fe03056861ada84b77 Mon Sep 17 00:00:00 2001 From: "Dylan K. Taylor" Date: Mon, 6 May 2019 17:28:56 +0100 Subject: [PATCH] NullSessionHandler: possibly premature optimization --- src/pocketmine/network/mcpe/NetworkSession.php | 2 +- .../network/mcpe/handler/LoginSessionHandler.php | 2 +- .../network/mcpe/handler/NullSessionHandler.php | 11 ++++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/pocketmine/network/mcpe/NetworkSession.php b/src/pocketmine/network/mcpe/NetworkSession.php index 2038e073da..bf53852f97 100644 --- a/src/pocketmine/network/mcpe/NetworkSession.php +++ b/src/pocketmine/network/mcpe/NetworkSession.php @@ -420,7 +420,7 @@ class NetworkSession{ $this->disconnectGuard = true; $func(); $this->disconnectGuard = false; - $this->setHandler(new NullSessionHandler()); + $this->setHandler(NullSessionHandler::getInstance()); $this->connected = false; $this->manager->remove($this); } diff --git a/src/pocketmine/network/mcpe/handler/LoginSessionHandler.php b/src/pocketmine/network/mcpe/handler/LoginSessionHandler.php index 32007e4579..909afed42c 100644 --- a/src/pocketmine/network/mcpe/handler/LoginSessionHandler.php +++ b/src/pocketmine/network/mcpe/handler/LoginSessionHandler.php @@ -117,7 +117,7 @@ class LoginSessionHandler extends SessionHandler{ */ protected function processLogin(LoginPacket $packet, bool $authRequired) : void{ $this->server->getAsyncPool()->submitTask(new ProcessLoginTask($this->session, $packet, $authRequired, NetworkCipher::$ENABLED)); - $this->session->setHandler(new NullSessionHandler()); //drop packets received during login verification + $this->session->setHandler(NullSessionHandler::getInstance()); //drop packets received during login verification } protected function isCompatibleProtocol(int $protocolVersion) : bool{ diff --git a/src/pocketmine/network/mcpe/handler/NullSessionHandler.php b/src/pocketmine/network/mcpe/handler/NullSessionHandler.php index a36a3989db..ac61c359ef 100644 --- a/src/pocketmine/network/mcpe/handler/NullSessionHandler.php +++ b/src/pocketmine/network/mcpe/handler/NullSessionHandler.php @@ -26,6 +26,15 @@ namespace pocketmine\network\mcpe\handler; /** * Handler which simply ignores all packets received. */ -class NullSessionHandler extends SessionHandler{ +final class NullSessionHandler extends SessionHandler{ + /** @var self|null */ + private static $instance = null; + public static function getInstance() : self{ + return self::$instance ?? (self::$instance = new self); + } + + private function __construct(){ + + } }