<div dir="ltr">No idea without seeing more of your code. You're corrupting memory somewhere.</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, Dec 2, 2020 at 7:52 AM Peder Axensten <<a href="mailto:Peder.Axensten@slu.se">Peder.Axensten@slu.se</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">I’m trying to implement a filter. The principle is fairly simple (see below). First I access all points in “view_" to set up local variables and then I copy points that fulfil certain criteria to “points". Could it be easier? 😀<br>
<br>
Both variants runs well on OS X, but not in Ubuntu 20.10 under Docker.<br>
I use pdal 2.1.0 on both platforms.<br>
<br>
Both variant aborts with:<br>
malloc(): mismatching next->prev_size (unsorted)<br>
But at different places.<br>
<br>
<br>
Is there a better (correct) principle of doing this?<br>
Am I constructing “points” in the correct way?<br>
What pdal filter do you recommend I take a good look at to better understand the principles?<br>
Why do the variants abort at different locations?<br>
<br>
Any hints are welcome!<br>
<br>
<br>
=========<br>
<br>
// Variant 1.<br>
PointViewPtr Remove_overlap::run( PointViewPtr view_ ) {<br>
<br>
for( PointId idx = 0; idx < view_->size(); ++idx ) {<br>
// Set up stuff, read-accessing all points in view_<br>
}<br>
<br>
PointViewPtr points{ view_->makeNew() }; // Aborts here.<br>
for( PointId idx = 0; idx < view_->size(); ++idx ) {<br>
if( is_ok( view_, idx ) )<br>
points->appendPoint( *view_, idx );<br>
}<br>
<br>
return points;<br>
}<br>
<br>
<br>
// Variant 2.<br>
PointViewPtr Remove_overlap::run( PointViewPtr view_ ) {<br>
PointViewPtr points{ view_->makeNew() };<br>
<br>
for( PointId idx = 0; idx < view_->size(); ++idx ) {<br>
// Set up stuff, read-accessing all points in view_<br>
}<br>
<br>
for( PointId idx = 0; idx < view_->size(); ++idx ) {<br>
if( is_ok( view_, idx ) )<br>
points->appendPoint( *view_, idx ); // Aborts here after a few hundred iterations (out of a few millions)<br>
}<br>
<br>
return points;<br>
}<br>
<br>
Best regards,<br>
<br>
Peder Axensten<br>
Research engineer<br>
<br>
Remote Sensing<br>
Department of Forest Resource Management<br>
Swedish University of Agricultural Sciences<br>
SE-901 83 Umeå<br>
Visiting address: Skogsmarksgränd<br>
Phone: +46 90 786 85 00<br>
<a href="mailto:peder.axensten@slu.se" target="_blank">peder.axensten@slu.se</a>, <a href="http://www.slu.se/srh" rel="noreferrer" target="_blank">www.slu.se/srh</a><br>
<br>
The Department of Forest Resource Management is environmentally certified in accordance with ISO 14001.<br>
<br>
---<br>
När du skickar e-post till SLU så innebär detta att SLU behandlar dina personuppgifter. För att läsa mer om hur detta går till, klicka här <<a href="https://www.slu.se/om-slu/kontakta-slu/personuppgifter/" rel="noreferrer" target="_blank">https://www.slu.se/om-slu/kontakta-slu/personuppgifter/</a>><br>
E-mailing SLU will result in SLU processing your personal data. For more information on how this is done, click here <<a href="https://www.slu.se/en/about-slu/contact-slu/personal-data/" rel="noreferrer" target="_blank">https://www.slu.se/en/about-slu/contact-slu/personal-data/</a>><br>
_______________________________________________<br>
pdal mailing list<br>
<a href="mailto:pdal@lists.osgeo.org" target="_blank">pdal@lists.osgeo.org</a><br>
<a href="https://lists.osgeo.org/mailman/listinfo/pdal" rel="noreferrer" target="_blank">https://lists.osgeo.org/mailman/listinfo/pdal</a><br>
</blockquote></div><br clear="all"><div><br></div>-- <br><div dir="ltr" class="gmail_signature">Andrew Bell<br><a href="mailto:andrew.bell.ia@gmail.com" target="_blank">andrew.bell.ia@gmail.com</a></div>