diff options
| author | Marc Jeanmougin <marc@jeanmougin.fr> | 2015-12-09 15:49:59 +0000 |
|---|---|---|
| committer | Marc Jeanmougin <marcjeanmougin@free.fr> | 2015-12-09 15:49:59 +0000 |
| commit | 50ab3a3c4215474d437f9adcc4b725bed26767d7 (patch) | |
| tree | 0241555b1dc6efe9f35db7696c7e440e8a56bada /src/sp-mask.cpp | |
| parent | Remove unused var in header file (diff) | |
| parent | update to trunk (diff) | |
| download | inkscape-50ab3a3c4215474d437f9adcc4b725bed26767d7.tar.gz inkscape-50ab3a3c4215474d437f9adcc4b725bed26767d7.zip | |
Merge glib_hunt: cppification and removal of many glib GList/GSList/GHashTable
(bzr r14520)
Diffstat (limited to 'src/sp-mask.cpp')
| -rw-r--r-- | src/sp-mask.cpp | 39 |
1 files changed, 14 insertions, 25 deletions
diff --git a/src/sp-mask.cpp b/src/sp-mask.cpp index 5f7a2ec26..7b9ab11c3 100644 --- a/src/sp-mask.cpp +++ b/src/sp-mask.cpp @@ -138,23 +138,18 @@ void SPMask::update(SPCtx* ctx, unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; - GSList *l = NULL; - for (SPObject *child = this->firstChild(); child; child = child->getNext()) { - sp_object_ref(child); - l = g_slist_prepend (l, child); + std::vector<SPObject *> children = this->childList(false); + for (std::vector<SPObject *>::const_iterator child = children.begin();child != children.end();child++) { + sp_object_ref(*child); } - l = g_slist_reverse (l); - while (l) { - SPObject *child = SP_OBJECT(l->data); - l = g_slist_remove(l, child); - - if (flags || (child->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { - child->updateDisplay(ctx, flags); + for (std::vector<SPObject *>::const_iterator child = children.begin();child != children.end();child++) { + if (flags || ((*child)->uflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { + (*child)->updateDisplay(ctx, flags); } - sp_object_unref(child); + sp_object_unref(*child); } for (SPMaskView *v = this->display; v != NULL; v = v->next) { @@ -177,23 +172,17 @@ void SPMask::modified(unsigned int flags) { flags &= SP_OBJECT_MODIFIED_CASCADE; - GSList *l = NULL; - for (SPObject *child = this->firstChild(); child; child = child->getNext()) { - sp_object_ref(child); - l = g_slist_prepend(l, child); + std::vector<SPObject *> children = this->childList(false); + for (std::vector<SPObject *>::const_iterator child = children.begin();child != children.end();child++) { + sp_object_ref(*child); } - l = g_slist_reverse(l); - - while (l) { - SPObject *child = SP_OBJECT(l->data); - l = g_slist_remove(l, child); - - if (flags || (child->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { - child->emitModified(flags); + for (std::vector<SPObject *>::const_iterator child = children.begin();child != children.end();child++) { + if (flags || ((*child)->mflags & (SP_OBJECT_MODIFIED_FLAG | SP_OBJECT_CHILD_MODIFIED_FLAG))) { + (*child)->emitModified(flags); } - sp_object_unref(child); + sp_object_unref(*child); } } |
