summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJohn Wiegley <johnw@newartisans.com>2011-02-10 23:00:36 -0500
committerJohn Wiegley <johnw@newartisans.com>2011-02-10 23:00:36 -0500
commit20f4ccde96de05cdbd330e6bbb94af363bef486a (patch)
tree72b3492edc8d5c5ad52a6d36e02e5edf9bc08c68
parent21a123e525927b1785078f6630e2a52d410f11c8 (diff)
downloadfork-ledger-20f4ccde96de05cdbd330e6bbb94af363bef486a.tar.gz
fork-ledger-20f4ccde96de05cdbd330e6bbb94af363bef486a.tar.bz2
fork-ledger-20f4ccde96de05cdbd330e6bbb94af363bef486a.zip
Added some debug code
-rw-r--r--src/op.cc24
-rw-r--r--src/post.h1
-rw-r--r--src/scope.h6
-rw-r--r--src/unistring.h1
-rw-r--r--src/value.h4
5 files changed, 36 insertions, 0 deletions
diff --git a/src/op.cc b/src/op.cc
index 86057f66..f4bc28fc 100644
--- a/src/op.cc
+++ b/src/op.cc
@@ -150,6 +150,15 @@ value_t expr_t::op_t::calc(scope_t& scope, ptr_op_t * locus, const int depth)
value_t result;
+#if defined(DEBUG_ON)
+ if (! skip_debug && SHOW_DEBUG("expr.calc")) {
+ for (int i = 0; i < depth; i++)
+ ledger::_log_buffer << '.';
+ ledger::_log_buffer << op_context(this) << " => ...";
+ DEBUG("expr.calc", "");
+ }
+#endif
+
switch (kind) {
case VALUE:
result = as_value();
@@ -252,6 +261,21 @@ value_t expr_t::op_t::calc(scope_t& scope, ptr_op_t * locus, const int depth)
if (! func)
throw_(calc_error, _("Calling unknown function '%1'") << name);
+#if defined(DEBUG_ON)
+ if (! skip_debug && SHOW_DEBUG("expr.calc")) {
+ for (int i = 0; i < depth; i++)
+ ledger::_log_buffer << '.';
+ ledger::_log_buffer << " args: ";
+ if (call_args.args.is_sequence()) {
+ foreach (value_t& arg, call_args)
+ ledger::_log_buffer << arg << " ";
+ } else {
+ ledger::_log_buffer << call_args.args[0] << " ";
+ }
+ DEBUG("expr.calc", "");
+ }
+#endif
+
if (func->is_function())
result = func->as_function()(call_args);
else
diff --git a/src/post.h b/src/post.h
index 7d5abcd8..e626bca1 100644
--- a/src/post.h
+++ b/src/post.h
@@ -216,6 +216,7 @@ public:
if (xdata_)
if (account_t * acct = xdata_->account)
return acct;
+ assert(account);
return account;
}
diff --git a/src/scope.h b/src/scope.h
index 31b10f6b..ea030b16 100644
--- a/src/scope.h
+++ b/src/scope.h
@@ -347,7 +347,13 @@ protected:
class call_scope_t : public context_scope_t
{
+#if defined(DEBUG_ON)
+public:
+#endif
value_t args;
+#if defined(DEBUG_ON)
+private:
+#endif
mutable void * ptr;
value_t& resolve(const std::size_t index,
diff --git a/src/unistring.h b/src/unistring.h
index 979ce08b..577e0da4 100644
--- a/src/unistring.h
+++ b/src/unistring.h
@@ -69,6 +69,7 @@ public:
const char * p = input.c_str();
std::size_t len = input.length();
+ assert(len < 1024);
VERIFY(utf8::is_valid(p, p + len));
utf8::unchecked::utf8to32(p, p + len, std::back_inserter(utf32chars));
}
diff --git a/src/value.h b/src/value.h
index 6fe24da6..1176ad09 100644
--- a/src/value.h
+++ b/src/value.h
@@ -901,16 +901,20 @@ public:
}
sequence_t::iterator begin() {
+ VERIFY(is_sequence());
return as_sequence_lval().begin();
}
sequence_t::iterator end() {
+ VERIFY(is_sequence());
return as_sequence_lval().end();
}
sequence_t::const_iterator begin() const {
+ VERIFY(is_sequence());
return as_sequence().begin();
}
sequence_t::const_iterator end() const {
+ VERIFY(is_sequence());
return as_sequence().end();
}