changeset 253:d248a3ac699d

Fixed bug in TrackSequenceRadNNReporter report() method that overflowed when number of retrieved points < pointnn
author mas01mc
date Fri, 11 Apr 2008 13:01:31 +0000
parents fe4dc39b2dd7
children fe922b9d87f8
files reporter.h
diffstat 1 files changed, 3 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/reporter.h	Mon Mar 31 13:02:26 2008 +0000
+++ b/reporter.h	Fri Apr 11 13:01:31 2008 +0000
@@ -3,6 +3,8 @@
 #include <set>
 #include <functional>
 
+#define MIN_ARG(a,b) a<b?a:b
+
 typedef struct nnresult {
   unsigned int trackID;
   double dist;
@@ -468,7 +470,7 @@
     for(rit = v.rbegin(); rit < v.rend(); rit++) {
       r = *rit;
       std::cout << fileTable + r.trackID*O2_FILETABLESIZE << " " << r.count << std::endl;
-      for(int k=0; k < (int)pointNN; k++){
+      for(int k=0; k < (int)MIN_ARG((unsigned)point_queues[r.trackID].size(),pointNN); k++){
 	NNresult rk = point_queues[r.trackID].top();
 	std::cout << rk.dist << " " << rk.qpos << " " << rk.spos << std::endl;
 	point_queues[r.trackID].pop();