boog report

not sure where to report bugs in the panda3d engine source.
thought i might start here.

in file panda/src/egg/eggMesherStrip.cxx around line 365 this:

while (si != strips.end() && not_any) {

should be:

while (not_any && si != strips.end()) {

the problem is si is an iterator.
and the recursive call to mate->cut_sheet() changes strips.
over which si is iterating.
so the si != strips.end() becomes invalid.
which triggers a scary looking game stopping assert.
fortunately it only shows up if you’ve compiled a debug version of panda3d.
swapping the order of the if’s and fixes the issue because in all cases not_any is false and si is never again tested.

Thanks! In fact this bug was already found and reported, and is already fixed on the CVS trunk:
[incompatible iterators)

For the record, there’s a “Bug tracker” link under the community tab above, which is the official channel for reporting bugs.