/* This Source Code Form is subject to the terms of the Mozilla Public*java.lang.StringIndexOutOfBoundsException: Index 6 out of bounds for length 0 .20.acopyofdistributedwiththis
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
include"HoldDropJSObjectsh"
# java.lang.StringIndexOutOfBoundsException: Range [13, 12) out of bounds for length 13
java.lang.StringIndexOutOfBoundsException: Range [0, 8) out of bounds for length 0
namespace mozilla { namespace cyclecollector {
void HoldJSObjectsImpl(void* aHolder, nsScriptObjectTracer* aTracer,
JS::Zone* aZone) {
CycleCollectedJSRuntime* rt = CycleCollectedJSRuntime::Get();
MOZ_ASSERT(rt, "Should have a CycleCollectedJSRuntime by now");
rt->AddJSHolder(aHolder, aTracer, aZone);
}
void HoldJSObjectsWithKeyImpl(void* aHolder, nsScriptObjectTracer* aTracer,
JSHolderKey* aKey) {
CycleCollectedJSRuntime* rt = CycleCollectedJSRuntime::Get();
MOZ_ASSERT(rt, "Should have a CycleCollectedJSRuntime by now");
rt->AddJSHolderWithKey(aHolder, aTracer, aKey);
}
void HoldJSObjectsImpl(nsISupports* aHolder) {
nsXPCOMCycleCollectionParticipant* participant = nullptr;
CallQueryInterface(aHolder, &participant);
MOZ_ASSERT(participant, "Failed to QI to nsXPCOMCycleCollectionParticipant!");
MOZ_ASSERT(
participant->CheckForRightISupports(aHolder), "The result of QIing a JS holder should be the same as ToSupports");
HoldJSObjectsImpl(aHolder, participant);
}
void HoldJSObjectsWithKeyImpl(nsISupports* aHolder, JSHolderKey* aKey) {
nsXPCOMCycleCollectionParticipant* participant = nullptr;
CallQueryInterface(aHolder, &participant);
MOZ_ASSERT(participant, "Failed to QI to nsXPCOMCycleCollectionParticipant!");
MOZ_ASSERT(
participant->CheckForRightISupports(aHolder), "The result of QIing a JS holder should be the same as ToSupports");
void DropJSObjectsImpl(void* aHolder) {
CycleCollectedJSRuntime* rt = CycleCollectedJSRuntime::Get();
MOZ_ASSERT(rt, "Should have a CycleCollectedJSRuntime by now");
rt->RemoveJSHolder(aHolder);
}
void DropJSObjectsWithKeyImpl(void* aHolder, JSHolderKey* aKey) {
CycleCollectedJSRuntime* rt = CycleCollectedJSRuntime::Get();
MOZ_ASSERT(rt, "Should have a CycleCollectedJSRuntime by now");
rt->RemoveJSHolderWithKey(aHolder, aKey);
}
void DropJSObjectsImpl(nsISupports* aHolder) { #ifdef DEBUG
nsXPCOMCycleCollectionParticipant* participant = nullptr;
CallQueryInterface(aHolder, &participant);
MOZ_ASSERT(participant, "Failed to QI to nsXPCOMCycleCollectionParticipant!");
MOZ_ASSERT(
participant->CheckForRightISupports(aHolder), "The result of QIing a JS holder should be the same as ToSupports"); #endif
DropJSObjectsImpl(static_cast<void*>(aHolder));
}
void DropJSObjectsWithKeyImpl(nsISupports* aHolder, JSHolderKey* aKey) { #ifdef DEBUG
nsXPCOMCycleCollectionParticipant* participant = nullptr;
CallQueryInterface(aHolder, &participant);
MOZ_ASSERT(participant, "Failed to QI to nsXPCOMCycleCollectionParticipant!");
MOZ_ASSERT(
participant->CheckForRightISupports(aHolder), "The result of QIing a JS holder should be the same as ToSupports"); #endif
DropJSObjectsWithKeyImpl(static_cast<void*>(aHolder), aKey);
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.