Hi Johan,

One of our customers experienced a crash which I was able to trance down to a non-std::exception thrown when using the dissolve function with version 1.66.

In addition I see the same error when I download your latest Developer Branch from GitHub and put it on top of Boost Version 1.66

 

[...]
 

When I run this using Visual C++ 2013 with C++ Exceptions set to “Yes with SHE Exceptions (/EHa)” I can catch the error in the catch(…) statement.

 

In addition I get the following info in the debug output:

 

1>   Assertion failed: id.ring_index >= -1 && id.ring_index < int(boost::size(interior_rings(polygon))), file c:\program files (x86)\boost\boost_1_66_0\boost\geometry\algorithms\detail\overlay\get_ring.hpp, line 89

 

I hope you can use this to make this great library even better.

 


Thanks for your detailed report! It is fixed now in the latest Develop branch. It was a problem (in dissolve itself) in dereferencing a collection which was itself modified later. Therefore it happened (for this testcase) only on Windows (but in other cases it might also have failed in other environments). The assertion itself was fine and is not changed.

Regards, Barend