diff options
author | John Wiegley <johnw@newartisans.com> | 2007-05-03 06:11:04 +0000 |
---|---|---|
committer | John Wiegley <johnw@newartisans.com> | 2008-04-13 03:38:36 -0400 |
commit | c59018c29ddfc7a46aeb951fbcd5cb5b93f47ec0 (patch) | |
tree | 204d28bfa2bdbfe8d7f550877faa114c1e93859f /src/main.cc | |
parent | f9f24fab933266ab8e12da7eef4cc2a906f77350 (diff) | |
download | ledger-c59018c29ddfc7a46aeb951fbcd5cb5b93f47ec0.tar.gz ledger-c59018c29ddfc7a46aeb951fbcd5cb5b93f47ec0.tar.bz2 ledger-c59018c29ddfc7a46aeb951fbcd5cb5b93f47ec0.zip |
Revised how commodities are dealt with.
Diffstat (limited to 'src/main.cc')
-rw-r--r-- | src/main.cc | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/src/main.cc b/src/main.cc index ae3d0d46..25a5fc18 100644 --- a/src/main.cc +++ b/src/main.cc @@ -408,26 +408,26 @@ int main(int argc, char * argv[], char * envp[]) #if defined(TRACING_ON) if (i + 1 < argc && std::strcmp(argv[i], "--trace") == 0) { ledger::_log_level = LOG_TRACE; - ledger::_trace_level = lexical_cast<int>(argv[i + 1]); + ledger::_trace_level = std::atoi(argv[i + 1]); i++; } #endif } + IF_VERIFY() + initialize_memory_tracing(); + try { std::ios::sync_with_stdio(false); boost::filesystem::path::default_name_check (boost::filesystem::portable_posix_name); - ledger::initialize(); - -#if ! defined(FULL_DEBUG) - ledger::do_cleanup = false; -#endif INFO("Ledger starting"); std::auto_ptr<ledger::session_t> session(new ledger::session_t); + ledger::set_session_context(session.get()); + #if 0 session->register_parser(new binary_parser_t); #endif @@ -445,9 +445,11 @@ int main(int argc, char * argv[], char * envp[]) status = read_and_report(report.get(), argc, argv, envp); - IF_VERIFY() { + if (! DO_VERIFY()) { report.release(); session.release(); + } else { + ledger::set_session_context(); } } #if 0 @@ -480,8 +482,12 @@ int main(int argc, char * argv[], char * envp[]) status = _status; } - IF_VERIFY() - ledger::shutdown(); + IF_VERIFY() { + INFO("Ledger ended (Boost/libstdc++ may still hold memory)"); + shutdown_memory_tracing(); + } else { + INFO("Ledger ended"); + } return status; } |