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