From 9e9ce2c30be9d6af144ff07f69c15c508d84e776 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Sat, 21 May 2016 11:58:25 +0200 Subject: Fix regression: restore order in resources (e.g. pattern list) (bzr r14907) --- src/document.cpp | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) (limited to 'src/document.cpp') diff --git a/src/document.cpp b/src/document.cpp index 7086fc0be..2500a5cee 100644 --- a/src/document.cpp +++ b/src/document.cpp @@ -1541,9 +1541,9 @@ bool SPDocument::addResource(gchar const *key, SPObject *object) bool result = false; if ( !object->cloned ) { - std::set rlist = priv->resources[key]; - g_return_val_if_fail(rlist.find(object) == rlist.end(), false); - priv->resources[key].insert(object); + std::vector rlist = priv->resources[key]; + g_return_val_if_fail(std::find(rlist.begin(),rlist.end(),object) == rlist.end(), false); + priv->resources[key].insert(priv->resources[key].begin(),object); GQuark q = g_quark_from_string(key); @@ -1572,10 +1572,11 @@ bool SPDocument::removeResource(gchar const *key, SPObject *object) bool result = false; if ( !object->cloned ) { - std::set rlist = priv->resources[key]; + std::vector rlist = priv->resources[key]; g_return_val_if_fail(!rlist.empty(), false); - g_return_val_if_fail(rlist.find(object) != rlist.end(), false); - priv->resources[key].erase(object); + std::vector::iterator it = std::find(priv->resources[key].begin(),priv->resources[key].end(),object); + g_return_val_if_fail(it != rlist.end(), false); + priv->resources[key].erase(it); GQuark q = g_quark_from_string(key); priv->resources_changed_signals[q].emit(); @@ -1586,9 +1587,9 @@ bool SPDocument::removeResource(gchar const *key, SPObject *object) return result; } -std::set const SPDocument::getResourceList(gchar const *key) const +std::vector const SPDocument::getResourceList(gchar const *key) const { - std::set emptyset; + std::vector emptyset; g_return_val_if_fail(key != NULL, emptyset); g_return_val_if_fail(*key != '\0', emptyset); -- cgit v1.2.3