mirror of
https://github.com/mozilla/gecko-dev.git
synced 2024-11-01 22:55:23 +00:00
84e0c59589
The JS engine does not export symbols outside of XUL, so having these defined inside mozglue apparently causes linking errors on some platforms with the patches in bug 1120016. This patch moves enough methods outside of mozglue that the patch in that other bug will still link on all platforms, without moving so much out that there are other linking errors. --HG-- rename : xpcom/glue/nsCycleCollectionParticipant.cpp => xpcom/base/nsCycleCollectorTraceJSHelpers.cpp
40 lines
1.2 KiB
C++
40 lines
1.2 KiB
C++
/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
|
|
/* vim: set ts=8 sts=2 et sw=2 tw=80: */
|
|
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#include "nsCycleCollectionParticipant.h"
|
|
#include "nsCOMPtr.h"
|
|
|
|
NS_IMETHODIMP_(void)
|
|
nsXPCOMCycleCollectionParticipant::Root(void* aPtr)
|
|
{
|
|
nsISupports* s = static_cast<nsISupports*>(aPtr);
|
|
NS_ADDREF(s);
|
|
}
|
|
|
|
NS_IMETHODIMP_(void)
|
|
nsXPCOMCycleCollectionParticipant::Unroot(void* aPtr)
|
|
{
|
|
nsISupports* s = static_cast<nsISupports*>(aPtr);
|
|
NS_RELEASE(s);
|
|
}
|
|
|
|
// We define a default trace function because some participants don't need
|
|
// to trace anything, so it is okay for them not to define one.
|
|
NS_IMETHODIMP_(void)
|
|
nsXPCOMCycleCollectionParticipant::Trace(void* aPtr, const TraceCallbacks& aCb,
|
|
void* aClosure)
|
|
{
|
|
}
|
|
|
|
bool
|
|
nsXPCOMCycleCollectionParticipant::CheckForRightISupports(nsISupports* aSupports)
|
|
{
|
|
nsISupports* foo;
|
|
aSupports->QueryInterface(NS_GET_IID(nsCycleCollectionISupports),
|
|
reinterpret_cast<void**>(&foo));
|
|
return aSupports == foo;
|
|
}
|