GlPortal / glPortal

:video_game: Open Source teleportation based first person puzzle-platformer
http://glportal.de
Other
359 stars 109 forks source link

Apply memleak patch #138

Closed hhirsch closed 6 years ago

hhirsch commented 6 years ago
From 84774bceda9f7cf74d87e034a905a7d938c8bbca Mon Sep 17 00:00:00 2001
From: nilspin <gooney28@gmail.com>
Date: Sat, 16 Dec 2017 09:04:56 +0100
Subject: [PATCH] Fix memleak causing crash on exit closes #118

---
 include/glPortal/Game.hpp | 1 +
 source/Game.cpp           | 4 ++++
 2 files changed, 5 insertions(+)

diff --git a/include/glPortal/Game.hpp b/include/glPortal/Game.hpp
index 2fff876f..400b8f3a 100644
--- a/include/glPortal/Game.hpp
+++ b/include/glPortal/Game.hpp
@@ -37,6 +37,7 @@ class Game : public radix::BaseGame {
   std::unique_ptr<UiRenderer> uiRenderer;
   std::unique_ptr<radix::PortalRenderer> portalRenderer;
   void initHook() override;
+  void removeHook();
   void customTriggerHook() override;
   void initFunctionStack();
   void initRenderers();
diff --git a/source/Game.cpp b/source/Game.cpp
index 3da57b68..f92e3ce8 100644
--- a/source/Game.cpp
+++ b/source/Game.cpp
@@ -39,6 +39,10 @@ void Game::initHook() {
   m_physDebugDraw.reset(new radix::PhysicsDebugDraw);
 }

+void Game::removeHook() {
+  m_physDebugDraw.reset(nullptr);
+}
+
 void Game::customTriggerHook() {
   customTriggers.push_back(PortalTeleport());
 }