diff options
| author | Marc Jeanmougin <marc@jeanmougin.fr> | 2016-05-21 09:58:25 +0000 |
|---|---|---|
| committer | Marc Jeanmougin <marcjeanmougin@free.fr> | 2016-05-21 09:58:25 +0000 |
| commit | 9e9ce2c30be9d6af144ff07f69c15c508d84e776 (patch) | |
| tree | 477b56572c6dbde8fbcd1480c862d3a66b7f232a /src/document.cpp | |
| parent | Adjust some thresholds for finding intersections in elliptical arcs (diff) | |
| download | inkscape-9e9ce2c30be9d6af144ff07f69c15c508d84e776.tar.gz inkscape-9e9ce2c30be9d6af144ff07f69c15c508d84e776.zip | |
Fix regression: restore order in resources (e.g. pattern list)
(bzr r14907)
Diffstat (limited to 'src/document.cpp')
| -rw-r--r-- | src/document.cpp | 17 |
1 files changed, 9 insertions, 8 deletions
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<SPObject *> rlist = priv->resources[key]; - g_return_val_if_fail(rlist.find(object) == rlist.end(), false); - priv->resources[key].insert(object); + std::vector<SPObject *> 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<SPObject *> rlist = priv->resources[key]; + std::vector<SPObject *> 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<SPObject*>::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<SPObject *> const SPDocument::getResourceList(gchar const *key) const +std::vector<SPObject *> const SPDocument::getResourceList(gchar const *key) const { - std::set<SPObject *> emptyset; + std::vector<SPObject *> emptyset; g_return_val_if_fail(key != NULL, emptyset); g_return_val_if_fail(*key != '\0', emptyset); |
