And your idl looks like...?

Where does it crash.

John.

Chuck Messenger wrote:

> John Bandhauer wrote:
> 
>> Pass in a JSObject. XPConnect will set a property called 'value' on 
>> the object hold the 'out' data.
>>
>>     var errStr = {}; // object literal same as 'new Object()'
>>     if (obj.Open("file.foo", errStr))
>>         alert(errStr.value);
>>
>> John.
> 
> 
> 
> OK, I tried this out, but I'm still stumped.
> 
> In my C++ implementation code, I have:
> 
> 
> NS_IMETHODIMP sfGamesetImpl::Open(const char *path, char * *aErrStr,
>                                                            PRBool *_retval)
> {
>    ofstream fs(DUMP_FILE, ios::out | ios::app);
>    if (fs)
>        fs << "sfGameset::Open " << path << endl;
> 
>    *_retval = false;
> 
>    if (*aErrStr) {
>        fs << "  freeing aErrStr\n";
>        PL_strfree(*aErrStr);
>        *aErrStr = 0;
>    }
> 
>    if (PL_strlen(path) > 5) {  // Just to test an error return
>        ostringstream os;
>        os << "Error: [" << path << "]";  // just so I see it did 
> something intelligent
> 
>        *aErrStr = PL_strdup(os.str().c_str());
> 
>        if (fs)
>            fs << "    error: " << *aErrStr << endl;
>        *_retval = true;
>    }
> 
>    return NS_OK;
> }
> 
> 
> 
> Call obj.Open() from JavaScript crashes Mozilla.  Is there something 
> wrong with my implementation?
> 
> 
>     - Chuck
> 


Reply via email to