Pcbnew crashes when unfilling and refilling zones
Description
Pcbnew crashes when unfilling and refilling zones on complex boards. This only happens for me when using release builds and not running in gdb (the best kind of bug).
Steps to reproduce
- Load Alexis' motherboard project from https://github.com/c4puter/motherboard
- Unfill zones, refill, unfill, refill
This doesn't crash when using gdb but using valgrind, we get these invalid reads which may be related
==15773== Thread 14:
==15773== Invalid read of size 4
==15773== at 0xDF8DBA3: SHAPE_CIRCLE::BBox(int) const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDF8D771: D_PAD::GetBoundingBox() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF7544: ZONE_FILLER::buildCopperItemClearances(ZONE_CONTAINER const*, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF97FE: ZONE_FILLER::fillSingleZone(ZONE_CONTAINER*, SHAPE_POLY_SET&, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF9D47: ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}::operator()(PROGRESS_REPORTER*) const [clone .isra.559] (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFB6B2: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<unsigned long>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long> >::_M_invoke(std::_Any_data const&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFBE7A: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x6271996: __pthread_once_slow (pthread_once.c:116)
==15773== by 0xDBF5404: std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long>::_Async_state_impl(std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*>&&)::{lambda()#1}> > >::_M_run() (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x5FFCB2E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==15773== by 0x6269FA2: start_thread (pthread_create.c:486)
==15773== by 0x637C4CE: clone (clone.S:95)
==15773== Address 0x3e989c80 is 16 bytes inside a block of size 24 free'd
==15773== at 0x483708B: operator delete(void*, unsigned long) (vg_replace_malloc.c:585)
==15773== by 0xDF8CA0B: D_PAD::buildEffectiveShapes() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDF8D7B7: D_PAD::GetBoundingBox() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF5D50: ZONE_FILLER::buildThermalSpokes(ZONE_CONTAINER const*, std::deque<SHAPE_LINE_CHAIN, std::allocator<SHAPE_LINE_CHAIN> >&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF980E: ZONE_FILLER::fillSingleZone(ZONE_CONTAINER*, SHAPE_POLY_SET&, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF9D47: ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}::operator()(PROGRESS_REPORTER*) const [clone .isra.559] (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFB6B2: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<unsigned long>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long> >::_M_invoke(std::_Any_data const&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFBE7A: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x6271996: __pthread_once_slow (pthread_once.c:116)
==15773== by 0xDBF5404: std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long>::_Async_state_impl(std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*>&&)::{lambda()#1}> > >::_M_run() (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x5FFCB2E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==15773== by 0x6269FA2: start_thread (pthread_create.c:486)
==15773== Block was alloc'd at
==15773== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==15773== by 0xDF8CD96: D_PAD::buildEffectiveShapes() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDF8D7B7: D_PAD::GetBoundingBox() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF7544: ZONE_FILLER::buildCopperItemClearances(ZONE_CONTAINER const*, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF97FE: ZONE_FILLER::fillSingleZone(ZONE_CONTAINER*, SHAPE_POLY_SET&, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF9D47: ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}::operator()(PROGRESS_REPORTER*) const [clone .isra.559] (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFB6B2: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<unsigned long>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long> >::_M_invoke(std::_Any_data const&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFBE7A: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x6271996: __pthread_once_slow (pthread_once.c:116)
==15773== by 0xDBF5404: std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long>::_Async_state_impl(std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*>&&)::{lambda()#1}> > >::_M_run() (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x5FFCB2E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==15773== by 0x6269FA2: start_thread (pthread_create.c:486)
==15773==
==15773== Invalid read of size 4
==15773== at 0xDF8DBA6: SHAPE_CIRCLE::BBox(int) const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDF8D771: D_PAD::GetBoundingBox() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF7544: ZONE_FILLER::buildCopperItemClearances(ZONE_CONTAINER const*, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF97FE: ZONE_FILLER::fillSingleZone(ZONE_CONTAINER*, SHAPE_POLY_SET&, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF9D47: ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}::operator()(PROGRESS_REPORTER*) const [clone .isra.559] (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFB6B2: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<unsigned long>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long> >::_M_invoke(std::_Any_data const&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFBE7A: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x6271996: __pthread_once_slow (pthread_once.c:116)
==15773== by 0xDBF5404: std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long>::_Async_state_impl(std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*>&&)::{lambda()#1}> > >::_M_run() (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x5FFCB2E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==15773== by 0x6269FA2: start_thread (pthread_create.c:486)
==15773== by 0x637C4CE: clone (clone.S:95)
==15773== Address 0x3e989c84 is 20 bytes inside a block of size 24 free'd
==15773== at 0x483708B: operator delete(void*, unsigned long) (vg_replace_malloc.c:585)
==15773== by 0xDF8CA0B: D_PAD::buildEffectiveShapes() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDF8D7B7: D_PAD::GetBoundingBox() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF5D50: ZONE_FILLER::buildThermalSpokes(ZONE_CONTAINER const*, std::deque<SHAPE_LINE_CHAIN, std::allocator<SHAPE_LINE_CHAIN> >&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF980E: ZONE_FILLER::fillSingleZone(ZONE_CONTAINER*, SHAPE_POLY_SET&, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF9D47: ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}::operator()(PROGRESS_REPORTER*) const [clone .isra.559] (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFB6B2: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<unsigned long>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long> >::_M_invoke(std::_Any_data const&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFBE7A: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x6271996: __pthread_once_slow (pthread_once.c:116)
==15773== by 0xDBF5404: std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long>::_Async_state_impl(std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*>&&)::{lambda()#1}> > >::_M_run() (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x5FFCB2E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==15773== by 0x6269FA2: start_thread (pthread_create.c:486)
==15773== Block was alloc'd at
==15773== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==15773== by 0xDF8CD96: D_PAD::buildEffectiveShapes() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDF8D7B7: D_PAD::GetBoundingBox() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF7544: ZONE_FILLER::buildCopperItemClearances(ZONE_CONTAINER const*, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF97FE: ZONE_FILLER::fillSingleZone(ZONE_CONTAINER*, SHAPE_POLY_SET&, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF9D47: ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}::operator()(PROGRESS_REPORTER*) const [clone .isra.559] (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFB6B2: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<unsigned long>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long> >::_M_invoke(std::_Any_data const&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFBE7A: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x6271996: __pthread_once_slow (pthread_once.c:116)
==15773== by 0xDBF5404: std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long>::_Async_state_impl(std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*>&&)::{lambda()#1}> > >::_M_run() (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x5FFCB2E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==15773== by 0x6269FA2: start_thread (pthread_create.c:486)
==15773==
==15773== Invalid read of size 4
==15773== at 0xDF8DBA9: SHAPE_CIRCLE::BBox(int) const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDF8D771: D_PAD::GetBoundingBox() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF7544: ZONE_FILLER::buildCopperItemClearances(ZONE_CONTAINER const*, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF97FE: ZONE_FILLER::fillSingleZone(ZONE_CONTAINER*, SHAPE_POLY_SET&, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF9D47: ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}::operator()(PROGRESS_REPORTER*) const [clone .isra.559] (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFB6B2: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<unsigned long>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long> >::_M_invoke(std::_Any_data const&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFBE7A: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x6271996: __pthread_once_slow (pthread_once.c:116)
==15773== by 0xDBF5404: std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long>::_Async_state_impl(std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*>&&)::{lambda()#1}> > >::_M_run() (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x5FFCB2E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==15773== by 0x6269FA2: start_thread (pthread_create.c:486)
==15773== by 0x637C4CE: clone (clone.S:95)
==15773== Address 0x3e989c7c is 12 bytes inside a block of size 24 free'd
==15773== at 0x483708B: operator delete(void*, unsigned long) (vg_replace_malloc.c:585)
==15773== by 0xDF8CA0B: D_PAD::buildEffectiveShapes() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDF8D7B7: D_PAD::GetBoundingBox() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF5D50: ZONE_FILLER::buildThermalSpokes(ZONE_CONTAINER const*, std::deque<SHAPE_LINE_CHAIN, std::allocator<SHAPE_LINE_CHAIN> >&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF980E: ZONE_FILLER::fillSingleZone(ZONE_CONTAINER*, SHAPE_POLY_SET&, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF9D47: ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}::operator()(PROGRESS_REPORTER*) const [clone .isra.559] (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFB6B2: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<unsigned long>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long> >::_M_invoke(std::_Any_data const&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFBE7A: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x6271996: __pthread_once_slow (pthread_once.c:116)
==15773== by 0xDBF5404: std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long>::_Async_state_impl(std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*>&&)::{lambda()#1}> > >::_M_run() (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x5FFCB2E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==15773== by 0x6269FA2: start_thread (pthread_create.c:486)
==15773== Block was alloc'd at
==15773== at 0x4835DEF: operator new(unsigned long) (vg_replace_malloc.c:334)
==15773== by 0xDF8CD96: D_PAD::buildEffectiveShapes() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDF8D7B7: D_PAD::GetBoundingBox() const (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF7544: ZONE_FILLER::buildCopperItemClearances(ZONE_CONTAINER const*, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF97FE: ZONE_FILLER::fillSingleZone(ZONE_CONTAINER*, SHAPE_POLY_SET&, SHAPE_POLY_SET&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBF9D47: ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}::operator()(PROGRESS_REPORTER*) const [clone .isra.559] (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFB6B2: std::_Function_handler<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> (), std::__future_base::_Task_setter<std::unique_ptr<std::__future_base::_Result<unsigned long>, std::__future_base::_Result_base::_Deleter>, std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long> >::_M_invoke(std::_Any_data const&) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0xDBFBE7A: std::__future_base::_State_baseV2::_M_do_set(std::function<std::unique_ptr<std::__future_base::_Result_base, std::__future_base::_Result_base::_Deleter> ()>*, bool*) (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x6271996: __pthread_once_slow (pthread_once.c:116)
==15773== by 0xDBF5404: std::thread::_State_impl<std::thread::_Invoker<std::tuple<std::__future_base::_Async_state_impl<std::thread::_Invoker<std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*> >, unsigned long>::_Async_state_impl(std::tuple<ZONE_FILLER::Fill(std::vector<ZONE_CONTAINER*, std::allocator<ZONE_CONTAINER*> > const&, bool)::{lambda(PROGRESS_REPORTER*)#1}, WX_PROGRESS_REPORTER*>&&)::{lambda()#1}> > >::_M_run() (in /usr/local/bin/_pcbnew.kiface)
==15773== by 0x5FFCB2E: ??? (in /usr/lib/x86_64-linux-gnu/libstdc++.so.6.0.25)
==15773== by 0x6269FA2: start_thread (pthread_create.c:486)
KiCad Version
Application: Pcbnew
Version: (5.99.0-2037-g4ef02fd69), release build
Libraries:
wxWidgets 3.0.4
libcurl/7.64.0 OpenSSL/1.1.1d zlib/1.2.11 libidn2/2.0.5 libpsl/0.20.2 (+libidn2/2.0.5) libssh2/1.8.0 nghttp2/1.36.0 librtmp/2.3
Platform: Linux 4.19.0-9-amd64 x86_64, 64 bit, Little endian, wxGTK
Build Info:
Build date: Jun 25 2020 14:49:13
wxWidgets: 3.0.4 (wchar_t,wx containers,compatible with 2.8) GTK+ 3.24
Boost: 1.67.0
OCC: 7.3.0
Curl: 7.64.0
Compiler: GCC 8.3.0 with C++ ABI 1013
Build settings:
KICAD_SCRIPTING=ON
KICAD_SCRIPTING_MODULES=ON
KICAD_SCRIPTING_PYTHON3=ON
KICAD_SCRIPTING_WXPYTHON=ON
KICAD_SCRIPTING_WXPYTHON_PHOENIX=ON
KICAD_SCRIPTING_ACTION_MENU=ON
BUILD_GITHUB_PLUGIN=ON
KICAD_USE_OCC=ON
KICAD_SPICE=ON