Subj : Re: JS_ASSERT in js_MarkScriptFilename() To : netscape.public.mozilla.jseng From : "Edward Chan" Date : Thu Feb 19 2004 11:24 am Hi Brendan, Thanks for the speedy reply. Unfortunately, I don't have the assert in the debugger anymore, so I can't check if script->object exists. I'll check for this if I hit this again. But basically, this is what I'm doing: 1. call JS_CompileFileHandle() and get a JSScript*. 2. call JS_ExecuteScript() 3. call JS_DestroyScript() So basically, compile, execute, destroy. After executing the script, we destroy it cuz we never use it again. Is there anything wrong with this sequence? I'm not calling JS_NewScriptObject. And oddly, we've never run into this using rc5. Ed "Brendan Eich" wrote in message news:40350BA0.3060700@meer.net... > Edward Chan wrote: > > >script->filename is pointing to freed memory, but the script object itself > >still looks valid. > > > > > > You have run the GC while holding onto an unrooted script. Does the > script have an object (script->object, set by JS_NewScriptObject, which > you should call, and whose return value you should store in a rooted > pointer)? Check your data structures for raw JSScript * members. > > /be .