Fixed some std::unique_ptr<> issues
authorIngo Ruhnke <grumbel@gmail.com>
Sun, 3 Aug 2014 17:46:20 +0000 (19:46 +0200)
committerIngo Ruhnke <grumbel@gmail.com>
Sun, 3 Aug 2014 18:57:21 +0000 (20:57 +0200)
src/object/player.cpp
src/supertux/game_session.cpp
src/supertux/main.cpp
src/video/video_systems.cpp
src/video/video_systems.hpp

index 2e2ea28..46c4423 100644 (file)
@@ -112,7 +112,7 @@ bool no_water = true;
 Player::Player(PlayerStatus* _player_status, const std::string& name) :
   deactivated(),
   controller(),
-  scripting_controller(0), 
+  scripting_controller(),
   player_status(_player_status), 
   duck(),
   dead(),
index b33d2cc..c81b117 100644 (file)
@@ -45,7 +45,7 @@
 #include "worldmap/worldmap.hpp"
 
 GameSession::GameSession(const std::string& levelfile_, PlayerStatus* player_status, Statistics* statistics) :
-  level(0), 
+  level(),
   statistics_backdrop(),
   scripts(),
   currentsector(0),
index e39e24b..604d91f 100644 (file)
@@ -29,6 +29,7 @@ extern "C" {
 }
 
 #include "video/renderer.hpp"
+#include "video/lightmap.hpp"
 #include "supertux/main.hpp"
 
 #include "addon/addon_manager.hpp"
index d281023..1e37dd2 100644 (file)
@@ -33,7 +33,7 @@
 #include "video/gl/gl_texture.hpp"
 #endif
 
-Renderer*
+std::unique_ptr<Renderer>
 VideoSystem::new_renderer()
 {
   switch(g_config->video)
@@ -42,56 +42,56 @@ VideoSystem::new_renderer()
 #ifdef HAVE_OPENGL
       try {
         log_info << "new GL renderer\n";
-        return new GLRenderer();
+        return std::unique_ptr<Renderer>(new GLRenderer());
       } catch(std::runtime_error& e) {
         log_warning << "Error creating GL renderer: "  << e.what() << std::endl;
 #endif
         log_warning << "new SDL renderer\n";
-        return new SDLRenderer();
+        return std::unique_ptr<Renderer>(new SDLRenderer());
 #ifdef HAVE_OPENGL
       }
     case OPENGL:
       log_info << "new GL renderer\n";
-      return new GLRenderer();
+      return std::unique_ptr<Renderer>(new GLRenderer());
 #endif
     case PURE_SDL:
       log_info << "new SDL renderer\n";
-      return new SDLRenderer();
+      return std::unique_ptr<Renderer>(new SDLRenderer());
     default:
       assert(0 && "invalid video system in config");
 #ifdef HAVE_OPENGL
       log_info << "new GL renderer\n";
-      return new GLRenderer();
+      return std::unique_ptr<Renderer>(new GLRenderer());
 #else
       log_warning << "new SDL renderer\n";
-      return new SDLRenderer();
+      return std::unique_ptr<Renderer>(new SDLRenderer());
 #endif
   }
 }
 
-Lightmap*
+std::unique_ptr<Lightmap>
 VideoSystem::new_lightmap()
 {
   switch(g_config->video)
   {
     case AUTO_VIDEO:
 #ifdef HAVE_OPENGL
-      return new GLLightmap();
+      return std::unique_ptr<Lightmap>(new GLLightmap());
 #else
-      return new SDLLightmap();
+      return std::unique_ptr<Lightmap>(new SDLLightmap());
 #endif
 #ifdef HAVE_OPENGL
     case OPENGL:
-      return new GLLightmap();
+      return std::unique_ptr<Lightmap>(new GLLightmap());
 #endif
     case PURE_SDL:
-      return new SDLLightmap();
+      return std::unique_ptr<Lightmap>(new SDLLightmap());
     default:
       assert(0 && "invalid video system in config");
 #ifdef HAVE_OPENGL
-      return new GLLightmap();
+      return std::unique_ptr<Lightmap>(new GLLightmap());
 #else
-      return new SDLLightmap();
+      return std::unique_ptr<Lightmap>(new SDLLightmap());
 #endif
   }
 }
index e82ceda..f65d7bf 100644 (file)
@@ -40,8 +40,8 @@ public:
   };
 
 public:
-  static Renderer* new_renderer();
-  static Lightmap* new_lightmap();
+  static std::unique_ptr<Renderer> new_renderer();
+  static std::unique_ptr<Lightmap> new_lightmap();
   static TexturePtr   new_texture(SDL_Surface *image);
   static SurfaceData* new_surface_data(const Surface &surface);
   static void      free_surface_data(SurfaceData* surface_data);