From 9b8b7ef5f20d76aae8ef8958771881daa1f01df4 Mon Sep 17 00:00:00 2001 From: Oliver Hamlet Date: Fri, 17 Jul 2015 14:48:00 +0100 Subject: [PATCH] Don't store emtpy user metadata objects. Fixes #466. --- src/gui/handler.cpp | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-) diff --git a/src/gui/handler.cpp b/src/gui/handler.cpp index 65a4d73c..0f97ad27 100644 --- a/src/gui/handler.cpp +++ b/src/gui/handler.cpp @@ -542,18 +542,13 @@ namespace loot { else newUserlistEntry = newUserlistEntry.NewMetadata(_lootState.CurrentGame().masterlist.FindPlugin(newUserlistEntry)); - // Now replace existing userlist entry with the new one. + // Now erase any existing userlist entry. if (!ulistPlugin.HasNameOnly()) { - BOOST_LOG_TRIVIAL(trace) << "Replacing existing userlist entry with new metadata."; - if (newUserlistEntry.HasNameOnly()) - _lootState.CurrentGame().userlist.ErasePlugin(ulistPlugin); - else { - // Set members are static, so just erase and add the new data. - _lootState.CurrentGame().userlist.ErasePlugin(ulistPlugin); - _lootState.CurrentGame().userlist.AddPlugin(newUserlistEntry); - } + BOOST_LOG_TRIVIAL(trace) << "Erasing the existing userlist entry."; + _lootState.CurrentGame().userlist.ErasePlugin(ulistPlugin); } - else { + // Add a new userlist entry if necessary. + if (!newUserlistEntry.HasNameOnly()) { BOOST_LOG_TRIVIAL(trace) << "Adding new metadata to new userlist entry."; _lootState.CurrentGame().userlist.AddPlugin(newUserlistEntry); } @@ -805,10 +800,10 @@ namespace loot { //Evaluate any conditions in the global messages. BOOST_LOG_TRIVIAL(debug) << "Evaluating global message conditions."; list messages = parsingErrors; - messages.insert(messages.end(), + messages.insert(messages.end(), _lootState.CurrentGame().masterlist.messages.begin(), _lootState.CurrentGame().masterlist.messages.end()); - messages.insert(messages.end(), + messages.insert(messages.end(), _lootState.CurrentGame().userlist.messages.begin(), _lootState.CurrentGame().userlist.messages.end()); try {