X-Git-Url: http://git.tdb.fi/?a=blobdiff_plain;f=source%2Fcollection.cpp;h=d222568403355f4f3af1b1b0896a27f9311c7696;hb=65b05e818baac970e08b3b50ef46d1c4be9b394d;hp=c168d8abd002a5bd82134914a9ee9205a1ab06fb;hpb=256b44a5009467171af53316141277027bcc0ba4;p=libs%2Fdatafile.git diff --git a/source/collection.cpp b/source/collection.cpp index c168d8a..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(*this, 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)