|
From: strk <st...@ke...> - 2004-04-28 15:27:20
|
I've got the following error from valgrind: ==26245== Invalid read of size 4 ==26245== at 0x3C0AFB23: void std::__unguarded_linear_insert<__gnu_cxx::__nor mal_iterator<geos::Boundable**, std::vector<geos::Boundable*, std::allocator<geo s::Boundable*> > >, geos::Boundable*, bool (*)(geos::Boundable*, geos::Boundable *)>(__gnu_cxx::__normal_iterator<geos::Boundable**, std::vector<geos::Boundable* , std::allocator<geos::Boundable*> > >, geos::Boundable*, bool (*)(geos::Boundab le*, geos::Boundable*)) (stl_iterator.h:602) ==26245== by 0x3C0AF80C: _ZSt22__final_insertion_sortIN9__gnu_cxx17__normal_i teratorIPPN4geos9BoundableESt6vectorIS4_SaIS4_EEEEPFbS4_S4_EEvT_SC_T0_ (stl_iter ator.h:602) Can anybody help me understanding the circumstances in which this happen ? --strk; |
|
From: David E. <tw...@us...> - 2004-04-28 15:46:35
|
On Wed, 2004-04-28 at 17:30, strk wrote:
> I've got the following error from valgrind:
>
> ==26245== Invalid read of size 4
> ==26245== at 0x3C0AFB23: void std::__unguarded_linear_insert<__gnu_cxx::__nor
> mal_iterator<geos::Boundable**, std::vector<geos::Boundable*, std::allocator<geo
> s::Boundable*> > >, geos::Boundable*, bool (*)(geos::Boundable*, geos::Boundable
> *)>(__gnu_cxx::__normal_iterator<geos::Boundable**, std::vector<geos::Boundable*
> , std::allocator<geos::Boundable*> > >, geos::Boundable*, bool (*)(geos::Boundab
> le*, geos::Boundable*)) (stl_iterator.h:602)
> ==26245== by 0x3C0AF80C: _ZSt22__final_insertion_sortIN9__gnu_cxx17__normal_i
> teratorIPPN4geos9BoundableESt6vectorIS4_SaIS4_EEEEPFbS4_S4_EEvT_SC_T0_ (stl_iter
> ator.h:602)
>
> Can anybody help me understanding the circumstances in which
> this happen ?
In order for you to get help I suggest you provide more of the valgrind
output and relevant parts of source code.
--
Regards,
-\- David Eriksson -/-
SynCE - http://synce.sourceforge.net
CalcEm - http://calcem.sourceforge.net
ScummVM - http://scummvm.sourceforge.net
Desquirr - http://desquirr.sourceforge.net
SetiWrapper - http://setiwrapper.sourceforge.net
|
|
From: strk <st...@ke...> - 2004-04-28 15:59:08
|
On request, this is more valgrind output:
==12560== Invalid read of size 4
==12560== at 0x3C0AFAA3: void std::__unguarded_linear_insert<__gnu_cxx::__nor
mal_iterator<geos::Boundable**, std::vector<geos::Boundable*, std::allocator<geo
s::Boundable*> > >, geos::Boundable*, bool (*)(geos::Boundable*, geos::Boundable
*)>(__gnu_cxx::__normal_iterator<geos::Boundable**, std::vector<geos::Boundable*
, std::allocator<geos::Boundable*> > >, geos::Boundable*, bool (*)(geos::Boundab
le*, geos::Boundable*)) (stl_iterator.h:602)
==12560== by 0x3C0AF78C: _ZSt22__final_insertion_sortIN9__gnu_cxx17__normal_i
teratorIPPN4geos9BoundableESt6vectorIS4_SaIS4_EEEEPFbS4_S4_EEvT_SC_T0_ (stl_iter
ator.h:602)
==12560== by 0x3C0B12B0: geos::STRtree::createParentBoundables(std::vector<ge
os::Boundable*, std::allocator<geos::Boundable*> >*, int) (stl_algo.h:2212)
==12560== by 0x3C0AF088: geos::AbstractSTRtree::createHigherLevels(std::vecto
r<geos::Boundable*, std::allocator<geos::Boundable*> >*, int) (AbstractSTRtree.c
pp:133)
And this is the code where 'sort' is called:
vector<Boundable*>*
STRtree::createParentBoundables(vector<Boundable*> *childBoundables, int newLevel)
{
Assert::isTrue(!childBoundables->empty());
int minLeafCount=(int) ceil((double)childBoundables->size()/(double)getNodeCapacity());
vector<Boundable*> *sortedChildBoundables=new vector<Boundable*>(childBoundables->begin(),childBoundables->end());
sort(sortedChildBoundables->begin(),sortedChildBoundables->end(),xComparator);
Commenting out the 'sort' call algorithm is broken, but I don't get
segmentation faults.
--strk;
On Wed, Apr 28, 2004 at 05:46:21PM +0200, David Eriksson wrote:
> On Wed, 2004-04-28 at 17:30, strk wrote:
> > I've got the following error from valgrind:
> >
> > ==26245== Invalid read of size 4
> > ==26245== at 0x3C0AFB23: void std::__unguarded_linear_insert<__gnu_cxx::__nor
> > mal_iterator<geos::Boundable**, std::vector<geos::Boundable*, std::allocator<geo
> > s::Boundable*> > >, geos::Boundable*, bool (*)(geos::Boundable*, geos::Boundable
> > *)>(__gnu_cxx::__normal_iterator<geos::Boundable**, std::vector<geos::Boundable*
> > , std::allocator<geos::Boundable*> > >, geos::Boundable*, bool (*)(geos::Boundab
> > le*, geos::Boundable*)) (stl_iterator.h:602)
> > ==26245== by 0x3C0AF80C: _ZSt22__final_insertion_sortIN9__gnu_cxx17__normal_i
> > teratorIPPN4geos9BoundableESt6vectorIS4_SaIS4_EEEEPFbS4_S4_EEvT_SC_T0_ (stl_iter
> > ator.h:602)
> >
> > Can anybody help me understanding the circumstances in which
> > this happen ?
>
> In order for you to get help I suggest you provide more of the valgrind
> output and relevant parts of source code.
>
> --
> Regards,
> -\- David Eriksson -/-
>
> SynCE - http://synce.sourceforge.net
> CalcEm - http://calcem.sourceforge.net
> ScummVM - http://scummvm.sourceforge.net
> Desquirr - http://desquirr.sourceforge.net
> SetiWrapper - http://setiwrapper.sourceforge.net
|