Boost logo

Geometry :

Subject: Re: [geometry] Dissolve ... exception
From: Barend Gehrels (barend_at_[hidden])
Date: 2018-08-30 12:00:05

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

Regards, Barend

Geometry list run by mateusz at