Good to hear sir and good luck. I will be glad to test if you think you got
the pointers properly updating.
On Oct 13, 2014 2:06 PM, "gagan" <thegag...@gmail.com> wrote:

> On Mon, May 12, 2014 at 10:40 AM, Dave Bender <codeh...@gmail.com> wrote:
> >
> > Dear List,
> >   I was working with a file containing 660,000 entries and had to make
> some changes. I use a hash table for handle->object index resolution to
> improve the parse performance by orders of magnitude (down from 14 minutes
> to 2 seconds). I also put in some const correctness because that's just
> basic. My git repo is here: https://github.com/benegon/libredwg
> >
> > Now for the bad news: I noticed LibreDWG stores pointers into arrays
> that are realloced, namely
> >
> > Dwg_Data.layer_control points into Dwg_Data.object, but this array is
> continually realloced and the base pointer may change.
> > Dwg_Data.header.section_info also seems to be afflicted by this bug.
> >
> > Possible Dwg_Data.dwg_class* as well.
> >
> > YOU CANNOT STORE POINTERS INTO THESE ARRAYS; realloc can move the whole
> array somewhere else, so please store the offsets instead and calculate the
> pointer when needed. This is probably why some people have been seeing
> memory corruption.
> >
> > For my own purposes I will initialize the number of objects to 1000000
> or more, depending on how big my files get. Hopefully you guys can resolve
> this memory issue.
>
> Thanks for the help Dave, I'll look into it soon.
>
> --
> Thanks
> Gaganjyot
> "Jai Sai Naath"
>
>

Reply via email to