Merge mozilla-central to mozilla-inbound

This commit is contained in:
Marco Bonardo 2011-11-26 14:29:05 +01:00
Родитель a9fbf1b25b 28748b3856
Коммит 96913eceb2
71 изменённых файлов: 1092 добавлений и 1222 удалений

Просмотреть файл

@ -1,5 +1,5 @@
<?xml version="1.0"?>
<blocklist xmlns="http://www.mozilla.org/2006/addons-blocklist" lastupdate="1318359094000">
<blocklist xmlns="http://www.mozilla.org/2006/addons-blocklist" lastupdate="1321712096000">
<emItems>
<emItem blockID="i41" id="{99079a25-328f-4bd4-be04-00955acaa0a7}">
<versionRange minVersion="0.1" maxVersion="4.3.1.00" severity="1">
@ -117,6 +117,13 @@
<versionRange minVersion="2.2" maxVersion="2.2">
</versionRange>
</emItem>
<emItem blockID="i45" id="{22119944-ED35-4ab1-910B-E619EA06A115}">
<versionRange minVersion="0.1" maxVersion="7.6.1">
<targetApplication id="{ec8030f7-c20a-464f-9b0e-13a3a9e97384}">
<versionRange minVersion="8.0a1" maxVersion="*" />
</targetApplication>
</versionRange>
</emItem>
<emItem blockID="i3" id="langpack-vi-VN@firefox.mozilla.org">
<versionRange minVersion="2.0" maxVersion="2.0">
</versionRange>

Просмотреть файл

@ -701,10 +701,8 @@ nsEventListenerManager::CompileEventHandlerInternal(nsListenerStruct *aListenerS
// Bind it
nsScriptObjectHolder boundHandler(context);
context->BindCompiledEventHandler(mTarget, listener->GetEventScope(),
handler, boundHandler);
listener->SetHandler(
static_cast<JSObject*>(
static_cast<void*>(boundHandler)));
handler.getObject(), boundHandler);
listener->SetHandler(boundHandler.getObject());
}
return result;

Просмотреть файл

@ -506,14 +506,14 @@ nsHTMLCanvasElement::GetContext(const nsAString& aContextId,
jsid propid = JS_IdArrayGet(cx, props, i);
jsval propname, propval;
if (!JS_IdToValue(cx, propid, &propname) ||
!JS_GetPropertyById(cx, opts, propid, &propval))
{
!JS_GetPropertyById(cx, opts, propid, &propval)) {
continue;
}
JSString *propnameString = JS_ValueToString(cx, propname);
nsDependentJSString pstr;
if (!propnameString || !pstr.init(cx, propnameString)) {
JS_DestroyIdArray(cx, props);
mCurrentContext = nsnull;
return NS_ERROR_FAILURE;
}
@ -528,6 +528,7 @@ nsHTMLCanvasElement::GetContext(const nsAString& aContextId,
JSString *propvalString = JS_ValueToString(cx, propval);
nsDependentJSString vstr;
if (!propvalString || !vstr.init(cx, propvalString)) {
JS_DestroyIdArray(cx, props);
mCurrentContext = nsnull;
return NS_ERROR_FAILURE;
}
@ -535,6 +536,7 @@ nsHTMLCanvasElement::GetContext(const nsAString& aContextId,
contextProps->SetPropertyAsAString(pstr, vstr);
}
}
JS_DestroyIdArray(cx, props);
}
}

Просмотреть файл

@ -144,7 +144,7 @@ DOMSVGLengthList::InternalListLengthWillChange(PRUint32 aNewLength)
}
SVGLengthList&
DOMSVGLengthList::InternalList()
DOMSVGLengthList::InternalList() const
{
SVGAnimatedLengthList *alist = Element()->GetAnimatedLengthList(AttrEnum());
return IsAnimValList() && alist->mAnimVal ? *alist->mAnimVal : alist->mBaseVal;

Просмотреть файл

@ -103,8 +103,7 @@ public:
*/
PRUint32 Length() const {
NS_ABORT_IF_FALSE(mItems.Length() == 0 ||
mItems.Length() ==
const_cast<DOMSVGLengthList*>(this)->InternalList().Length(),
mItems.Length() == InternalList().Length(),
"DOM wrapper's list length is out of sync");
return mItems.Length();
}
@ -116,7 +115,7 @@ public:
private:
nsSVGElement* Element() {
nsSVGElement* Element() const {
return mAList->mElement;
}
@ -143,7 +142,7 @@ private:
* get const protection, but our setter methods guard against changing
* animVal lists.
*/
SVGLengthList& InternalList();
SVGLengthList& InternalList() const;
/// Creates a DOMSVGLength for aIndex, if it doesn't already exist.
void EnsureItemAt(PRUint32 aIndex);

Просмотреть файл

@ -144,7 +144,7 @@ DOMSVGNumberList::InternalListLengthWillChange(PRUint32 aNewLength)
}
SVGNumberList&
DOMSVGNumberList::InternalList()
DOMSVGNumberList::InternalList() const
{
SVGAnimatedNumberList *alist = Element()->GetAnimatedNumberList(AttrEnum());
return IsAnimValList() && alist->mAnimVal ? *alist->mAnimVal : alist->mBaseVal;

Просмотреть файл

@ -102,8 +102,7 @@ public:
*/
PRUint32 Length() const {
NS_ABORT_IF_FALSE(mItems.Length() == 0 ||
mItems.Length() ==
const_cast<DOMSVGNumberList*>(this)->InternalList().Length(),
mItems.Length() == InternalList().Length(),
"DOM wrapper's list length is out of sync");
return mItems.Length();
}
@ -115,7 +114,7 @@ public:
private:
nsSVGElement* Element() {
nsSVGElement* Element() const {
return mAList->mElement;
}
@ -138,7 +137,7 @@ private:
* get const protection, but our setter methods guard against changing
* animVal lists.
*/
SVGNumberList& InternalList();
SVGNumberList& InternalList() const;
/// Creates a DOMSVGNumber for aIndex, if it doesn't already exist.
void EnsureItemAt(PRUint32 aIndex);

Просмотреть файл

@ -230,18 +230,18 @@ DOMSVGPathSegList::InternalListWillChangeTo(const SVGPathData& aNewValue)
bool
DOMSVGPathSegList::AttrIsAnimating() const
{
return const_cast<DOMSVGPathSegList*>(this)->InternalAList().IsAnimating();
return InternalAList().IsAnimating();
}
SVGPathData&
DOMSVGPathSegList::InternalList()
DOMSVGPathSegList::InternalList() const
{
SVGAnimatedPathSegList *alist = mElement->GetAnimPathSegList();
return mIsAnimValList && alist->IsAnimating() ? *alist->mAnimVal : alist->mBaseVal;
}
SVGAnimatedPathSegList&
DOMSVGPathSegList::InternalAList()
DOMSVGPathSegList::InternalAList() const
{
NS_ABORT_IF_FALSE(mElement->GetAnimPathSegList(), "Internal error");
return *mElement->GetAnimPathSegList();

Просмотреть файл

@ -120,8 +120,7 @@ public:
*/
PRUint32 Length() const {
NS_ABORT_IF_FALSE(mItems.Length() == 0 ||
mItems.Length() ==
const_cast<DOMSVGPathSegList*>(this)->InternalList().CountItems(),
mItems.Length() == InternalList().CountItems(),
"DOM wrapper's list length is out of sync");
return mItems.Length();
}
@ -184,9 +183,9 @@ private:
* get const protection, but our setter methods guard against changing
* anim val lists.
*/
SVGPathData& InternalList();
SVGPathData& InternalList() const;
SVGAnimatedPathSegList& InternalAList();
SVGAnimatedPathSegList& InternalAList() const;
/// Creates an instance of the appropriate DOMSVGPathSeg sub-class for
// aIndex, if it doesn't already exist.

Просмотреть файл

@ -175,18 +175,18 @@ DOMSVGPointList::InternalListWillChangeTo(const SVGPointList& aNewValue)
bool
DOMSVGPointList::AttrIsAnimating() const
{
return const_cast<DOMSVGPointList*>(this)->InternalAList().IsAnimating();
return InternalAList().IsAnimating();
}
SVGPointList&
DOMSVGPointList::InternalList()
DOMSVGPointList::InternalList() const
{
SVGAnimatedPointList *alist = mElement->GetAnimatedPointList();
return mIsAnimValList && alist->IsAnimating() ? *alist->mAnimVal : alist->mBaseVal;
}
SVGAnimatedPointList&
DOMSVGPointList::InternalAList()
DOMSVGPointList::InternalAList() const
{
NS_ABORT_IF_FALSE(mElement->GetAnimatedPointList(), "Internal error");
return *mElement->GetAnimatedPointList();

Просмотреть файл

@ -120,8 +120,7 @@ public:
*/
PRUint32 Length() const {
NS_ABORT_IF_FALSE(mItems.Length() == 0 ||
mItems.Length() ==
const_cast<DOMSVGPointList*>(this)->InternalList().Length(),
mItems.Length() == InternalList().Length(),
"DOM wrapper's list length is out of sync");
return mItems.Length();
}
@ -184,9 +183,9 @@ private:
* get const protection, but our setter methods guard against changing
* anim val lists.
*/
SVGPointList& InternalList();
SVGPointList& InternalList() const;
SVGAnimatedPointList& InternalAList();
SVGAnimatedPointList& InternalAList() const;
/// Creates a DOMSVGPoint for aIndex, if it doesn't already exist.
void EnsureItemAt(PRUint32 aIndex);

Просмотреть файл

@ -146,7 +146,7 @@ DOMSVGTransformList::InternalListLengthWillChange(PRUint32 aNewLength)
}
SVGTransformList&
DOMSVGTransformList::InternalList()
DOMSVGTransformList::InternalList() const
{
SVGAnimatedTransformList *alist = Element()->GetAnimatedTransformList();
return IsAnimValList() && alist->mAnimVal ?

Просмотреть файл

@ -97,8 +97,7 @@ public:
*/
PRUint32 Length() const {
NS_ABORT_IF_FALSE(mItems.IsEmpty() ||
mItems.Length() ==
const_cast<DOMSVGTransformList*>(this)->InternalList().Length(),
mItems.Length() == InternalList().Length(),
"DOM wrapper's list length is out of sync");
return mItems.Length();
}
@ -110,7 +109,7 @@ public:
private:
nsSVGElement* Element() {
nsSVGElement* Element() const {
return mAList->mElement;
}
@ -129,7 +128,7 @@ private:
* get const protection, but our setter methods guard against changing
* animVal lists.
*/
SVGTransformList& InternalList();
SVGTransformList& InternalList() const;
/// Creates a DOMSVGTransform for aIndex, if it doesn't already exist.
void EnsureItemAt(PRUint32 aIndex);

Просмотреть файл

@ -115,7 +115,7 @@ public:
const nsCString& aClassStr) = 0;
virtual nsresult CompileMember(nsIScriptContext* aContext,
const nsCString& aClassStr,
void* aClassObject)=0;
JSObject* aClassObject) = 0;
virtual void Trace(TraceCallback aCallback, void *aClosure) const = 0;

Просмотреть файл

@ -173,7 +173,7 @@ nsXBLProtoImplMethod::InstallMember(nsIScriptContext* aContext,
nsresult
nsXBLProtoImplMethod::CompileMember(nsIScriptContext* aContext, const nsCString& aClassStr,
void* aClassObject)
JSObject* aClassObject)
{
NS_TIME_FUNCTION_MIN(5);
NS_PRECONDITION(!IsCompiled(),
@ -239,13 +239,13 @@ nsXBLProtoImplMethod::CompileMember(nsIScriptContext* aContext, const nsCString&
nsresult rv = aContext->CompileFunction(aClassObject,
cname,
paramCount,
(const char**)args,
const_cast<const char**>(args),
body,
functionUri.get(),
uncompiledMethod->mBodyText.GetLineNumber(),
JSVERSION_LATEST,
true,
(void **) &methodObject);
&methodObject);
// Destroy our uncompiled method and delete our arg list.
delete uncompiledMethod;

Просмотреть файл

@ -127,7 +127,7 @@ public:
const nsCString& aClassStr);
virtual nsresult CompileMember(nsIScriptContext* aContext,
const nsCString& aClassStr,
void* aClassObject);
JSObject* aClassObject);
virtual void Trace(TraceCallback aCallback, void *aClosure) const;

Просмотреть файл

@ -222,7 +222,7 @@ nsXBLProtoImplProperty::InstallMember(nsIScriptContext* aContext,
nsresult
nsXBLProtoImplProperty::CompileMember(nsIScriptContext* aContext, const nsCString& aClassStr,
void* aClassObject)
JSObject* aClassObject)
{
NS_PRECONDITION(!mIsCompiled,
"Trying to compile an already-compiled property");
@ -260,7 +260,7 @@ nsXBLProtoImplProperty::CompileMember(nsIScriptContext* aContext, const nsCStrin
mGetterText->GetLineNumber(),
JSVERSION_LATEST,
true,
(void **) &getterObject);
&getterObject);
// Make sure we free mGetterText here before setting mJSGetterObject, since
// that'll overwrite mGetterText
@ -310,7 +310,7 @@ nsXBLProtoImplProperty::CompileMember(nsIScriptContext* aContext, const nsCStrin
mSetterText->GetLineNumber(),
JSVERSION_LATEST,
true,
(void **) &setterObject);
&setterObject);
// Make sure we free mSetterText here before setting mJSGetterObject, since
// that'll overwrite mSetterText

Просмотреть файл

@ -72,7 +72,7 @@ public:
const nsCString& aClassStr);
virtual nsresult CompileMember(nsIScriptContext* aContext,
const nsCString& aClassStr,
void* aClassObject);
JSObject* aClassObject);
virtual void Trace(TraceCallback aCallback, void *aClosure) const;

Просмотреть файл

@ -323,15 +323,14 @@ nsXBLPrototypeHandler::ExecuteHandler(nsIDOMEventTarget* aTarget,
JSObject* scope = boundGlobal->GetGlobalJSObject();
nsScriptObjectHolder boundHandler(boundContext);
rv = boundContext->BindCompiledEventHandler(scriptTarget, scope,
handler, boundHandler);
handler.getObject(), boundHandler);
NS_ENSURE_SUCCESS(rv, rv);
// Execute it.
nsCOMPtr<nsIDOMEventListener> eventListener;
rv = NS_NewJSEventListener(boundContext, scope,
scriptTarget, onEventAtom,
static_cast<JSObject*>(
static_cast<void*>(boundHandler)),
boundHandler.getObject(),
getter_AddRefs(eventListener));
NS_ENSURE_SUCCESS(rv, rv);
@ -349,9 +348,9 @@ nsXBLPrototypeHandler::EnsureEventHandler(nsIScriptGlobalObject* aGlobal,
// Check to see if we've already compiled this
nsCOMPtr<nsPIDOMWindow> pWindow = do_QueryInterface(aGlobal);
if (pWindow) {
void* cachedHandler = pWindow->GetCachedXBLPrototypeHandler(this);
JSObject* cachedHandler = pWindow->GetCachedXBLPrototypeHandler(this);
if (cachedHandler) {
aHandler.set(cachedHandler);
aHandler.setObject(cachedHandler);
return aHandler ? NS_OK : NS_ERROR_FAILURE;
}
}

Просмотреть файл

@ -727,7 +727,7 @@ nsScriptEventHandlerOwnerTearoff::GetCompiledEventHandler(
mElement->FindPrototypeAttribute(kNameSpaceID_None, aName);
if (attr) {
XUL_PROTOTYPE_ATTRIBUTE_METER(gNumCacheHits);
aHandler.set(attr->mEventHandler);
aHandler.setObject(attr->mEventHandler);
}
return NS_OK;
@ -815,7 +815,7 @@ nsScriptEventHandlerOwnerTearoff::CompileEventHandler(
elem->mHoldsScriptObject = true;
}
attr->mEventHandler = (void *)aHandler;
attr->mEventHandler = aHandler.getObject();
}
return NS_OK;
@ -2567,7 +2567,7 @@ NS_IMPL_CYCLE_COLLECTION_TRACE_NATIVE_BEGIN(nsXULPrototypeNode)
if (elem->mHoldsScriptObject) {
PRUint32 i;
for (i = 0; i < elem->mNumAttributes; ++i) {
void *handler = elem->mAttributes[i].mEventHandler;
JSObject* handler = elem->mAttributes[i].mEventHandler;
NS_IMPL_CYCLE_COLLECTION_TRACE_CALLBACK(elem->mScriptTypeID,
handler,
"mAttributes[i].mEventHandler")

Просмотреть файл

@ -126,7 +126,7 @@ public:
// mEventHandler is only valid for the language ID specified in the
// containing nsXULPrototypeElement. We would ideally use
// nsScriptObjectHolder, but want to avoid the extra lang ID.
void* mEventHandler;
JSObject* mEventHandler;
#ifdef XUL_PROTOTYPE_ATTRIBUTE_METERING
/**

Просмотреть файл

@ -86,6 +86,9 @@ public:
JSScript* getScript() const {
return static_cast<JSScript*>(mObject);
}
JSObject* getObject() const {
return static_cast<JSObject*>(mObject);
}
// Drop the script object - but *not* the nsIScriptContext.
nsresult drop() {
@ -96,6 +99,13 @@ public:
}
return rv;
}
nsresult setScript(JSScript* aScript) {
return set(aScript);
}
nsresult setObject(JSObject* aObject) {
return set(aObject);
}
nsresult set(void *object) {
NS_ASSERTION(getScriptTypeID() != nsIProgrammingLanguage::UNKNOWN,
"Must know the language!");

Просмотреть файл

@ -1492,7 +1492,7 @@ struct TraceData
};
static PLDHashOperator
TraceXBLHandlers(const void* aKey, void* aData, void* aClosure)
TraceXBLHandlers(const void* aKey, JSObject* aData, void* aClosure)
{
TraceData* data = static_cast<TraceData*>(aClosure);
data->callback(nsIProgrammingLanguage::JAVASCRIPT, aData,
@ -2077,13 +2077,12 @@ nsGlobalWindow::SetNewDocument(nsIDocument* aDocument,
mCreatingInnerWindow = true;
// Every script context we are initialized with must create a
// new global.
void *&newGlobal = (void *&)newInnerWindow->mJSObject;
nsCOMPtr<nsIXPConnectJSObjectHolder> &holder = mInnerWindowHolder;
rv = mContext->CreateNativeGlobalForInner(sgo, isChrome,
aDocument->NodePrincipal(),
&newGlobal,
&newInnerWindow->mJSObject,
getter_AddRefs(holder));
NS_ASSERTION(NS_SUCCEEDED(rv) && newGlobal && holder,
NS_ASSERTION(NS_SUCCEEDED(rv) && newInnerWindow->mJSObject && holder,
"Failed to get script global and holder");
mCreatingInnerWindow = false;
@ -5560,15 +5559,23 @@ nsGlobalWindow::ScrollByPages(PRInt32 numPages)
}
NS_IMETHODIMP
nsGlobalWindow::ClearTimeout()
nsGlobalWindow::ClearTimeout(PRInt32 aHandle)
{
return ClearTimeoutOrInterval();
if (aHandle <= 0) {
return NS_OK;
}
return ClearTimeoutOrInterval(aHandle);
}
NS_IMETHODIMP
nsGlobalWindow::ClearInterval()
nsGlobalWindow::ClearInterval(PRInt32 aHandle)
{
return ClearTimeoutOrInterval();
if (aHandle <= 0) {
return NS_OK;
}
return ClearTimeoutOrInterval(aHandle);
}
NS_IMETHODIMP
@ -6930,10 +6937,10 @@ nsGlobalWindow::InitJavaProperties()
mDummyJavaPluginOwner = nsnull;
}
void*
JSObject*
nsGlobalWindow::GetCachedXBLPrototypeHandler(nsXBLPrototypeHandler* aKey)
{
void* handler = nsnull;
JSObject* handler = nsnull;
if (mCachedXBLPrototypeHandlers.IsInitialized()) {
mCachedXBLPrototypeHandlers.Get(aKey, &handler);
}
@ -6970,7 +6977,7 @@ nsGlobalWindow::CacheXBLPrototypeHandler(nsXBLPrototypeHandler* aKey,
}
}
mCachedXBLPrototypeHandlers.Put(aKey, aHandler);
mCachedXBLPrototypeHandlers.Put(aKey, aHandler.getObject());
}
NS_IMETHODIMP
@ -9305,7 +9312,7 @@ nsGlobalWindow::RunTimeout(nsTimeout *aTimeout)
}
nsCOMPtr<nsIScriptTimeoutHandler> handler(timeout->mScriptHandler);
void *scriptObject = handler->GetScriptObject();
JSObject* scriptObject = static_cast<JSObject*>(handler->GetScriptObject());
if (!scriptObject) {
// Evaluate the timeout expression.
const PRUnichar *script = handler->GetHandlerText();
@ -9649,58 +9656,6 @@ nsresult nsGlobalWindow::ResetTimersForNonBackgroundWindow()
return NS_OK;
}
// A JavaScript specific version.
nsresult
nsGlobalWindow::ClearTimeoutOrInterval()
{
FORWARD_TO_INNER(ClearTimeoutOrInterval, (), NS_ERROR_NOT_INITIALIZED);
nsresult rv = NS_OK;
nsAXPCNativeCallContext *ncc = nsnull;
rv = nsContentUtils::XPConnect()->
GetCurrentNativeCallContext(&ncc);
NS_ENSURE_SUCCESS(rv, rv);
if (!ncc)
return NS_ERROR_NOT_AVAILABLE;
JSContext *cx = nsnull;
rv = ncc->GetJSContext(&cx);
NS_ENSURE_SUCCESS(rv, rv);
PRUint32 argc;
ncc->GetArgc(&argc);
if (argc < 1) {
// No arguments, return early.
return NS_OK;
}
jsval *argv = nsnull;
ncc->GetArgvPtr(&argv);
int32 timer_id;
JSAutoRequest ar(cx);
// XXXjst: Can we deal with this w/o using GetCurrentNativeCallContext()
if (argv[0] == JSVAL_VOID || !::JS_ValueToInt32(cx, argv[0], &timer_id) ||
timer_id <= 0) {
// Undefined or non-positive number passed as argument, return
// early. Make sure that JS_ValueToInt32 didn't set an exception.
::JS_ClearPendingException(cx);
return NS_OK;
}
return ClearTimeoutOrInterval(timer_id);
}
void
nsGlobalWindow::ClearAllTimeouts()
{

Просмотреть файл

@ -513,7 +513,7 @@ public:
void InitJavaProperties();
virtual NS_HIDDEN_(void*)
virtual NS_HIDDEN_(JSObject*)
GetCachedXBLPrototypeHandler(nsXBLPrototypeHandler* aKey);
virtual NS_HIDDEN_(void)
@ -684,7 +684,6 @@ protected:
// JS specific timeout functions (JS args grabbed from context).
nsresult SetTimeoutOrInterval(bool aIsInterval, PRInt32* aReturn);
nsresult ClearTimeoutOrInterval();
nsresult ResetTimersForNonBackgroundWindow();
// The timeout implementation functions.
@ -976,7 +975,7 @@ protected:
nsCOMPtr<nsIDOMOfflineResourceList> mApplicationCache;
nsDataHashtable<nsVoidPtrHashKey, void*> mCachedXBLPrototypeHandlers;
nsDataHashtable<nsVoidPtrHashKey, JSObject*> mCachedXBLPrototypeHandlers;
nsCOMPtr<nsIDocument> mSuspendedDoc;

Просмотреть файл

@ -74,8 +74,8 @@ NS_DEFINE_STATIC_IID_ACCESSOR(nsIScriptContextPrincipal,
NS_ISCRIPTCONTEXTPRINCIPAL_IID)
#define NS_ISCRIPTCONTEXT_IID \
{ 0x164ea909, 0x5cee, 0x4e20, \
{ 0x9f, 0xed, 0x43, 0x13, 0xab, 0xac, 0x1c, 0xd3 } }
{ 0x39b3ea7c, 0xdc26, 0x4756, \
{ 0xa0, 0x3c, 0x13, 0xa0, 0x42, 0x03, 0x07, 0x6a } }
/* This MUST match JSVERSION_DEFAULT. This version stuff if we don't
know what language we have is a little silly... */
@ -221,7 +221,7 @@ public:
* @param rval out parameter returning result
**/
virtual nsresult CallEventHandler(nsISupports* aTarget,
JSObject* aScope, void* aHandler,
JSObject* aScope, JSObject* aHandler,
nsIArray *argv, nsIVariant **rval) = 0;
/**
@ -247,7 +247,7 @@ public:
*/
virtual nsresult BindCompiledEventHandler(nsISupports* aTarget,
JSObject* aScope,
void* aHandler,
JSObject* aHandler,
nsScriptObjectHolder& aBoundHandler) = 0;
/**
@ -257,7 +257,7 @@ public:
* Caller must make sure aFunctionObject is a JS GC root.
*
**/
virtual nsresult CompileFunction(void* aTarget,
virtual nsresult CompileFunction(JSObject* aTarget,
const nsACString& aName,
PRUint32 aArgCount,
const char** aArgArray,
@ -266,7 +266,7 @@ public:
PRUint32 aLineNo,
PRUint32 aVersion,
bool aShared,
void **aFunctionObject) = 0;
JSObject** aFunctionObject) = 0;
/**
* Set the default scripting language version for this context, which must
@ -302,7 +302,7 @@ public:
nsIScriptGlobalObject *aNewInner,
bool aIsChrome,
nsIPrincipal *aPrincipal,
void **aNativeGlobal,
JSObject** aNativeGlobal,
nsISupports **aHolder) = 0;
/**
@ -311,7 +311,7 @@ public:
* Called after both the the inner and outer windows are initialized
**/
virtual nsresult ConnectToInner(nsIScriptGlobalObject *aNewInner,
void *aOuterGlobal) = 0;
JSObject *aOuterGlobal) = 0;
/**
@ -330,7 +330,7 @@ public:
/**
* Given an outer object, updates this context with that outer object.
*/
virtual nsresult SetOuterObject(void *aOuterObject) = 0;
virtual nsresult SetOuterObject(JSObject* aOuterObject) = 0;
/**
* Prepares this context for use with the current inner window for the
@ -428,7 +428,7 @@ public:
* call DidInitializeContext() when a context is fully
* (successfully) initialized.
*/
virtual nsresult InitClasses(void *aGlobalObj) = 0;
virtual nsresult InitClasses(JSObject* aGlobalObj) = 0;
/**
* Clear the scope object - may be called either as we are being torn down,

Просмотреть файл

@ -1578,7 +1578,7 @@ nsJSContext::CompileScript(const PRUnichar* aText,
if (script) {
NS_ASSERTION(aScriptObject.getScriptTypeID()==JAVASCRIPT,
"Expecting JS script object holder");
rv = aScriptObject.set(script);
rv = aScriptObject.setScript(script);
} else {
rv = NS_ERROR_OUT_OF_MEMORY;
}
@ -1778,13 +1778,13 @@ nsJSContext::CompileEventHandler(nsIAtom *aName,
JSObject *handler = ::JS_GetFunctionObject(fun);
NS_ASSERTION(aHandler.getScriptTypeID()==JAVASCRIPT,
"Expecting JS script object holder");
return aHandler.set((void *)handler);
return aHandler.setObject(handler);
}
// XXX - note that CompileFunction doesn't yet play the nsScriptObjectHolder
// game - caller must still ensure JS GC root.
nsresult
nsJSContext::CompileFunction(void* aTarget,
nsJSContext::CompileFunction(JSObject* aTarget,
const nsACString& aName,
PRUint32 aArgCount,
const char** aArgArray,
@ -1793,11 +1793,14 @@ nsJSContext::CompileFunction(void* aTarget,
PRUint32 aLineNo,
PRUint32 aVersion,
bool aShared,
void** aFunctionObject)
JSObject** aFunctionObject)
{
NS_TIME_FUNCTION_FMT(1.0, "%s (line %d) (function: %s, url: %s, line: %d)", MOZ_FUNCTION_NAME,
__LINE__, aName.BeginReading(), aURL, aLineNo);
NS_ABORT_IF_FALSE(aFunctionObject,
"Shouldn't call CompileFunction with null return value.");
NS_ENSURE_TRUE(mIsInitialized, NS_ERROR_NOT_INITIALIZED);
// Don't compile if aVersion is unknown. Since the caller is responsible for
@ -1820,7 +1823,7 @@ nsJSContext::CompileFunction(void* aTarget,
}
}
JSObject *target = (JSObject*)aTarget;
JSObject *target = aTarget;
JSAutoRequest ar(mContext);
@ -1829,7 +1832,7 @@ nsJSContext::CompileFunction(void* aTarget,
aShared ? nsnull : target, jsprin,
PromiseFlatCString(aName).get(),
aArgCount, aArgArray,
(jschar*)PromiseFlatString(aBody).get(),
static_cast<const jschar*>(PromiseFlatString(aBody).get()),
aBody.Length(),
aURL, aLineNo,
JSVersion(aVersion));
@ -1839,15 +1842,14 @@ nsJSContext::CompileFunction(void* aTarget,
if (!fun)
return NS_ERROR_FAILURE;
JSObject *handler = ::JS_GetFunctionObject(fun);
if (aFunctionObject)
*aFunctionObject = (void*) handler;
*aFunctionObject = JS_GetFunctionObject(fun);
return NS_OK;
}
nsresult
nsJSContext::CallEventHandler(nsISupports* aTarget, JSObject* aScope,
void *aHandler, nsIArray *aargv, nsIVariant **arv)
JSObject* aHandler, nsIArray* aargv,
nsIVariant** arv)
{
NS_ENSURE_TRUE(mIsInitialized, NS_ERROR_NOT_INITIALIZED);
@ -1857,7 +1859,7 @@ nsJSContext::CallEventHandler(nsISupports* aTarget, JSObject* aScope,
#ifdef NS_FUNCTION_TIMER
{
JSObject *obj = static_cast<JSObject *>(aHandler);
JSObject *obj = aHandler;
if (js::IsFunctionProxy(obj))
obj = js::UnwrapObject(obj);
JSString *id = JS_GetFunctionId(static_cast<JSFunction *>(JS_GetPrivate(mContext, obj)));
@ -1894,7 +1896,7 @@ nsJSContext::CallEventHandler(nsISupports* aTarget, JSObject* aScope,
PRUint32 argc = 0;
jsval *argv = nsnull;
JSObject *funobj = static_cast<JSObject *>(aHandler);
JSObject *funobj = aHandler;
nsCOMPtr<nsIPrincipal> principal;
rv = sSecurityManager->GetObjectPrincipal(mContext, funobj,
getter_AddRefs(principal));
@ -1964,7 +1966,7 @@ nsJSContext::CallEventHandler(nsISupports* aTarget, JSObject* aScope,
nsresult
nsJSContext::BindCompiledEventHandler(nsISupports* aTarget, JSObject* aScope,
void *aHandler,
JSObject* aHandler,
nsScriptObjectHolder& aBoundHandler)
{
NS_ENSURE_ARG(aHandler);
@ -1978,17 +1980,15 @@ nsJSContext::BindCompiledEventHandler(nsISupports* aTarget, JSObject* aScope,
nsresult rv = JSObjectFromInterface(aTarget, aScope, &target);
NS_ENSURE_SUCCESS(rv, rv);
JSObject *funobj = (JSObject*) aHandler;
#ifdef DEBUG
{
JSAutoEnterCompartment ac;
if (!ac.enter(mContext, funobj)) {
if (!ac.enter(mContext, aHandler)) {
return NS_ERROR_FAILURE;
}
NS_ASSERTION(JS_TypeOfValue(mContext,
OBJECT_TO_JSVAL(funobj)) == JSTYPE_FUNCTION,
OBJECT_TO_JSVAL(aHandler)) == JSTYPE_FUNCTION,
"Event handler object not a function");
}
#endif
@ -1998,14 +1998,18 @@ nsJSContext::BindCompiledEventHandler(nsISupports* aTarget, JSObject* aScope,
return NS_ERROR_FAILURE;
}
JSObject* funobj;
// Make sure the handler function is parented by its event target object
if (funobj) { // && ::JS_GetParent(mContext, funobj) != target) {
funobj = ::JS_CloneFunctionObject(mContext, funobj, target);
if (!funobj)
if (aHandler) {
funobj = JS_CloneFunctionObject(mContext, aHandler, target);
if (!funobj) {
rv = NS_ERROR_OUT_OF_MEMORY;
}
} else {
funobj = NULL;
}
aBoundHandler.set(funobj);
aBoundHandler.setObject(funobj);
return rv;
}
@ -2063,13 +2067,10 @@ nsresult
nsJSContext::Deserialize(nsIObjectInputStream* aStream,
nsScriptObjectHolder &aResult)
{
JSScript *result = nsnull;
nsresult rv;
NS_TIME_FUNCTION_MIN(1.0);
PRUint32 size;
rv = aStream->Read32(&size);
nsresult rv = aStream->Read32(&size);
if (NS_FAILED(rv)) return rv;
char* data;
@ -2079,6 +2080,7 @@ nsJSContext::Deserialize(nsIObjectInputStream* aStream,
JSContext* cx = mContext;
JSXDRState *xdr = ::JS_XDRNewMem(cx, JSXDR_DECODE);
JSScript *result = nsnull;
if (! xdr) {
rv = NS_ERROR_OUT_OF_MEMORY;
} else {
@ -2128,7 +2130,7 @@ nsJSContext::Deserialize(nsIObjectInputStream* aStream,
// code, which could happen for all sorts of reasons above.
NS_ENSURE_SUCCESS(rv, rv);
return aResult.set(result);
return aResult.setScript(result);
}
void
@ -2197,11 +2199,10 @@ nsJSContext::CreateNativeGlobalForInner(
nsIScriptGlobalObject *aNewInner,
bool aIsChrome,
nsIPrincipal *aPrincipal,
void **aNativeGlobal, nsISupports **aHolder)
JSObject** aNativeGlobal, nsISupports **aHolder)
{
nsIXPConnect *xpc = nsContentUtils::XPConnect();
PRUint32 flags = aIsChrome? nsIXPConnect::FLAG_SYSTEM_GLOBAL_OBJECT : 0;
nsCOMPtr<nsIXPConnectJSObjectHolder> jsholder;
nsCOMPtr<nsIPrincipal> systemPrincipal;
if (aIsChrome) {
@ -2209,35 +2210,35 @@ nsJSContext::CreateNativeGlobalForInner(
ssm->GetSystemPrincipal(getter_AddRefs(systemPrincipal));
}
nsRefPtr<nsIXPConnectJSObjectHolder> jsholder;
nsresult rv = xpc->
InitClassesWithNewWrappedGlobal(mContext,
aNewInner, NS_GET_IID(nsISupports),
aIsChrome ? systemPrincipal.get() : aPrincipal,
nsnull, flags,
getter_AddRefs(jsholder));
if (NS_FAILED(rv))
if (NS_FAILED(rv)) {
return rv;
jsholder->GetJSObject(reinterpret_cast<JSObject **>(aNativeGlobal));
*aHolder = jsholder.get();
NS_ADDREF(*aHolder);
}
jsholder->GetJSObject(aNativeGlobal);
jsholder.forget(aHolder);
return NS_OK;
}
nsresult
nsJSContext::ConnectToInner(nsIScriptGlobalObject *aNewInner, void *aOuterGlobal)
nsJSContext::ConnectToInner(nsIScriptGlobalObject *aNewInner, JSObject *aOuterGlobal)
{
NS_ENSURE_ARG(aNewInner);
#ifdef DEBUG
JSObject *newInnerJSObject = aNewInner->GetGlobalJSObject();
#endif
JSObject *outerGlobal = (JSObject *)aOuterGlobal;
// Now that we're connecting the outer global to the inner one,
// we must have transplanted it. The JS engine tries to maintain
// the global object's compartment as its default compartment,
// so update that now since it might have changed.
JS_SetGlobalObject(mContext, outerGlobal);
NS_ASSERTION(JS_GetPrototype(mContext, outerGlobal) ==
JS_SetGlobalObject(mContext, aOuterGlobal);
NS_ASSERTION(JS_GetPrototype(mContext, aOuterGlobal) ==
JS_GetPrototype(mContext, newInnerJSObject),
"outer and inner globals should have the same prototype");
@ -2293,15 +2294,13 @@ nsJSContext::CreateOuterObject(nsIScriptGlobalObject *aGlobalObject,
}
nsresult
nsJSContext::SetOuterObject(void *aOuterObject)
nsJSContext::SetOuterObject(JSObject* aOuterObject)
{
JSObject *outer = static_cast<JSObject *>(aOuterObject);
// Force our context's global object to be the outer.
JS_SetGlobalObject(mContext, outer);
JS_SetGlobalObject(mContext, aOuterObject);
// NB: JS_SetGlobalObject sets mContext->compartment.
JSObject *inner = JS_GetParent(mContext, outer);
JSObject *inner = JS_GetParent(mContext, aOuterObject);
nsIXPConnect *xpc = nsContentUtils::XPConnect();
nsCOMPtr<nsIXPConnectWrappedNative> wrapper;
@ -2311,7 +2310,7 @@ nsJSContext::SetOuterObject(void *aOuterObject)
NS_ABORT_IF_FALSE(wrapper, "bad wrapper");
wrapper->RefreshPrototype();
JS_SetPrototype(mContext, outer, JS_GetPrototype(mContext, inner));
JS_SetPrototype(mContext, aOuterObject, JS_GetPrototype(mContext, inner));
return NS_OK;
}
@ -2960,13 +2959,9 @@ static JSFunctionSpec EthogramFunctions[] = {
#endif
nsresult
nsJSContext::InitClasses(void *aGlobalObj)
nsJSContext::InitClasses(JSObject* aGlobalObj)
{
nsresult rv = NS_OK;
JSObject *globalObj = static_cast<JSObject *>(aGlobalObj);
rv = InitializeExternalClasses();
nsresult rv = InitializeExternalClasses();
NS_ENSURE_SUCCESS(rv, rv);
JSAutoRequest ar(mContext);
@ -2974,21 +2969,21 @@ nsJSContext::InitClasses(void *aGlobalObj)
::JS_SetOptions(mContext, mDefaultJSOptions);
// Attempt to initialize profiling functions
::JS_DefineProfilingFunctions(mContext, globalObj);
::JS_DefineProfilingFunctions(mContext, aGlobalObj);
#ifdef NS_TRACE_MALLOC
// Attempt to initialize TraceMalloc functions
::JS_DefineFunctions(mContext, globalObj, TraceMallocFunctions);
::JS_DefineFunctions(mContext, aGlobalObj, TraceMallocFunctions);
#endif
#ifdef MOZ_JPROF
// Attempt to initialize JProf functions
::JS_DefineFunctions(mContext, globalObj, JProfFunctions);
::JS_DefineFunctions(mContext, aGlobalObj, JProfFunctions);
#endif
#ifdef MOZ_TRACEVIS
// Attempt to initialize Ethogram functions
::JS_DefineFunctions(mContext, globalObj, EthogramFunctions);
::JS_DefineFunctions(mContext, aGlobalObj, EthogramFunctions);
#endif
JSOptionChangedCallback(js_options_dot_str, this);

Просмотреть файл

@ -109,13 +109,13 @@ public:
PRUint32 aVersion,
nsScriptObjectHolder &aHandler);
virtual nsresult CallEventHandler(nsISupports* aTarget, JSObject* aScope,
void* aHandler,
JSObject* aHandler,
nsIArray *argv, nsIVariant **rv);
virtual nsresult BindCompiledEventHandler(nsISupports *aTarget,
JSObject *aScope,
void *aHandler,
JSObject* aHandler,
nsScriptObjectHolder& aBoundHandler);
virtual nsresult CompileFunction(void* aTarget,
virtual nsresult CompileFunction(JSObject* aTarget,
const nsACString& aName,
PRUint32 aArgCount,
const char** aArgArray,
@ -124,7 +124,7 @@ public:
PRUint32 aLineNo,
PRUint32 aVersion,
bool aShared,
void** aFunctionObject);
JSObject** aFunctionObject);
virtual void SetDefaultLanguageVersion(PRUint32 aVersion);
virtual nsIScriptGlobalObject *GetGlobalObject();
@ -134,14 +134,14 @@ public:
nsIScriptGlobalObject *aGlobal,
bool aIsChrome,
nsIPrincipal *aPrincipal,
void **aNativeGlobal,
JSObject** aNativeGlobal,
nsISupports **aHolder);
virtual nsresult ConnectToInner(nsIScriptGlobalObject *aNewInner,
void *aOuterGlobal);
JSObject *aOuterGlobal);
virtual nsresult InitContext();
virtual nsresult CreateOuterObject(nsIScriptGlobalObject *aGlobalObject,
nsIScriptGlobalObject *aCurrentInner);
virtual nsresult SetOuterObject(void *aOuterObject);
virtual nsresult SetOuterObject(JSObject* aOuterObject);
virtual nsresult InitOuterWindow();
virtual bool IsContextInitialized();
virtual void FinalizeContext();
@ -161,7 +161,7 @@ public:
virtual void SetGCOnDestruction(bool aGCOnDestruction);
virtual nsresult InitClasses(void *aGlobalObj);
virtual nsresult InitClasses(JSObject* aGlobalObj);
virtual void ClearScope(void* aGlobalObj, bool bClearPolluters);
virtual void WillInitializeContext();

Просмотреть файл

@ -80,8 +80,8 @@ class nsIArray;
class nsPIWindowRoot;
#define NS_PIDOMWINDOW_IID \
{ 0x9db588f7, 0x3472, 0x45d0, \
{ 0x9f, 0x9b, 0x95, 0xca, 0xf6, 0x4d, 0x1a, 0xb1 } }
{ 0x29e6cc54, 0x10da, 0x4a68, \
{ 0xb7, 0x68, 0xfe, 0xa7, 0x71, 0x17, 0x93, 0x81 } }
class nsPIDOMWindow : public nsIDOMWindowInternal
{
@ -486,7 +486,7 @@ public:
*/
virtual void InitJavaProperties() = 0;
virtual void* GetCachedXBLPrototypeHandler(nsXBLPrototypeHandler* aKey) = 0;
virtual JSObject* GetCachedXBLPrototypeHandler(nsXBLPrototypeHandler* aKey) = 0;
virtual void CacheXBLPrototypeHandler(nsXBLPrototypeHandler* aKey,
nsScriptObjectHolder& aHandler) = 0;

Просмотреть файл

@ -38,7 +38,7 @@
#include "domstubs.idl"
[scriptable, uuid(14efb76c-5bd6-449e-b36f-0cbd22981f20)]
[scriptable, uuid(6652c4d2-6b49-424b-aaf9-91f91006fab7)]
interface nsIDOMJSWindow : nsISupports
{
void dump(in DOMString str);
@ -57,8 +57,8 @@ interface nsIDOMJSWindow : nsISupports
* clear. Often in existing code these methods are passed undefined,
* which is a nop so we need to support that as well.
*/
void clearTimeout();
void clearInterval();
void clearTimeout([optional] in long handle);
void clearInterval([optional] in long handle);
/**
* This method is here for backwards compatibility with 4.x only,

Просмотреть файл

@ -48,7 +48,7 @@ interface nsIScriptGlobalObject;
/**
* Encode and decode JSON text.
*/
[scriptable, uuid(a4d68b4e-0c0b-4c7c-b540-ef2f9834171f)]
[scriptable, uuid(43845d58-1054-47fb-8be3-970b3f7bd7ea)]
interface nsIJSON : nsISupports
{
/**
@ -56,7 +56,8 @@ interface nsIJSON : nsISupports
* The encode() method is only present for backward compatibility.
* encode() is not a conforming JSON stringify implementation!
*/
[deprecated] AString encode(/* in JSObject value */);
[deprecated,implicit_jscontext,optional_argc]
AString encode([optional] in jsval value);
/**
* New users should use JSON.stringify.
@ -65,19 +66,22 @@ interface nsIJSON : nsISupports
* The encodeToStream() method is only present for backward compatibility.
* encodeToStream() is not a conforming JSON stringify implementation!
*/
[deprecated] void encodeToStream(in nsIOutputStream stream,
in string charset,
in boolean writeBOM
/* in JSObject value */);
[deprecated,implicit_jscontext,optional_argc]
void encodeToStream(in nsIOutputStream stream,
in string charset,
in boolean writeBOM,
[optional] in jsval value);
/**
* New users should use JSON.parse!
* The decode() method is only present for backward compatibility.
*/
[deprecated] void /* JSObject */ decode(in AString str);
[deprecated,implicit_jscontext]
jsval decode(in AString str);
void /* JSObject */ decodeFromStream(in nsIInputStream stream,
in long contentLength);
[implicit_jscontext]
jsval decodeFromStream(in nsIInputStream stream,
in long contentLength);
[noscript] AString encodeFromJSVal(in JSValPtr value, in JSContext cx);
@ -97,11 +101,13 @@ interface nsIJSON : nsISupports
*
* @param str the string to parse
*/
void /* jsval */ legacyDecode(in AString str);
[implicit_jscontext]
jsval legacyDecode(in AString str);
/* Identical to legacyDecode, but decode the contents of stream. */
void /* jsval */ legacyDecodeFromStream(in nsIInputStream stream,
in long contentLength);
[implicit_jscontext]
jsval legacyDecodeFromStream(in nsIInputStream stream,
in long contentLength);
/* Identical to legacyDecode, but decode into a jsval. */
// Make sure you GCroot the result of this function before using it.

Просмотреть файл

@ -94,15 +94,21 @@ WarnDeprecatedMethod(DeprecationWarning warning)
}
NS_IMETHODIMP
nsJSON::Encode(nsAString &aJSON)
nsJSON::Encode(const JS::Value& aValue, JSContext* cx, PRUint8 aArgc, nsAString &aJSON)
{
// This function should only be called from JS.
nsresult rv = WarnDeprecatedMethod(EncodeWarning);
if (NS_FAILED(rv))
return rv;
if (aArgc == 0) {
aJSON.Truncate();
aJSON.SetIsVoid(true);
return NS_OK;
}
nsJSONWriter writer;
rv = EncodeInternal(&writer);
rv = EncodeInternal(cx, aValue, &writer);
// FIXME: bug 408838. Get exception types sorted out
if (NS_SUCCEEDED(rv) || rv == NS_ERROR_INVALID_ARG) {
@ -139,7 +145,10 @@ static nsresult CheckCharset(const char* aCharset)
NS_IMETHODIMP
nsJSON::EncodeToStream(nsIOutputStream *aStream,
const char* aCharset,
const bool aWriteBOM)
const bool aWriteBOM,
const JS::Value& val,
JSContext* cx,
PRUint8 aArgc)
{
// This function should only be called from JS.
NS_ENSURE_ARG(aStream);
@ -174,7 +183,11 @@ nsJSON::EncodeToStream(nsIOutputStream *aStream,
rv = writer.SetCharset(aCharset);
NS_ENSURE_SUCCESS(rv, rv);
rv = EncodeInternal(&writer);
if (aArgc == 0) {
return NS_OK;
}
rv = EncodeInternal(cx, val, &writer);
NS_ENSURE_SUCCESS(rv, rv);
rv = bufferedStream->Flush();
@ -238,52 +251,22 @@ nsJSON::EncodeFromJSVal(jsval *value, JSContext *cx, nsAString &result)
}
nsresult
nsJSON::EncodeInternal(nsJSONWriter *writer)
nsJSON::EncodeInternal(JSContext* cx, const JS::Value& aValue, nsJSONWriter* writer)
{
nsresult rv;
nsIXPConnect *xpc = nsContentUtils::XPConnect();
if (!xpc)
return NS_ERROR_FAILURE;
// Now fish for the JS argument. If it's a call to encode, we'll
// want the first argument. If it's a call to encodeToStream,
// we'll want the forth.
const PRUint32 firstArg = writer->mStream ? 3 : 0;
nsAXPCNativeCallContext *cc = nsnull;
rv = xpc->GetCurrentNativeCallContext(&cc);
NS_ENSURE_SUCCESS(rv, rv);
PRUint32 argc = 0;
rv = cc->GetArgc(&argc);
NS_ENSURE_SUCCESS(rv, rv);
// If the argument wasn't provided, there's nothing to serialize.
if (argc <= firstArg)
return NS_OK;
JSContext *cx = nsnull;
rv = cc->GetJSContext(&cx);
NS_ENSURE_SUCCESS(rv, rv);
JSAutoRequest ar(cx);
// Get the object we're going to serialize.
jsval *argv = nsnull;
rv = cc->GetArgvPtr(&argv);
NS_ENSURE_SUCCESS(rv, rv);
// If the argument wasn't provided, there's nothing to serialize.
if (argc <= firstArg)
return NS_ERROR_INVALID_ARG;
jsval *vp = &argv[firstArg];
// Backward compatibility:
// nsIJSON does not allow to serialize anything other than objects
JSObject *obj;
if (!JSVAL_IS_OBJECT(*vp) || !(obj = JSVAL_TO_OBJECT(*vp)))
if (!JSVAL_IS_OBJECT(aValue)) {
return NS_ERROR_INVALID_ARG;
}
JSObject* obj = JSVAL_TO_OBJECT(aValue);
if (!obj) {
return NS_ERROR_INVALID_ARG;
}
JS::Value val = aValue;
/* Backward compatibility:
* Manually call toJSON if implemented by the object and check that
@ -295,9 +278,8 @@ nsJSON::EncodeInternal(nsJSONWriter *writer)
if (JS_GetMethod(cx, obj, "toJSON", NULL, &toJSON) &&
!JSVAL_IS_PRIMITIVE(toJSON) &&
JS_ObjectIsCallable(cx, JSVAL_TO_OBJECT(toJSON))) {
// If toJSON is implemented, it must not throw
if (!JS_CallFunctionValue(cx, obj, toJSON, 0, NULL, vp)) {
if (!JS_CallFunctionValue(cx, obj, toJSON, 0, NULL, &val)) {
if (JS_IsExceptionPending(cx))
// passing NS_OK will throw the pending exception
return NS_OK;
@ -308,7 +290,7 @@ nsJSON::EncodeInternal(nsJSONWriter *writer)
// Backward compatibility:
// nsIJSON does not allow to serialize anything other than objects
if (JSVAL_IS_PRIMITIVE(*vp))
if (JSVAL_IS_PRIMITIVE(val))
return NS_ERROR_INVALID_ARG;
}
// GetMethod may have thrown
@ -318,12 +300,12 @@ nsJSON::EncodeInternal(nsJSONWriter *writer)
// Backward compatibility:
// function/xml shall not pass, just "plain" objects and arrays
JSType type = JS_TypeOfValue(cx, *vp);
JSType type = JS_TypeOfValue(cx, val);
if (type == JSTYPE_FUNCTION || type == JSTYPE_XML)
return NS_ERROR_INVALID_ARG;
// We're good now; try to stringify
if (!JS_Stringify(cx, vp, NULL, JSVAL_NULL, WriteCallback, writer))
if (!JS_Stringify(cx, &val, NULL, JSVAL_NULL, WriteCallback, writer))
return NS_ERROR_FAILURE;
return NS_OK;
@ -441,7 +423,7 @@ nsJSONWriter::WriteToStream(nsIOutputStream *aStream,
}
NS_IMETHODIMP
nsJSON::Decode(const nsAString& json)
nsJSON::Decode(const nsAString& json, JSContext* cx, JS::Value* aRetval)
{
nsresult rv = WarnDeprecatedMethod(DecodeWarning);
if (NS_FAILED(rv))
@ -455,13 +437,14 @@ nsJSON::Decode(const nsAString& json)
len * sizeof(PRUnichar),
NS_ASSIGNMENT_DEPEND);
NS_ENSURE_SUCCESS(rv, rv);
return DecodeInternal(stream, len, false);
return DecodeInternal(cx, stream, len, false, aRetval);
}
NS_IMETHODIMP
nsJSON::DecodeFromStream(nsIInputStream *aStream, PRInt32 aContentLength)
nsJSON::DecodeFromStream(nsIInputStream *aStream, PRInt32 aContentLength,
JSContext* cx, JS::Value* aRetval)
{
return DecodeInternal(aStream, aContentLength, true);
return DecodeInternal(cx, aStream, aContentLength, true, aRetval);
}
NS_IMETHODIMP
@ -469,8 +452,8 @@ nsJSON::DecodeToJSVal(const nsAString &str, JSContext *cx, jsval *result)
{
JSAutoRequest ar(cx);
if (!JS_ParseJSON(cx, (jschar*)PromiseFlatString(str).get(),
(uint32)str.Length(), result)) {
if (!JS_ParseJSON(cx, static_cast<const jschar*>(PromiseFlatString(str).get()),
str.Length(), result)) {
return NS_ERROR_UNEXPECTED;
}
@ -478,28 +461,13 @@ nsJSON::DecodeToJSVal(const nsAString &str, JSContext *cx, jsval *result)
}
nsresult
nsJSON::DecodeInternal(nsIInputStream *aStream,
nsJSON::DecodeInternal(JSContext* cx,
nsIInputStream *aStream,
PRInt32 aContentLength,
bool aNeedsConverter,
JS::Value* aRetval,
DecodingMode mode /* = STRICT */)
{
nsresult rv;
nsIXPConnect *xpc = nsContentUtils::XPConnect();
if (!xpc)
return NS_ERROR_FAILURE;
nsAXPCNativeCallContext *cc = nsnull;
rv = xpc->GetCurrentNativeCallContext(&cc);
NS_ENSURE_SUCCESS(rv, rv);
jsval *retvalPtr;
rv = cc->GetRetValPtr(&retvalPtr);
NS_ENSURE_SUCCESS(rv, rv);
JSContext *cx = nsnull;
rv = cc->GetJSContext(&cx);
NS_ENSURE_SUCCESS(rv, rv);
JSAutoRequest ar(cx);
// Consume the stream
@ -510,16 +478,14 @@ nsJSON::DecodeInternal(nsIInputStream *aStream,
return NS_ERROR_OUT_OF_MEMORY;
}
rv = NS_NewInputStreamChannel(getter_AddRefs(jsonChannel), mURI, aStream,
NS_LITERAL_CSTRING("application/json"));
nsresult rv =
NS_NewInputStreamChannel(getter_AddRefs(jsonChannel), mURI, aStream,
NS_LITERAL_CSTRING("application/json"));
if (!jsonChannel || NS_FAILED(rv))
return NS_ERROR_FAILURE;
nsRefPtr<nsJSONListener>
jsonListener(new nsJSONListener(cx, retvalPtr, aNeedsConverter, mode));
if (!jsonListener)
return NS_ERROR_OUT_OF_MEMORY;
nsRefPtr<nsJSONListener> jsonListener =
new nsJSONListener(cx, aRetval, aNeedsConverter, mode);
//XXX this stream pattern should be consolidated in netwerk
rv = jsonListener->OnStartRequest(jsonChannel, nsnull);
@ -560,15 +526,12 @@ nsJSON::DecodeInternal(nsIInputStream *aStream,
rv = jsonListener->OnStopRequest(jsonChannel, nsnull, status);
NS_ENSURE_SUCCESS(rv, rv);
rv = cc->SetReturnValueWasSet(true);
NS_ENSURE_SUCCESS(rv, rv);
return NS_OK;
}
NS_IMETHODIMP
nsJSON::LegacyDecode(const nsAString& json)
nsJSON::LegacyDecode(const nsAString& json, JSContext* cx, JS::Value* aRetval)
{
const PRUnichar *data;
PRUint32 len = NS_StringGetData(json, &data);
@ -578,13 +541,14 @@ nsJSON::LegacyDecode(const nsAString& json)
len * sizeof(PRUnichar),
NS_ASSIGNMENT_DEPEND);
NS_ENSURE_SUCCESS(rv, rv);
return DecodeInternal(stream, len, false, LEGACY);
return DecodeInternal(cx, stream, len, false, aRetval, LEGACY);
}
NS_IMETHODIMP
nsJSON::LegacyDecodeFromStream(nsIInputStream *aStream, PRInt32 aContentLength)
nsJSON::LegacyDecodeFromStream(nsIInputStream *aStream, PRInt32 aContentLength,
JSContext* cx, JS::Value* aRetval)
{
return DecodeInternal(aStream, aContentLength, true, LEGACY);
return DecodeInternal(cx, aStream, aContentLength, true, aRetval, LEGACY);
}
NS_IMETHODIMP
@ -592,8 +556,8 @@ nsJSON::LegacyDecodeToJSVal(const nsAString &str, JSContext *cx, jsval *result)
{
JSAutoRequest ar(cx);
if (!js::ParseJSONWithReviver(cx, (jschar*)PromiseFlatString(str).get(),
(uint32)str.Length(), js::NullValue(),
if (!js::ParseJSONWithReviver(cx, static_cast<const jschar*>(PromiseFlatString(str).get()),
str.Length(), JS::NullValue(),
result, LEGACY)) {
return NS_ERROR_UNEXPECTED;
}

Просмотреть файл

@ -86,11 +86,15 @@ public:
NS_DECL_NSIJSON
protected:
nsresult EncodeInternal(nsJSONWriter *writer);
nsresult EncodeInternal(JSContext* cx,
const JS::Value& val,
nsJSONWriter* writer);
nsresult DecodeInternal(nsIInputStream *aStream,
nsresult DecodeInternal(JSContext* cx,
nsIInputStream* aStream,
PRInt32 aContentLength,
bool aNeedsConverter,
JS::Value* aRetVal,
DecodingMode mode = STRICT);
nsCOMPtr<nsIURI> mURI;
};

Просмотреть файл

@ -46,7 +46,7 @@ class nsIntRegion;
native nsIntRegion(nsIntRegion);
[scriptable, uuid(f390b97c-a0cf-4cb4-b9e8-bfc15df76ab5)]
[scriptable, uuid(a5f44cc7-2820-489b-b817-ae8a08506ff6)]
interface nsIScriptableRegion : nsISupports
{
void init ( ) ;
@ -192,7 +192,7 @@ interface nsIScriptableRegion : nsISupports
* @return flat array of rects,ie [x1,y1,width1,height1,x2...].
* The result will contain bogus data if values don't fit in 31 bit
**/
void getRects();
[implicit_jscontext] jsval getRects();
/**
* does the region intersect the rectangle?
@ -207,8 +207,3 @@ interface nsIScriptableRegion : nsISupports
[noscript] readonly attribute nsIntRegion region;
};
%{ C++
%}

Просмотреть файл

@ -152,37 +152,17 @@ NS_IMETHODIMP nsScriptableRegion::GetRegion(nsIntRegion* outRgn)
return NS_OK;
}
NS_IMETHODIMP nsScriptableRegion::GetRects() {
nsAXPCNativeCallContext *ncc = nsnull;
nsresult rv;
nsCOMPtr<nsIXPConnect> xpConnect = do_GetService(nsIXPConnect::GetCID(), &rv);
NS_ENSURE_SUCCESS(rv, rv);
rv = xpConnect->GetCurrentNativeCallContext(&ncc);
NS_ENSURE_SUCCESS(rv, rv);
if (!ncc)
return NS_ERROR_FAILURE;
jsval *retvalPtr;
ncc->GetRetValPtr(&retvalPtr);
NS_IMETHODIMP nsScriptableRegion::GetRects(JSContext* aCx, JS::Value* aRects)
{
PRUint32 numRects = mRegion.GetNumRects();
if (!numRects) {
*retvalPtr = JSVAL_NULL;
ncc->SetReturnValueWasSet(true);
*aRects = JSVAL_NULL;
return NS_OK;
}
JSContext *cx = nsnull;
rv = ncc->GetJSContext(&cx);
NS_ENSURE_SUCCESS(rv, rv);
JSObject *destArray = JS_NewArrayObject(cx, numRects*4, NULL);
*retvalPtr = OBJECT_TO_JSVAL(destArray);
ncc->SetReturnValueWasSet(true);
JSObject* destArray = JS_NewArrayObject(aCx, numRects * 4, NULL);
*aRects = OBJECT_TO_JSVAL(destArray);
uint32 n = 0;
nsIntRegionRectIterator iter(mRegion);
@ -190,14 +170,14 @@ NS_IMETHODIMP nsScriptableRegion::GetRects() {
while ((rect = iter.Next())) {
// This will contain bogus data if values don't fit in 31 bit
JS_DefineElement(cx, destArray, n, INT_TO_JSVAL(rect->x), NULL, NULL, JSPROP_ENUMERATE);
JS_DefineElement(cx, destArray, n+1, INT_TO_JSVAL(rect->y), NULL, NULL, JSPROP_ENUMERATE);
JS_DefineElement(cx, destArray, n+2, INT_TO_JSVAL(rect->width), NULL, NULL, JSPROP_ENUMERATE);
JS_DefineElement(cx, destArray, n+3, INT_TO_JSVAL(rect->height), NULL, NULL, JSPROP_ENUMERATE);
// TODO: Bug 705414 - check for failure
JS_DefineElement(aCx, destArray, n, INT_TO_JSVAL(rect->x), NULL, NULL, JSPROP_ENUMERATE);
JS_DefineElement(aCx, destArray, n + 1, INT_TO_JSVAL(rect->y), NULL, NULL, JSPROP_ENUMERATE);
JS_DefineElement(aCx, destArray, n + 2, INT_TO_JSVAL(rect->width), NULL, NULL, JSPROP_ENUMERATE);
JS_DefineElement(aCx, destArray, n + 3, INT_TO_JSVAL(rect->height), NULL, NULL, JSPROP_ENUMERATE);
n += 4;
}
NS_ENSURE_SUCCESS(rv, rv);
return NS_OK;
}

Просмотреть файл

@ -36,7 +36,7 @@
#include "nsISupports.idl"
[scriptable, uuid(5b776cd4-952b-45a2-b363-84e99e8fe608)]
[scriptable, uuid(75767928-ecb1-4e6c-9f55-c118b297fcef)]
interface xpcIJSWeakReference : nsISupports
{
/**
@ -45,5 +45,5 @@ interface xpcIJSWeakReference : nsISupports
* Returns the referenced JS object or null if the JS object has
* been garbage collected.
*/
void /* JSObject */ get();
[implicit_jscontext] jsval get();
};

Просмотреть файл

@ -196,16 +196,16 @@ Dump(JSContext *cx, uintN argc, jsval *vp)
{
JSString *str;
if (!argc)
return JS_TRUE;
return true;
str = JS_ValueToString(cx, JS_ARGV(cx, vp)[0]);
if (!str)
return JS_FALSE;
return false;
size_t length;
const jschar *chars = JS_GetStringCharsAndLength(cx, str, &length);
if (!chars)
return JS_FALSE;
return false;
NS_ConvertUTF16toUTF8 utf8str(reinterpret_cast<const PRUnichar*>(chars));
#ifdef ANDROID
@ -213,7 +213,7 @@ Dump(JSContext *cx, uintN argc, jsval *vp)
#endif
fputs(utf8str.get(), stdout);
fflush(stdout);
return JS_TRUE;
return true;
}
static JSBool
@ -222,7 +222,7 @@ Debug(JSContext *cx, uintN argc, jsval *vp)
#ifdef DEBUG
return Dump(cx, argc, vp);
#else
return JS_TRUE;
return true;
#endif
}
@ -230,7 +230,7 @@ static JSBool
Atob(JSContext *cx, uintN argc, jsval *vp)
{
if (!argc)
return JS_TRUE;
return true;
return nsXPConnect::Base64Decode(cx, JS_ARGV(cx, vp)[0], &JS_RVAL(cx, vp));
}
@ -239,7 +239,7 @@ static JSBool
Btoa(JSContext *cx, uintN argc, jsval *vp)
{
if (!argc)
return JS_TRUE;
return true;
return nsXPConnect::Base64Encode(cx, JS_ARGV(cx, vp)[0], &JS_RVAL(cx, vp));
}
@ -251,14 +251,14 @@ File(JSContext *cx, uintN argc, jsval *vp)
if (!argc) {
XPCThrower::Throw(NS_ERROR_UNEXPECTED, cx);
return JS_FALSE;
return false;
}
nsCOMPtr<nsISupports> native;
rv = nsDOMFileFile::NewFile(getter_AddRefs(native));
if (NS_FAILED(rv)) {
XPCThrower::Throw(rv, cx);
return JS_FALSE;
return false;
}
nsCOMPtr<nsIJSNativeInitializer> initializer = do_QueryInterface(native);
@ -267,13 +267,13 @@ File(JSContext *cx, uintN argc, jsval *vp)
rv = initializer->Initialize(nsnull, cx, nsnull, argc, JS_ARGV(cx, vp));
if (NS_FAILED(rv)) {
XPCThrower::Throw(rv, cx);
return JS_FALSE;
return false;
}
nsXPConnect* xpc = nsXPConnect::GetXPConnect();
if (!xpc) {
XPCThrower::Throw(NS_ERROR_UNEXPECTED, cx);
return JS_FALSE;
return false;
}
JSObject* glob = JS_GetGlobalForScopeChain(cx);
@ -285,11 +285,11 @@ File(JSContext *cx, uintN argc, jsval *vp)
true, &retval, nsnull);
if (NS_FAILED(rv)) {
XPCThrower::Throw(rv, cx);
return JS_FALSE;
return false;
}
JS_SET_RVAL(cx, vp, retval);
return JS_TRUE;
return true;
}
static JSFunctionSpec gGlobalFun[] = {

Просмотреть файл

@ -154,9 +154,9 @@ FILE *gErrFile = NULL;
FILE *gInFile = NULL;
int gExitCode = 0;
JSBool gQuitting = JS_FALSE;
static JSBool reportWarnings = JS_TRUE;
static JSBool compileOnly = JS_FALSE;
JSBool gQuitting = false;
static JSBool reportWarnings = true;
static JSBool compileOnly = false;
JSPrincipals *gJSPrincipals = nsnull;
nsAutoString *gWorkingDirectory = nsnull;
@ -166,7 +166,7 @@ GetLocationProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
{
#if !defined(XP_WIN) && !defined(XP_UNIX)
//XXX: your platform should really implement this
return JS_FALSE;
return false;
#else
JSStackFrame *fp = JS_GetScriptedCaller(cx, NULL);
JSScript *script = JS_GetFrameScript(cx, fp);
@ -240,7 +240,7 @@ GetLocationProperty(JSContext *cx, JSObject *obj, jsid id, jsval *vp)
}
}
return JS_TRUE;
return true;
#endif
}
@ -261,7 +261,7 @@ GetLine(JSContext *cx, char *bufp, FILE *file, const char *prompt) {
if (file == stdin) {
char *linep = readline(prompt);
if (!linep)
return JS_FALSE;
return false;
if (*linep)
add_history(linep);
strcpy(bufp, linep);
@ -276,10 +276,10 @@ GetLine(JSContext *cx, char *bufp, FILE *file, const char *prompt) {
fputs(prompt, gOutFile);
fflush(gOutFile);
if ((!fgets(line, sizeof line, file) && errno != EINTR) || feof(file))
return JS_FALSE;
return false;
strcpy(bufp, line);
}
return JS_TRUE;
return true;
}
static void
@ -388,7 +388,7 @@ ReadLine(JSContext *cx, uintN argc, jsval *vp)
if (argc > 0) {
str = JS_ValueToString(cx, JS_ARGV(cx, vp)[0]);
if (!str)
return JS_FALSE;
return false;
} else {
str = JSVAL_TO_STRING(JS_GetEmptyStringValue(cx));
}
@ -396,14 +396,14 @@ ReadLine(JSContext *cx, uintN argc, jsval *vp)
/* Get a line from the infile */
JSAutoByteString strBytes(cx, str);
if (!strBytes || !GetLine(cx, buf, gInFile, strBytes.ptr()))
return JS_FALSE;
return false;
/* Strip newline character added by GetLine() */
unsigned int buflen = strlen(buf);
if (buflen == 0) {
if (feof(gInFile)) {
JS_SET_RVAL(cx, vp, JSVAL_NULL);
return JS_TRUE;
return true;
}
} else if (buf[buflen - 1] == '\n') {
--buflen;
@ -412,10 +412,10 @@ ReadLine(JSContext *cx, uintN argc, jsval *vp)
/* Turn buf into a JSString */
str = JS_NewStringCopyN(cx, buf, buflen);
if (!str)
return JS_FALSE;
return false;
JS_SET_RVAL(cx, vp, STRING_TO_JSVAL(str));
return JS_TRUE;
return true;
}
static JSBool
@ -428,10 +428,10 @@ Print(JSContext *cx, uintN argc, jsval *vp)
for (i = n = 0; i < argc; i++) {
str = JS_ValueToString(cx, argv[i]);
if (!str)
return JS_FALSE;
return false;
JSAutoByteString strBytes(cx, str);
if (!strBytes)
return JS_FALSE;
return false;
fprintf(gOutFile, "%s%s", i ? " " : "", strBytes.ptr());
fflush(gOutFile);
}
@ -439,7 +439,7 @@ Print(JSContext *cx, uintN argc, jsval *vp)
if (n)
fputc('\n', gOutFile);
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
return true;
}
static JSBool
@ -449,22 +449,22 @@ Dump(JSContext *cx, uintN argc, jsval *vp)
JSString *str;
if (!argc)
return JS_TRUE;
return true;
str = JS_ValueToString(cx, JS_ARGV(cx, vp)[0]);
if (!str)
return JS_FALSE;
return false;
JSAutoByteString bytes(cx, str);
if (!bytes)
return JS_FALSE;
return false;
#ifdef ANDROID
__android_log_print(ANDROID_LOG_INFO, "Gecko", bytes.ptr());
#endif
fputs(bytes.ptr(), gOutFile);
fflush(gOutFile);
return JS_TRUE;
return true;
}
static JSBool
@ -510,7 +510,7 @@ Version(JSContext *cx, uintN argc, jsval *vp)
JS_SET_RVAL(cx, vp, INT_TO_JSVAL(JS_SetVersion(cx, JSVersion(JSVAL_TO_INT(JS_ARGV(cx, vp)[0])))));
else
JS_SET_RVAL(cx, vp, INT_TO_JSVAL(JS_GetVersion(cx)));
return JS_TRUE;
return true;
}
static JSBool
@ -518,7 +518,7 @@ BuildDate(JSContext *cx, uintN argc, jsval *vp)
{
fprintf(gOutFile, "built on %s at %s\n", __DATE__, __TIME__);
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
return true;
}
static JSBool
@ -527,9 +527,9 @@ Quit(JSContext *cx, uintN argc, jsval *vp)
gExitCode = 0;
JS_ConvertArguments(cx, argc, JS_ARGV(cx, vp),"/ i", &gExitCode);
gQuitting = JS_TRUE;
gQuitting = true;
// exit(0);
return JS_FALSE;
return false;
}
static JSBool
@ -539,14 +539,14 @@ DumpXPC(JSContext *cx, uintN argc, jsval *vp)
if (argc > 0) {
if (!JS_ValueToInt32(cx, JS_ARGV(cx, vp)[0], &depth))
return JS_FALSE;
return false;
}
nsCOMPtr<nsIXPConnect> xpc = do_GetService(nsIXPConnect::GetCID());
if (xpc)
xpc->DebugDump((int16)depth);
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
return true;
}
static JSBool
@ -557,7 +557,7 @@ GC(JSContext *cx, uintN argc, jsval *vp)
js_DumpGCStats(cx->runtime, stdout);
#endif
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
return true;
}
#ifdef JS_GC_ZEAL
@ -566,11 +566,11 @@ GCZeal(JSContext *cx, uintN argc, jsval *vp)
{
uint32 zeal;
if (!JS_ValueToECMAUint32(cx, argc ? JS_ARGV(cx, vp)[0] : JSVAL_VOID, &zeal))
return JS_FALSE;
return false;
JS_SetGCZeal(cx, (PRUint8)zeal, JS_DEFAULT_ZEAL_FREQ, JS_FALSE);
JS_SetGCZeal(cx, (PRUint8)zeal, JS_DEFAULT_ZEAL_FREQ, false);
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
return true;
}
#endif
@ -597,10 +597,10 @@ DumpHeap(JSContext *cx, uintN argc, jsval *vp)
str = JS_ValueToString(cx, *vp);
if (!str)
return JS_FALSE;
return false;
*vp = STRING_TO_JSVAL(str);
if (!fileName.encode(cx, str))
return JS_FALSE;
return false;
}
vp = argv + 1;
@ -623,7 +623,7 @@ DumpHeap(JSContext *cx, uintN argc, jsval *vp)
uint32 depth;
if (!JS_ValueToECMAUint32(cx, *vp, &depth))
return JS_FALSE;
return false;
maxDepth = depth;
}
@ -641,7 +641,7 @@ DumpHeap(JSContext *cx, uintN argc, jsval *vp)
if (!dumpFile) {
fprintf(gErrFile, "dumpHeap: can't open %s: %s\n",
fileName.ptr(), strerror(errno));
return JS_FALSE;
return false;
}
}
@ -655,7 +655,7 @@ DumpHeap(JSContext *cx, uintN argc, jsval *vp)
fprintf(gErrFile,
"dumpHeap: argument %u is not null or a heap-allocated thing\n",
(unsigned)(vp - argv));
return JS_FALSE;
return false;
}
#endif /* DEBUG */
@ -667,10 +667,10 @@ Clear(JSContext *cx, uintN argc, jsval *vp)
JS_ClearScope(cx, JSVAL_TO_OBJECT(JS_ARGV(cx, vp)[0]));
} else {
JS_ReportError(cx, "'clear' requires an object");
return JS_FALSE;
return false;
}
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
return true;
}
static JSBool
@ -680,28 +680,28 @@ SendCommand(JSContext* cx,
{
if (argc == 0) {
JS_ReportError(cx, "Function takes at least one argument!");
return JS_FALSE;
return false;
}
jsval *argv = JS_ARGV(cx, vp);
JSString* str = JS_ValueToString(cx, argv[0]);
if (!str) {
JS_ReportError(cx, "Could not convert argument 1 to string!");
return JS_FALSE;
return false;
}
if (argc > 1 && JS_TypeOfValue(cx, argv[1]) != JSTYPE_FUNCTION) {
JS_ReportError(cx, "Could not convert argument 2 to function!");
return JS_FALSE;
return false;
}
if (!XRE_SendTestShellCommand(cx, str, argc > 1 ? &argv[1] : nsnull)) {
JS_ReportError(cx, "Couldn't send command!");
return JS_FALSE;
return false;
}
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
return true;
}
static JSBool
@ -712,9 +712,9 @@ GetChildGlobalObject(JSContext* cx,
JSObject* global;
if (XRE_GetChildGlobalObject(cx, &global)) {
JS_SET_RVAL(cx, vp, OBJECT_TO_JSVAL(global));
return JS_TRUE;
return true;
}
return JS_FALSE;
return false;
}
/*
@ -776,23 +776,23 @@ Options(JSContext *cx, uintN argc, jsval *vp)
for (uintN i = 0; i < argc; i++) {
str = JS_ValueToString(cx, argv[i]);
if (!str)
return JS_FALSE;
return false;
argv[i] = STRING_TO_JSVAL(str);
JSAutoByteString opt(cx, str);
if (!opt)
return JS_FALSE;
return false;
flag = MapContextOptionNameToFlag(cx, opt.ptr());
if (!flag)
return JS_FALSE;
return false;
optset |= flag;
}
optset = JS_ToggleOptions(cx, optset);
names = NULL;
found = JS_FALSE;
found = false;
for (size_t i = 0; i < ArrayLength(js_options); i++) {
if (js_options[i].flag & optset) {
found = JS_TRUE;
found = true;
names = JS_sprintf_append(names, "%s%s",
names ? "," : "", js_options[i].name);
if (!names)
@ -803,14 +803,14 @@ Options(JSContext *cx, uintN argc, jsval *vp)
names = strdup("");
if (!names) {
JS_ReportOutOfMemory(cx);
return JS_FALSE;
return false;
}
str = JS_NewStringCopyZ(cx, names);
free(names);
if (!str)
return JS_FALSE;
return false;
JS_SET_RVAL(cx, vp, STRING_TO_JSVAL(str));
return JS_TRUE;
return true;
}
static JSBool
@ -818,17 +818,17 @@ Parent(JSContext *cx, uintN argc, jsval *vp)
{
if (argc != 1) {
JS_ReportError(cx, "Wrong number of arguments");
return JS_FALSE;
return false;
}
jsval v = JS_ARGV(cx, vp)[0];
if (JSVAL_IS_PRIMITIVE(v)) {
JS_ReportError(cx, "Only objects have parents!");
return JS_FALSE;
return false;
}
*vp = OBJECT_TO_JSVAL(JS_GetParent(cx, JSVAL_TO_OBJECT(v)));
return JS_TRUE;
return true;
}
static JSFunctionSpec glob_functions[] = {
@ -871,24 +871,24 @@ env_setProperty(JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval *vp)
jsval idval;
if (!JS_IdToValue(cx, id, &idval))
return JS_FALSE;
return false;
idstr = JS_ValueToString(cx, idval);
valstr = JS_ValueToString(cx, *vp);
if (!idstr || !valstr)
return JS_FALSE;
return false;
JSAutoByteString name(cx, idstr);
if (!name)
return JS_FALSE;
return false;
JSAutoByteString value(cx, valstr);
if (!value)
return JS_FALSE;
return false;
#if defined XP_WIN || defined HPUX || defined OSF1 || defined SCO
{
char *waste = JS_smprintf("%s=%s", name.ptr(), value.ptr());
if (!waste) {
JS_ReportOutOfMemory(cx);
return JS_FALSE;
return false;
}
rv = putenv(waste);
#ifdef XP_WIN
@ -907,11 +907,11 @@ env_setProperty(JSContext *cx, JSObject *obj, jsid id, JSBool strict, jsval *vp)
#endif
if (rv < 0) {
JS_ReportError(cx, "can't set envariable %s to %s", name.ptr(), value.ptr());
return JS_FALSE;
return false;
}
*vp = STRING_TO_JSVAL(valstr);
#endif /* !defined XP_OS2 && !defined SOLARIS */
return JS_TRUE;
return true;
}
static JSBool
@ -923,7 +923,7 @@ env_enumerate(JSContext *cx, JSObject *obj)
JSBool ok;
if (reflected)
return JS_TRUE;
return true;
for (evp = (char **)JS_GetPrivate(cx, obj); (name = *evp) != NULL; evp++) {
value = strchr(name, '=');
@ -932,18 +932,18 @@ env_enumerate(JSContext *cx, JSObject *obj)
*value++ = '\0';
valstr = JS_NewStringCopyZ(cx, value);
if (!valstr) {
ok = JS_FALSE;
ok = false;
} else {
ok = JS_DefineProperty(cx, obj, name, STRING_TO_JSVAL(valstr),
NULL, NULL, JSPROP_ENUMERATE);
}
value[-1] = '=';
if (!ok)
return JS_FALSE;
return false;
}
reflected = JS_TRUE;
return JS_TRUE;
reflected = true;
return true;
}
static JSBool
@ -953,30 +953,30 @@ env_resolve(JSContext *cx, JSObject *obj, jsid id, uintN flags,
JSString *idstr, *valstr;
if (flags & JSRESOLVE_ASSIGNING)
return JS_TRUE;
return true;
jsval idval;
if (!JS_IdToValue(cx, id, &idval))
return JS_FALSE;
return false;
idstr = JS_ValueToString(cx, idval);
if (!idstr)
return JS_FALSE;
return false;
JSAutoByteString name(cx, idstr);
if (!name)
return JS_FALSE;
return false;
const char *value = getenv(name.ptr());
if (value) {
valstr = JS_NewStringCopyZ(cx, value);
if (!valstr)
return JS_FALSE;
return false;
if (!JS_DefinePropertyById(cx, obj, id, STRING_TO_JSVAL(valstr),
NULL, NULL, JSPROP_ENUMERATE)) {
return JS_FALSE;
return false;
}
*objp = obj;
}
return JS_TRUE;
return true;
}
static JSClass env_class = {
@ -1062,7 +1062,7 @@ ProcessFile(JSContext *cx, JSObject *obj, const char *filename, FILE *file,
/* It's an interactive filehandle; drop into read-eval-print loop. */
lineno = 1;
hitEOF = JS_FALSE;
hitEOF = false;
do {
bufp = buffer;
*bufp = '\0';
@ -1076,12 +1076,12 @@ ProcessFile(JSContext *cx, JSObject *obj, const char *filename, FILE *file,
startline = lineno;
do {
if (!GetLine(cx, bufp, file, startline == lineno ? "js> " : "")) {
hitEOF = JS_TRUE;
hitEOF = true;
break;
}
bufp += strlen(bufp);
lineno++;
} while (!JS_BufferIsCompilableUnit(cx, JS_FALSE, obj, buffer, strlen(buffer)));
} while (!JS_BufferIsCompilableUnit(cx, false, obj, buffer, strlen(buffer)));
DoBeginRequest(cx);
/* Clear any pending exception from previous failed compiles. */
@ -1102,7 +1102,7 @@ ProcessFile(JSContext *cx, JSObject *obj, const char *filename, FILE *file,
if (str && bytes.encode(cx, str))
fprintf(gOutFile, "%s\n", bytes.ptr());
else
ok = JS_FALSE;
ok = false;
}
}
}
@ -1153,13 +1153,13 @@ ProcessArgs(JSContext *cx, JSObject *obj, char **argv, int argc)
int i;
JSObject *argsObj;
char *filename = NULL;
JSBool isInteractive = JS_TRUE;
JSBool forceTTY = JS_FALSE;
JSBool isInteractive = true;
JSBool forceTTY = false;
rcfile = fopen(rcfilename, "r");
if (rcfile) {
printf("[loading '%s'...]\n", rcfilename);
ProcessFile(cx, obj, rcfilename, rcfile, JS_FALSE);
ProcessFile(cx, obj, rcfilename, rcfile, false);
fclose(rcfile);
}
@ -1209,7 +1209,7 @@ ProcessArgs(JSContext *cx, JSObject *obj, char **argv, int argc)
for (i = 0; i < argc; i++) {
if (argv[i][0] != '-' || argv[i][1] == '\0') {
filename = argv[i++];
isInteractive = JS_FALSE;
isInteractive = false;
break;
}
switch (argv[i][1]) {
@ -1220,10 +1220,10 @@ ProcessArgs(JSContext *cx, JSObject *obj, char **argv, int argc)
JS_SetVersion(cx, JSVersion(atoi(argv[i])));
break;
case 'W':
reportWarnings = JS_FALSE;
reportWarnings = false;
break;
case 'w':
reportWarnings = JS_TRUE;
reportWarnings = true;
break;
case 'S':
JS_ToggleOptions(cx, JSOPTION_WERROR);
@ -1241,10 +1241,10 @@ ProcessArgs(JSContext *cx, JSObject *obj, char **argv, int argc)
JSObject *gobj;
if (!JS_DeepFreezeObject(cx, obj))
return JS_FALSE;
return false;
gobj = JS_NewGlobalObject(cx, &global_class);
if (!gobj || !JS_SplicePrototype(cx, gobj, obj))
return JS_FALSE;
return false;
JS_SetParent(cx, gobj, NULL);
JS_SetGlobalObject(cx, gobj);
obj = gobj;
@ -1254,16 +1254,16 @@ ProcessArgs(JSContext *cx, JSObject *obj, char **argv, int argc)
if (++i == argc) {
return usage();
}
Process(cx, obj, argv[i], JS_FALSE);
Process(cx, obj, argv[i], false);
/*
* XXX: js -f foo.js should interpret foo.js and then
* drop into interactive mode, but that breaks test
* harness. Just execute foo.js for now.
*/
isInteractive = JS_FALSE;
isInteractive = false;
break;
case 'i':
isInteractive = forceTTY = JS_TRUE;
isInteractive = forceTTY = true;
break;
case 'e':
{
@ -1276,12 +1276,12 @@ ProcessArgs(JSContext *cx, JSObject *obj, char **argv, int argc)
JS_EvaluateScriptForPrincipals(cx, obj, gJSPrincipals, argv[i],
strlen(argv[i]), "-e", 1, &rval);
isInteractive = JS_FALSE;
isInteractive = false;
break;
}
case 'C':
compileOnly = JS_TRUE;
isInteractive = JS_FALSE;
compileOnly = true;
isInteractive = false;
break;
case 'j':
JS_ToggleOptions(cx, JSOPTION_JIT);
@ -1684,7 +1684,7 @@ nsXPCFunctionThisTranslator::TranslateThis(nsISupports *aInitialThis,
{
NS_IF_ADDREF(aInitialThis);
*_retval = aInitialThis;
*aHideFirstParamFromJS = JS_FALSE;
*aHideFirstParamFromJS = false;
*aIIDOfResult = nsnull;
return NS_OK;
}
@ -1698,13 +1698,13 @@ static JSBool
ContextCallback(JSContext *cx, uintN contextOp)
{
if (gOldJSContextCallback && !gOldJSContextCallback(cx, contextOp))
return JS_FALSE;
return false;
if (contextOp == JSCONTEXT_NEW) {
JS_SetErrorReporter(cx, my_ErrorReporter);
JS_SetVersion(cx, JSVERSION_LATEST);
}
return JS_TRUE;
return true;
}
static bool

Просмотреть файл

@ -55,8 +55,8 @@ XPCCallContext::XPCCallContext(XPCContext::LangType callerLanguage,
mThreadData(nsnull),
mXPCContext(nsnull),
mJSContext(cx),
mContextPopRequired(JS_FALSE),
mDestroyJSContextInDestructor(JS_FALSE),
mContextPopRequired(false),
mDestroyJSContextInDestructor(false),
mCallerLanguage(callerLanguage)
{
Init(callerLanguage, callerLanguage == NATIVE_CALLER, obj, funobj,
@ -75,8 +75,8 @@ XPCCallContext::XPCCallContext(XPCContext::LangType callerLanguage,
mThreadData(nsnull),
mXPCContext(nsnull),
mJSContext(cx),
mContextPopRequired(JS_FALSE),
mDestroyJSContextInDestructor(JS_FALSE),
mContextPopRequired(false),
mDestroyJSContextInDestructor(false),
mCallerLanguage(callerLanguage),
mFlattenedJSObject(flattenedJSObject),
mWrapper(wrapper),
@ -136,7 +136,7 @@ XPCCallContext::Init(XPCContext::LangType callerLanguage,
NS_ERROR("bad!");
return;
}
mContextPopRequired = JS_TRUE;
mContextPopRequired = true;
}
// Get into the request as early as we can to avoid problems with scanning
@ -212,7 +212,7 @@ XPCCallContext::SetName(jsid name)
mSet = nsnull;
mInterface = mTearOff->GetInterface();
mMember = mInterface->FindMember(name);
mStaticMemberIsLocal = JS_TRUE;
mStaticMemberIsLocal = true;
if (mMember && !mMember->IsConstant())
mMethodIndex = mMember->GetIndex();
} else {
@ -229,7 +229,7 @@ XPCCallContext::SetName(jsid name)
} else {
mMember = nsnull;
mInterface = nsnull;
mStaticMemberIsLocal = JS_FALSE;
mStaticMemberIsLocal = false;
}
}
@ -270,14 +270,14 @@ XPCCallContext::SetArgsAndResultPtr(uintN argc,
mSet = nsnull;
mInterface = nsnull;
mMember = nsnull;
mStaticMemberIsLocal = JS_FALSE;
mStaticMemberIsLocal = false;
}
mArgc = argc;
mArgv = argv;
mRetVal = rval;
mReturnValueWasSet = JS_FALSE;
mReturnValueWasSet = false;
mState = HAVE_ARGS;
}
@ -292,7 +292,7 @@ XPCCallContext::CanCallNow()
return NS_ERROR_UNEXPECTED;
if (!mTearOff) {
mTearOff = mWrapper->FindTearOff(*this, mInterface, JS_FALSE, &rv);
mTearOff = mWrapper->FindTearOff(*this, mInterface, false, &rv);
if (!mTearOff || mTearOff->GetInterface() != mInterface) {
mTearOff = nsnull;
return NS_FAILED(rv) ? rv : NS_ERROR_UNEXPECTED;

Просмотреть файл

@ -65,7 +65,7 @@ using namespace js;
static nsresult ThrowAndFail(uintN errNum, JSContext* cx, bool* retval)
{
XPCThrower::Throw(errNum, cx);
*retval = JS_FALSE;
*retval = false;
return NS_OK;
}
@ -82,9 +82,9 @@ JSValIsInterfaceOfType(JSContext *cx, jsval v, REFNSIID iid)
getter_AddRefs(wn))) && wn &&
NS_SUCCEEDED(wn->Native()->QueryInterface(iid, (void**)&iface)) && iface) {
NS_RELEASE(iface);
return JS_TRUE;
return true;
}
return JS_FALSE;
return false;
}
char* xpc_CloneAllAccess()
@ -1625,7 +1625,7 @@ nsXPCComponents_ID::CallOrConstruct(nsIXPConnectWrappedNative *wrapper,
xpcc->GetAppropriateSecurityManager(nsIXPCSecurityManager::HOOK_CREATE_INSTANCE);
if (sm && NS_FAILED(sm->CanCreateInstance(cx, nsJSID::GetCID()))) {
// the security manager vetoed. It should have set an exception.
*_retval = JS_FALSE;
*_retval = false;
return NS_OK;
}
@ -1845,7 +1845,7 @@ nsXPCComponents_Exception::CallOrConstruct(nsIXPConnectWrappedNative *wrapper,
xpcc->GetAppropriateSecurityManager(nsIXPCSecurityManager::HOOK_CREATE_INSTANCE);
if (sm && NS_FAILED(sm->CanCreateInstance(cx, nsXPCException::GetCID()))) {
// the security manager vetoed. It should have set an exception.
*_retval = JS_FALSE;
*_retval = false;
return NS_OK;
}
@ -2177,7 +2177,7 @@ nsXPCConstructor::CallOrConstruct(nsIXPConnectWrappedNative *wrapper,
if (!JS_CallFunctionName(cx, cidObj, "createInstance", 1, ctorArgs, &val) ||
JSVAL_IS_PRIMITIVE(val)) {
// createInstance will have thrown an exception
*_retval = JS_FALSE;
*_retval = false;
return NS_OK;
}
@ -2199,7 +2199,7 @@ nsXPCConstructor::CallOrConstruct(nsIXPConnectWrappedNative *wrapper,
if (!JS_CallFunctionValue(cx, newObj, fun, argc, argv, &ignored)) {
// function should have thrown an exception
*_retval = JS_FALSE;
*_retval = false;
return NS_OK;
}
}
@ -2401,7 +2401,7 @@ nsXPCComponents_Constructor::CallOrConstruct(nsIXPConnectWrappedNative *wrapper,
xpcc->GetAppropriateSecurityManager(nsIXPCSecurityManager::HOOK_CREATE_INSTANCE);
if (sm && NS_FAILED(sm->CanCreateInstance(cx, nsXPCConstructor::GetCID()))) {
// the security manager vetoed. It should have set an exception.
*_retval = JS_FALSE;
*_retval = false;
return NS_OK;
}
@ -2876,21 +2876,21 @@ SandboxDump(JSContext *cx, uintN argc, jsval *vp)
{
JSString *str;
if (!argc)
return JS_TRUE;
return true;
str = JS_ValueToString(cx, JS_ARGV(cx, vp)[0]);
if (!str)
return JS_FALSE;
return false;
size_t length;
const jschar *chars = JS_GetStringCharsZAndLength(cx, str, &length);
if (!chars)
return JS_FALSE;
return false;
nsDependentString wstr(chars, length);
char *cstr = ToNewUTF8String(wstr);
if (!cstr)
return JS_FALSE;
return false;
#if defined(XP_MACOSX)
// Be nice and convert all \r to \n.
@ -2906,7 +2906,7 @@ SandboxDump(JSContext *cx, uintN argc, jsval *vp)
fflush(stderr);
NS_Free(cstr);
JS_SET_RVAL(cx, vp, JSVAL_TRUE);
return JS_TRUE;
return true;
}
static JSBool
@ -2915,7 +2915,7 @@ SandboxDebug(JSContext *cx, uintN argc, jsval *vp)
#ifdef DEBUG
return SandboxDump(cx, argc, vp);
#else
return JS_TRUE;
return true;
#endif
}
@ -2924,12 +2924,12 @@ SandboxImport(JSContext *cx, uintN argc, jsval *vp)
{
JSObject *thisobj = JS_THIS_OBJECT(cx, vp);
if (!thisobj)
return JS_FALSE;
return false;
jsval *argv = JS_ARGV(cx, vp);
if (argc < 1 || JSVAL_IS_PRIMITIVE(argv[0])) {
XPCThrower::Throw(NS_ERROR_INVALID_ARG, cx);
return JS_FALSE;
return false;
}
JSString *funname;
@ -2937,7 +2937,7 @@ SandboxImport(JSContext *cx, uintN argc, jsval *vp)
// Use the second parameter as the function name.
funname = JS_ValueToString(cx, argv[1]);
if (!funname)
return JS_FALSE;
return false;
argv[1] = STRING_TO_JSVAL(funname);
} else {
// NB: funobj must only be used to get the JSFunction out.
@ -2948,26 +2948,26 @@ SandboxImport(JSContext *cx, uintN argc, jsval *vp)
JSAutoEnterCompartment ac;
if (!ac.enter(cx, funobj)) {
return JS_FALSE;
return false;
}
JSFunction *fun = JS_ValueToFunction(cx, OBJECT_TO_JSVAL(funobj));
if (!fun) {
XPCThrower::Throw(NS_ERROR_INVALID_ARG, cx);
return JS_FALSE;
return false;
}
// Use the actual function name as the name.
funname = JS_GetFunctionId(fun);
if (!funname) {
XPCThrower::Throw(NS_ERROR_INVALID_ARG, cx);
return JS_FALSE;
return false;
}
}
jsid id;
if (!JS_ValueToId(cx, STRING_TO_JSVAL(funname), &id))
return JS_FALSE;
return false;
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_SetPropertyById(cx, thisobj, id, &argv[0]);
@ -2999,7 +2999,7 @@ sandbox_convert(JSContext *cx, JSObject *obj, JSType type, jsval *vp)
{
if (type == JSTYPE_OBJECT) {
*vp = OBJECT_TO_JSVAL(obj);
return JS_TRUE;
return true;
}
return JS_ConvertStub(cx, obj, type, vp);
@ -3410,7 +3410,7 @@ ContextHolder::ContextHolderOperationCallback(JSContext *cx)
JSContext *origCx = thisObject->mOrigCx;
JSOperationCallback callback = JS_GetOperationCallback(origCx);
JSBool ok = JS_TRUE;
JSBool ok = true;
if (callback)
ok = callback(origCx);
return ok;
@ -3901,7 +3901,7 @@ FunctionWrapper(JSContext *cx, uintN argc, jsval *vp)
{
jsval v;
if (!JS_GetReservedSlot(cx, JSVAL_TO_OBJECT(JS_CALLEE(cx, vp)), 0, &v))
return JS_FALSE;
return false;
NS_ASSERTION(JSVAL_IS_OBJECT(v), "weird function");
return JS_CallFunctionValue(cx, JS_THIS_OBJECT(cx, vp), v,
@ -3914,13 +3914,13 @@ WrapCallable(JSContext *cx, JSObject *obj, jsid id, JSObject *propobj, jsval *vp
JSFunction *fun = JS_NewFunctionById(cx, FunctionWrapper, 0, 0,
JS_GetGlobalForObject(cx, obj), id);
if (!fun)
return JS_FALSE;
return false;
JSObject *funobj = JS_GetFunctionObject(fun);
if (!JS_SetReservedSlot(cx, funobj, 0, OBJECT_TO_JSVAL(propobj)))
return JS_FALSE;
return false;
*vp = OBJECT_TO_JSVAL(funobj);
return JS_TRUE;
return true;
}
/* void makeObjectPropsNormal(jsval vobj); */
@ -4079,7 +4079,7 @@ NS_IMETHODIMP
nsXPCComponents_Utils::SetGCZeal(PRInt32 aValue, JSContext* cx)
{
#ifdef JS_GC_ZEAL
JS_SetGCZeal(cx, PRUint8(aValue), JS_DEFAULT_ZEAL_FREQ, JS_FALSE);
JS_SetGCZeal(cx, PRUint8(aValue), JS_DEFAULT_ZEAL_FREQ, false);
#endif
return NS_OK;
}
@ -4326,15 +4326,15 @@ nsXPCComponents::GetProperty(nsIXPConnectWrappedNative *wrapper,
if (!xpcc)
return NS_ERROR_FAILURE;
bool doResult = JS_FALSE;
bool doResult = false;
nsresult res;
XPCJSRuntime* rt = xpcc->GetRuntime();
if (id == rt->GetStringID(XPCJSRuntime::IDX_LAST_RESULT)) {
res = xpcc->GetLastResult();
doResult = JS_TRUE;
doResult = true;
} else if (id == rt->GetStringID(XPCJSRuntime::IDX_RETURN_CODE)) {
res = xpcc->GetPendingResult();
doResult = JS_TRUE;
doResult = true;
}
nsresult rv = NS_OK;
@ -4381,11 +4381,11 @@ nsXPCComponents::AttachNewComponentsObject(XPCCallContext& ccx,
JSObject* aGlobal)
{
if (!aGlobal)
return JS_FALSE;
return false;
nsXPCComponents* components = new nsXPCComponents();
if (!components)
return JS_FALSE;
return false;
nsCOMPtr<nsIXPCComponents> cholder(components);
@ -4393,14 +4393,14 @@ nsXPCComponents::AttachNewComponentsObject(XPCCallContext& ccx,
iface = XPCNativeInterface::GetNewOrUsed(ccx, &NS_GET_IID(nsIXPCComponents));
if (!iface)
return JS_FALSE;
return false;
nsCOMPtr<XPCWrappedNative> wrapper;
xpcObjectHelper helper(cholder);
XPCWrappedNative::GetNewOrUsed(ccx, helper, aScope, iface,
OBJ_IS_NOT_GLOBAL, getter_AddRefs(wrapper));
if (!wrapper)
return JS_FALSE;
return false;
aScope->SetComponents(components);

Разница между файлами не показана из-за своего большого размера Загрузить разницу

Просмотреть файл

@ -70,7 +70,7 @@ static char* FormatJSFrame(JSContext* cx, JSStackFrame* fp,
{
JSPropertyDescArray callProps = {0, nsnull};
JSPropertyDescArray thisProps = {0, nsnull};
JSBool gotThisVal = JS_FALSE;
JSBool gotThisVal = false;
jsval thisVal;
JSObject* callObj = nsnull;
JSString* funname = nsnull;
@ -283,7 +283,7 @@ xpc_DumpJSStack(JSContext* cx, JSBool showArgs, JSBool showLocals, JSBool showTh
fputs(buf, stdout);
JS_smprintf_free(buf);
}
return JS_TRUE;
return true;
}
char*
@ -323,7 +323,7 @@ xpc_DumpEvalInJSStackFrame(JSContext* cx, JSUint32 frameno, const char* text)
if (!cx || !text) {
puts("invalid params passed to xpc_DumpEvalInJSStackFrame!");
return JS_FALSE;
return false;
}
printf("js[%d]> %s\n", frameno, text);
@ -336,7 +336,7 @@ xpc_DumpEvalInJSStackFrame(JSContext* cx, JSUint32 frameno, const char* text)
if (!fp) {
puts("invalid frame number!");
return JS_FALSE;
return false;
}
JSAutoRequest ar(cx);
@ -355,7 +355,7 @@ xpc_DumpEvalInJSStackFrame(JSContext* cx, JSUint32 frameno, const char* text)
puts("eval failed!");
JS_SetErrorReporter(cx, older);
JS_RestoreExceptionState(cx, exceptionState);
return JS_TRUE;
return true;
}
/***************************************************************************/
@ -368,7 +368,7 @@ xpc_DebuggerKeywordHandler(JSContext *cx, JSScript *script, jsbytecode *pc,
"------------------------------------------------------------------------";
puts(line);
puts("Hit JavaScript \"debugger\" keyword. JS call stack...");
xpc_DumpJSStack(cx, JS_TRUE, JS_TRUE, JS_FALSE);
xpc_DumpJSStack(cx, true, true, false);
puts(line);
return JSTRAP_CONTINUE;
}
@ -473,5 +473,5 @@ xpc_DumpJSObject(JSObject* obj)
else
puts("xpc_DumpJSObject passed null!");
return JS_TRUE;
return true;
}

Просмотреть файл

@ -78,10 +78,10 @@ nsXPCException::NameAndFormatForNSResult(nsresult rv,
if (rv == p->rv) {
if (name) *name = p->name;
if (format) *format = p->format;
return JS_TRUE;
return true;
}
}
return JS_FALSE;
return false;
}
// static
@ -404,7 +404,7 @@ nsXPCException::ToString(char **_retval)
return final ? NS_OK : NS_ERROR_OUT_OF_MEMORY;
}
JSBool nsXPCException::sEverMadeOneFromFactory = JS_FALSE;
JSBool nsXPCException::sEverMadeOneFromFactory = false;
// static
nsresult
@ -424,7 +424,7 @@ nsXPCException::NewException(const char *aMessage,
if (!sEverMadeOneFromFactory) {
nsCOMPtr<nsIXPCException> e =
do_CreateInstance(XPC_EXCEPTION_CONTRACTID);
sEverMadeOneFromFactory = JS_TRUE;
sEverMadeOneFromFactory = true;
}
nsresult rv;

Просмотреть файл

@ -423,7 +423,7 @@ XPCNativeSet::FindMember(jsid name, XPCNativeMember** pMember,
*pMember = nsnull;
if (pInterfaceIndex)
*pInterfaceIndex = (PRUint16) i;
return JS_TRUE;
return true;
}
}
@ -435,10 +435,10 @@ XPCNativeSet::FindMember(jsid name, XPCNativeMember** pMember,
*pMember = member;
if (pInterfaceIndex)
*pInterfaceIndex = (PRUint16) i;
return JS_TRUE;
return true;
}
}
return JS_FALSE;
return false;
}
inline JSBool
@ -447,9 +447,9 @@ XPCNativeSet::FindMember(jsid name, XPCNativeMember** pMember,
{
PRUint16 index;
if (!FindMember(name, pMember, &index))
return JS_FALSE;
return false;
*pInterface = mInterfaces[index];
return JS_TRUE;
return true;
}
inline JSBool
@ -464,7 +464,7 @@ XPCNativeSet::FindMember(jsid name,
XPCNativeMember* protoMember;
if (!FindMember(name, &Member, &Interface))
return JS_FALSE;
return false;
*pMember = Member;
*pInterface = Interface;
@ -477,7 +477,7 @@ XPCNativeSet::FindMember(jsid name,
(!protoSet->FindMember(name, &protoMember, (PRUint16*)nsnull) ||
protoMember != Member));
return JS_TRUE;
return true;
}
inline XPCNativeInterface*
@ -515,9 +515,9 @@ XPCNativeSet::HasInterface(XPCNativeInterface* aInterface) const
for (int i = (int) mInterfaceCount; i > 0; i--, pp++) {
if (aInterface == *pp)
return JS_TRUE;
return true;
}
return JS_FALSE;
return false;
}
inline JSBool
@ -533,13 +533,13 @@ XPCNativeSet::HasInterfaceWithAncestor(const nsIID* iid) const
XPCNativeInterface* const * pp = mInterfaces+1;
for (int i = (int) mInterfaceCount; i > 1; i--, pp++)
if ((*pp)->HasAncestor(iid))
return JS_TRUE;
return true;
// This is rare, so check last.
if (iid == &NS_GET_IID(nsISupports))
return true;
return JS_FALSE;
return false;
}
inline JSBool
@ -554,11 +554,11 @@ XPCNativeSet::MatchesSetUpToInterface(const XPCNativeSet* other,
for (int i = (int) count; i > 0; i--, pp1++, pp2++) {
XPCNativeInterface* cur = (*pp1);
if (cur != (*pp2))
return JS_FALSE;
return false;
if (cur == iface)
return JS_TRUE;
return true;
}
return JS_FALSE;
return false;
}
inline void XPCNativeSet::Mark()
@ -648,8 +648,8 @@ xpc_ForcePropertyResolve(JSContext* cx, JSObject* obj, jsid id)
jsval prop;
if (!JS_LookupPropertyById(cx, obj, id, &prop))
return JS_FALSE;
return JS_TRUE;
return false;
return true;
}
inline JSObject*
@ -690,7 +690,7 @@ inline
JSBool ThrowBadParam(nsresult rv, uintN paramNum, XPCCallContext& ccx)
{
XPCThrower::ThrowBadParam(rv, paramNum, ccx);
return JS_FALSE;
return false;
}
inline

Просмотреть файл

@ -274,7 +274,7 @@ NS_METHOD GetSharedScriptableHelperForJSIID(PRUint32 language,
/******************************************************/
static JSBool gClassObjectsWereInited = JS_FALSE;
static JSBool gClassObjectsWereInited = false;
#define NULL_CID \
{ 0x00000000, 0x0000, 0x0000, \
@ -293,7 +293,7 @@ void xpc_InitJSxIDClassObjects()
gSharedScriptableHelperForJSIID = new SharedScriptableHelperForJSIID();
NS_ADDREF(gSharedScriptableHelperForJSIID);
}
gClassObjectsWereInited = JS_TRUE;
gClassObjectsWereInited = true;
}
void xpc_DestroyJSxIDClassObjects()
@ -302,7 +302,7 @@ void xpc_DestroyJSxIDClassObjects()
NS_IF_RELEASE(NS_CLASSINFO_NAME(nsJSCID));
NS_IF_RELEASE(gSharedScriptableHelperForJSIID);
gClassObjectsWereInited = JS_FALSE;
gClassObjectsWereInited = false;
}
/***************************************************************************/
@ -481,7 +481,7 @@ nsJSIID::HasInstance(nsIXPConnectWrappedNative *wrapper,
JSContext * cx, JSObject * obj,
const jsval &val, bool *bp, bool *_retval)
{
*bp = JS_FALSE;
*bp = false;
nsresult rv = NS_OK;
if (!JSVAL_IS_PRIMITIVE(val)) {
@ -497,7 +497,7 @@ nsJSIID::HasInstance(nsIXPConnectWrappedNative *wrapper,
if (IS_SLIM_WRAPPER(obj)) {
XPCWrappedNativeProto* proto = GetSlimWrapperProto(obj);
if (proto->GetSet()->HasInterfaceWithAncestor(iid)) {
*bp = JS_TRUE;
*bp = true;
return NS_OK;
}
@ -535,7 +535,7 @@ nsJSIID::HasInstance(nsIXPConnectWrappedNative *wrapper,
// to be an interface that the objects *expects* to be able to
// handle.
if (other_wrapper->HasInterfaceNoQI(*iid)) {
*bp = JS_TRUE;
*bp = true;
return NS_OK;
}
@ -546,8 +546,8 @@ nsJSIID::HasInstance(nsIXPConnectWrappedNative *wrapper,
iface = XPCNativeInterface::GetNewOrUsed(ccx, iid);
nsresult findResult = NS_OK;
if (iface && other_wrapper->FindTearOff(ccx, iface, JS_FALSE, &findResult))
*bp = JS_TRUE;
if (iface && other_wrapper->FindTearOff(ccx, iface, false, &findResult))
*bp = true;
if (NS_FAILED(findResult) && findResult != NS_ERROR_NO_INTERFACE)
rv = findResult;
}
@ -760,7 +760,7 @@ nsJSCID::CreateInstance(nsISupports **_retval)
rv = xpc->WrapNativeToJSVal(cx, obj, inst, nsnull, iid, true, vp, nsnull);
if (NS_FAILED(rv) || JSVAL_IS_PRIMITIVE(*vp))
return NS_ERROR_XPC_CANT_CREATE_WN;
ccxp->SetReturnValueWasSet(JS_TRUE);
ccxp->SetReturnValueWasSet(true);
return NS_OK;
}
@ -830,7 +830,7 @@ nsJSCID::GetService(nsISupports **_retval)
return NS_ERROR_XPC_CANT_CREATE_WN;
*vp = OBJECT_TO_JSVAL(instJSObj);
ccxp->SetReturnValueWasSet(JS_TRUE);
ccxp->SetReturnValueWasSet(true);
return NS_OK;
}
@ -860,7 +860,7 @@ nsJSCID::HasInstance(nsIXPConnectWrappedNative *wrapper,
JSContext * cx, JSObject * obj,
const jsval &val, bool *bp, bool *_retval)
{
*bp = JS_FALSE;
*bp = false;
nsresult rv = NS_OK;
if (!JSVAL_IS_PRIMITIVE(val)) {

Просмотреть файл

@ -242,12 +242,12 @@ ContextCallback(JSContext *cx, uintN operation)
if (self) {
if (operation == JSCONTEXT_NEW) {
if (!self->OnJSContextNew(cx))
return JS_FALSE;
return false;
} else if (operation == JSCONTEXT_DESTROY) {
delete XPCContext::GetXPCContext(cx);
}
}
return JS_TRUE;
return true;
}
xpc::CompartmentPrivate::~CompartmentPrivate()
@ -262,11 +262,11 @@ CompartmentCallback(JSContext *cx, JSCompartment *compartment, uintN op)
XPCJSRuntime* self = nsXPConnect::GetRuntimeInstance();
if (!self)
return JS_TRUE;
return true;
nsAutoPtr<xpc::CompartmentPrivate> priv(static_cast<xpc::CompartmentPrivate*>(JS_SetCompartmentPrivate(cx, compartment, nsnull)));
if (!priv)
return JS_TRUE;
return true;
if (xpc::PtrAndPrincipalHashKey *key = priv->key) {
XPCCompartmentMap &map = self->GetCompartmentMap();
@ -291,7 +291,7 @@ CompartmentCallback(JSContext *cx, JSCompartment *compartment, uintN op)
map.Remove(ptr);
}
return JS_TRUE;
return true;
}
struct ObjectHolder : public JSDHashEntryHdr
@ -654,13 +654,13 @@ JSBool XPCJSRuntime::GCCallback(JSContext *cx, JSGCStatus status)
{
XPCJSRuntime* self = nsXPConnect::GetRuntimeInstance();
if (!self)
return JS_TRUE;
return true;
switch (status) {
case JSGC_BEGIN:
{
if (!NS_IsMainThread()) {
return JS_FALSE;
return false;
}
// We seem to sometime lose the unrooted global flag. Restore it
@ -707,13 +707,13 @@ JSBool XPCJSRuntime::GCCallback(JSContext *cx, JSGCStatus status)
self->GetCompartmentMap().EnumerateRead((XPCCompartmentMap::EnumReadFunction)
SweepCompartment, cx);
self->mDoingFinalization = JS_TRUE;
self->mDoingFinalization = true;
break;
}
case JSGC_FINALIZE_END:
{
NS_ASSERTION(self->mDoingFinalization, "bad state");
self->mDoingFinalization = JS_FALSE;
self->mDoingFinalization = false;
// Release all the members whose JSObjects are now known
// to be dead.
@ -921,10 +921,10 @@ JSBool XPCJSRuntime::GCCallback(JSContext *cx, JSGCStatus status)
nsTArray<JSGCCallback> callbacks(self->extraGCCallbacks);
for (PRUint32 i = 0; i < callbacks.Length(); ++i) {
if (!callbacks[i](cx, status))
return JS_FALSE;
return false;
}
return JS_TRUE;
return true;
}
// Auto JS GC lock helper.
@ -2058,7 +2058,7 @@ XPCJSRuntime::XPCJSRuntime(nsXPConnect* aXPConnect)
mThreadRunningGC(nsnull),
mWrappedJSToReleaseArray(),
mNativesToReleaseArray(),
mDoingFinalization(JS_FALSE),
mDoingFinalization(false),
mVariantRoots(nsnull),
mWrappedJSRoots(nsnull),
mObjectHolderRoots(nsnull),
@ -2076,7 +2076,7 @@ XPCJSRuntime::XPCJSRuntime(nsXPConnect* aXPConnect)
DOM_InitInterfaces();
Preferences::AddBoolVarCache(&gNewDOMBindingsEnabled, "dom.new_bindings",
JS_FALSE);
false);
// these jsids filled in later when we have a JSContext to work with.
@ -2178,7 +2178,7 @@ XPCJSRuntime::OnJSContextNew(JSContext *cx)
NS_TIME_FUNCTION;
// if it is our first context then we need to generate our string ids
JSBool ok = JS_TRUE;
JSBool ok = true;
if (JSID_IS_VOID(mStrIDs[0])) {
JS_SetGCParameterForThread(cx, JSGC_MAX_CODE_CACHE_BYTES, 16 * 1024 * 1024);
{
@ -2189,7 +2189,7 @@ XPCJSRuntime::OnJSContextNew(JSContext *cx)
JSString* str = JS_InternString(cx, mStrings[i]);
if (!str || !JS_ValueToId(cx, STRING_TO_JSVAL(str), &mStrIDs[i])) {
mStrIDs[0] = JSID_VOID;
ok = JS_FALSE;
ok = false;
break;
}
mStrJSVals[i] = STRING_TO_JSVAL(str);
@ -2199,22 +2199,22 @@ XPCJSRuntime::OnJSContextNew(JSContext *cx)
ok = mozilla::dom::binding::DefineStaticJSVals(cx);
}
if (!ok)
return JS_FALSE;
return false;
XPCPerThreadData* tls = XPCPerThreadData::GetData(cx);
if (!tls)
return JS_FALSE;
return false;
XPCContext* xpc = new XPCContext(this, cx);
if (!xpc)
return JS_FALSE;
return false;
JS_SetNativeStackQuota(cx, 128 * sizeof(size_t) * 1024);
// we want to mark the global object ourselves since we use a different color
JS_ToggleOptions(cx, JSOPTION_UNROOTED_GLOBAL);
return JS_TRUE;
return true;
}
JSBool

Просмотреть файл

@ -1,4 +1,4 @@
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
/* ***** BEGIN LICENSE BLOCK *****
* Version: MPL 1.1/GPL 2.0/LGPL 2.1
*
@ -93,50 +93,34 @@ nsresult xpcJSWeakReference::Init()
}
NS_IMETHODIMP
xpcJSWeakReference::Get()
xpcJSWeakReference::Get(JSContext* aCx, JS::Value* aRetval)
{
nsresult rv;
*aRetval = JSVAL_NULL;
nsXPConnect* xpc = nsXPConnect::GetXPConnect();
if (!xpc)
return NS_ERROR_UNEXPECTED;
nsAXPCNativeCallContext* cc = nsnull;
rv = xpc->GetCurrentNativeCallContext(&cc);
NS_ENSURE_SUCCESS(rv, rv);
JSContext *cx;
cc->GetJSContext(&cx);
if (!cx)
return NS_ERROR_UNEXPECTED;
jsval *retval = nsnull;
cc->GetRetValPtr(&retval);
if (!retval)
return NS_ERROR_UNEXPECTED;
*retval = JSVAL_NULL;
nsCOMPtr<nsIXPConnectWrappedJS> wrappedObj;
if (mWrappedJSObject &&
NS_SUCCEEDED(mWrappedJSObject->QueryReferent(NS_GET_IID(nsIXPConnectWrappedJS), getter_AddRefs(wrappedObj))) &&
wrappedObj) {
JSObject *obj;
wrappedObj->GetJSObject(&obj);
if (obj) {
// Most users of XPCWrappedJS don't need to worry about
// re-wrapping because things are implicitly rewrapped by
// xpcconvert. However, because we're doing this directly
// through the native call context, we need to call
// JS_WrapObject().
if (!JS_WrapObject(cx, &obj)) {
return NS_ERROR_FAILURE;
}
*retval = OBJECT_TO_JSVAL(obj);
}
if (!mWrappedJSObject) {
return NS_OK;
}
nsCOMPtr<nsIXPConnectWrappedJS> wrappedObj = do_QueryReferent(mWrappedJSObject);
if (!wrappedObj) {
return NS_OK;
}
JSObject *obj;
wrappedObj->GetJSObject(&obj);
if (!obj) {
return NS_OK;
}
// Most users of XPCWrappedJS don't need to worry about
// re-wrapping because things are implicitly rewrapped by
// xpcconvert. However, because we're doing this directly
// through the native call context, we need to call
// JS_WrapObject().
if (!JS_WrapObject(aCx, &obj)) {
return NS_ERROR_FAILURE;
}
*aRetval = OBJECT_TO_JSVAL(obj);
return NS_OK;
}

Просмотреть файл

@ -95,7 +95,7 @@ struct XPCLocaleCallbacks : public JSLocaleCallbacks
{
nsDependentJSString depStr;
if (!depStr.init(cx, src)) {
return JS_FALSE;
return false;
}
nsAutoString result;
@ -104,12 +104,12 @@ struct XPCLocaleCallbacks : public JSLocaleCallbacks
JSString *ucstr =
JS_NewUCStringCopyN(cx, (jschar*)result.get(), result.Length());
if (!ucstr) {
return JS_FALSE;
return false;
}
*rval = STRING_TO_JSVAL(ucstr);
return JS_TRUE;
return true;
}
static JSBool
@ -242,11 +242,11 @@ struct XPCLocaleCallbacks : public JSLocaleCallbacks
if (!str) {
nsDOMClassInfo::ThrowJSException(cx, NS_ERROR_OUT_OF_MEMORY);
return JS_FALSE;
return false;
}
*rval = STRING_TO_JSVAL(str);
return JS_TRUE;
return true;
}
JSBool
@ -275,13 +275,13 @@ struct XPCLocaleCallbacks : public JSLocaleCallbacks
if (NS_FAILED(rv)) {
nsDOMClassInfo::ThrowJSException(cx, rv);
return JS_FALSE;
return false;
}
}
nsDependentJSString depStr1, depStr2;
if (!depStr1.init(cx, src1) || !depStr2.init(cx, src2)) {
return JS_FALSE;
return false;
}
PRInt32 result;
@ -291,12 +291,12 @@ struct XPCLocaleCallbacks : public JSLocaleCallbacks
if (NS_FAILED(rv)) {
nsDOMClassInfo::ThrowJSException(cx, rv);
return JS_FALSE;
return false;
}
*rval = INT_TO_JSVAL(result);
return JS_TRUE;
return true;
}
nsCOMPtr<nsICollation> mCollation;
@ -343,9 +343,9 @@ DelocalizeContextCallback(JSContext *cx, uintN contextOp)
{
NS_ABORT_IF_FALSE(JS_GetRuntime(cx) == sHookedRuntime, "unknown runtime!");
JSBool ok = JS_TRUE;
JSBool ok = true;
if (sOldContextCallback && !sOldContextCallback(cx, contextOp)) {
ok = JS_FALSE;
ok = false;
// Even if the old callback fails, we still have to march on or
// else we might leak the intl stuff hooked onto |cx|
}

Просмотреть файл

@ -139,7 +139,7 @@ LogSlimWrapperWillMorph(JSContext *cx, JSObject *obj, const char *propname,
printf(" for %s", propname);
printf(" (%p, %p)\n", obj,
static_cast<nsISupports*>(xpc_GetJSPrivate(obj)));
xpc_DumpJSStack(cx, JS_FALSE, JS_FALSE, JS_FALSE);
xpc_DumpJSStack(cx, false, false, false);
}
}
@ -155,6 +155,6 @@ LogSlimWrapperNotCreated(JSContext *cx, nsISupports *obj, const char *reason)
if (className)
PR_Free(className);
JSAutoRequest autoRequest(cx);
xpc_DumpJSStack(cx, JS_FALSE, JS_FALSE, JS_FALSE);
xpc_DumpJSStack(cx, false, false, false);
}
#endif

Просмотреть файл

@ -302,20 +302,20 @@ NativeSetMap::Entry::Match(JSDHashTable *table,
XPCNativeSet* Set2 = ((Entry*)entry)->key_value;
if (Set1 == Set2)
return JS_TRUE;
return true;
PRUint16 count = Set1->GetInterfaceCount();
if (count != Set2->GetInterfaceCount())
return JS_FALSE;
return false;
XPCNativeInterface** Current1 = Set1->GetInterfaceArray();
XPCNativeInterface** Current2 = Set2->GetInterfaceArray();
for (PRUint16 i = 0; i < count; i++) {
if (*(Current1++) != *(Current2++))
return JS_FALSE;
return false;
}
return JS_TRUE;
return true;
}
XPCNativeSet* SetInTable = ((Entry*)entry)->key_value;
@ -339,11 +339,11 @@ NativeSetMap::Entry::Match(JSDHashTable *table,
}
if (!Addition && Set == SetInTable)
return JS_TRUE;
return true;
PRUint16 count = Set->GetInterfaceCount() + (Addition ? 1 : 0);
if (count != SetInTable->GetInterfaceCount())
return JS_FALSE;
return false;
PRUint16 Position = Key->GetPosition();
XPCNativeInterface** CurrentInTable = SetInTable->GetInterfaceArray();
@ -351,14 +351,14 @@ NativeSetMap::Entry::Match(JSDHashTable *table,
for (PRUint16 i = 0; i < count; i++) {
if (Addition && i == Position) {
if (Addition != *(CurrentInTable++))
return JS_FALSE;
return false;
} else {
if (*(Current++) != *(CurrentInTable++))
return JS_FALSE;
return false;
}
}
return JS_TRUE;
return true;
}
struct JSDHashTableOps NativeSetMap::Entry::sOps =
@ -481,7 +481,7 @@ XPCNativeScriptableSharedMap::Entry::Match(JSDHashTable *table,
if (obj1->GetFlags() != obj2->GetFlags() ||
obj1->GetInterfacesBitmap() != obj2->GetInterfacesBitmap())
return JS_FALSE;
return false;
const char* name1 = obj1->GetJSClass()->name;
const char* name2 = obj2->GetJSClass()->name;
@ -540,7 +540,7 @@ XPCNativeScriptableSharedMap::GetNewOrUsed(JSUint32 flags,
Entry* entry = (Entry*)
JS_DHashTableOperate(mTable, &key, JS_DHASH_ADD);
if (!entry)
return JS_FALSE;
return false;
XPCNativeScriptableShared* shared = entry->key;
@ -549,11 +549,11 @@ XPCNativeScriptableSharedMap::GetNewOrUsed(JSUint32 flags,
new XPCNativeScriptableShared(flags, key.TransferNameOwnership(),
interfacesBitmap);
if (!shared)
return JS_FALSE;
return false;
shared->PopulateJSClass(isGlobal);
}
si->SetScriptableShared(shared);
return JS_TRUE;
return true;
}
/***************************************************************************/

Просмотреть файл

@ -146,21 +146,21 @@ PropertyOpForwarder(JSContext *cx, uintN argc, jsval *vp)
JSObject *callee = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
JSObject *obj = JS_THIS_OBJECT(cx, vp);
if (!obj)
return JS_FALSE;
return false;
jsval v;
if (!JS_GetReservedSlot(cx, callee, 0, &v))
return JS_FALSE;
return false;
JSObject *ptrobj = JSVAL_TO_OBJECT(v);
Op *popp = static_cast<Op *>(JS_GetPrivate(cx, ptrobj));
if (!JS_GetReservedSlot(cx, callee, 1, &v))
return JS_FALSE;
return false;
jsval argval = (argc > 0) ? JS_ARGV(cx, vp)[0] : JSVAL_VOID;
jsid id;
if (!JS_ValueToId(cx, argval, &id))
return JS_FALSE;
return false;
JS_SET_RVAL(cx, vp, argval);
return ApplyPropertyOp<Op>(cx, *popp, obj, id, vp);
}
@ -189,7 +189,7 @@ GeneratePropertyOp(JSContext *cx, JSObject *obj, jsid id, uintN argc, Op pop)
JSFunction *fun =
JS_NewFunctionById(cx, PropertyOpForwarder<Op>, argc, 0, obj, id);
if (!fun)
return JS_FALSE;
return false;
JSObject *funobj = JS_GetFunctionObject(fun);
@ -199,10 +199,10 @@ GeneratePropertyOp(JSContext *cx, JSObject *obj, jsid id, uintN argc, Op pop)
// second object to work around this.
JSObject *ptrobj = JS_NewObject(cx, &PointerHolderClass, nsnull, funobj);
if (!ptrobj)
return JS_FALSE;
return false;
Op *popp = new Op;
if (!popp)
return JS_FALSE;
return false;
*popp = pop;
JS_SetPrivate(cx, ptrobj, popp);
@ -225,7 +225,7 @@ ReifyPropertyOps(JSContext *cx, JSObject *obj, jsid id, uintN orig_attrs,
if (getter) {
getterobj = GeneratePropertyOp(cx, obj, id, 0, getter);
if (!getterobj)
return JS_FALSE;
return false;
roots[0] = OBJECT_TO_JSVAL(getterobj);
attrs |= JSPROP_GETTER;
} else
@ -235,7 +235,7 @@ ReifyPropertyOps(JSContext *cx, JSObject *obj, jsid id, uintN orig_attrs,
if (setter) {
setterobj = GeneratePropertyOp(cx, obj, id, 1, setter);
if (!setterobj)
return JS_FALSE;
return false;
roots[1] = OBJECT_TO_JSVAL(setterobj);
attrs |= JSPROP_SETTER;
} else
@ -258,24 +258,24 @@ LookupGetterOrSetter(JSContext *cx, JSBool wantGetter, uintN argc, jsval *vp)
if (argc == 0) {
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
return true;
}
JSObject *obj = JS_THIS_OBJECT(cx, vp);
if (!obj)
return JS_FALSE;
return false;
jsval idval = JS_ARGV(cx, vp)[0];
jsid id;
JSPropertyDescriptor desc;
if (!JS_ValueToId(cx, idval, &id) ||
!JS_GetPropertyDescriptorById(cx, obj, id, JSRESOLVE_QUALIFIED, &desc))
return JS_FALSE;
return false;
// No property at all means no getters or setters possible.
if (!desc.obj) {
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
return true;
}
// Inline obj_lookup[GS]etter here.
@ -283,13 +283,13 @@ LookupGetterOrSetter(JSContext *cx, JSBool wantGetter, uintN argc, jsval *vp)
if (desc.attrs & JSPROP_GETTER) {
JS_SET_RVAL(cx, vp,
OBJECT_TO_JSVAL(JS_FUNC_TO_DATA_PTR(JSObject *, desc.getter)));
return JS_TRUE;
return true;
}
} else {
if (desc.attrs & JSPROP_SETTER) {
JS_SET_RVAL(cx, vp,
OBJECT_TO_JSVAL(JS_FUNC_TO_DATA_PTR(JSObject *, desc.setter)));
return JS_TRUE;
return true;
}
}
@ -304,19 +304,19 @@ LookupGetterOrSetter(JSContext *cx, JSBool wantGetter, uintN argc, jsval *vp)
!(desc.getter || desc.setter) ||
desc.setter == js::GetObjectJSClass(desc.obj)->setProperty) {
JS_SET_RVAL(cx, vp, JSVAL_VOID);
return JS_TRUE;
return true;
}
JSObject *getterobj, *setterobj;
if (!ReifyPropertyOps(cx, desc.obj, id, desc.attrs, desc.getter, desc.setter,
&getterobj, &setterobj)) {
return JS_FALSE;
return false;
}
JSObject *wantedobj = wantGetter ? getterobj : setterobj;
jsval v = wantedobj ? OBJECT_TO_JSVAL(wantedobj) : JSVAL_VOID;
JS_SET_RVAL(cx, vp, v);
return JS_TRUE;
return true;
}
static JSBool
@ -345,7 +345,7 @@ DefineGetterOrSetter(JSContext *cx, uintN argc, JSBool wantGetter, jsval *vp)
XPC_QS_ASSERT_CONTEXT_OK(cx);
JSObject *obj = JS_THIS_OBJECT(cx, vp);
if (!obj)
return JS_FALSE;
return false;
JSNative forward = wantGetter ? js::obj_defineGetter : js::obj_defineSetter;
jsval idval = (argc >= 1) ? JS_ARGV(cx, vp)[0] : JSVAL_VOID;
if (!JSVAL_IS_STRING(idval))
@ -357,7 +357,7 @@ DefineGetterOrSetter(JSContext *cx, uintN argc, JSBool wantGetter, jsval *vp)
(obj2 &&
!JS_GetPropertyAttrsGetterAndSetterById(cx, obj2, id, &attrs,
&found, &getter, &setter)))
return JS_FALSE;
return false;
// The property didn't exist, already has a getter or setter, or is not
// our property, then just forward now.
@ -369,7 +369,7 @@ DefineGetterOrSetter(JSContext *cx, uintN argc, JSBool wantGetter, jsval *vp)
// Reify the getter and setter...
if (!ReifyPropertyOps(cx, obj2, id, attrs, getter, setter, nsnull, nsnull))
return JS_FALSE;
return false;
return forward(cx, argc, vp);
}
@ -416,7 +416,7 @@ xpc_qsDefineQuickStubs(JSContext *cx, JSObject *proto, uintN flags,
if (!JS_DefineProperty(cx, proto, ps->name, JSVAL_VOID,
ps->getter, ps->setter,
flags | JSPROP_SHARED))
return JS_FALSE;
return false;
}
}
@ -427,7 +427,7 @@ xpc_qsDefineQuickStubs(JSContext *cx, JSObject *proto, uintN flags,
if (!JS_DefineFunction(cx, proto, fs->name,
reinterpret_cast<JSNative>(fs->native),
fs->arity, flags))
return JS_FALSE;
return false;
}
}
@ -449,16 +449,16 @@ xpc_qsDefineQuickStubs(JSContext *cx, JSObject *proto, uintN flags,
};
if (definedProperty && !JS_DefineFunctions(cx, proto, getterfns))
return JS_FALSE;
return false;
return JS_TRUE;
return true;
}
JSBool
xpc_qsThrow(JSContext *cx, nsresult rv)
{
XPCThrower::Throw(rv, cx);
return JS_FALSE;
return false;
}
/**
@ -533,7 +533,7 @@ ThrowCallFailed(JSContext *cx, nsresult rv,
* call. So we'll just throw that exception into our JS.
*/
if (XPCThrower::CheckForPendingException(rv, cx))
return JS_FALSE;
return false;
// else...
@ -562,7 +562,7 @@ ThrowCallFailed(JSContext *cx, nsresult rv,
if (sz)
JS_smprintf_free(sz);
return JS_FALSE;
return false;
}
JSBool
@ -587,7 +587,7 @@ JSBool
xpc_qsThrowMethodFailedWithCcx(XPCCallContext &ccx, nsresult rv)
{
ThrowBadResult(rv, ccx);
return JS_FALSE;
return false;
}
void
@ -682,12 +682,12 @@ xpc_qsDOMString::xpc_qsDOMString(JSContext *cx, jsval v, jsval *pval,
size_t len;
const jschar *chars = JS_GetStringCharsZAndLength(cx, s, &len);
if (!chars) {
mValid = JS_FALSE;
mValid = false;
return;
}
new(mBuf) implementation_type(chars, len);
mValid = JS_TRUE;
mValid = true;
}
xpc_qsACString::xpc_qsACString(JSContext *cx, jsval v, jsval *pval,
@ -703,18 +703,18 @@ xpc_qsACString::xpc_qsACString(JSContext *cx, jsval v, jsval *pval,
size_t len = JS_GetStringEncodingLength(cx, s);
if (len == size_t(-1)) {
mValid = JS_FALSE;
mValid = false;
return;
}
JSAutoByteString bytes(cx, s);
if (!bytes) {
mValid = JS_FALSE;
mValid = false;
return;
}
new(mBuf) implementation_type(bytes.ptr(), len);
mValid = JS_TRUE;
mValid = true;
}
xpc_qsAUTF8String::xpc_qsAUTF8String(JSContext *cx, jsval v, jsval *pval)
@ -728,12 +728,12 @@ xpc_qsAUTF8String::xpc_qsAUTF8String(JSContext *cx, jsval v, jsval *pval)
size_t len;
const PRUnichar *chars = JS_GetStringCharsZAndLength(cx, s, &len);
if (!chars) {
mValid = JS_FALSE;
mValid = false;
return;
}
new(mBuf) implementation_type(chars, len);
mValid = JS_TRUE;
mValid = true;
}
static nsresult
@ -866,7 +866,7 @@ xpc_qsUnwrapThisFromCcxImpl(XPCCallContext &ccx,
vp);
if (NS_FAILED(rv))
return xpc_qsThrow(ccx.GetJSContext(), rv);
return JS_TRUE;
return true;
}
JSObject*
@ -999,19 +999,19 @@ xpc_qsJsvalToWcharStr(JSContext *cx, jsval v, jsval *pval, const PRUnichar **pst
str = JSVAL_TO_STRING(v);
} else if (JSVAL_IS_VOID(v) || JSVAL_IS_NULL(v)) {
*pstr = NULL;
return JS_TRUE;
return true;
} else {
if (!(str = JS_ValueToString(cx, v)))
return JS_FALSE;
return false;
*pval = STRING_TO_JSVAL(str); // Root the new string.
}
const jschar *chars = JS_GetStringCharsZ(cx, str);
if (!chars)
return JS_FALSE;
return false;
*pstr = static_cast<const PRUnichar *>(chars);
return JS_TRUE;
return true;
}
JSBool
@ -1020,20 +1020,20 @@ xpc_qsStringToJsval(JSContext *cx, nsString &str, jsval *rval)
// From the T_DOMSTRING case in XPCConvert::NativeData2JS.
if (str.IsVoid()) {
*rval = JSVAL_NULL;
return JS_TRUE;
return true;
}
nsStringBuffer* sharedBuffer;
jsval jsstr = XPCStringConvert::ReadableToJSVal(cx, str, &sharedBuffer);
if (JSVAL_IS_NULL(jsstr))
return JS_FALSE;
return false;
*rval = jsstr;
if (sharedBuffer) {
// The string was shared but ReadableToJSVal didn't addref it.
// Move the ownership from str to jsstr.
str.ForgetSharedBuffer();
}
return JS_TRUE;
return true;
}
JSBool
@ -1042,20 +1042,20 @@ xpc_qsStringToJsstring(JSContext *cx, nsString &str, JSString **rval)
// From the T_DOMSTRING case in XPCConvert::NativeData2JS.
if (str.IsVoid()) {
*rval = nsnull;
return JS_TRUE;
return true;
}
nsStringBuffer* sharedBuffer;
jsval jsstr = XPCStringConvert::ReadableToJSVal(cx, str, &sharedBuffer);
if (JSVAL_IS_NULL(jsstr))
return JS_FALSE;
return false;
*rval = JSVAL_TO_STRING(jsstr);
if (sharedBuffer) {
// The string was shared but ReadableToJSVal didn't addref it.
// Move the ownership from str to jsstr.
str.ForgetSharedBuffer();
}
return JS_TRUE;
return true;
}
JSBool
@ -1085,7 +1085,7 @@ xpc_qsXPCOMObjectToJsval(XPCLazyCallContext &lccx, qsObjectHelper &aHelper,
// method really ought to be fixed to behave consistently.
if (!JS_IsExceptionPending(cx))
xpc_qsThrow(cx, NS_FAILED(rv) ? rv : NS_ERROR_UNEXPECTED);
return JS_FALSE;
return false;
}
#ifdef DEBUG
@ -1095,7 +1095,7 @@ xpc_qsXPCOMObjectToJsval(XPCLazyCallContext &lccx, qsObjectHelper &aHelper,
"Why did we recreate this wrapper?");
#endif
return JS_TRUE;
return true;
}
JSBool
@ -1113,7 +1113,7 @@ xpc_qsVariantToJsval(XPCLazyCallContext &lccx,
return ok;
}
*rval = JSVAL_NULL;
return JS_TRUE;
return true;
}
#ifdef DEBUG

Просмотреть файл

@ -163,7 +163,7 @@ xpc_qsDefineQuickStubs(JSContext *cx, JSObject *proto, uintN extraFlags,
PRUint32 ifacec, const nsIID **interfaces,
PRUint32 tableSize, const xpc_qsHashEntry *table);
/** Raise an exception on @a cx and return JS_FALSE. */
/** Raise an exception on @a cx and return false. */
JSBool
xpc_qsThrow(JSContext *cx, nsresult rv);
@ -234,7 +234,7 @@ inline JSBool
xpc_qsInt32ToJsval(JSContext *cx, PRInt32 i, jsval *rv)
{
*rv = INT_TO_JSVAL(i);
return JS_TRUE;
return true;
}
inline JSBool
@ -244,7 +244,7 @@ xpc_qsUint32ToJsval(JSContext *cx, PRUint32 u, jsval *rv)
*rv = INT_TO_JSVAL(u);
else
*rv = DOUBLE_TO_JSVAL(u);
return JS_TRUE;
return true;
}
#ifdef HAVE_LONG_LONG
@ -370,13 +370,13 @@ protected:
// eStringify should end up with void strings.
(new(mBuf) implementation_type(traits::sEmptyBuffer, PRUint32(0)))->
SetIsVoid(behavior != eEmpty);
mValid = JS_TRUE;
mValid = true;
return nsnull;
}
s = JS_ValueToString(cx, v);
if (!s) {
mValid = JS_FALSE;
mValid = false;
return nsnull;
}
*pval = STRING_TO_JSVAL(s); // Root the new string.
@ -391,7 +391,7 @@ protected:
*
* xpc_qsDOMString arg0(cx, &argv[0]);
* if (!arg0.IsValid())
* return JS_FALSE;
* return false;
*
* The second argument to the constructor is an in-out parameter. It must
* point to a rooted jsval, such as a JSNative argument or return value slot.
@ -452,7 +452,7 @@ struct xpc_qsSelfRef
};
/**
* Convert a jsval to char*, returning JS_TRUE on success.
* Convert a jsval to char*, returning true on success.
*
* @param cx
* A context.
@ -469,14 +469,14 @@ JSBool
xpc_qsJsvalToWcharStr(JSContext *cx, jsval v, jsval *pval, const PRUnichar **pstr);
/** Convert an nsString to jsval, returning JS_TRUE on success.
/** Convert an nsString to jsval, returning true on success.
* Note, the ownership of the string buffer may be moved from str to rval.
* If that happens, str will point to an empty string after this call.
*/
JSBool
xpc_qsStringToJsval(JSContext *cx, nsString &str, jsval *rval);
/** Convert an nsString to JSString, returning JS_TRUE on success. This will sometimes modify |str| to be empty. */
/** Convert an nsString to JSString, returning true on success. This will sometimes modify |str| to be empty. */
JSBool
xpc_qsStringToJsstring(JSContext *cx, nsString &str, JSString **rval);
@ -505,7 +505,7 @@ castNative(JSContext *cx,
*
* If an object implementing T is found, store a reference to the wrapper
* JSObject in @a *pThisVal, store a pointer to the T in @a *ppThis, and return
* JS_TRUE. Otherwise, raise an exception on @a cx and return JS_FALSE.
* true. Otherwise, raise an exception on @a cx and return false.
*
* @a *pThisRef receives the same pointer as *ppThis if the T was AddRefed.
* Otherwise it receives null (even on error).
@ -539,7 +539,7 @@ xpc_qsUnwrapThis(JSContext *cx,
if (NS_FAILED(rv))
*ppThis = nsnull;
return JS_TRUE;
return true;
}
inline nsISupports*
@ -680,7 +680,7 @@ xpc_qsGetWrapperCache(void *p)
return nsnull;
}
/** Convert an XPCOM pointer to jsval. Return JS_TRUE on success.
/** Convert an XPCOM pointer to jsval. Return true on success.
* aIdentity is a performance optimization. Set it to true,
* only if p is the identity pointer.
*/
@ -692,7 +692,7 @@ xpc_qsXPCOMObjectToJsval(XPCLazyCallContext &lccx,
jsval *rval);
/**
* Convert a variant to jsval. Return JS_TRUE on success.
* Convert a variant to jsval. Return true on success.
*/
JSBool
xpc_qsVariantToJsval(XPCLazyCallContext &ccx,
@ -700,7 +700,7 @@ xpc_qsVariantToJsval(XPCLazyCallContext &ccx,
jsval *rval);
/**
* Convert a jsval to PRInt64. Return JS_TRUE on success.
* Convert a jsval to PRInt64. Return true on success.
*/
inline JSBool
xpc_qsValueToInt64(JSContext *cx,
@ -710,15 +710,15 @@ xpc_qsValueToInt64(JSContext *cx,
if (JSVAL_IS_INT(v)) {
int32 intval;
if (!JS_ValueToECMAInt32(cx, v, &intval))
return JS_FALSE;
return false;
*result = static_cast<PRInt64>(intval);
} else {
jsdouble doubleval;
if (!JS_ValueToNumber(cx, v, &doubleval))
return JS_FALSE;
return false;
*result = static_cast<PRInt64>(doubleval);
}
return JS_TRUE;
return true;
}
/**
@ -736,7 +736,7 @@ xpc_qsDoubleToUint64(jsdouble doubleval)
}
/**
* Convert a jsval to PRUint64. Return JS_TRUE on success.
* Convert a jsval to PRUint64. Return true on success.
*/
inline JSBool
xpc_qsValueToUint64(JSContext *cx,
@ -746,15 +746,15 @@ xpc_qsValueToUint64(JSContext *cx,
if (JSVAL_IS_INT(v)) {
uint32 intval;
if (!JS_ValueToECMAUint32(cx, v, &intval))
return JS_FALSE;
return false;
*result = static_cast<PRUint64>(intval);
} else {
jsdouble doubleval;
if (!JS_ValueToNumber(cx, v, &doubleval))
return JS_FALSE;
return false;
*result = xpc_qsDoubleToUint64(doubleval);
}
return JS_TRUE;
return true;
}
#ifdef DEBUG

Просмотреть файл

@ -197,12 +197,12 @@ XPCJSStackFrame::CreateStackFrameLocation(PRUint32 aLanguage,
nsIStackFrame* aCaller,
XPCJSStackFrame** stack)
{
JSBool failed = JS_FALSE;
JSBool failed = false;
XPCJSStackFrame* self = new XPCJSStackFrame();
if (self)
NS_ADDREF(self);
else
failed = JS_TRUE;
failed = true;
if (!failed) {
self->mLanguage = aLanguage;
@ -214,7 +214,7 @@ XPCJSStackFrame::CreateStackFrameLocation(PRUint32 aLanguage,
nsMemory::Clone(aFilename,
sizeof(char)*(strlen(aFilename)+1));
if (!self->mFilename)
failed = JS_TRUE;
failed = true;
}
if (!failed && aFunctionName) {
@ -222,7 +222,7 @@ XPCJSStackFrame::CreateStackFrameLocation(PRUint32 aLanguage,
nsMemory::Clone(aFunctionName,
sizeof(char)*(strlen(aFunctionName)+1));
if (!self->mFunname)
failed = JS_TRUE;
failed = true;
}
if (!failed && aCaller) {

Просмотреть файл

@ -178,8 +178,8 @@ XPCJSContextStack::DEBUG_StackHasJSContext(JSContext* aJSContext)
{
for (PRUint32 i = 0; i < mStack.Length(); i++)
if (aJSContext == mStack[i].cx)
return JS_TRUE;
return JS_FALSE;
return true;
return false;
}
#endif
@ -304,7 +304,7 @@ XPCPerThreadData::XPCPerThreadData()
mResolvingWrapper(nsnull),
mExceptionManager(nsnull),
mException(nsnull),
mExceptionManagerNotAvailable(JS_FALSE),
mExceptionManagerNotAvailable(false),
mAutoRoots(nsnull)
#ifdef XPC_CHECK_WRAPPER_THREADSAFETY
, mWrappedNativeThreadsafetyReportDepth(0)

Просмотреть файл

@ -43,7 +43,7 @@
#include "xpcprivate.h"
#include "XPCWrapper.h"
JSBool XPCThrower::sVerbose = JS_TRUE;
JSBool XPCThrower::sVerbose = true;
// static
void
@ -68,21 +68,21 @@ XPCThrower::CheckForPendingException(nsresult result, JSContext *cx)
{
nsXPConnect* xpc = nsXPConnect::GetXPConnect();
if (!xpc)
return JS_FALSE;
return false;
nsCOMPtr<nsIException> e;
xpc->GetPendingException(getter_AddRefs(e));
if (!e)
return JS_FALSE;
return false;
xpc->SetPendingException(nsnull);
nsresult e_result;
if (NS_FAILED(e->GetResult(&e_result)) || e_result != result)
return JS_FALSE;
return false;
if (!ThrowExceptionObject(cx, e))
JS_ReportOutOfMemory(cx);
return JS_TRUE;
return true;
}
// static
@ -198,7 +198,7 @@ XPCThrower::Verbosify(XPCCallContext& ccx,
void
XPCThrower::BuildAndThrowException(JSContext* cx, nsresult rv, const char* sz)
{
JSBool success = JS_FALSE;
JSBool success = false;
/* no need to set an expection if the security manager already has */
if (rv == NS_ERROR_XPC_SECURITY_MANAGER_VETO && JS_IsExceptionPending(cx))
@ -267,7 +267,7 @@ IsCallerChrome(JSContext* cx)
JSBool
XPCThrower::ThrowExceptionObject(JSContext* cx, nsIException* e)
{
JSBool success = JS_FALSE;
JSBool success = false;
if (e) {
nsCOMPtr<nsIXPCException> xpcEx;
jsval thrown;
@ -280,13 +280,13 @@ XPCThrower::ThrowExceptionObject(JSContext* cx, nsIException* e)
(xpcEx = do_QueryInterface(e)) &&
NS_SUCCEEDED(xpcEx->StealJSVal(&thrown))) {
if (!JS_WrapValue(cx, &thrown))
return JS_FALSE;
return false;
JS_SetPendingException(cx, thrown);
success = JS_TRUE;
success = true;
} else if ((xpc = nsXPConnect::GetXPConnect())) {
JSObject* glob = JS_GetGlobalForScopeChain(cx);
if (!glob)
return JS_FALSE;
return false;
nsCOMPtr<nsIXPConnectJSObjectHolder> holder;
nsresult rv = xpc->WrapNative(cx, glob, e,
@ -296,7 +296,7 @@ XPCThrower::ThrowExceptionObject(JSContext* cx, nsIException* e)
JSObject* obj;
if (NS_SUCCEEDED(holder->GetJSObject(&obj))) {
JS_SetPendingException(cx, OBJECT_TO_JSVAL(obj));
success = JS_TRUE;
success = true;
}
}
}

Просмотреть файл

@ -78,7 +78,7 @@ XPCVariant::XPCVariant(XPCCallContext& ccx, jsval aJSVal)
&proto);
mReturnRawObject = !wn && !proto;
} else
mReturnRawObject = JS_FALSE;
mReturnRawObject = false;
}
XPCTraceableVariant::~XPCTraceableVariant()
@ -220,7 +220,7 @@ XPCArrayHomogenizer::GetTypeForArray(XPCCallContext& ccx, JSObject* array,
for (jsuint i = 0; i < length; i++) {
jsval val;
if (!JS_GetElement(ccx, array, i, &val))
return JS_FALSE;
return false;
if (JSVAL_IS_INT(val))
type = tInt;
@ -294,14 +294,14 @@ XPCArrayHomogenizer::GetTypeForArray(XPCCallContext& ccx, JSObject* array,
// FALL THROUGH
default:
NS_ERROR("bad state");
return JS_FALSE;
return false;
}
return JS_TRUE;
return true;
}
JSBool XPCVariant::InitializeData(XPCCallContext& ccx)
{
JS_CHECK_RECURSION(ccx.GetJSContext(), return JS_FALSE);
JS_CHECK_RECURSION(ccx.GetJSContext(), return false);
jsval val = GetJSVal();
@ -322,7 +322,7 @@ JSBool XPCVariant::InitializeData(XPCCallContext& ccx)
// which nsVariant assumes for its PRUnichar* stuff.
JSString* str = JSVAL_TO_STRING(val);
if (!JS_MakeStringImmutable(ccx, str))
return JS_FALSE;
return false;
// Don't use nsVariant::SetFromWStringWithSize, because that will copy
// the data. Just handle this ourselves. Note that it's ok to not
@ -335,7 +335,7 @@ JSBool XPCVariant::InitializeData(XPCCallContext& ccx)
size_t length;
const jschar *chars = JS_GetStringCharsZAndLength(ccx, str, &length);
if (!chars)
return JS_FALSE;
return false;
mData.u.wstr.mWStringValue = const_cast<jschar *>(chars);
// Use C-style cast, because reinterpret cast from size_t to
@ -343,7 +343,7 @@ JSBool XPCVariant::InitializeData(XPCCallContext& ccx)
mData.u.wstr.mWStringLength = (PRUint32)length;
mData.mType = nsIDataType::VTYPE_WSTRING_SIZE_IS;
return JS_TRUE;
return true;
}
// leaving only JSObject...
@ -365,18 +365,18 @@ JSBool XPCVariant::InitializeData(XPCCallContext& ccx)
if (!len) {
// Zero length array
nsVariant::SetToEmptyArray(&mData);
return JS_TRUE;
return true;
}
nsXPTType type;
nsID id;
if (!XPCArrayHomogenizer::GetTypeForArray(ccx, jsobj, len, &type, &id))
return JS_FALSE;
return false;
if (!XPCConvert::JSArray2Native(ccx, &mData.u.array.mArrayValue,
val, len, type, &id, nsnull))
return JS_FALSE;
return false;
mData.mType = nsIDataType::VTYPE_ARRAY;
if (type.IsInterfacePointer())
@ -384,7 +384,7 @@ JSBool XPCVariant::InitializeData(XPCCallContext& ccx)
mData.u.array.mArrayCount = len;
mData.u.array.mArrayType = type.TagPart();
return JS_TRUE;
return true;
}
// XXX This could be smarter and pick some more interesting iface.
@ -416,7 +416,7 @@ XPCVariant::VariantDataToJS(XPCLazyCallContext& lccx,
// Get the type early because we might need to spoof it below.
PRUint16 type;
if (NS_FAILED(variant->GetDataType(&type)))
return JS_FALSE;
return false;
jsval realVal;
nsresult rv = variant->GetAsJSVal(&realVal);
@ -428,9 +428,9 @@ XPCVariant::VariantDataToJS(XPCLazyCallContext& lccx,
type == nsIDataType::VTYPE_ID)) {
JSContext *cx = lccx.GetJSContext();
if (!JS_WrapValue(cx, &realVal))
return JS_FALSE;
return false;
*pJSVal = realVal;
return JS_TRUE;
return true;
}
nsCOMPtr<XPCVariant> xpcvariant = do_QueryInterface(variant);
@ -441,9 +441,9 @@ XPCVariant::VariantDataToJS(XPCLazyCallContext& lccx,
JSContext *cx = lccx.GetJSContext();
if (!JS_WrapValue(cx, &realVal))
return JS_FALSE;
return false;
*pJSVal = realVal;
return JS_TRUE;
return true;
}
// else, it's an object and we really need to double wrap it if we've
@ -483,80 +483,80 @@ XPCVariant::VariantDataToJS(XPCLazyCallContext& lccx,
{
// Easy. Handle inline.
if (NS_FAILED(variant->GetAsDouble(&xpctvar.val.d)))
return JS_FALSE;
return false;
return JS_NewNumberValue(cx, xpctvar.val.d, pJSVal);
}
case nsIDataType::VTYPE_BOOL:
{
// Easy. Handle inline.
if (NS_FAILED(variant->GetAsBool(&xpctvar.val.b)))
return JS_FALSE;
return false;
*pJSVal = BOOLEAN_TO_JSVAL(xpctvar.val.b);
return JS_TRUE;
return true;
}
case nsIDataType::VTYPE_CHAR:
if (NS_FAILED(variant->GetAsChar(&xpctvar.val.c)))
return JS_FALSE;
return false;
xpctvar.type = (uint8)TD_CHAR;
break;
case nsIDataType::VTYPE_WCHAR:
if (NS_FAILED(variant->GetAsWChar(&xpctvar.val.wc)))
return JS_FALSE;
return false;
xpctvar.type = (uint8)TD_WCHAR;
break;
case nsIDataType::VTYPE_ID:
if (NS_FAILED(variant->GetAsID(&iid)))
return JS_FALSE;
return false;
xpctvar.type = (uint8)(TD_PNSIID | XPT_TDP_POINTER);
xpctvar.val.p = &iid;
break;
case nsIDataType::VTYPE_ASTRING:
if (NS_FAILED(variant->GetAsAString(astring)))
return JS_FALSE;
return false;
xpctvar.type = (uint8)(TD_ASTRING | XPT_TDP_POINTER);
xpctvar.val.p = &astring;
break;
case nsIDataType::VTYPE_DOMSTRING:
if (NS_FAILED(variant->GetAsAString(astring)))
return JS_FALSE;
return false;
xpctvar.type = (uint8)(TD_DOMSTRING | XPT_TDP_POINTER);
xpctvar.val.p = &astring;
break;
case nsIDataType::VTYPE_CSTRING:
if (NS_FAILED(variant->GetAsACString(cString)))
return JS_FALSE;
return false;
xpctvar.type = (uint8)(TD_CSTRING | XPT_TDP_POINTER);
xpctvar.val.p = &cString;
break;
case nsIDataType::VTYPE_UTF8STRING:
if (NS_FAILED(variant->GetAsAUTF8String(utf8String)))
return JS_FALSE;
return false;
xpctvar.type = (uint8)(TD_UTF8STRING | XPT_TDP_POINTER);
xpctvar.val.p = &utf8String;
break;
case nsIDataType::VTYPE_CHAR_STR:
if (NS_FAILED(variant->GetAsString((char**)&xpctvar.val.p)))
return JS_FALSE;
return false;
xpctvar.type = (uint8)(TD_PSTRING | XPT_TDP_POINTER);
xpctvar.SetValNeedsCleanup();
break;
case nsIDataType::VTYPE_STRING_SIZE_IS:
if (NS_FAILED(variant->GetAsStringWithSize(&size,
(char**)&xpctvar.val.p)))
return JS_FALSE;
return false;
xpctvar.type = (uint8)(TD_PSTRING_SIZE_IS | XPT_TDP_POINTER);
xpctvar.SetValNeedsCleanup();
break;
case nsIDataType::VTYPE_WCHAR_STR:
if (NS_FAILED(variant->GetAsWString((PRUnichar**)&xpctvar.val.p)))
return JS_FALSE;
return false;
xpctvar.type = (uint8)(TD_PWSTRING | XPT_TDP_POINTER);
xpctvar.SetValNeedsCleanup();
break;
case nsIDataType::VTYPE_WSTRING_SIZE_IS:
if (NS_FAILED(variant->GetAsWStringWithSize(&size,
(PRUnichar**)&xpctvar.val.p)))
return JS_FALSE;
return false;
xpctvar.type = (uint8)(TD_PWSTRING_SIZE_IS | XPT_TDP_POINTER);
xpctvar.SetValNeedsCleanup();
break;
@ -565,7 +565,7 @@ XPCVariant::VariantDataToJS(XPCLazyCallContext& lccx,
{
nsID* piid;
if (NS_FAILED(variant->GetAsInterface(&piid, &xpctvar.val.p)))
return JS_FALSE;
return false;
iid = *piid;
nsMemory::Free((char*)piid);
@ -586,11 +586,11 @@ XPCVariant::VariantDataToJS(XPCLazyCallContext& lccx,
&du.u.array.mArrayCount,
&du.u.array.mArrayValue);
if (NS_FAILED(rv))
return JS_FALSE;
return false;
// must exit via VARIANT_DONE from here on...
du.mType = nsIDataType::VTYPE_ARRAY;
success = JS_FALSE;
success = false;
nsXPTType conversionType;
PRUint16 elementType = du.u.array.mArrayType;
@ -659,19 +659,19 @@ VARIANT_DONE:
{
JSObject* array = JS_NewArrayObject(cx, 0, nsnull);
if (!array)
return JS_FALSE;
return false;
*pJSVal = OBJECT_TO_JSVAL(array);
return JS_TRUE;
return true;
}
case nsIDataType::VTYPE_VOID:
*pJSVal = JSVAL_VOID;
return JS_TRUE;
return true;
case nsIDataType::VTYPE_EMPTY:
*pJSVal = JSVAL_NULL;
return JS_TRUE;
return true;
default:
NS_ERROR("bad type in variant!");
return JS_FALSE;
return false;
}
// If we are here then we need to convert the data in the xpctvar.

Просмотреть файл

@ -316,7 +316,7 @@ nsXPCWrappedJS::GetNewOrUsed(XPCCallContext& ccx,
nsXPCWrappedJS* wrapper = nsnull;
nsXPCWrappedJSClass* clazz = nsnull;
XPCJSRuntime* rt = ccx.GetRuntime();
JSBool release_root = JS_FALSE;
JSBool release_root = false;
map = rt->GetWrappedJSMap();
if (!map) {
@ -389,7 +389,7 @@ nsXPCWrappedJS::GetNewOrUsed(XPCCallContext& ccx,
if (!root)
goto return_wrapper;
release_root = JS_TRUE;
release_root = true;
{ // scoped lock
#if DEBUG_xpc_leaks

Просмотреть файл

@ -128,17 +128,17 @@ AutoScriptEvaluate::~AutoScriptEvaluate()
JSBool xpc_IsReportableErrorCode(nsresult code)
{
if (NS_SUCCEEDED(code))
return JS_FALSE;
return false;
switch (code) {
// Error codes that we don't want to report as errors...
// These generally indicate bad interface design AFAIC.
case NS_ERROR_FACTORY_REGISTER_AGAIN:
case NS_BASE_STREAM_WOULD_BLOCK:
return JS_FALSE;
return false;
}
return JS_TRUE;
return true;
}
// static
@ -240,7 +240,7 @@ nsXPCWrappedJSClass::CallQueryInterfaceOnJSObject(XPCCallContext& ccx,
JSObject* id;
jsval retval;
JSObject* retObj;
JSBool success = JS_FALSE;
JSBool success = false;
jsid funid;
jsval fun;
@ -368,7 +368,7 @@ GetNamedPropertyAsVariantRaw(XPCCallContext& ccx,
// Note that this always takes the T_INTERFACE path through
// JSData2Native, so the value passed for useAllocator
// doesn't really matter. We pass true for consistency.
XPCConvert::JSData2Native(ccx, aResult, val, type, JS_TRUE,
XPCConvert::JSData2Native(ccx, aResult, val, type, true,
&NS_GET_IID(nsIVariant), pErr);
}
@ -878,7 +878,7 @@ nsXPCWrappedJSClass::GetArraySizeFromParam(JSContext* cx,
rv = mInfo->GetSizeIsArgNumberForParam(methodIndex, &param, 0, &argnum);
if (NS_FAILED(rv))
return JS_FALSE;
return false;
const nsXPTParamInfo& arg_param = method->params[argnum];
const nsXPTType& arg_type = arg_param.GetType();
@ -893,7 +893,7 @@ nsXPCWrappedJSClass::GetArraySizeFromParam(JSContext* cx,
else
*result = nativeParams[argnum].val.u32;
return JS_TRUE;
return true;
}
JSBool
@ -910,7 +910,7 @@ nsXPCWrappedJSClass::GetInterfaceTypeFromParam(JSContext* cx,
if (type_tag == nsXPTType::T_INTERFACE) {
if (NS_SUCCEEDED(GetInterfaceInfo()->
GetIIDForParamNoAlloc(methodIndex, &param, result))) {
return JS_TRUE;
return true;
}
} else if (type_tag == nsXPTType::T_INTERFACE_IS) {
uint8 argnum;
@ -918,7 +918,7 @@ nsXPCWrappedJSClass::GetInterfaceTypeFromParam(JSContext* cx,
rv = mInfo->GetInterfaceIsArgNumberForParam(methodIndex,
&param, &argnum);
if (NS_FAILED(rv))
return JS_FALSE;
return false;
const nsXPTParamInfo& arg_param = method->params[argnum];
const nsXPTType& arg_type = arg_param.GetType();
@ -927,18 +927,18 @@ nsXPCWrappedJSClass::GetInterfaceTypeFromParam(JSContext* cx,
if (arg_param.IsIndirect()) {
nsID** p = (nsID**) nativeParams[argnum].val.p;
if (!p || !*p)
return JS_FALSE;
return false;
*result = **p;
} else {
nsID* p = (nsID*) nativeParams[argnum].val.p;
if (!p)
return JS_FALSE;
return false;
*result = *p;
}
return JS_TRUE;
return true;
}
}
return JS_FALSE;
return false;
}
void
@ -1190,7 +1190,7 @@ nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS* wrapper, uint16 methodIndex,
nsresult retval = NS_ERROR_FAILURE;
nsresult pending_result = NS_OK;
JSBool success;
JSBool readyToDoTheCall = JS_FALSE;
JSBool readyToDoTheCall = false;
nsID param_iid;
JSObject* obj;
const char* name = info->name;
@ -1383,7 +1383,7 @@ nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS* wrapper, uint16 methodIndex,
jsval val = JSVAL_NULL;
AUTO_MARK_JSVAL(ccx, &val);
bool isSizedString = isArray ?
JS_FALSE :
false :
type.TagPart() == nsXPTType::T_PSTRING_SIZE_IS ||
type.TagPart() == nsXPTType::T_PWSTRING_SIZE_IS;
@ -1461,7 +1461,7 @@ nsXPCWrappedJSClass::CallMethod(nsXPCWrappedJS* wrapper, uint16 methodIndex,
*sp++ = val;
}
readyToDoTheCall = JS_TRUE;
readyToDoTheCall = true;
pre_call_clean_up:
// clean up any 'out' params handed in
@ -1550,7 +1550,7 @@ pre_call_clean_up:
xpcc->SetException(e);
if (sz)
JS_smprintf_free(sz);
success = JS_FALSE;
success = false;
}
}
@ -1574,7 +1574,7 @@ pre_call_clean_up:
// the params upon which they depend will have already been converted -
// regardless of ordering.
foundDependentParam = JS_FALSE;
foundDependentParam = false;
for (i = 0; i < paramCount; i++) {
const nsXPTParamInfo& param = info->params[i];
NS_ABORT_IF_FALSE(!param.IsShared(), "[shared] implies [noscript]!");
@ -1583,7 +1583,7 @@ pre_call_clean_up:
const nsXPTType& type = param.GetType();
if (type.IsDependent()) {
foundDependentParam = JS_TRUE;
foundDependentParam = true;
continue;
}
@ -1635,7 +1635,7 @@ pre_call_clean_up:
JSUint32 array_count;
bool isArray = type.IsArray();
bool isSizedString = isArray ?
JS_FALSE :
false :
type.TagPart() == nsXPTType::T_PSTRING_SIZE_IS ||
type.TagPart() == nsXPTType::T_PWSTRING_SIZE_IS;
@ -1684,7 +1684,7 @@ pre_call_clean_up:
break;
} else {
if (!XPCConvert::JSData2Native(ccx, &pv->val, val, type,
JS_TRUE, &param_iid,
true, &param_iid,
nsnull))
break;
}

Просмотреть файл

@ -376,7 +376,7 @@ XPCWrappedNative::GetNewOrUsed(XPCCallContext& ccx,
if (wrapper) {
if (Interface &&
!wrapper->FindTearOff(ccx, Interface, JS_FALSE, &rv)) {
!wrapper->FindTearOff(ccx, Interface, false, &rv)) {
NS_RELEASE(wrapper);
NS_ASSERTION(NS_FAILED(rv), "returning NS_OK on failure");
return rv;
@ -431,8 +431,8 @@ XPCWrappedNative::GetNewOrUsed(XPCCallContext& ccx,
jsval newParentVal = JSVAL_NULL;
XPCMarkableJSVal newParentVal_markable(&newParentVal);
AutoMarkingJSVal newParentVal_automarker(ccx, &newParentVal_markable);
JSBool needsSOW = JS_FALSE;
JSBool needsCOW = JS_FALSE;
JSBool needsSOW = false;
JSBool needsCOW = false;
JSAutoEnterCompartment ac;
@ -444,7 +444,7 @@ XPCWrappedNative::GetNewOrUsed(XPCCallContext& ccx,
return rv;
if (rv == NS_SUCCESS_CHROME_ACCESS_ONLY)
needsSOW = JS_TRUE;
needsSOW = true;
rv = NS_OK;
NS_ASSERTION(!xpc::WrapperFactory::IsXrayWrapper(parent),
@ -493,7 +493,7 @@ XPCWrappedNative::GetNewOrUsed(XPCCallContext& ccx,
}
if (wrapper) {
if (Interface && !wrapper->FindTearOff(ccx, Interface, JS_FALSE, &rv)) {
if (Interface && !wrapper->FindTearOff(ccx, Interface, false, &rv)) {
NS_RELEASE(wrapper);
NS_ASSERTION(NS_FAILED(rv), "returning NS_OK on failure");
return rv;
@ -513,7 +513,7 @@ XPCWrappedNative::GetNewOrUsed(XPCCallContext& ccx,
wrappedjs->GetJSObject(&obj);
if (xpc::AccessCheck::isChrome(js::GetObjectCompartment(obj)) &&
!xpc::AccessCheck::isChrome(js::GetObjectCompartment(Scope->GetGlobalJSObject()))) {
needsCOW = JS_TRUE;
needsCOW = true;
}
}
}
@ -528,7 +528,7 @@ XPCWrappedNative::GetNewOrUsed(XPCCallContext& ccx,
if (info && !isClassInfo) {
proto = XPCWrappedNativeProto::GetNewOrUsed(ccx, Scope, info, &sciProto,
JS_FALSE, isGlobal);
false, isGlobal);
if (!proto)
return NS_ERROR_FAILURE;
@ -569,7 +569,7 @@ XPCWrappedNative::GetNewOrUsed(XPCCallContext& ccx,
return NS_ERROR_FAILURE;
}
if (Interface && !wrapper->FindTearOff(ccx, Interface, JS_FALSE, &rv)) {
if (Interface && !wrapper->FindTearOff(ccx, Interface, false, &rv)) {
// Second reference will be released by the FlatJSObject's finalizer.
wrapper->Release();
NS_ASSERTION(NS_FAILED(rv), "returning NS_OK on failure");
@ -739,7 +739,7 @@ XPCWrappedNative::Morph(XPCCallContext& ccx,
}
nsresult rv;
if (Interface && !wrapper->FindTearOff(ccx, Interface, JS_FALSE, &rv)) {
if (Interface && !wrapper->FindTearOff(ccx, Interface, false, &rv)) {
// Second reference will be released by the FlatJSObject's finalizer.
wrapper->Release();
NS_ASSERTION(NS_FAILED(rv), "returning NS_OK on failure");
@ -799,7 +799,7 @@ XPCWrappedNative::GetUsedOnly(XPCCallContext& ccx,
}
nsresult rv;
if (Interface && !wrapper->FindTearOff(ccx, Interface, JS_FALSE, &rv)) {
if (Interface && !wrapper->FindTearOff(ccx, Interface, false, &rv)) {
NS_RELEASE(wrapper);
NS_ASSERTION(NS_FAILED(rv), "returning NS_OK on failure");
return rv;
@ -1100,7 +1100,7 @@ XPCWrappedNative::Init(XPCCallContext& ccx,
XPCNativeScriptableInfo::Construct(ccx, isGlobal, sci);
if (!mScriptableInfo)
return JS_FALSE;
return false;
// If we have a one-off proto, then it should share our scriptable.
// This allows the proto's JSClass callbacks to do the right things
@ -1143,12 +1143,12 @@ XPCWrappedNative::Init(XPCCallContext& ccx,
GetScope()->GetPrototypeNoHelper(ccx);
if (!protoJSObject) {
return JS_FALSE;
return false;
}
mFlatJSObject = xpc_NewSystemInheritingJSObject(ccx, jsclazz, protoJSObject, false, parent);
if (!mFlatJSObject)
return JS_FALSE;
return false;
// In the current JS engine JS_SetPrivate can't fail. But if it *did*
// fail then we would not receive our finalizer call and would not be
@ -1156,7 +1156,7 @@ XPCWrappedNative::Init(XPCCallContext& ccx,
// to indicate the invalid state of this object and return false.
if (!JS_SetPrivate(ccx, mFlatJSObject, this)) {
mFlatJSObject = nsnull;
return JS_FALSE;
return false;
}
return FinishInit(ccx);
@ -1171,12 +1171,12 @@ XPCWrappedNative::Init(XPCCallContext &ccx, JSObject *existingJSObject)
// to indicate the invalid state of this object and return false.
if (!JS_SetPrivate(ccx, existingJSObject, this)) {
mFlatJSObject = nsnull;
return JS_FALSE;
return false;
}
// Morph the existing object.
if (!JS_SetReservedSlot(ccx, existingJSObject, 0, JSVAL_VOID))
return JS_FALSE;
return false;
mScriptableInfo = GetProto()->GetScriptableInfo();
mFlatJSObject = existingJSObject;
@ -1200,7 +1200,7 @@ XPCWrappedNative::FinishInit(XPCCallContext &ccx)
if (mScriptableInfo && mScriptableInfo->GetFlags().WantCreate() &&
NS_FAILED(mScriptableInfo->GetCallback()->Create(this, ccx,
mFlatJSObject))) {
return JS_FALSE;
return false;
}
#ifdef XPC_CHECK_WRAPPER_THREADSAFETY
@ -1209,14 +1209,14 @@ XPCWrappedNative::FinishInit(XPCCallContext &ccx)
if (HasProto() && GetProto()->ClassIsMainThreadOnly() && !NS_IsMainThread()) {
DEBUG_ReportWrapperThreadSafetyError(ccx,
"MainThread only wrapper created on the wrong thread", this);
return JS_FALSE;
return false;
}
#endif
// A hack for bug 517665, increase the probability for GC.
JS_updateMallocCounter(ccx.GetJSContext(), 2 * sizeof(XPCWrappedNative));
return JS_TRUE;
return true;
}
@ -1760,13 +1760,13 @@ XPCWrappedNative::ExtendSet(XPCCallContext& ccx, XPCNativeInterface* aInterface)
newSet = XPCNativeSet::GetNewOrUsed(ccx, mSet, aInterface,
mSet->GetInterfaceCount());
if (!newSet)
return JS_FALSE;
return false;
mSet = newSet;
DEBUG_ReportShadowedMembers(newSet, this, GetProto());
}
return JS_TRUE;
return true;
}
XPCWrappedNativeTearOff*
@ -1795,7 +1795,7 @@ XPCWrappedNative::LocateTearOff(XPCCallContext& ccx,
XPCWrappedNativeTearOff*
XPCWrappedNative::FindTearOff(XPCCallContext& ccx,
XPCNativeInterface* aInterface,
JSBool needJSObject /* = JS_FALSE */,
JSBool needJSObject /* = false */,
nsresult* pError /* = nsnull */)
{
XPCAutoLock al(GetLock()); // hold the lock throughout
@ -2054,10 +2054,10 @@ XPCWrappedNative::InitTearOffJSObject(XPCCallContext& ccx,
false, mFlatJSObject);
if (!obj || !JS_SetPrivate(ccx, obj, to))
return JS_FALSE;
return false;
to->SetJSObject(obj);
return JS_TRUE;
return true;
}
/***************************************************************************/
@ -2065,7 +2065,7 @@ XPCWrappedNative::InitTearOffJSObject(XPCCallContext& ccx,
static JSBool Throw(uintN errNum, XPCCallContext& ccx)
{
XPCThrower::Throw(errNum, ccx);
return JS_FALSE;
return false;
}
/***************************************************************************/
@ -2198,7 +2198,7 @@ XPCWrappedNative::CallMethod(XPCCallContext& ccx,
break;
default:
NS_ERROR("bad value");
return JS_FALSE;
return false;
}
nsIXPCSecurityManager* sm =
@ -2210,7 +2210,7 @@ XPCWrappedNative::CallMethod(XPCCallContext& ccx,
ccx.GetMember()->GetName(),
ccx.GetWrapper()->GetSecurityInfoAddr()))) {
// the security manager vetoed. It should have set an exception.
return JS_FALSE;
return false;
}
return CallMethodHelper(ccx).Call();
@ -2230,22 +2230,22 @@ CallMethodHelper::Call()
if (!mMethodInfo) {
Throw(NS_ERROR_XPC_CANT_GET_METHOD_INFO, mCallContext);
return JS_FALSE;
return false;
}
if (!InitializeDispatchParams())
return JS_FALSE;
return false;
// Iterate through the params doing conversions of independent params only.
// When we later convert the dependent params (if any) we will know that
// the params upon which they depend will have already been converted -
// regardless of ordering.
JSBool foundDependentParam = JS_FALSE;
JSBool foundDependentParam = false;
if (!ConvertIndependentParams(&foundDependentParam))
return JS_FALSE;
return false;
if (foundDependentParam && !ConvertDependentParams())
return JS_FALSE;
return false;
nsresult invokeResult = Invoke();
@ -2253,11 +2253,11 @@ CallMethodHelper::Call()
if (NS_FAILED(invokeResult)) {
ThrowBadResult(invokeResult, mCallContext);
return JS_FALSE;
return false;
}
if (JS_IsExceptionPending(mCallContext)) {
return JS_FALSE;
return false;
}
return GatherAndConvertResults();
@ -2329,7 +2329,7 @@ CallMethodHelper::GetArraySizeFromParam(uint8 paramIndex,
*result = GetDispatchParam(paramIndex)->val.u32;
return JS_TRUE;
return true;
}
JSBool
@ -2362,7 +2362,7 @@ CallMethodHelper::GetInterfaceTypeFromParam(uint8 paramIndex,
paramIndex, mCallContext);
*result = *p;
}
return JS_TRUE;
return true;
}
JSBool
@ -2386,11 +2386,11 @@ CallMethodHelper::GetOutParamSource(uint8 paramIndex, jsval* srcp) const
// and that's ok.
ThrowBadParam(NS_ERROR_XPC_NEED_OUT_OBJECT, paramIndex,
mCallContext);
return JS_FALSE;
return false;
}
}
return JS_TRUE;
return true;
}
JSBool
@ -2411,7 +2411,7 @@ CallMethodHelper::GatherAndConvertResults()
nsXPTType datum_type;
bool isArray = type.IsArray();
bool isSizedString = isArray ?
JS_FALSE :
false :
type.TagPart() == nsXPTType::T_PSTRING_SIZE_IS ||
type.TagPart() == nsXPTType::T_PWSTRING_SIZE_IS;
@ -2419,20 +2419,20 @@ CallMethodHelper::GatherAndConvertResults()
if (NS_FAILED(mIFaceInfo->GetTypeForParam(mVTableIndex, &paramInfo, 1,
&datum_type))) {
Throw(NS_ERROR_XPC_CANT_GET_ARRAY_INFO, mCallContext);
return JS_FALSE;
return false;
}
} else
datum_type = type;
if (isArray || isSizedString) {
if (!GetArraySizeFromParam(i, &array_count))
return JS_FALSE;
return false;
}
nsID param_iid;
if (datum_type.IsInterfacePointer() &&
!GetInterfaceTypeFromParam(i, datum_type, &param_iid))
return JS_FALSE;
return false;
uintN err;
@ -2443,7 +2443,7 @@ CallMethodHelper::GatherAndConvertResults()
array_count, &err)) {
// XXX need exception scheme for arrays to indicate bad element
ThrowBadParam(err, i, mCallContext);
return JS_FALSE;
return false;
}
} else if (isSizedString) {
if (!XPCConvert::NativeStringWithSize2JS(mCallContext, &v,
@ -2451,13 +2451,13 @@ CallMethodHelper::GatherAndConvertResults()
datum_type,
array_count, &err)) {
ThrowBadParam(err, i, mCallContext);
return JS_FALSE;
return false;
}
} else {
if (!XPCConvert::NativeData2JS(mCallContext, &v, &dp->val, datum_type,
&param_iid, &err)) {
ThrowBadParam(err, i, mCallContext);
return JS_FALSE;
return false;
}
}
@ -2476,7 +2476,7 @@ CallMethodHelper::GatherAndConvertResults()
JSVAL_TO_OBJECT(mArgv[i]),
mIdxValueId, &v)) {
ThrowBadParam(NS_ERROR_XPC_CANT_SET_OUT_VAL, i, mCallContext);
return JS_FALSE;
return false;
}
} else {
NS_ASSERTION(paramInfo.IsOptional(),
@ -2484,7 +2484,7 @@ CallMethodHelper::GatherAndConvertResults()
}
}
return JS_TRUE;
return true;
}
JSBool
@ -2495,7 +2495,7 @@ CallMethodHelper::QueryInterfaceFastPath() const
if (mArgc < 1) {
Throw(NS_ERROR_XPC_NOT_ENOUGH_ARGS, mCallContext);
return JS_FALSE;
return false;
}
const nsID* iid;
JSObject* obj;
@ -2503,7 +2503,7 @@ CallMethodHelper::QueryInterfaceFastPath() const
(!(obj = JSVAL_TO_OBJECT(mArgv[0]))) ||
(!(iid = xpc_JSObjectToID(mCallContext, obj)))) {
ThrowBadParam(NS_ERROR_XPC_BAD_CONVERT_JS, 0, mCallContext);
return JS_FALSE;
return false;
}
nsresult invokeResult;
@ -2519,7 +2519,7 @@ CallMethodHelper::QueryInterfaceFastPath() const
if (NS_FAILED(invokeResult)) {
ThrowBadResult(invokeResult, mCallContext);
return JS_FALSE;
return false;
}
jsval v = JSVAL_NULL;
@ -2532,11 +2532,11 @@ CallMethodHelper::QueryInterfaceFastPath() const
if (!success) {
ThrowBadParam(err, 0, mCallContext);
return JS_FALSE;
return false;
}
mCallContext.SetRetVal(v);
return JS_TRUE;
return true;
}
JSBool
@ -2564,7 +2564,7 @@ CallMethodHelper::InitializeDispatchParams()
if (mArgc < requiredArgs) {
Throw(NS_ERROR_XPC_NOT_ENOUGH_ARGS, mCallContext);
return JS_FALSE;
return false;
}
}
@ -2600,7 +2600,7 @@ CallMethodHelper::InitializeDispatchParams()
dp->val.u8 = NS_MIN<PRUint32>(mArgc, paramCount) - requiredArgs;
}
return JS_TRUE;
return true;
}
JSBool
@ -2611,13 +2611,13 @@ CallMethodHelper::ConvertIndependentParams(JSBool* foundDependentParam)
const nsXPTParamInfo& paramInfo = mMethodInfo->GetParam(i);
if (paramInfo.GetType().IsDependent())
*foundDependentParam = JS_TRUE;
*foundDependentParam = true;
else if (!ConvertIndependentParam(i))
return JS_FALSE;
return false;
}
return JS_TRUE;
return true;
}
JSBool
@ -2644,7 +2644,7 @@ CallMethodHelper::ConvertIndependentParam(uint8 i)
// Root the value.
dp->val.j = JSVAL_VOID;
if (!JS_AddValueRoot(mCallContext, &dp->val.j))
return JS_FALSE;
return false;
}
// Flag cleanup for anything that isn't self-contained.
@ -2658,12 +2658,12 @@ CallMethodHelper::ConvertIndependentParam(uint8 i)
// This is a no-op for 'in' params.
jsval src;
if (!GetOutParamSource(i, &src))
return JS_FALSE;
return false;
// All that's left to do is value conversion. Bail early if we don't need
// to do that.
if (!paramInfo.IsIn())
return JS_TRUE;
return true;
// We're definitely some variety of 'in' now, so there's something to
// convert. The source value for conversion depends on whether we're
@ -2686,17 +2686,17 @@ CallMethodHelper::ConvertIndependentParam(uint8 i)
NS_FAILED(mIFaceInfo->GetIIDForParamNoAlloc(mVTableIndex, &paramInfo,
&param_iid))) {
ThrowBadParam(NS_ERROR_XPC_CANT_GET_PARAM_IFACE_INFO, i, mCallContext);
return JS_FALSE;
return false;
}
uintN err;
if (!XPCConvert::JSData2Native(mCallContext, &dp->val, src, type,
JS_TRUE, &param_iid, &err)) {
true, &param_iid, &err)) {
ThrowBadParam(err, i, mCallContext);
return JS_FALSE;
return false;
}
return JS_TRUE;
return true;
}
JSBool
@ -2709,10 +2709,10 @@ CallMethodHelper::ConvertDependentParams()
if (!paramInfo.GetType().IsDependent())
continue;
if (!ConvertDependentParam(i))
return JS_FALSE;
return false;
}
return JS_TRUE;
return true;
}
JSBool
@ -2725,7 +2725,7 @@ CallMethodHelper::ConvertDependentParam(uint8 i)
bool isArray = type.IsArray();
bool isSizedString = isArray ?
JS_FALSE :
false :
type.TagPart() == nsXPTType::T_PSTRING_SIZE_IS ||
type.TagPart() == nsXPTType::T_PWSTRING_SIZE_IS;
@ -2736,7 +2736,7 @@ CallMethodHelper::ConvertDependentParam(uint8 i)
if (NS_FAILED(mIFaceInfo->GetTypeForParam(mVTableIndex, &paramInfo, 1,
&datum_type))) {
Throw(NS_ERROR_XPC_CANT_GET_ARRAY_INFO, mCallContext);
return JS_FALSE;
return false;
}
NS_ABORT_IF_FALSE(datum_type.TagPart() != nsXPTType::T_JSVAL,
"Arrays of JSVals not currently supported - "
@ -2764,12 +2764,12 @@ CallMethodHelper::ConvertDependentParam(uint8 i)
// This is a no-op for 'in' params.
jsval src;
if (!GetOutParamSource(i, &src))
return JS_FALSE;
return false;
// All that's left to do is value conversion. Bail early if we don't need
// to do that.
if (!paramInfo.IsIn())
return JS_TRUE;
return true;
// We're definitely some variety of 'in' now, so there's something to
// convert. The source value for conversion depends on whether we're
@ -2785,13 +2785,13 @@ CallMethodHelper::ConvertDependentParam(uint8 i)
nsID param_iid;
if (datum_type.IsInterfacePointer() &&
!GetInterfaceTypeFromParam(i, datum_type, &param_iid))
return JS_FALSE;
return false;
uintN err;
if (isArray || isSizedString) {
if (!GetArraySizeFromParam(i, &array_count))
return JS_FALSE;
return false;
if (isArray) {
if (array_count &&
@ -2800,7 +2800,7 @@ CallMethodHelper::ConvertDependentParam(uint8 i)
&err)) {
// XXX need exception scheme for arrays to indicate bad element
ThrowBadParam(err, i, mCallContext);
return JS_FALSE;
return false;
}
} else // if (isSizedString)
{
@ -2809,18 +2809,18 @@ CallMethodHelper::ConvertDependentParam(uint8 i)
src, array_count,
datum_type, &err)) {
ThrowBadParam(err, i, mCallContext);
return JS_FALSE;
return false;
}
}
} else {
if (!XPCConvert::JSData2Native(mCallContext, &dp->val, src, type,
JS_TRUE, &param_iid, &err)) {
true, &param_iid, &err)) {
ThrowBadParam(err, i, mCallContext);
return JS_FALSE;
return false;
}
}
return JS_TRUE;
return true;
}
// Performs all necessary teardown on a parameter after method invocation.
@ -2911,13 +2911,13 @@ CallMethodHelper::HandleDipperParam(nsXPTCVariant* dp,
// Check for OOM, in either case.
if (!dp->val.p) {
JS_ReportOutOfMemory(mCallContext);
return JS_FALSE;
return false;
}
// We allocated, so we need to deallocate after the method call completes.
dp->SetValNeedsCleanup();
return JS_TRUE;
return true;
}
nsresult
@ -3305,7 +3305,7 @@ static void ShowHeader(JSBool* printedHeader,
{
if (!*printedHeader) {
DEBUG_PrintShadowObjectInfo(header, set, wrapper, proto);
*printedHeader = JS_TRUE;
*printedHeader = true;
}
}
@ -3361,7 +3361,7 @@ static JSBool MembersAreTheSame(XPCNativeInterface* iface1,
if (member1->IsConstant()) {
if (!member2->IsConstant())
return JS_FALSE;
return false;
const nsXPTConstant* constant1;
const nsXPTConstant* constant2;
@ -3378,7 +3378,7 @@ static JSBool MembersAreTheSame(XPCNativeInterface* iface1,
if (member1->IsMethod() != member2->IsMethod() ||
member1->IsWritableAttribute() != member2->IsWritableAttribute() ||
member1->IsReadOnlyAttribute() != member2->IsReadOnlyAttribute()) {
return JS_FALSE;
return false;
}
const nsXPTMethodInfo* mi1;
@ -3434,22 +3434,22 @@ void DEBUG_ReportShadowedMembers(XPCNativeSet* set,
nsnull
};
static bool warned = JS_FALSE;
static bool warned = false;
if (!warned) {
printf("!!! XPConnect won't warn about Shadowed Members of...\n ");
for (const char** name = skipClasses; *name; name++)
printf("%s %s", name == skipClasses ? "" : ",", *name);
printf("\n");
warned = JS_TRUE;
warned = true;
}
bool quit = JS_FALSE;
bool quit = false;
char* className = nsnull;
si->GetCallback()->GetClassName(&className);
if (className) {
for (const char** name = skipClasses; *name; name++) {
if (!strcmp(*name, className)) {
quit = JS_TRUE;
quit = true;
break;
}
}
@ -3462,7 +3462,7 @@ void DEBUG_ReportShadowedMembers(XPCNativeSet* set,
const char header[] =
"!!!Object wrapped by XPConnect has members whose names shadow each other!!!";
JSBool printedHeader = JS_FALSE;
JSBool printedHeader = false;
jsval QIName = rt->GetStringJSVal(XPCJSRuntime::IDX_QUERY_INTERFACE);
@ -3559,7 +3559,7 @@ void DEBUG_ReportWrapperThreadSafetyError(XPCCallContext& ccx,
printf(" %s\n wrapper @ 0x%p\n", msg, (void *)wrapper);
printf(" JS call stack...\n");
xpc_DumpJSStack(ccx, JS_TRUE, JS_TRUE, JS_TRUE);
xpc_DumpJSStack(ccx, true, true, true);
printf("---------------------------------------------------------------\n");
tls->ClearWrappedNativeThreadsafetyReportDepth();
@ -3683,7 +3683,7 @@ ConstructSlimWrapper(XPCCallContext &ccx,
SLIM_LOG_NOT_CREATED(ccx, identityObj,
"scriptable helper has no PreCreate hook");
return JS_FALSE;
return false;
}
JSObject* plannedParent = parent;
@ -3691,20 +3691,20 @@ ConstructSlimWrapper(XPCCallContext &ccx,
if (rv != NS_SUCCESS_ALLOW_SLIM_WRAPPERS) {
SLIM_LOG_NOT_CREATED(ccx, identityObj, "PreCreate hook refused");
return JS_FALSE;
return false;
}
if (ccx.GetJSContext()->compartment != js::GetObjectCompartment(parent)) {
SLIM_LOG_NOT_CREATED(ccx, identityObj, "wrong compartment");
return JS_FALSE;
return false;
}
JSAutoEnterCompartment ac;
if (!ac.enter(ccx, parent)) {
SLIM_LOG_NOT_CREATED(ccx, identityObj, "unable to enter compartment");
return JS_FALSE;
return false;
}
if (parent != plannedParent) {
@ -3713,7 +3713,7 @@ ConstructSlimWrapper(XPCCallContext &ccx,
if (newXpcScope != xpcScope) {
SLIM_LOG_NOT_CREATED(ccx, identityObj, "crossing origins");
return JS_FALSE;
return false;
}
}
@ -3724,7 +3724,7 @@ ConstructSlimWrapper(XPCCallContext &ccx,
if (wrapper) {
*rval = OBJECT_TO_JSVAL(wrapper);
return JS_TRUE;
return true;
}
PRUint32 interfacesBitmap = classInfoHelper->GetInterfacesBitmap();
@ -3732,19 +3732,19 @@ ConstructSlimWrapper(XPCCallContext &ccx,
sciProto(aHelper.forgetXPCClassInfo(), flags, interfacesBitmap);
AutoMarkingWrappedNativeProtoPtr xpcproto(ccx);
JSBool isGlobal = JS_FALSE;
JSBool isGlobal = false;
xpcproto = XPCWrappedNativeProto::GetNewOrUsed(ccx, xpcScope,
classInfoHelper, &sciProto,
JS_FALSE, isGlobal);
false, isGlobal);
if (!xpcproto)
return JS_FALSE;
return false;
xpcproto->CacheOffsets(identityObj);
XPCNativeScriptableInfo* si = xpcproto->GetScriptableInfo();
JSClass* jsclazz = si->GetSlimJSClass();
if (!jsclazz)
return JS_FALSE;
return false;
wrapper = xpc_NewSystemInheritingJSObject(ccx, jsclazz,
xpcproto->GetJSProtoObject(),
@ -3752,7 +3752,7 @@ ConstructSlimWrapper(XPCCallContext &ccx,
if (!wrapper ||
!JS_SetPrivate(ccx, wrapper, identityObj) ||
!JS_SetReservedSlot(ccx, wrapper, 0, PRIVATE_TO_JSVAL(xpcproto.get())))
return JS_FALSE;
return false;
// Transfer ownership to the wrapper's private.
aHelper.forgetCanonical();
@ -3764,5 +3764,5 @@ ConstructSlimWrapper(XPCCallContext &ccx,
*rval = OBJECT_TO_JSVAL(wrapper);
return JS_TRUE;
return true;
}

Просмотреть файл

@ -61,7 +61,7 @@ XPCNativeMember::GetCallInfo(XPCCallContext& ccx,
*pInterface = (XPCNativeInterface*) JSVAL_TO_PRIVATE(ifaceVal);
*pMember = (XPCNativeMember*) JSVAL_TO_PRIVATE(memberVal);
return JS_TRUE;
return true;
}
JSBool
@ -82,7 +82,7 @@ XPCNativeMember::Resolve(XPCCallContext& ccx, XPCNativeInterface* iface,
if (IsConstant()) {
const nsXPTConstant* constant;
if (NS_FAILED(iface->GetInterfaceInfo()->GetConstant(mIndex, &constant)))
return JS_FALSE;
return false;
const nsXPTCMiniVariant& mv = *constant->GetValue();
@ -96,11 +96,11 @@ XPCNativeMember::Resolve(XPCCallContext& ccx, XPCNativeInterface* iface,
if (!XPCConvert::NativeData2JS(ccx, &resultVal, &v.val, v.type,
nsnull, nsnull))
return JS_FALSE;
return false;
*vp = resultVal;
return JS_TRUE;
return true;
}
// else...
@ -112,7 +112,7 @@ XPCNativeMember::Resolve(XPCCallContext& ccx, XPCNativeInterface* iface,
if (IsMethod()) {
const nsXPTMethodInfo* info;
if (NS_FAILED(iface->GetInterfaceInfo()->GetMethodInfo(mIndex, &info)))
return JS_FALSE;
return false;
// Note: ASSUMES that retval is last arg.
argc = (intN) info->GetParamCount();
@ -127,19 +127,19 @@ XPCNativeMember::Resolve(XPCCallContext& ccx, XPCNativeInterface* iface,
JSFunction *fun = JS_NewFunctionById(ccx, callback, argc, 0, parent, GetName());
if (!fun)
return JS_FALSE;
return false;
JSObject* funobj = JS_GetFunctionObject(fun);
if (!funobj)
return JS_FALSE;
return false;
if (!JS_SetReservedSlot(ccx, funobj, 0, PRIVATE_TO_JSVAL(iface))||
!JS_SetReservedSlot(ccx, funobj, 1, PRIVATE_TO_JSVAL(this)))
return JS_FALSE;
return false;
*vp = OBJECT_TO_JSVAL(funobj);
return JS_TRUE;
return true;
}
/***************************************************************************/
@ -261,7 +261,7 @@ XPCNativeInterface::NewInstance(XPCCallContext& ccx,
XPCNativeMember* members = nsnull;
int i;
JSBool failed = JS_FALSE;
JSBool failed = false;
PRUint16 constCount;
PRUint16 methodCount;
PRUint16 totalCount;
@ -310,7 +310,7 @@ XPCNativeInterface::NewInstance(XPCCallContext& ccx,
for (i = 0; i < methodCount; i++) {
const nsXPTMethodInfo* info;
if (NS_FAILED(aInfo->GetMethodInfo(i, &info))) {
failed = JS_TRUE;
failed = true;
break;
}
@ -324,7 +324,7 @@ XPCNativeInterface::NewInstance(XPCCallContext& ccx,
str = JS_InternString(ccx, info->GetName());
if (!str) {
NS_ERROR("bad method name");
failed = JS_TRUE;
failed = true;
break;
}
name = INTERNED_STRING_TO_JSID(ccx, str);
@ -354,14 +354,14 @@ XPCNativeInterface::NewInstance(XPCCallContext& ccx,
for (i = 0; i < constCount; i++) {
const nsXPTConstant* constant;
if (NS_FAILED(aInfo->GetConstant(i, &constant))) {
failed = JS_TRUE;
failed = true;
break;
}
str = JS_InternString(ccx, constant->GetName());
if (!str) {
NS_ERROR("bad constant name");
failed = JS_TRUE;
failed = true;
break;
}
name = INTERNED_STRING_TO_JSID(ccx, str);
@ -379,7 +379,7 @@ XPCNativeInterface::NewInstance(XPCCallContext& ccx,
const char* bytes;
if (NS_FAILED(aInfo->GetNameShared(&bytes)) || !bytes ||
nsnull == (str = JS_InternString(ccx, bytes))) {
failed = JS_TRUE;
failed = true;
}
interfaceName = INTERNED_STRING_TO_JSID(ccx, str);
}

Просмотреть файл

@ -53,7 +53,7 @@
static JSBool Throw(uintN errNum, JSContext* cx)
{
XPCThrower::Throw(errNum, cx);
return JS_FALSE;
return false;
}
// Handy macro used in many callback stub below.
@ -88,16 +88,16 @@ ToStringGuts(XPCCallContext& ccx)
if (!sz) {
JS_ReportOutOfMemory(ccx);
return JS_FALSE;
return false;
}
JSString* str = JS_NewStringCopyZ(ccx, sz);
JS_smprintf_free(sz);
if (!str)
return JS_FALSE;
return false;
ccx.SetRetVal(STRING_TO_JSVAL(str));
return JS_TRUE;
return true;
}
/***************************************************************************/
@ -107,7 +107,7 @@ XPC_WN_Shared_ToString(JSContext *cx, uintN argc, jsval *vp)
{
JSObject *obj = JS_THIS_OBJECT(cx, vp);
if (!obj)
return JS_FALSE;
return false;
if (IS_SLIM_WRAPPER(obj)) {
XPCNativeScriptableInfo *si =
@ -123,16 +123,16 @@ XPC_WN_Shared_ToString(JSContext *cx, uintN argc, jsval *vp)
#endif
char *sz = JS_smprintf("[object %s" FMT_ADDR FMT_STR(" (native") FMT_ADDR FMT_STR(")") "]", si->GetJSClass()->name PARAM_ADDR(obj) PARAM_ADDR(xpc_GetJSPrivate(obj)));
if (!sz)
return JS_FALSE;
return false;
JSString* str = JS_NewStringCopyZ(cx, sz);
JS_smprintf_free(sz);
if (!str)
return JS_FALSE;
return false;
*vp = STRING_TO_JSVAL(str);
return JS_TRUE;
return true;
}
XPCCallContext ccx(JS_CALLER, cx, obj);
@ -147,10 +147,10 @@ XPC_WN_Shared_ToSource(JSContext *cx, uintN argc, jsval *vp)
static const char empty[] = "({})";
JSString *str = JS_NewStringCopyN(cx, empty, sizeof(empty)-1);
if (!str)
return JS_FALSE;
return false;
*vp = STRING_TO_JSVAL(str);
return JS_TRUE;
return true;
}
/***************************************************************************/
@ -199,7 +199,7 @@ XPC_WN_DoubleWrappedGetter(JSContext *cx, uintN argc, jsval *vp)
{
JSObject *obj = JS_THIS_OBJECT(cx, vp);
if (!obj)
return JS_FALSE;
return false;
MORPH_SLIM_WRAPPER(cx, obj);
XPCCallContext ccx(JS_CALLER, cx, obj);
@ -214,7 +214,7 @@ XPC_WN_DoubleWrappedGetter(JSContext *cx, uintN argc, jsval *vp)
// responded to this get property call and now gives no object.
// XXX Should this throw something at the caller?
*vp = JSVAL_NULL;
return JS_TRUE;
return true;
}
// It is a double wrapped object. Figure out if the caller
@ -233,7 +233,7 @@ XPC_WN_DoubleWrappedGetter(JSContext *cx, uintN argc, jsval *vp)
jsid id = ccx.GetRuntime()->
GetStringID(XPCJSRuntime::IDX_WRAPPED_JSOBJECT);
ccx.SetCallInfo(iface, iface->GetMemberAt(1), JS_FALSE);
ccx.SetCallInfo(iface, iface->GetMemberAt(1), false);
if (NS_FAILED(sm->
CanAccess(nsIXPCSecurityManager::ACCESS_GET_PROPERTY,
&ccx, ccx,
@ -242,7 +242,7 @@ XPC_WN_DoubleWrappedGetter(JSContext *cx, uintN argc, jsval *vp)
wrapper->GetClassInfo(), id,
wrapper->GetSecurityInfoAddr()))) {
// The SecurityManager should have set an exception.
return JS_FALSE;
return false;
}
}
}
@ -280,7 +280,7 @@ DefinePropertyIfFound(XPCCallContext& ccx,
if (set) {
if (iface)
found = JS_TRUE;
found = true;
else
found = set->FindMember(id, &member, &iface);
} else
@ -307,12 +307,12 @@ DefinePropertyIfFound(XPCCallContext& ccx,
JSFunction* fun = JS_NewFunction(ccx, call, 0, 0, obj, name);
if (!fun) {
JS_ReportOutOfMemory(ccx);
return JS_FALSE;
return false;
}
AutoResolveName arn(ccx, id);
if (resolved)
*resolved = JS_TRUE;
*resolved = true;
return JS_DefinePropertyById(ccx, obj, id,
OBJECT_TO_JSVAL(JS_GetFunctionObject(fun)),
nsnull, nsnull,
@ -335,13 +335,13 @@ DefinePropertyIfFound(XPCCallContext& ccx,
name.encode(ccx, JSID_TO_STRING(id)) &&
(iface2 = XPCNativeInterface::GetNewOrUsed(ccx, name.ptr()), iface2) &&
nsnull != (to = wrapperToReflectInterfaceNames->
FindTearOff(ccx, iface2, JS_TRUE, &rv)) &&
FindTearOff(ccx, iface2, true, &rv)) &&
nsnull != (jso = to->GetJSObject()))
{
AutoResolveName arn(ccx, id);
if (resolved)
*resolved = JS_TRUE;
*resolved = true;
return JS_DefinePropertyById(ccx, obj, id, OBJECT_TO_JSVAL(jso),
nsnull, nsnull,
propFlags & ~JSPROP_ENUMERATE);
@ -366,18 +366,18 @@ DefinePropertyIfFound(XPCCallContext& ccx,
0, 0, obj, name);
if (!fun)
return JS_FALSE;
return false;
JSObject* funobj = JS_GetFunctionObject(fun);
if (!funobj)
return JS_FALSE;
return false;
propFlags |= JSPROP_GETTER;
propFlags &= ~JSPROP_ENUMERATE;
AutoResolveName arn(ccx, id);
if (resolved)
*resolved = JS_TRUE;
*resolved = true;
return JS_DefinePropertyById(ccx, obj, id, JSVAL_VOID,
JS_DATA_TO_FUNC_PTR(JSPropertyOp,
funobj),
@ -385,38 +385,38 @@ DefinePropertyIfFound(XPCCallContext& ccx,
}
if (resolved)
*resolved = JS_FALSE;
return JS_TRUE;
*resolved = false;
return true;
}
if (!member) {
if (wrapperToReflectInterfaceNames) {
XPCWrappedNativeTearOff* to =
wrapperToReflectInterfaceNames->FindTearOff(ccx, iface, JS_TRUE);
wrapperToReflectInterfaceNames->FindTearOff(ccx, iface, true);
if (!to)
return JS_FALSE;
return false;
JSObject* jso = to->GetJSObject();
if (!jso)
return JS_FALSE;
return false;
AutoResolveName arn(ccx, id);
if (resolved)
*resolved = JS_TRUE;
*resolved = true;
return JS_DefinePropertyById(ccx, obj, id, OBJECT_TO_JSVAL(jso),
nsnull, nsnull,
propFlags & ~JSPROP_ENUMERATE);
}
if (resolved)
*resolved = JS_FALSE;
return JS_TRUE;
*resolved = false;
return true;
}
if (member->IsConstant()) {
jsval val;
AutoResolveName arn(ccx, id);
if (resolved)
*resolved = JS_TRUE;
*resolved = true;
return member->GetConstantValue(ccx, iface, &val) &&
JS_DefinePropertyById(ccx, obj, id, val, nsnull, nsnull,
propFlags);
@ -431,7 +431,7 @@ DefinePropertyIfFound(XPCCallContext& ccx,
jsval funval;
if (!member->NewFunctionObject(ccx, iface, obj, &funval))
return JS_FALSE;
return false;
// protect funobj until it is actually attached
AUTO_MARK_JSVAL(ccx, funval);
@ -447,7 +447,7 @@ DefinePropertyIfFound(XPCCallContext& ccx,
if (member->IsMethod()) {
AutoResolveName arn(ccx, id);
if (resolved)
*resolved = JS_TRUE;
*resolved = true;
return JS_DefinePropertyById(ccx, obj, id, funval, nsnull, nsnull,
propFlags);
}
@ -470,7 +470,7 @@ DefinePropertyIfFound(XPCCallContext& ccx,
AutoResolveName arn(ccx, id);
if (resolved)
*resolved = JS_TRUE;
*resolved = true;
return JS_DefinePropertyById(ccx, obj, id, JSVAL_VOID, getter, setter,
propFlags);
@ -488,7 +488,7 @@ XPC_WN_OnlyIWrite_AddPropertyStub(JSContext *cx, JSObject *obj, jsid id, jsval *
// Allow only XPConnect to add/set the property
if (ccx.GetResolveName() == id)
return JS_TRUE;
return true;
return Throw(NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN, cx);
}
@ -517,7 +517,7 @@ XPC_WN_Shared_Convert(JSContext *cx, JSObject *obj, JSType type, jsval *vp)
{
if (type == JSTYPE_OBJECT) {
*vp = OBJECT_TO_JSVAL(obj);
return JS_TRUE;
return true;
}
MORPH_SLIM_WRAPPER(cx, obj);
@ -533,17 +533,17 @@ XPC_WN_Shared_Convert(JSContext *cx, JSObject *obj, JSType type, jsval *vp)
if (si && (si->GetFlags().WantCall() ||
si->GetFlags().WantConstruct())) {
*vp = OBJECT_TO_JSVAL(obj);
return JS_TRUE;
return true;
}
}
}
return Throw(NS_ERROR_XPC_CANT_CONVERT_WN_TO_FUN, cx);
case JSTYPE_NUMBER:
*vp = JS_GetNaNValue(cx);
return JS_TRUE;
return true;
case JSTYPE_BOOLEAN:
*vp = JSVAL_TRUE;
return JS_TRUE;
return true;
case JSTYPE_VOID:
case JSTYPE_STRING:
{
@ -553,10 +553,10 @@ XPC_WN_Shared_Convert(JSContext *cx, JSObject *obj, JSType type, jsval *vp)
XPCNativeMember* member = ccx.GetMember();
if (member && member->IsMethod()) {
if (!XPCWrappedNative::CallMethod(ccx))
return JS_FALSE;
return false;
if (JSVAL_IS_PRIMITIVE(*vp))
return JS_TRUE;
return true;
}
// else...
@ -564,10 +564,10 @@ XPC_WN_Shared_Convert(JSContext *cx, JSObject *obj, JSType type, jsval *vp)
}
default:
NS_ERROR("bad type in conversion");
return JS_FALSE;
return false;
}
NS_NOTREACHED("huh?");
return JS_FALSE;
return false;
}
static JSBool
@ -581,7 +581,7 @@ XPC_WN_Shared_Enumerate(JSContext *cx, JSObject *obj)
// Since we aren't going to enumerate tearoff names and the prototype
// handles non-mutated members, we can do this potential short-circuit.
if (!wrapper->HasMutatedSet())
return JS_TRUE;
return true;
XPCNativeSet* set = wrapper->GetSet();
XPCNativeSet* protoSet = wrapper->HasProto() ?
@ -602,10 +602,10 @@ XPC_WN_Shared_Enumerate(JSContext *cx, JSObject *obj)
protoSet->FindMember(name, nsnull, &index) && index == i)
continue;
if (!xpc_ForcePropertyResolve(cx, obj, name))
return JS_FALSE;
return false;
}
}
return JS_TRUE;
return true;
}
/***************************************************************************/
@ -725,15 +725,15 @@ XPC_WN_NoHelper_Resolve(JSContext *cx, JSObject *obj, jsid id)
XPCNativeSet* set = ccx.GetSet();
if (!set)
return JS_TRUE;
return true;
// Don't resolve properties that are on our prototype.
if (ccx.GetInterface() && !ccx.GetStaticMemberIsLocal())
return JS_TRUE;
return true;
return DefinePropertyIfFound(ccx, obj, id,
set, nsnull, nsnull, wrapper->GetScope(),
JS_TRUE, wrapper, wrapper, nsnull,
true, wrapper, wrapper, nsnull,
JSPROP_ENUMERATE |
JSPROP_READONLY |
JSPROP_PERMANENT, nsnull);
@ -752,7 +752,7 @@ JSBool
XPC_WN_Equality(JSContext *cx, JSObject *obj, const jsval *valp, JSBool *bp)
{
jsval v = *valp;
*bp = JS_FALSE;
*bp = false;
JSObject *obj2;
XPCWrappedNative *wrapper =
@ -760,7 +760,7 @@ XPC_WN_Equality(JSContext *cx, JSObject *obj, const jsval *valp, JSBool *bp)
if (obj2) {
*bp = !JSVAL_IS_PRIMITIVE(v) && (JSVAL_TO_OBJECT(v) == obj2);
return JS_TRUE;
return true;
}
THROW_AND_RETURN_IF_BAD_WRAPPER(cx, wrapper);
@ -780,7 +780,7 @@ XPC_WN_Equality(JSContext *cx, JSObject *obj, const jsval *valp, JSBool *bp)
XPC_GetIdentityObject(cx, other));
}
return JS_TRUE;
return true;
}
static JSObject *
@ -904,7 +904,7 @@ XPC_WN_MaybeResolvingPropertyStub(JSContext *cx, JSObject *obj, jsid id, jsval *
THROW_AND_RETURN_IF_BAD_WRAPPER(cx, wrapper);
if (ccx.GetResolvingWrapper() == wrapper)
return JS_TRUE;
return true;
return Throw(NS_ERROR_XPC_CANT_MODIFY_PROP_ON_WN, cx);
}
@ -920,7 +920,7 @@ XPC_WN_MaybeResolvingStrictPropertyStub(JSContext *cx, JSObject *obj, jsid id, J
XPCWrappedNative* wrapper = \
XPCWrappedNative::GetAndMorphWrappedNativeOfJSObject(cx, obj); \
THROW_AND_RETURN_IF_BAD_WRAPPER(cx, wrapper); \
bool retval = JS_TRUE; \
bool retval = true; \
nsresult rv = wrapper->GetScriptableCallback()->
#define PRE_HELPER_STUB \
@ -936,7 +936,7 @@ XPC_WN_MaybeResolvingStrictPropertyStub(JSContext *cx, JSObject *obj, jsid id, J
THROW_AND_RETURN_IF_BAD_WRAPPER(cx, wrapper); \
si = wrapper->GetScriptableCallback(); \
} \
bool retval = JS_TRUE; \
bool retval = true; \
nsresult rv = si->
#define POST_HELPER_STUB \
@ -1003,7 +1003,7 @@ XPC_WN_Helper_Call(JSContext *cx, uintN argc, jsval *vp)
XPCCallContext ccx(JS_CALLER, cx, obj, nsnull, JSID_VOID,
argc, JS_ARGV(cx, vp), vp);
if (!ccx.IsValid())
return JS_FALSE;
return false;
JS_ASSERT(obj == ccx.GetFlattenedJSObject());
@ -1018,12 +1018,12 @@ XPC_WN_Helper_Construct(JSContext *cx, uintN argc, jsval *vp)
{
JSObject *obj = JSVAL_TO_OBJECT(JS_CALLEE(cx, vp));
if (!obj)
return JS_FALSE;
return false;
XPCCallContext ccx(JS_CALLER, cx, obj, nsnull, JSID_VOID,
argc, JS_ARGV(cx, vp), vp);
if (!ccx.IsValid())
return JS_FALSE;
return false;
JS_ASSERT(obj == ccx.GetFlattenedJSObject());
@ -1077,7 +1077,7 @@ XPC_WN_Helper_NewResolve(JSContext *cx, JSObject *obj, jsid id, uintN flags,
JSObject **objp)
{
nsresult rv = NS_OK;
bool retval = JS_TRUE;
bool retval = true;
JSObject* obj2FromScriptable = nsnull;
if (IS_SLIM_WRAPPER(obj)) {
XPCNativeScriptableInfo *si =
@ -1160,7 +1160,7 @@ XPC_WN_Helper_NewResolve(JSContext *cx, JSObject *obj, jsid id, uintN flags,
retval = DefinePropertyIfFound(ccx, obj, id,
set, iface, member,
wrapper->GetScope(),
JS_FALSE,
false,
wrapperForInterfaceNames,
nsnull, si,
enumFlag, &resolved);
@ -1233,7 +1233,7 @@ XPC_WN_JSOp_Enumerate(JSContext *cx, JSObject *obj, JSIterateOp enum_op,
if (!si)
return Throw(NS_ERROR_XPC_BAD_OP_ON_WN_PROTO, cx);
bool retval = JS_TRUE;
bool retval = true;
nsresult rv;
if (si->GetFlags().WantNewEnumerate()) {
@ -1243,7 +1243,7 @@ XPC_WN_JSOp_Enumerate(JSContext *cx, JSObject *obj, JSIterateOp enum_op,
wrapper->HasMutatedSet() &&
!XPC_WN_Shared_Enumerate(cx, obj)) {
*statep = JSVAL_NULL;
return JS_FALSE;
return false;
}
// XXX Might we really need to wrap this call and *also* call
@ -1269,7 +1269,7 @@ XPC_WN_JSOp_Enumerate(JSContext *cx, JSObject *obj, JSIterateOp enum_op,
wrapper->HasMutatedSet() &&
!XPC_WN_Shared_Enumerate(cx, obj)) {
*statep = JSVAL_NULL;
return JS_FALSE;
return false;
}
rv = si->GetCallback()->
Enumerate(wrapper, cx, obj, &retval);
@ -1280,7 +1280,7 @@ XPC_WN_JSOp_Enumerate(JSContext *cx, JSObject *obj, JSIterateOp enum_op,
if (NS_FAILED(rv))
return Throw(rv, cx);
if (!retval)
return JS_FALSE;
return false;
// Then fall through and call the default implementation...
}
}
@ -1511,7 +1511,7 @@ XPCNativeScriptableShared::PopulateJSClass(JSBool isGlobal)
mJSClass.base.ext.outerObject = XPC_WN_OuterObject;
if (!(mFlags & nsIXPCScriptable::WANT_OUTER_OBJECT))
mCanBeSlim = JS_TRUE;
mCanBeSlim = true;
mJSClass.base.ext.isWrappedNative = true;
}
@ -1527,7 +1527,7 @@ XPC_WN_CallMethod(JSContext *cx, uintN argc, jsval *vp)
JSObject* obj = JS_THIS_OBJECT(cx, vp);
if (!obj)
return JS_FALSE;
return false;
#ifdef DEBUG_slimwrappers
{
@ -1550,7 +1550,7 @@ XPC_WN_CallMethod(JSContext *cx, uintN argc, jsval *vp)
if (!XPCNativeMember::GetCallInfo(ccx, funobj, &iface, &member))
return Throw(NS_ERROR_XPC_CANT_GET_METHOD_INFO, cx);
ccx.SetCallInfo(iface, member, JS_FALSE);
ccx.SetCallInfo(iface, member, false);
return XPCWrappedNative::CallMethod(ccx);
}
@ -1562,7 +1562,7 @@ XPC_WN_GetterSetter(JSContext *cx, uintN argc, jsval *vp)
JSObject* obj = JS_THIS_OBJECT(cx, vp);
if (!obj)
return JS_FALSE;
return false;
#ifdef DEBUG_slimwrappers
{
@ -1590,7 +1590,7 @@ XPC_WN_GetterSetter(JSContext *cx, uintN argc, jsval *vp)
ccx.SetArgsAndResultPtr(argc, JS_ARGV(cx, vp), vp);
if (argc && member->IsWritableAttribute()) {
ccx.SetCallInfo(iface, member, JS_TRUE);
ccx.SetCallInfo(iface, member, true);
JSBool retval = XPCWrappedNative::SetAttribute(ccx);
if (retval)
*vp = JS_ARGV(cx, vp)[0];
@ -1598,7 +1598,7 @@ XPC_WN_GetterSetter(JSContext *cx, uintN argc, jsval *vp)
}
// else...
ccx.SetCallInfo(iface, member, JS_FALSE);
ccx.SetCallInfo(iface, member, false);
return XPCWrappedNative::GetAttribute(ccx);
}
@ -1615,19 +1615,19 @@ XPC_WN_Shared_Proto_Enumerate(JSContext *cx, JSObject *obj)
XPCWrappedNativeProto* self =
(XPCWrappedNativeProto*) xpc_GetJSPrivate(obj);
if (!self)
return JS_FALSE;
return false;
if (self->GetScriptableInfo() &&
self->GetScriptableInfo()->GetFlags().DontEnumStaticProps())
return JS_TRUE;
return true;
XPCNativeSet* set = self->GetSet();
if (!set)
return JS_FALSE;
return false;
XPCCallContext ccx(JS_CALLER, cx);
if (!ccx.IsValid())
return JS_FALSE;
return false;
ccx.SetScopeForNewJSObjects(obj);
PRUint16 interface_count = set->GetInterfaceCount();
@ -1638,11 +1638,11 @@ XPC_WN_Shared_Proto_Enumerate(JSContext *cx, JSObject *obj)
for (PRUint16 k = 0; k < member_count; k++) {
if (!xpc_ForcePropertyResolve(cx, obj, iface->GetMemberAt(k)->GetName()))
return JS_FALSE;
return false;
}
}
return JS_TRUE;
return true;
}
static void
@ -1676,11 +1676,11 @@ XPC_WN_ModsAllowed_Proto_Resolve(JSContext *cx, JSObject *obj, jsid id)
XPCWrappedNativeProto* self =
(XPCWrappedNativeProto*) xpc_GetJSPrivate(obj);
if (!self)
return JS_FALSE;
return false;
XPCCallContext ccx(JS_CALLER, cx);
if (!ccx.IsValid())
return JS_FALSE;
return false;
ccx.SetScopeForNewJSObjects(obj);
XPCNativeScriptableInfo* si = self->GetScriptableInfo();
@ -1690,7 +1690,7 @@ XPC_WN_ModsAllowed_Proto_Resolve(JSContext *cx, JSObject *obj, jsid id)
return DefinePropertyIfFound(ccx, obj, id,
self->GetSet(), nsnull, nsnull,
self->GetScope(),
JS_TRUE, nsnull, nsnull, si,
true, nsnull, nsnull, si,
enumFlag, nsnull);
}
@ -1760,16 +1760,16 @@ XPC_WN_OnlyIWrite_Proto_AddPropertyStub(JSContext *cx, JSObject *obj, jsid id, j
XPCWrappedNativeProto* self =
(XPCWrappedNativeProto*) xpc_GetJSPrivate(obj);
if (!self)
return JS_FALSE;
return false;
XPCCallContext ccx(JS_CALLER, cx);
if (!ccx.IsValid())
return JS_FALSE;
return false;
ccx.SetScopeForNewJSObjects(obj);
// Allow XPConnect to add the property only
if (ccx.GetResolveName() == id)
return JS_TRUE;
return true;
return Throw(NS_ERROR_XPC_BAD_OP_ON_WN_PROTO, cx);
}
@ -1791,11 +1791,11 @@ XPC_WN_NoMods_Proto_Resolve(JSContext *cx, JSObject *obj, jsid id)
XPCWrappedNativeProto* self =
(XPCWrappedNativeProto*) xpc_GetJSPrivate(obj);
if (!self)
return JS_FALSE;
return false;
XPCCallContext ccx(JS_CALLER, cx);
if (!ccx.IsValid())
return JS_FALSE;
return false;
ccx.SetScopeForNewJSObjects(obj);
XPCNativeScriptableInfo* si = self->GetScriptableInfo();
@ -1805,7 +1805,7 @@ XPC_WN_NoMods_Proto_Resolve(JSContext *cx, JSObject *obj, jsid id)
return DefinePropertyIfFound(ccx, obj, id,
self->GetSet(), nsnull, nsnull,
self->GetScope(),
JS_TRUE, nsnull, nsnull, si,
true, nsnull, nsnull, si,
JSPROP_READONLY |
JSPROP_PERMANENT |
enumFlag, nsnull);
@ -1884,10 +1884,10 @@ XPC_WN_TearOff_Enumerate(JSContext *cx, JSObject *obj)
PRUint16 member_count = iface->GetMemberCount();
for (PRUint16 k = 0; k < member_count; k++) {
if (!xpc_ForcePropertyResolve(cx, obj, iface->GetMemberAt(k)->GetName()))
return JS_FALSE;
return false;
}
return JS_TRUE;
return true;
}
static JSBool
@ -1906,7 +1906,7 @@ XPC_WN_TearOff_Resolve(JSContext *cx, JSObject *obj, jsid id)
return DefinePropertyIfFound(ccx, obj, id, nsnull, iface, nsnull,
wrapper->GetScope(),
JS_TRUE, nsnull, nsnull, nsnull,
true, nsnull, nsnull, nsnull,
JSPROP_READONLY |
JSPROP_PERMANENT |
JSPROP_ENUMERATE, nsnull);

Просмотреть файл

@ -99,7 +99,7 @@ XPCWrappedNativeProto::Init(XPCCallContext& ccx,
mScriptableInfo =
XPCNativeScriptableInfo::Construct(ccx, isGlobal, scriptableCreateInfo);
if (!mScriptableInfo)
return JS_FALSE;
return false;
}
js::Class* jsclazz;
@ -136,7 +136,7 @@ XPCWrappedNativeProto::Init(XPCCallContext& ccx,
JS_SetPrivate(ccx, mJSProtoObject, nsnull);
mJSProtoObject = nsnull;
XPCThrower::Throw(rv, ccx);
return JS_FALSE;
return false;
}
}
@ -219,9 +219,9 @@ XPCWrappedNativeProto::GetNewOrUsed(XPCCallContext& ccx,
(ScriptableCreateInfo &&
ScriptableCreateInfo->GetFlags().DontSharePrototype())) {
ciFlags |= XPC_PROTO_DONT_SHARE;
shared = JS_FALSE;
shared = false;
} else {
shared = JS_TRUE;
shared = true;
}
if (shared) {

Просмотреть файл

@ -115,7 +115,7 @@ XPCWrappedNativeScope*
XPCWrappedNativeScope::GetNewOrUsed(XPCCallContext& ccx, JSObject* aGlobal)
{
XPCWrappedNativeScope* scope = FindInJSObjectScope(ccx, aGlobal, JS_TRUE);
XPCWrappedNativeScope* scope = FindInJSObjectScope(ccx, aGlobal, true);
if (!scope)
scope = new XPCWrappedNativeScope(ccx, aGlobal);
else {
@ -179,9 +179,9 @@ XPCWrappedNativeScope::IsDyingScope(XPCWrappedNativeScope *scope)
{
for (XPCWrappedNativeScope *cur = gDyingScopes; cur; cur = cur->mNext) {
if (scope == cur)
return JS_TRUE;
return true;
}
return JS_FALSE;
return false;
}
void
@ -730,7 +730,7 @@ void DEBUG_CheckForComponentsInScope(JSContext* cx, JSObject* obj,
// callback code.
NS_ERROR("XPConnect is being called on a scope without a 'Components' property! (stack and details follow)");
printf("The current JS stack is:\n");
xpc_DumpJSStack(cx, JS_TRUE, JS_TRUE, JS_TRUE);
xpc_DumpJSStack(cx, true, true, true);
printf("And the object whose scope lacks a 'Components' property is:\n");
js_DumpObject(startingObj);

Просмотреть файл

@ -52,7 +52,7 @@ ThrowException(nsresult ex, JSContext *cx)
{
XPCThrower::Throw(ex, cx);
return JS_FALSE;
return false;
}
static JSBool
@ -70,7 +70,7 @@ UnwrapNW(JSContext *cx, uintN argc, jsval *vp)
JSObject *obj = JSVAL_TO_OBJECT(v);
if (!js::IsWrapper(obj)) {
JS_SET_RVAL(cx, vp, v);
return JS_TRUE;
return true;
}
if (xpc::WrapperFactory::IsXrayWrapper(obj) &&
@ -79,7 +79,7 @@ UnwrapNW(JSContext *cx, uintN argc, jsval *vp)
}
JS_SET_RVAL(cx, vp, v);
return JS_TRUE;
return true;
}
static JSBool
@ -96,7 +96,7 @@ XrayWrapperConstructor(JSContext *cx, uintN argc, jsval *vp)
JSObject *obj = JSVAL_TO_OBJECT(vp[2]);
if (!js::IsWrapper(obj)) {
*vp = OBJECT_TO_JSVAL(obj);
return JS_TRUE;
return true;
}
obj = js::UnwrapObject(obj);

Просмотреть файл

@ -93,7 +93,7 @@ JSBool
Throw(JSContext *cx, nsresult rv)
{
XPCThrower::Throw(rv, cx);
return JS_FALSE;
return false;
}
@ -359,32 +359,32 @@ interface_hasInstance(JSContext *cx, JSObject *obj, const js::Value *vp, JSBool
JSVAL_IS_PRIMITIVE(prototype)) {
JS_ReportErrorFlagsAndNumber(cx, JSREPORT_ERROR, js_GetErrorMessage, NULL,
JSMSG_THROW_TYPE_ERROR);
return JS_FALSE;
return false;
}
JSObject *other = &vp->toObject();
if (instanceIsProxy(other)) {
ProxyHandler *handler = static_cast<ProxyHandler*>(js::GetProxyHandler(other));
if (handler->isInstanceOf(JSVAL_TO_OBJECT(prototype))) {
*bp = JS_TRUE;
*bp = true;
} else {
JSObject *protoObj = JSVAL_TO_OBJECT(prototype);
JSObject *proto = other;
while ((proto = JS_GetPrototype(cx, proto))) {
if (proto == protoObj) {
*bp = JS_TRUE;
return JS_TRUE;
*bp = true;
return true;
}
}
*bp = JS_FALSE;
*bp = false;
}
return JS_TRUE;
return true;
}
}
*bp = JS_FALSE;
return JS_TRUE;
*bp = false;
return true;
}
template<class LC>
@ -794,7 +794,7 @@ ListBase<LC>::hasOwn(JSContext *cx, JSObject *proxy, jsid id, bool *bp)
JSObject *expando = getExpandoObject(proxy);
if (expando) {
JSBool b = JS_TRUE;
JSBool b = true;
JSBool ok = JS_HasPropertyById(cx, expando, id, &b);
*bp = !!b;
if (!ok || *bp)

Просмотреть файл

@ -59,7 +59,7 @@ xpc_qsUnwrapThis<_interface>(JSContext *cx, \
if (failureFatal && !native) \
return xpc_qsThrow(cx, rv); \
*ppThis = static_cast<_interface*>(static_cast<_base*>(native)); \
return JS_TRUE; \
return true; \
} \
\
NS_SPECIALIZE_TEMPLATE \
@ -98,10 +98,10 @@ castToElement(nsIContent *content, jsval val, nsGenericElement **ppInterface,
jsval *pVal)
{
if (!content->IsElement())
return JS_FALSE;
return false;
*ppInterface = static_cast<nsGenericElement*>(content->AsElement());
*pVal = val;
return JS_TRUE;
return true;
}
NS_SPECIALIZE_TEMPLATE
@ -128,7 +128,7 @@ xpc_qsUnwrapThis<nsGenericElement>(JSContext *cx,
}
if (!failureFatal && (!ok || !content)) {
ok = JS_TRUE;
ok = true;
*ppThis = nsnull;
}

Просмотреть файл

@ -79,10 +79,10 @@ NS_IMPL_THREADSAFE_ISUPPORTS7(nsXPConnect,
nsIJSEngineTelemetryStats)
nsXPConnect* nsXPConnect::gSelf = nsnull;
JSBool nsXPConnect::gOnceAliveNowDead = JS_FALSE;
JSBool nsXPConnect::gOnceAliveNowDead = false;
PRUint32 nsXPConnect::gReportAllJSExceptions = 0;
JSBool nsXPConnect::gDebugMode = JS_FALSE;
JSBool nsXPConnect::gDesiredDebugMode = JS_FALSE;
JSBool nsXPConnect::gDebugMode = false;
JSBool nsXPConnect::gDesiredDebugMode = false;
// Global cache of the default script security manager (QI'd to
// nsIScriptSecurityManager)
@ -103,8 +103,8 @@ nsXPConnect::nsXPConnect()
mInterfaceInfoManager(do_GetService(NS_INTERFACEINFOMANAGER_SERVICE_CONTRACTID)),
mDefaultSecurityManager(nsnull),
mDefaultSecurityManagerFlags(0),
mShuttingDown(JS_FALSE),
mNeedGCBeforeCC(JS_TRUE),
mShuttingDown(false),
mNeedGCBeforeCC(true),
mCycleCollectionContext(nsnull)
{
mRuntime = XPCJSRuntime::newXPCJSRuntime(this);
@ -134,7 +134,7 @@ nsXPConnect::~nsXPConnect()
}
XPCPerThreadData::CleanupAllThreads();
mShuttingDown = JS_TRUE;
mShuttingDown = true;
if (cx) {
JS_BeginRequest(cx);
@ -157,7 +157,7 @@ nsXPConnect::~nsXPConnect()
delete mRuntime;
gSelf = nsnull;
gOnceAliveNowDead = JS_TRUE;
gOnceAliveNowDead = true;
}
// static
@ -388,7 +388,7 @@ nsXPConnect::Collect()
// To improve debugging, if DEBUG_CC is defined all JS objects are
// traversed.
mNeedGCBeforeCC = JS_FALSE;
mNeedGCBeforeCC = false;
XPCCallContext ccx(NATIVE_CALLER);
if (!ccx.IsValid())
@ -929,7 +929,7 @@ nsXPConnect::Traverse(void *p, nsCycleCollectionTraversalCallback &cb)
TraversalTracer trc(cb);
JS_TRACER_INIT(&trc, cx, NoteJSChild);
trc.eagerlyTraceWeakMaps = JS_FALSE;
trc.eagerlyTraceWeakMaps = false;
JS_TraceChildren(&trc, p, traceKind);
if (traceKind != JSTRACE_OBJECT || dontTraverse)
@ -1139,7 +1139,7 @@ TraceXPCGlobal(JSTracer *trc, JSObject *obj)
if (trc->callback == VerifyTraceXPCGlobalCalled) {
// We don't do anything here, we only want to verify that TraceXPCGlobal
// was called.
reinterpret_cast<VerifyTraceXPCGlobalCalledTracer*>(trc)->ok = JS_TRUE;
reinterpret_cast<VerifyTraceXPCGlobalCalledTracer*>(trc)->ok = true;
return;
}
#endif
@ -1185,7 +1185,7 @@ xpc_CreateGlobalObject(JSContext *cx, JSClass *clasp,
if (clasp->flags & JSCLASS_XPCONNECT_GLOBAL) {
VerifyTraceXPCGlobalCalledTracer trc;
JS_TRACER_INIT(&trc.base, cx, VerifyTraceXPCGlobalCalled);
trc.ok = JS_FALSE;
trc.ok = false;
JS_TraceChildren(&trc.base, *global, JSTRACE_OBJECT);
NS_ABORT_IF_FALSE(trc.ok, "Trace hook needs to call TraceXPCGlobal if JSCLASS_XPCONNECT_GLOBAL is set.");
}
@ -2217,7 +2217,7 @@ nsXPConnect::GetWrappedNativePrototype(JSContext * aJSContext,
AutoMarkingWrappedNativeProtoPtr proto(ccx);
proto = XPCWrappedNativeProto::GetNewOrUsed(ccx, scope, aClassInfo,
&sciProto, JS_FALSE,
&sciProto, false,
OBJ_IS_NOT_GLOBAL);
if (!proto)
return UnexpectedFailure(NS_ERROR_FAILURE);
@ -2254,7 +2254,7 @@ nsXPConnect::ReleaseJSContext(JSContext * aJSContext, bool noGC)
printf("!xpc - deferring destruction of JSContext @ %p\n",
(void *)aJSContext);
#endif
ccx->SetDestroyJSContextInDestructor(JS_TRUE);
ccx->SetDestroyJSContextInDestructor(true);
return NS_OK;
}
// else continue on and synchronously destroy the JSContext ...
@ -2649,8 +2649,8 @@ fail:
* debugger callbacks from having any effect.
*/
if (gDesiredDebugMode)
JS_SetRuntimeDebugMode(rt, JS_FALSE);
gDesiredDebugMode = gDebugMode = JS_FALSE;
JS_SetRuntimeDebugMode(rt, false);
gDesiredDebugMode = gDebugMode = false;
}
NS_EXPORT_(void)
@ -2850,20 +2850,20 @@ nsXPConnect::Base64Encode(JSContext *cx, jsval val, jsval *out)
xpc_qsACString encodedString(cx, root, &root, xpc_qsACString::eNull,
xpc_qsACString::eStringify);
if (!encodedString.IsValid())
return JS_FALSE;
return false;
nsCAutoString result;
if (NS_FAILED(nsXPConnect::Base64Encode(encodedString, result))) {
JS_ReportError(cx, "Failed to encode base64 data!");
return JS_FALSE;
return false;
}
JSString *str = JS_NewStringCopyN(cx, result.get(), result.Length());
if (!str)
return JS_FALSE;
return false;
*out = STRING_TO_JSVAL(str);
return JS_TRUE;
return true;
}
// static
@ -2928,20 +2928,20 @@ nsXPConnect::Base64Decode(JSContext *cx, jsval val, jsval *out)
xpc_qsACString encodedString(cx, root, &root, xpc_qsACString::eNull,
xpc_qsACString::eNull);
if (!encodedString.IsValid())
return JS_FALSE;
return false;
nsCAutoString result;
if (NS_FAILED(nsXPConnect::Base64Decode(encodedString, result))) {
JS_ReportError(cx, "Failed to decode base64 string!");
return JS_FALSE;
return false;
}
JSString *str = JS_NewStringCopyN(cx, result.get(), result.Length());
if (!str)
return JS_FALSE;
return false;
*out = STRING_TO_JSVAL(str);
return JS_TRUE;
return true;
}
NS_IMETHODIMP

Просмотреть файл

@ -517,7 +517,7 @@ public:
static nsXPConnect* GetSingleton();
// Called by module code in dll startup
static void InitStatics() { gSelf = nsnull; gOnceAliveNowDead = JS_FALSE; }
static void InitStatics() { gSelf = nsnull; gOnceAliveNowDead = false; }
// Called by module code on dll shutdown.
static void ReleaseXPConnectSingleton();
@ -525,7 +525,7 @@ public:
JSBool IsShuttingDown() const {return mShuttingDown;}
void EnsureGCBeforeCC() { mNeedGCBeforeCC = JS_TRUE; }
void EnsureGCBeforeCC() { mNeedGCBeforeCC = true; }
nsresult GetInfoForIID(const nsIID * aIID, nsIInterfaceInfo** info);
nsresult GetInfoForName(const char * name, nsIInterfaceInfo** info);
@ -536,7 +536,7 @@ public:
static nsresult Base64Encode(const nsAString &aString,
nsAString &aBinaryData);
// If this returns JS_FALSE then an exception will be set on cx.
// If this returns false then an exception will be set on cx.
static JSBool Base64Encode(JSContext *cx, jsval val, jsval *out);
static nsresult Base64Decode(const nsACString &aBinaryData,
@ -545,7 +545,7 @@ public:
static nsresult Base64Decode(const nsAString &aBinaryData,
nsAString &aString);
// If this returns JS_FALSE then an exception will be set on cx.
// If this returns false then an exception will be set on cx.
static JSBool Base64Decode(JSContext *cx, jsval val, jsval *out);
// nsCycleCollectionParticipant
@ -1002,11 +1002,11 @@ public:
size_t length;
const jschar* chars = JS_GetStringCharsZAndLength(aContext, str, &length);
if (!chars)
return JS_FALSE;
return false;
NS_ASSERTION(IsEmpty(), "init() on initialized string");
new(static_cast<nsDependentString *>(this)) nsDependentString(chars, length);
return JS_TRUE;
return true;
}
};
@ -1560,12 +1560,12 @@ public:
static XPCWrappedNativeScope*
FindInJSObjectScope(JSContext* cx, JSObject* obj,
JSBool OKIfNotInitialized = JS_FALSE,
JSBool OKIfNotInitialized = false,
XPCJSRuntime* runtime = nsnull);
static XPCWrappedNativeScope*
FindInJSObjectScope(XPCCallContext& ccx, JSObject* obj,
JSBool OKIfNotInitialized = JS_FALSE)
JSBool OKIfNotInitialized = false)
{
return FindInJSObjectScope(ccx, obj, OKIfNotInitialized,
ccx.GetRuntime());
@ -2074,7 +2074,7 @@ public:
XPCNativeScriptableShared(JSUint32 aFlags, char* aName,
PRUint32 interfacesBitmap)
: mFlags(aFlags),
mCanBeSlim(JS_FALSE)
mCanBeSlim(false)
{memset(&mJSClass, 0, sizeof(mJSClass));
mJSClass.base.name = aName; // take ownership
mJSClass.interfacesBitmap = interfacesBitmap;
@ -2678,7 +2678,7 @@ public:
XPCNativeInterface* aInterface);
XPCWrappedNativeTearOff* FindTearOff(XPCCallContext& ccx,
XPCNativeInterface* aInterface,
JSBool needJSObject = JS_FALSE,
JSBool needJSObject = false,
nsresult* pError = nsnull);
void Mark() const
{
@ -3464,7 +3464,7 @@ public:
nsXPCException();
virtual ~nsXPCException();
static void InitStatics() { sEverMadeOneFromFactory = JS_FALSE; }
static void InitStatics() { sEverMadeOneFromFactory = false; }
protected:
void Reset();
@ -3698,20 +3698,20 @@ public:
JSBool EnsureExceptionManager()
{
if (mExceptionManager)
return JS_TRUE;
return true;
if (mExceptionManagerNotAvailable)
return JS_FALSE;
return false;
nsCOMPtr<nsIExceptionService> xs =
do_GetService(NS_EXCEPTIONSERVICE_CONTRACTID);
if (xs)
xs->GetCurrentExceptionManager(&mExceptionManager);
if (mExceptionManager)
return JS_TRUE;
return true;
mExceptionManagerNotAvailable = JS_TRUE;
return JS_FALSE;
mExceptionManagerNotAvailable = true;
return false;
}
XPCJSContextStack* GetJSContextStack() {return mJSContextStack;}

Просмотреть файл

@ -89,7 +89,7 @@ DebugCheckWrapperClass(JSObject* obj)
{
NS_ASSERTION(IS_WRAPPER_CLASS(js::GetObjectClass(obj)),
"Forgot to check if this is a wrapper?");
return JS_TRUE;
return true;
}
// If IS_WRAPPER_CLASS for the JSClass of an object is true, the object can be

Просмотреть файл

@ -488,7 +488,7 @@ ExposedPropertiesOnly::check(JSContext *cx, JSObject *wrapper, jsid id, Wrapper:
jsid exposedPropsId = GetRTIdByIndex(cx, XPCJSRuntime::IDX_EXPOSEDPROPS);
JSBool found = JS_FALSE;
JSBool found = false;
JSAutoEnterCompartment ac;
if (!ac.enter(cx, wrappedObject) ||
!JS_HasPropertyById(cx, wrappedObject, exposedPropsId, &found))

Просмотреть файл

@ -73,7 +73,6 @@
#include "mozilla/FunctionTimer.h"
#include "nsIXPConnect.h"
#include "jsapi.h"
#include "jsdate.h"
#include "prenv.h"
#if defined(XP_WIN)
@ -696,32 +695,10 @@ CalculateProcessCreationTimestamp()
#endif
NS_IMETHODIMP
nsAppStartup::GetStartupInfo()
nsAppStartup::GetStartupInfo(JSContext* aCx, JS::Value* aRetval)
{
nsAXPCNativeCallContext *ncc = nsnull;
nsresult rv;
nsCOMPtr<nsIXPConnect> xpConnect = do_GetService(nsIXPConnect::GetCID(), &rv);
NS_ENSURE_SUCCESS(rv, rv);
rv = xpConnect->GetCurrentNativeCallContext(&ncc);
NS_ENSURE_SUCCESS(rv, rv);
if (!ncc)
return NS_ERROR_FAILURE;
jsval *retvalPtr;
ncc->GetRetValPtr(&retvalPtr);
*retvalPtr = JSVAL_NULL;
ncc->SetReturnValueWasSet(true);
JSContext *cx = nsnull;
rv = ncc->GetJSContext(&cx);
NS_ENSURE_SUCCESS(rv, rv);
JSObject *obj = JS_NewObject(cx, NULL, NULL, NULL);
*retvalPtr = OBJECT_TO_JSVAL(obj);
ncc->SetReturnValueWasSet(true);
JSObject *obj = JS_NewObject(aCx, NULL, NULL, NULL);
*aRetval = OBJECT_TO_JSVAL(obj);
PRTime ProcessCreationTimestamp = StartupTimeline::Get(StartupTimeline::PROCESS_CREATION);
@ -749,8 +726,8 @@ nsAppStartup::GetStartupInfo()
Telemetry::Accumulate(Telemetry::STARTUP_MEASUREMENT_ERRORS, i);
StartupTimeline::Record(ev, -1);
} else {
JSObject *date = js_NewDateObjectMsec(cx, StartupTimeline::Get(ev)/PR_USEC_PER_MSEC);
JS_DefineProperty(cx, obj, StartupTimeline::Describe(ev), OBJECT_TO_JSVAL(date), NULL, NULL, JSPROP_ENUMERATE);
JSObject *date = JS_NewDateObjectMsec(aCx, StartupTimeline::Get(ev) / PR_USEC_PER_MSEC);
JS_DefineProperty(aCx, obj, StartupTimeline::Describe(ev), OBJECT_TO_JSVAL(date), NULL, NULL, JSPROP_ENUMERATE);
}
}
}

Просмотреть файл

@ -41,7 +41,7 @@
interface nsICmdLineService;
[scriptable, uuid(35fcdb69-3bb6-4484-b99a-32f49a84fabd)]
[scriptable, uuid(dd3e7b3c-0974-4a38-b4d3-ce2213452432)]
interface nsIAppStartup : nsISupports
{
/**
@ -134,7 +134,7 @@ interface nsIAppStartup : nsISupports
* Returns an object with main, process, firstPaint, sessionRestored properties.
* Properties may not be available depending on platform or application
*/
void getStartupInfo();
[implicit_jscontext] jsval getStartupInfo();
/**
* True if startup was interrupted by an interactive prompt.