On 31.10.2006, at 12:28, Agustin Lopez wrote:


Tcl_SetBooleanObj called with shared object

The problem is the construct:

  Tcl_SetXXXObj(Tcl_GetObjResult(interp), ...)

as the Tcl_Obj stored in the interp result
may turn out to be shared under some circumstances.

You must rewrite all those occurrences into
something like:

  Tcl_SetObjResult(interp, Tcl_NewXXXObj(...));

The Tcl-core is being rewritten to remove such
idioms from the code.

Alternatively, you can do:

  Tcl_ResetResult(interp);
  Tcl_SetXXXObj(Tcl_GetObjResult(interp), ...)

Some people advocate for the latter, as being
slightly faster. I could not verify that fact.

This is of course the obvious part. More hidden can
be if there is some memory corruption underway...
But in that case, you must be using some memory
debugging tool to nail it down.

Hope this helps,
Zoran


--
AOLserver - http://www.aolserver.com/

To Remove yourself from this list, simply send an email to <[EMAIL PROTECTED]> 
with the
body of "SIGNOFF AOLSERVER" in the email message. You can leave the Subject: 
field of your email blank.

Reply via email to