I just wrote a simple test program (attached) and it indeed exhibits an infinite recursion. The attached patch fixes it (in my test case, it gets replaced by a crash because the queue is empty, but obviously that's expected :) ).
Daniel
#include <apt-pkg/acquire.h> int main(int argc, char **argv) { pkgAcquire aq; pkgAcquire::Queue q("Foo", &aq); pkgAcquire::UriIterator uit(&q); ++uit; return 0; }
--- acquire.h.orig 2009-03-09 20:00:55.000000000 -0700 +++ acquire.h 2009-03-09 20:01:15.000000000 -0700 @@ -539,7 +539,7 @@ public: - inline void operator ++() {operator ++();}; + inline void operator ++() {operator ++(0);}; void operator ++(int) {