summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrandomdan <randomdan@localhost>2013-02-13 19:48:09 +0000
committerrandomdan <randomdan@localhost>2013-02-13 19:48:09 +0000
commit20f4eec97ad77cf37c3c9a505381cee9b6c47d0d (patch)
tree6eb3013cb6ab3d36e59e63320008196217037d0a
parentBasic eventing system (diff)
downloadproject2-20f4eec97ad77cf37c3c9a505381cee9b6c47d0d.tar.bz2
project2-20f4eec97ad77cf37c3c9a505381cee9b6c47d0d.tar.xz
project2-20f4eec97ad77cf37c3c9a505381cee9b6c47d0d.zip
Fix bug with lookups introduced in 761
-rw-r--r--project2/common/rowProcessor.cpp5
-rw-r--r--project2/common/rowProcessor.h2
-rw-r--r--project2/common/variables-modlookup.cpp1
-rw-r--r--project2/common/variables.h2
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;