X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FNavaids%2Fawynet.cxx;h=b2865b4e1066389fd977f6051002e8fbfa8ab5a5;hb=76958a038251a697ad798bce630e7d793797cf78;hp=564b4bfb78bc1feb8a280dc49c12e922bc48bfda;hpb=b0f9d24f9dbab9eb2de07c48e8bfe48f3851d7e4;p=flightgear.git diff --git a/src/Navaids/awynet.cxx b/src/Navaids/awynet.cxx index 564b4bfb7..b2865b4e1 100755 --- a/src/Navaids/awynet.cxx +++ b/src/Navaids/awynet.cxx @@ -25,6 +25,7 @@ #include #include +#include #include @@ -34,7 +35,10 @@ #include "awynet.hxx" -SG_USING_STD(sort); +using std::sort; + +using std::cerr; +using std::endl; /************************************************************************** * FGNode @@ -141,6 +145,12 @@ FGAirwayNetwork::FGAirwayNetwork() maxDistance = 0; } +FGAirwayNetwork::~FGAirwayNetwork() +{ + for (unsigned int it = 0; it < nodes.size(); it++) { + delete nodes[ it]; + } +} void FGAirwayNetwork::addAirway(const FGAirway &seg) { segments.push_back(seg); @@ -204,14 +214,7 @@ void FGAirwayNetwork::load(SGPath path) in >> skipeol; // read in each remaining line of the file - -#ifdef __MWERKS__ - char c = 0; - while ( in.get(c) && c != '\0' ) { - in.putback(c); -#else while ( ! in.eof() ) { -#endif string token; in >> token; @@ -221,6 +224,7 @@ void FGAirwayNetwork::load(SGPath path) // Read each line from the database identStart = token; in >> latStart >> lonStart >> identEnd >> latEnd >> lonEnd >> type >> base >> top >> name; + in >> skipeol; /*out << identStart << " " << latStart << " " << lonStart << " " @@ -262,7 +266,8 @@ void FGAirwayNetwork::load(SGPath path) char buffer[32]; string startNode, endNode; // Start - snprintf(buffer, 32, "%s%d%d", identStart.c_str(), (int) latStart, (int) lonStart); + buffer[sizeof(buffer)-1] = 0; + snprintf(buffer, sizeof(buffer)-1, "%s%d%d", identStart.c_str(), (int) latStart, (int) lonStart); startNode = buffer; node_map_iterator itr = nodesMap.find(string(buffer));