diff options
author | randomdan <randomdan@localhost> | 2013-02-13 19:48:09 +0000 |
---|---|---|
committer | randomdan <randomdan@localhost> | 2013-02-13 19:48:09 +0000 |
commit | 20f4eec97ad77cf37c3c9a505381cee9b6c47d0d (patch) | |
tree | 6eb3013cb6ab3d36e59e63320008196217037d0a | |
parent | Basic eventing system (diff) | |
download | project2-20f4eec97ad77cf37c3c9a505381cee9b6c47d0d.tar.bz2 project2-20f4eec97ad77cf37c3c9a505381cee9b6c47d0d.tar.xz project2-20f4eec97ad77cf37c3c9a505381cee9b6c47d0d.zip |
Fix bug with lookups introduced in 761
-rw-r--r-- | project2/common/rowProcessor.cpp | 5 | ||||
-rw-r--r-- | project2/common/rowProcessor.h | 2 | ||||
-rw-r--r-- | project2/common/variables-modlookup.cpp | 1 | ||||
-rw-r--r-- | project2/common/variables.h | 2 |
4 files changed, 5 insertions, 5 deletions
diff --git a/project2/common/rowProcessor.cpp b/project2/common/rowProcessor.cpp index f83dfa7..4e3bf1d 100644 --- a/project2/common/rowProcessor.cpp +++ b/project2/common/rowProcessor.cpp @@ -7,7 +7,6 @@ #include <boost/algorithm/string/predicate.hpp> RowProcessor::RowProcessor(ScriptNodePtr p) : - SourceObject(p), IHaveParameters(p), recordSource(p->value("source").as<std::string>()), filter(p->value("filter", "").as<Glib::ustring>()), @@ -43,7 +42,9 @@ RowProcessor::execute() const } } Logger()->messagebf(LOG_DEBUG, "Executing from source '%s'", source->name); - ScopeObject onComplete(boost::bind(&SourceObject::send, this, Complete)); + if (const SourceObject * so = dynamic_cast<const SourceObject *>(this)) { + ScopeObject onComplete(boost::bind(&SourceObject::send, so, Complete)); + } if (IRSE) { try { source->execute(filter, this); diff --git a/project2/common/rowProcessor.h b/project2/common/rowProcessor.h index a7e8544..04a61bf 100644 --- a/project2/common/rowProcessor.h +++ b/project2/common/rowProcessor.h @@ -12,7 +12,7 @@ class Presenter; /// Base class for Project2 components that work with row sets -class RowProcessor : public IHaveParameters, public virtual SourceObject { +class RowProcessor : public IHaveParameters { public: enum EventIDs { Complete }; RowProcessor(ScriptNodePtr); diff --git a/project2/common/variables-modlookup.cpp b/project2/common/variables-modlookup.cpp index 67d2924..64ff93d 100644 --- a/project2/common/variables-modlookup.cpp +++ b/project2/common/variables-modlookup.cpp @@ -31,7 +31,6 @@ class VariableLookup : public VariableImplDyn, public RowProcessor { } }; VariableLookup(ScriptNodePtr e) : - SourceObject(e), VariableImplDyn(e), RowProcessor(e), name(e->value("name").as<Glib::ustring>()) diff --git a/project2/common/variables.h b/project2/common/variables.h index 941d754..68923b5 100644 --- a/project2/common/variables.h +++ b/project2/common/variables.h @@ -107,7 +107,7 @@ class VariableType : public _VT { }; /// Base class for Project2 variable accessors -class VariableImpl : public virtual IntrusivePtrBase { +class VariableImpl : public IntrusivePtrBase { public: virtual VariableType value() const = 0; |