From b4c19d03416eb2c178bd5f817bcc98fd81b6054f Mon Sep 17 00:00:00 2001 From: "danm%netscape.com" Date: Sat, 24 Mar 2001 00:52:16 +0000 Subject: [PATCH] fixing OpenWindow with extra args TYPE_CHAR and TYPE_WSTRING cases. r=jst,hyatt --- .../windowwatcher/src/nsWindowWatcher.cpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/embedding/components/windowwatcher/src/nsWindowWatcher.cpp b/embedding/components/windowwatcher/src/nsWindowWatcher.cpp index 44c9767f9cfd..0ad56e6e26f8 100644 --- a/embedding/components/windowwatcher/src/nsWindowWatcher.cpp +++ b/embedding/components/windowwatcher/src/nsWindowWatcher.cpp @@ -1483,7 +1483,6 @@ nsWindowWatcher::AddSupportsTojsvals(nsISupports *aArg, break; } case nsISupportsPrimitive::TYPE_WSTRING : { -#if 0 nsCOMPtr p(do_QueryInterface(argPrimitive)); NS_ENSURE_TRUE(p, NS_ERROR_UNEXPECTED); @@ -1491,13 +1490,13 @@ nsWindowWatcher::AddSupportsTojsvals(nsISupports *aArg, p->GetData(&data); - JSString *str = ::JS_NewUCString(cx, data, nsCRT::strlen(data)); + // cast is probably safe since wchar_t and jschar are expected + // to be equivalent; both unsigned 16-bit entities + JSString *str = ::JS_NewUCString(cx, NS_REINTERPRET_CAST(jschar *, data), + nsCRT::strlen(data)); NS_ENSURE_TRUE(str, NS_ERROR_OUT_OF_MEMORY); *aArgv = STRING_TO_JSVAL(str); -#else -*aArgv = JSVAL_NULL; -#endif break; } case nsISupportsPrimitive::TYPE_PRBOOL : { @@ -1556,7 +1555,10 @@ nsWindowWatcher::AddSupportsTojsvals(nsISupports *aArg, p->GetData(&data); - *aArgv = INT_TO_JSVAL(data); + JSString *str = ::JS_NewStringCopyN(cx, &data, 1); + NS_ENSURE_TRUE(str, NS_ERROR_OUT_OF_MEMORY); + + *aArgv = STRING_TO_JSVAL(str); break; }