Added some debug code

This commit is contained in:
John Wiegley 2011-02-10 23:00:36 -05:00
parent 21a123e525
commit 20f4ccde96
5 changed files with 36 additions and 0 deletions

View file

@ -150,6 +150,15 @@ value_t expr_t::op_t::calc(scope_t& scope, ptr_op_t * locus, const int depth)
value_t result; 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) { switch (kind) {
case VALUE: case VALUE:
result = as_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) if (! func)
throw_(calc_error, _("Calling unknown function '%1'") << name); 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()) if (func->is_function())
result = func->as_function()(call_args); result = func->as_function()(call_args);
else else

View file

@ -216,6 +216,7 @@ public:
if (xdata_) if (xdata_)
if (account_t * acct = xdata_->account) if (account_t * acct = xdata_->account)
return acct; return acct;
assert(account);
return account; return account;
} }

View file

@ -347,7 +347,13 @@ protected:
class call_scope_t : public context_scope_t class call_scope_t : public context_scope_t
{ {
#if defined(DEBUG_ON)
public:
#endif
value_t args; value_t args;
#if defined(DEBUG_ON)
private:
#endif
mutable void * ptr; mutable void * ptr;
value_t& resolve(const std::size_t index, value_t& resolve(const std::size_t index,

View file

@ -69,6 +69,7 @@ public:
const char * p = input.c_str(); const char * p = input.c_str();
std::size_t len = input.length(); std::size_t len = input.length();
assert(len < 1024);
VERIFY(utf8::is_valid(p, p + len)); VERIFY(utf8::is_valid(p, p + len));
utf8::unchecked::utf8to32(p, p + len, std::back_inserter(utf32chars)); utf8::unchecked::utf8to32(p, p + len, std::back_inserter(utf32chars));
} }

View file

@ -901,16 +901,20 @@ public:
} }
sequence_t::iterator begin() { sequence_t::iterator begin() {
VERIFY(is_sequence());
return as_sequence_lval().begin(); return as_sequence_lval().begin();
} }
sequence_t::iterator end() { sequence_t::iterator end() {
VERIFY(is_sequence());
return as_sequence_lval().end(); return as_sequence_lval().end();
} }
sequence_t::const_iterator begin() const { sequence_t::const_iterator begin() const {
VERIFY(is_sequence());
return as_sequence().begin(); return as_sequence().begin();
} }
sequence_t::const_iterator end() const { sequence_t::const_iterator end() const {
VERIFY(is_sequence());
return as_sequence().end(); return as_sequence().end();
} }