]> git.tdb.fi Git - r2c2.git/blobdiff - source/libr2c2/route.cpp
Replace various map lookups with functions from maputils.h
[r2c2.git] / source / libr2c2 / route.cpp
index 58e50ddc7fb9fb3b39109f3a68dceb02fd2e7dd7..78f96a638f7bf28463127ef9f69ac81cecccdf38 100644 (file)
@@ -1,4 +1,5 @@
 #include <queue>
+#include <msp/core/maputils.h>
 #include <msp/strings/format.h>
 #include "layout.h"
 #include "route.h"
@@ -154,12 +155,10 @@ void Route::set_turnout(unsigned addr, unsigned path)
 {
        if(!addr)
                throw InvalidParameterValue("Invalid turnout address");
-       map<unsigned, int>::iterator i = turnouts.find(addr);
-       if(i==turnouts.end())
-               throw KeyError("Turnout is not in this route");
-       if(i->second>=0 && path!=static_cast<unsigned>(i->second))
+       int &state = get_item(turnouts, addr);
+       if(state>=0 && path!=static_cast<unsigned>(state))
                throw InvalidState("Setting conflicts with route");
-       i->second = path;
+       state = path;
 }
 
 void Route::update_turnouts()