Friday, 06 October 2006.
Minor change to avoid (MSVC8) debug assertion
Oops - While running FG in Debug mode, to check some
other code, I get a debug assertion in groundnetwork.cxx,
which stops me getting to the code I want to
see ;=((
A minor change in the order of the while()
statements fixes this - output with diff -u
--- F:\FGCVS\Flightgear\source\src\Airports\groundnetwork.cxx Thu Sep 21
13:15:54 2006
+++ F:\FG0910-4\Flightgear\src\Airports\groundnetwork.cxx Thu Oct 05
13:50:31 2006
@@ -681,7 +681,7 @@
// Search search if the current id alread has an entry
// This might be faster using a map instead of a vector, but let's start
by taking a safe route
if (activeTraffic.size()) {
- while ((i->getId() != id) && i != activeTraffic.end()) {
+ while ((i != activeTraffic.end()) && (i->getId() != id)) {
i++;
}
}
@@ -704,7 +704,7 @@
// Search search if the current id alread has an entry
// This might be faster using a map instead of a vector, but let's start
by taking a safe route
if (activeTraffic.size()) {
- while ((i->getId() != id) && i != activeTraffic.end()) {
+ while ((i != activeTraffic.end()) && (i->getId() != id)) {
i++;
}
}
@@ -722,7 +722,7 @@
// This might be faster using a map instead of a vector, but let's start
by taking a safe route
TrafficVectorIterator current, closest;
if (activeTraffic.size()) {
- while ((i->getId() != id) && i != activeTraffic.end()) {
+ while ((i != activeTraffic.end()) && (i->getId() != id)) {
i++;
}
}
@@ -760,7 +760,7 @@
TrafficVectorIterator i = activeTraffic.begin();
if (activeTraffic.size())
{
- while ((i->getId() != id) && (i != activeTraffic.end()))
+ while ((i != activeTraffic.end()) && (i->getId() != id))
{
i++;
}
@@ -876,7 +876,7 @@
TrafficVectorIterator i = activeTraffic.begin();
if (activeTraffic.size())
{
- while ((i->getId() != id) && i != activeTraffic.end())
+ while ((i != activeTraffic.end()) && (i->getId() != id))
{
i++;
}
@@ -971,7 +971,7 @@
// This might be faster using a map instead of a vector, but let's start
by taking a safe route
if (activeTraffic.size())
{
- while ((i->getId() != id) && i != activeTraffic.end()) {
+ while ((i != activeTraffic.end()) && (i->getId() != id)) {
i++;
}
}
@@ -989,7 +989,7 @@
// Search search if the current id has an entry
// This might be faster using a map instead of a vector, but let's start
by taking a safe route
if (activeTraffic.size()) {
- while ((i->getId() != id) && i != activeTraffic.end()) {
+ while ((i != activeTraffic.end()) && (i->getId() != id)) {
i++;
}
}
Simply, check if the iterator, i, is not at the end()
FIRST, before doing the i->getId() check ;=)) the assertion
message is something about dereferencing a pointer ... maybe
you should not do i->getId() on the 'end()' member?
I only got the assertion on the first of these changes,
but copied the code to the others, just in case ...
Regards,
Geoff.
EOF - fgd-009.doc
_________________________________________________________________
FREE pop-up blocking with the new MSN Toolbar - get it now!
http://toolbar.msn.click-url.com/go/onm00200415ave/direct/01/
-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys -- and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Flightgear-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/flightgear-devel