X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcollection.cpp;h=d222568403355f4f3af1b1b0896a27f9311c7696;hb=6e78ca102c93c2bab2f8f68f71879baf40225a78;hp=8b295858ac72fadf42a535be78c7272d8e50ba27;hpb=982f6785f541879c86a2f386fbdd4057e960b12c;p=libs%2Fdatafile.git diff --git a/source/collection.cpp b/source/collection.cpp index 8b29585..d222568 100644 --- a/source/collection.cpp +++ b/source/collection.cpp @@ -20,8 +20,16 @@ Collection::~Collection() void Collection::add_var(const string &name, const CollectionItemTypeBase *type, const Variant &var) { insert_unique(items, name, var); - if(type) - type->notify_item(name, var); + try + { + if(type) + type->notify_item(name, var); + } + catch(...) + { + remove_existing(items, name); + throw; + } } const Variant &Collection::get_var(const string &name, const CollectionItemTypeBase *type)