Am 04.04.2005 um 03:16 schrieb Stephen Deasey:

I haven't figured this out yet :-(
It's probably going to be next week before I can take another look.



Hmmm... just went on Purify trip and unfortunately no cigar.
But...

I was experimenting somehow, and looking parallel into some
of our code and Tcl's code about obj handling.
There are two places I found:

RCS file: /cvsroot/naviserver/naviserver/nsd/tclobj.c,v
retrieving revision 1.2
diff -r1.2 tclobj.c
123c123
<         (typePtr->freeIntRepProc)(objPtr);
---
>         (*typePtr->freeIntRepProc)(objPtr);

I wonder how this *ever* worked before? I doubt
that anybody seriously used that.

Another thing: I do not think you should free the string rep
of the object by just calling the Tcl_ConvertToType (which
eventually calls SetSpecFromAny()). I modified the SetSpecFromAny()
to skip forcefully invalidating the string rep and now it works.

Also, in FreeSpecObj, it is necessary to zero-out the ptr1/ptr2
after freeing them since this will bring up the real problem sooner
on the surface. Besides, it is also cleaner.

I've checked those changes. Please have a look and see if this
is OK for you.

Zoran


Reply via email to