diff options
author | John Wiegley <johnw@newartisans.com> | 2011-02-10 23:00:36 -0500 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2011-02-10 23:00:36 -0500 |
commit | 20f4ccde96de05cdbd330e6bbb94af363bef486a (patch) | |
tree | 72b3492edc8d5c5ad52a6d36e02e5edf9bc08c68 | |
parent | 21a123e525927b1785078f6630e2a52d410f11c8 (diff) | |
download | fork-ledger-20f4ccde96de05cdbd330e6bbb94af363bef486a.tar.gz fork-ledger-20f4ccde96de05cdbd330e6bbb94af363bef486a.tar.bz2 fork-ledger-20f4ccde96de05cdbd330e6bbb94af363bef486a.zip |
Added some debug code
-rw-r--r-- | src/op.cc | 24 | ||||
-rw-r--r-- | src/post.h | 1 | ||||
-rw-r--r-- | src/scope.h | 6 | ||||
-rw-r--r-- | src/unistring.h | 1 | ||||
-rw-r--r-- | src/value.h | 4 |
5 files changed, 36 insertions, 0 deletions
@@ -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 @@ -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(); } |