X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Floader.cpp;h=1ee6df3057ae9e7bad8e31cc0fb36ada2265ba0e;hb=daca21051927eabee098e422fe5a0990acacfb96;hp=98a0234961d2029d0b665450a314c120bf90e35f;hpb=256b44a5009467171af53316141277027bcc0ba4;p=libs%2Fdatafile.git diff --git a/source/loader.cpp b/source/loader.cpp index 98a0234..1ee6df3 100644 --- a/source/loader.cpp +++ b/source/loader.cpp @@ -48,8 +48,8 @@ namespace Msp { namespace DataFile { Loader::Loader(): - actions(0), - cur_st(0), + actions(nullptr), + cur_st(nullptr), direct(false), check_sub_loads(false) { } @@ -72,6 +72,8 @@ void Loader::load(Parser &p) } } finish(); + for(Loader *l: aux_loaders) + l->finish(); } void Loader::load(const Statement &st) @@ -82,6 +84,8 @@ void Loader::load(const Statement &st) for(const Statement &s: st.sub) load_statement(s); finish(); + for(Loader *l: aux_loaders) + l->finish(); } void Loader::load_direct(Parser &p, unsigned l) @@ -150,6 +154,8 @@ void Loader::load_sub_with(Loader &ldr) { ldr.load_direct(*cur_parser, cur_level+1); ldr.finish(); + for(Loader *l: ldr.aux_loaders) + l->finish(); } else if(cur_st) { @@ -206,7 +212,7 @@ bool Loader::has_action(const StatementKey &key) const LoaderAction *Loader::find_action(const StatementKey &key) const { if(!actions) - return 0; + return nullptr; auto begin = actions->lower_bound(StatementKey(key.keyword, string())); auto end = actions->upper_bound(StatementKey(key.keyword, "~")); @@ -214,7 +220,7 @@ LoaderAction *Loader::find_action(const StatementKey &key) const if(begin==end) throw unknown_keyword(key.keyword); - LoaderAction *act = 0; + LoaderAction *act = nullptr; int match = 0; for(auto i=begin; i!=end; ++i) {