Revert "Proposed fix for coverity #29372" because of causing Segmentation
[supertux.git] / src / supertux / console.cpp
index 6b866b2..1d27bc8 100644 (file)
@@ -20,6 +20,7 @@
 #include <iostream>
 
 #include "physfs/ifile_stream.hpp"
+#include "scripting/scripting.hpp"
 #include "scripting/squirrel_util.hpp"
 #include "supertux/gameconfig.hpp"
 #include "supertux/globals.hpp"
@@ -122,6 +123,16 @@ Console::~Console()
 void
 Console::on_buffer_change(int line_count)
 {
+  if (!m_font)
+  {
+    // FIXME: This is an ugly workaround for a crash at startup.
+    // Console::current() becomes valid before the Console constructor
+    // is finished and loading Surfaces and Fonts wants to write text
+    // to the Console, with Fonts that aren't yet loaded, thus
+    // crashing
+    return;
+  }
+
   // increase console height if necessary
   if (m_stayOpen > 0 && m_height < 64)
   {
@@ -246,11 +257,11 @@ void
 Console::show_history(int offset_)
 {
   while ((offset_ > 0) && (m_history_position != m_history.end())) {
-    m_history_position++;
+    ++m_history_position;
     offset_--;
   }
   while ((offset_ < 0) && (m_history_position != m_history.begin())) {
-    m_history_position--;
+    --m_history_position;
     offset_++;
   }
   if (m_history_position == m_history.end()) {
@@ -413,10 +424,9 @@ Console::parse(std::string s)
 
   // split line into list of args
   std::vector<std::string> args;
-  size_t start = 0;
   size_t end = 0;
   while (1) {
-    start = s.find_first_not_of(" ,", end);
+    size_t start = s.find_first_not_of(" ,", end);
     end = s.find_first_of(" ,", start);
     if (start == s.npos) break;
     args.push_back(s.substr(start, end-start));
@@ -550,7 +560,7 @@ Console::draw(DrawingContext& context)
   }
 
   int skipLines = -m_offset;
-  for (std::list<std::string>::iterator i = m_buffer.m_lines.begin(); i != m_buffer.m_lines.end(); i++)
+  for (std::list<std::string>::iterator i = m_buffer.m_lines.begin(); i != m_buffer.m_lines.end(); ++i)
   {
     if (skipLines-- > 0) continue;
     lineNo++;