From 3e075e587aaa712efb1704478cd1a75131882889 Mon Sep 17 00:00:00 2001 From: Marc Jeanmougin Date: Mon, 2 Oct 2017 23:30:11 +0200 Subject: third batch --- src/sp-defs.cpp | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) (limited to 'src/sp-defs.cpp') diff --git a/src/sp-defs.cpp b/src/sp-defs.cpp index 865c6891e..619a27c0f 100644 --- a/src/sp-defs.cpp +++ b/src/sp-defs.cpp @@ -52,18 +52,13 @@ void SPDefs::modified(unsigned int flags) { } flags &= SP_OBJECT_MODIFIED_CASCADE; - - GSList *l = NULL; + std::vector l; for (auto& child: children) { sp_object_ref(&child); - l = g_slist_prepend(l, &child); + l.push_back(&child); } - l = g_slist_reverse(l); - - while (l) { - SPObject *child = SP_OBJECT(l->data); - l = g_slist_remove(l, child); + for (auto child:l) { if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { child->emitModified(flags); } @@ -78,20 +73,17 @@ Inkscape::XML::Node* SPDefs::write(Inkscape::XML::Document *xml_doc, Inkscape::X repr = xml_doc->createElement("svg:defs"); } - GSList *l = NULL; + std::vector l; for (auto& child: children) { Inkscape::XML::Node *crepr = child.updateRepr(xml_doc, NULL, flags); if (crepr) { - l = g_slist_prepend(l, crepr); + l.push_back(crepr); } } - - while (l) { - repr->addChild((Inkscape::XML::Node *) l->data, NULL); - Inkscape::GC::release((Inkscape::XML::Node *) l->data); - l = g_slist_remove(l, l->data); + for (auto i=l.rbegin();i!=l.rend();++i) { + repr->addChild(*i, NULL); + Inkscape::GC::release(*i); } - } else { for (auto& child: children) { child.updateRepr(flags); -- cgit v1.2.3