Author: crab
Date: Thu May 21 02:18:42 2009
New Revision: 35779

URL: http://svn.gna.org/viewcvs/wesnoth?rev=35779&view=rev
Log:
fixed a segfault caused by formula ai self-reference-counting quirks, plus 
removed some accidential whitespace.

Modified:
    trunk/src/ai/ai.cpp
    trunk/src/ai/ai2.hpp
    trunk/src/ai/ai_dfool.hpp
    trunk/src/ai/contexts.cpp
    trunk/src/ai/contexts.hpp
    trunk/src/ai/formula_ai.cpp

Modified: trunk/src/ai/ai.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/ai.cpp?rev=35779&r1=35778&r2=35779&view=diff
==============================================================================
--- trunk/src/ai/ai.cpp (original)
+++ trunk/src/ai/ai.cpp Thu May 21 02:18:42 2009
@@ -243,6 +243,7 @@
        recruiting_preferred_(0),
        formula_ai_(NULL)
 {
+       add_ref();
 }
 
 ai_default::~ai_default(){

Modified: trunk/src/ai/ai2.hpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/ai2.hpp?rev=35779&r1=35778&r2=35779&view=diff
==============================================================================
--- trunk/src/ai/ai2.hpp (original)
+++ trunk/src/ai/ai2.hpp Thu May 21 02:18:42 2009
@@ -34,7 +34,7 @@
                set_side(side);
        }
        int get_recursion_count() const{
-               return recursion_counter_.get_count();          
+               return recursion_counter_.get_count();
        }
 private:
        ai::recursion_counter recursion_counter_;

Modified: trunk/src/ai/ai_dfool.hpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/ai_dfool.hpp?rev=35779&r1=35778&r2=35779&view=diff
==============================================================================
--- trunk/src/ai/ai_dfool.hpp (original)
+++ trunk/src/ai/ai_dfool.hpp Thu May 21 02:18:42 2009
@@ -101,7 +101,7 @@
    */
   class dfool_ai : public ai::readwrite_context_proxy, public ai_interface {
   public:
-       dfool_ai(ai::readwrite_context &context) 
+       dfool_ai(ai::readwrite_context &context)
                : ai::side_context_proxy(context), 
ai::readonly_context_proxy(context), ai::readwrite_context_proxy(context), 
recursion_counter_(context.get_recursion_count()), 
unit_memory_(current_team().ai_memory()){}
        void play_turn();
        virtual std::string describe_self();

Modified: trunk/src/ai/contexts.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/contexts.cpp?rev=35779&r1=35778&r2=35779&view=diff
==============================================================================
--- trunk/src/ai/contexts.cpp (original)
+++ trunk/src/ai/contexts.cpp Thu May 21 02:18:42 2009
@@ -49,19 +49,19 @@
 
 int side_context_impl::get_recursion_count() const
 {
-       return recursion_counter_.get_count();  
+       return recursion_counter_.get_count();
 }
 
 
 int readonly_context_impl::get_recursion_count() const
 {
-       return recursion_counter_.get_count();  
+       return recursion_counter_.get_count();
 }
 
 
 int readwrite_context_impl::get_recursion_count() const
 {
-       return recursion_counter_.get_count();  
+       return recursion_counter_.get_count();
 }
 
 

Modified: trunk/src/ai/contexts.hpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/contexts.hpp?rev=35779&r1=35778&r2=35779&view=diff
==============================================================================
--- trunk/src/ai/contexts.hpp (original)
+++ trunk/src/ai/contexts.hpp Thu May 21 02:18:42 2009
@@ -41,7 +41,7 @@
 // recursion counter
 class recursion_counter {
 public:
-       recursion_counter(int counter)  
+       recursion_counter(int counter)
                : counter_(counter++)
        {
                if (counter > MAX_COUNTER_VALUE ) {
@@ -52,7 +52,7 @@
        int get_count() const{
                return counter_;
        }
-               
+
        static const int MAX_COUNTER_VALUE = 100;//max recursion depth
 private:
        int counter_;
@@ -71,7 +71,6 @@
 
        virtual side_context& get_side_context() = 0;
        virtual int get_recursion_count() const = 0;
-       
 };
 
 class readonly_context;
@@ -350,7 +349,7 @@
        /**
         * Unwrap - this class is not a proxy, so return *this
         */
-       virtual readonly_context& get_readonly_context() 
+       virtual readonly_context& get_readonly_context()
        {
                return *this;
        }
@@ -479,7 +478,7 @@
        /**
         * Unwrap - this class is not a proxy, so return *this
         */
-       virtual readwrite_context& get_readwrite_context() 
+       virtual readwrite_context& get_readwrite_context()
        {
                return *this;
        }

Modified: trunk/src/ai/formula_ai.cpp
URL: 
http://svn.gna.org/viewcvs/wesnoth/trunk/src/ai/formula_ai.cpp?rev=35779&r1=35778&r2=35779&view=diff
==============================================================================
--- trunk/src/ai/formula_ai.cpp (original)
+++ trunk/src/ai/formula_ai.cpp Thu May 21 02:18:42 2009
@@ -1623,6 +1623,7 @@
        function_table(*this),
        candidate_action_manager_()
 {
+       add_ref();
 }
 
 void formula_ai::handle_exception(game_logic::formula_error& e) const


_______________________________________________
Wesnoth-commits mailing list
[email protected]
https://mail.gna.org/listinfo/wesnoth-commits

Reply via email to