#256: Several dependent window iterators lead to an invalid precondition
----------------------+-----------------------------------------------------
Reporter: lazzara | Owner: Olena Team
Type: defect | Status: new
Priority: critical | Milestone: Olena 2.1
Component: Milena | Version: 2.0
Keywords: |
----------------------+-----------------------------------------------------
With the following code:
{{{
#include <mln/core/image/image2d.hh>
#include <mln/core/alias/neighb2d.hh>
#include <mln/value/int_u8.hh>
#include <mln/io/pgm/load.hh>
#include <mln/debug/iota.hh>
#include <mln/debug/println.hh>
#include <mln/border/fill.hh>
int main(int argc, char *argv[])
{
using namespace mln;
typedef image2d<value::int_u8> I;
I ima(box2d(3, 3));
debug::iota(ima);
mln_piter_(I) p(ima.domain());
mln_niter_(neighb2d) n(c4(), p);
mln_niter_(neighb2d) n2(c4(), n);
border::fill(ima, 0);
debug::println(ima);
for_all(p)
{
if (p != point2d(1,1))
continue;
std::cout << "ima(p) = " << ima(p) << std::endl;
for_all(n)
{
std::cout << " ima(n) = " << ima(n) << std::endl;
for_all(n2)
{
std::cout << " ima(n2) = " << ima(n2) <<
std::endl;
}
}
}
}
}}}
... fail with the following error:
{{{
multiple_iterator:
../../mln/core/internal/site_relative_iterator_base.hh:193: const typename
S::psite& mln::internal::site_relative_iterator_base<S, E, C>::subj_()
[with S = mln::neighb<mln::window<mln::dpoint<mln::grid::square, short
int> > >, E =
mln::neighb_fwd_niter<mln::window<mln::dpoint<mln::grid::square, short
int> > >, C = mln::point<mln::grid::square, short int>, typename
S::psite
= mln::point<mln::grid::square, short int>]: Assertion
`(bool)(exact(this)->compute_p_() == p_)' failed.
}}}
--
Ticket URL: <https://trac.lrde.org/olena/ticket/256>
Olena <http://olena.lrde.epita.fr>
Olena, a software platform dedicated to image processing.