michael@0: /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this michael@0: * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ michael@0: michael@0: /* michael@0: * nsStubMutationObserver is an implementation of the nsIMutationObserver michael@0: * interface (except for the methods on nsISupports) that is intended to be michael@0: * used as a base class within the content/layout library. All methods do michael@0: * nothing. michael@0: */ michael@0: michael@0: #ifndef nsStubMutationObserver_h_ michael@0: #define nsStubMutationObserver_h_ michael@0: michael@0: #include "nsIMutationObserver.h" michael@0: michael@0: /** michael@0: * There are two advantages to inheriting from nsStubMutationObserver michael@0: * rather than directly from nsIMutationObserver: michael@0: * 1. smaller compiled code size (since there's no need for the code michael@0: * for the empty virtual function implementations for every michael@0: * nsIMutationObserver implementation) michael@0: * 2. the performance of document's loop over observers benefits from michael@0: * the fact that more of the functions called are the same (which michael@0: * can reduce instruction cache misses and perhaps improve branch michael@0: * prediction) michael@0: */ michael@0: class nsStubMutationObserver : public nsIMutationObserver { michael@0: public: michael@0: NS_DECL_NSIMUTATIONOBSERVER michael@0: }; michael@0: michael@0: #endif /* !defined(nsStubMutationObserver_h_) */