NonRefcountedDOMObject.h (1272B)
1 /* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ 2 /* vim: set ts=8 sts=2 et sw=2 tw=80: */ 3 /* This Source Code Form is subject to the terms of the Mozilla Public 4 * License, v. 2.0. If a copy of the MPL was not distributed with this file, 5 * You can obtain one at http://mozilla.org/MPL/2.0/. */ 6 7 #ifndef mozilla_dom_NonRefcountedDOMObject_h__ 8 #define mozilla_dom_NonRefcountedDOMObject_h__ 9 10 #include "nsISupportsImpl.h" 11 12 namespace mozilla::dom { 13 14 // Natives for DOM classes that aren't refcounted need to inherit from this 15 // class. 16 // If you're seeing objects of this class leak then natives for one of the DOM 17 // classes inheriting from it are leaking. If the native for that class has 18 // MOZ_COUNT_CTOR/DTOR in its constructor/destructor then it should show up in 19 // the leak log too. 20 class NonRefcountedDOMObject { 21 protected: 22 MOZ_COUNTED_DEFAULT_CTOR(NonRefcountedDOMObject) 23 24 MOZ_COUNTED_DTOR(NonRefcountedDOMObject) 25 26 NonRefcountedDOMObject(const NonRefcountedDOMObject& aOther) 27 : NonRefcountedDOMObject() {} 28 29 NonRefcountedDOMObject& operator=(const NonRefcountedDOMObject& aOther) { 30 NonRefcountedDOMObject(); 31 return *this; 32 } 33 }; 34 35 } // namespace mozilla::dom 36 37 #endif /* mozilla_dom_NonRefcountedDOMObject_h__ */