On Sun, Nov 06, 2005 at 12:56:13AM +0100, Alexandre Anriot wrote:
> The update looks correct.
> 
> It builds and runs on i386 here, but the soft has some issues, e.g when
> trying to create a segment, it crashes with something like:
> 
> (1st and 2nd point)
> 
> First instantiation of item with key 87811D00
> First instantiation of item with key 87811680
> 
> (segment between them)
> 
> parent on hash with key 7FFFFFFF
> Find parent with ref. 87811D00
> parent on hash with key 7FFFFFFF
> Find parent with ref. 87811680
> xmlInsertParent : can't find the key 7FFFFFFF in the hash table

Yes. I think the problem comes from line 1047 of drgeo_figure.cc:

return GINT_TO_POINTER (strtol ((gchar *) data.key, NULL, 16));

Looks like bad design... it's using the address of item (pointer value)
as a hash key, and the pointer happens to be larger than INT_MAX (the
value it can't find above). Maybe this can be solved by generating the
hash key in a different way. Right now we basically have:

geometricObject *item;
item = theFigure->xmlBuildItem (...);
key = item;

Any suggestions?

-- 
steven

Disclaimer: http://www.kuleuven.be/cwis/email_disclaimer.htm

Reply via email to