X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Floader.h;h=de0b32deaaa06f4aae771ff64644a68cfdfe4d11;hb=a887b3f7518605c22e4b70eeb9fe136acb2ea632;hp=207ecff8dff8d7f068aa033994ef2a5e608ba56a;hpb=6a033cf0f5164915168f9cb778e801ed86450e1c;p=libs%2Fdatafile.git diff --git a/source/loader.h b/source/loader.h index 207ecff..de0b32d 100644 --- a/source/loader.h +++ b/source/loader.h @@ -44,7 +44,7 @@ private: const Statement *cur_st; bool sub_loaded; bool direct; - std::list aux_loaders; + std::vector aux_loaders; protected: bool check_sub_loads; @@ -174,6 +174,8 @@ template void load(T &obj, typename T::Loader::Collection &coll, const std::string &fn, Args &... args) { RefPtr in = coll.open_raw(fn); + if(!in) + throw IO::file_not_found(fn); Parser parser(*in, fn); typename T::Loader loader(obj, coll, args...); @@ -188,6 +190,8 @@ template typename EnableIf::value, void>::No load(T &obj, C &coll, const std::string &fn, Args &... args) { RefPtr in = coll.open_raw(fn); + if(!in) + throw IO::file_not_found(fn); Parser parser(*in, fn); typename T::Loader loader(obj, args...);