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: * This class wraps up the creation (and destruction) of the standard michael@0: * set of atoms used by the HTML5 parser; the atoms are created when michael@0: * nsHtml5Module is loaded and they are destroyed when nsHtml5Module is michael@0: * unloaded. michael@0: */ michael@0: michael@0: #include "nsHtml5Atoms.h" michael@0: #include "nsStaticAtom.h" michael@0: michael@0: using namespace mozilla; michael@0: michael@0: // define storage for all atoms michael@0: #define HTML5_ATOM(_name, _value) nsIAtom* nsHtml5Atoms::_name; michael@0: #include "nsHtml5AtomList.h" michael@0: #undef HTML5_ATOM michael@0: michael@0: #define HTML5_ATOM(name_, value_) NS_STATIC_ATOM_BUFFER(name_##_buffer, value_) michael@0: #include "nsHtml5AtomList.h" michael@0: #undef HTML5_ATOM michael@0: michael@0: static const nsStaticAtom Html5Atoms_info[] = { michael@0: #define HTML5_ATOM(name_, value_) NS_STATIC_ATOM(name_##_buffer, &nsHtml5Atoms::name_), michael@0: #include "nsHtml5AtomList.h" michael@0: #undef HTML5_ATOM michael@0: }; michael@0: michael@0: void nsHtml5Atoms::AddRefAtoms() michael@0: { michael@0: NS_RegisterStaticAtoms(Html5Atoms_info); michael@0: }