Browse Source

Minor refactoring, rewrite awkward loop

Davin McCall 10 months ago
parent
commit
f42cc1b049
1 changed files with 2 additions and 3 deletions
  1. 2 3
      src/service.cc

+ 2 - 3
src/service.cc

@@ -62,10 +62,9 @@ void service_record::prepare_for_unload() noexcept
     depends_on.clear();
 
     // Also remove all dependents. This should not be necessary except for "before" links.
-    // Note: this for loop might look odd, but it's correct!
-    for (auto i = dependents.begin(); i != dependents.end(); i = dependents.begin()) {
+    for (auto i = dependents.begin(); i != dependents.end();) {
         service_record *before_svc = (*i)->get_from();
-        before_svc->rm_dep(**i); // invalidates i
+        before_svc->rm_dep(**i++);
         if (before_svc->get_type() == service_type_t::PLACEHOLDER && before_svc->is_unrefd()) {
             services->remove_service(before_svc);
             delete before_svc;