OSC: fix compiler warning and catch possible errors
authorLen Ovens <len@ovenwerks.net>
Thu, 22 Feb 2018 03:24:18 +0000 (19:24 -0800)
committerLen Ovens <len@ovenwerks.net>
Thu, 22 Feb 2018 04:26:43 +0000 (20:26 -0800)
libs/surfaces/osc/osc.cc

index 3aff9c3c9f62cfb6632e4993a67b9bd60d8c5b67..c2e19c05072dbaf7391baa86181c2dc07fb9b5de 100644 (file)
@@ -2349,17 +2349,25 @@ OSC::_set_bank (uint32_t bank_start, lo_address addr)
                set->bank = bank_start;
                uint32_t not_ready = 0;
                for (uint32_t dv = 1; dv < d_count; dv++) {
-                       OSCSurface *sur;
                        if (set->urls[dv] != "") {
                                string url = set->urls[dv];
-                               sur = get_surface (lo_address_new_from_url (url.c_str()));
+                               OSCSurface *sur = get_surface (lo_address_new_from_url (url.c_str()));
+                               if (sur->linkset != ls) {
+                                       set->urls[dv] = "";
+                                       not_ready = dv;
+                               } else {
+                                       lo_address sur_addr = lo_address_new_from_url (sur->remote_url.c_str());
+
+                                       sur->bank = bank_start;
+                                       bank_start = bank_start + sur->bank_size;
+                                       strip_feedback (sur, false);
+                                       _strip_select (boost::shared_ptr<ARDOUR::Stripable>(), sur_addr);
+                                       bank_leds (sur);
+                                       lo_address_free (sur_addr);
+                               }
                        } else {
                                not_ready = dv;
                        }
-                       if (sur->linkset != ls) {
-                               set->urls[dv] = "";
-                               not_ready = dv;
-                       }
                        if (not_ready) {
                                if (!set->not_ready) {
                                        set->not_ready = not_ready;
@@ -2367,14 +2375,6 @@ OSC::_set_bank (uint32_t bank_start, lo_address addr)
                                set->bank = 1;
                                break;
                        }
-                       lo_address sur_addr = lo_address_new_from_url (sur->remote_url.c_str());
-
-                       sur->bank = bank_start;
-                       bank_start = bank_start + sur->bank_size;
-                       strip_feedback (sur, false);
-                       _strip_select (boost::shared_ptr<ARDOUR::Stripable>(), sur_addr);
-                       bank_leds (sur);
-                       lo_address_free (sur_addr);
                }
                if (not_ready) {
                        surface_link_state (set);