mirror of
https://github.com/mozilla/gecko-dev.git
synced 2025-03-02 14:30:43 +00:00

This callback is only used in very limited ways, so just require that the caller pass in the canonical supports pointer, plus the participant. This probably won't affect performance much. MozReview-Commit-ID: CsThzFsKyYx --HG-- extra : rebase_source : 9595b1d75fc45bc5ee6d932a840e98b5d760cb78
35 lines
1.3 KiB
C++
35 lines
1.3 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/. */
|
|
|
|
#ifndef nsCycleCollectionNoteRootCallback_h__
|
|
#define nsCycleCollectionNoteRootCallback_h__
|
|
|
|
class nsCycleCollectionParticipant;
|
|
class nsISupports;
|
|
|
|
class nsCycleCollectionNoteRootCallback
|
|
{
|
|
public:
|
|
// aRoot must be canonical (ie the result of QIing to nsCycleCollectionISupports).
|
|
NS_IMETHOD_(void) NoteXPCOMRoot(nsISupports* aRoot,
|
|
nsCycleCollectionParticipant* aParticipant) = 0;
|
|
|
|
NS_IMETHOD_(void) NoteJSRoot(JSObject* aRoot) = 0;
|
|
NS_IMETHOD_(void) NoteNativeRoot(void* aRoot,
|
|
nsCycleCollectionParticipant* aParticipant) = 0;
|
|
|
|
NS_IMETHOD_(void) NoteWeakMapping(JSObject* aMap, JS::GCCellPtr aKey,
|
|
JSObject* aKeyDelegate, JS::GCCellPtr aVal) = 0;
|
|
|
|
bool WantAllTraces() const { return mWantAllTraces; }
|
|
protected:
|
|
nsCycleCollectionNoteRootCallback() : mWantAllTraces(false) {}
|
|
|
|
bool mWantAllTraces;
|
|
};
|
|
|
|
#endif // nsCycleCollectionNoteRootCallback_h__
|