1/*
2 * THIS FILE WAS AUTOMATICALLY GENERATED, DO NOT EDIT.
3 *
4 * This file was generated by the dom/make_names.pl script.
5 *
6 * Copyright (C) 2005, 2006, 2007, 2008, 2009, 2013 Apple Inc. All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 * 1. Redistributions of source code must retain the above copyright
12 * notice, this list of conditions and the following disclaimer.
13 * 2. Redistributions in binary form must reproduce the above copyright
14 * notice, this list of conditions and the following disclaimer in the
15 * documentation and/or other materials provided with the distribution.
16 *
17 * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY
18 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
20 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR
21 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
22 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
23 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
24 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
25 * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
28 */
29
30#include "config.h"
31
32#ifdef SKIP_STATIC_CONSTRUCTORS_ON_GCC
33#define DOM_XML_NAMES_HIDE_GLOBALS 1
34#else
35#define QNAME_DEFAULT_CONSTRUCTOR 1
36#endif
37
38#include "XMLNames.h"
39
40namespace WebCore {
41
42namespace XMLNames {
43
44using namespace WebCore;
45
46LazyNeverDestroyed<const AtomicString> xmlNamespaceURI;
47
48#if COMPILER(MSVC)
49#pragma warning(push)
50#pragma warning(disable: 4307)
51#endif
52
53static constexpr StringImpl::StaticStringImpl baseData("base");
54static constexpr StringImpl::StaticStringImpl langData("lang");
55static constexpr StringImpl::StaticStringImpl spaceData("space");
56
57#if COMPILER(MSVC)
58#pragma warning(pop)
59#endif
60
61
62// Attributes
63WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> baseAttr;
64WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> langAttr;
65WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> spaceAttr;
66
67
68const WebCore::QualifiedName* const* getXMLAttrs()
69{
70 static const WebCore::QualifiedName* const XMLAttrs[] = {
71 &baseAttr.get(),
72 &langAttr.get(),
73 &spaceAttr.get(),
74 };
75 return XMLAttrs;
76}
77
78void init()
79{
80 static bool initialized = false;
81 if (initialized)
82 return;
83 initialized = true;
84
85 // Use placement new to initialize the globals.
86
87 AtomicString::init();
88 AtomicString xmlNS("http://www.w3.org/XML/1998/namespace", AtomicString::ConstructFromLiteral);
89
90 // Namespace
91 xmlNamespaceURI.construct(xmlNS);
92
93#ifndef NDEBUG
94 reinterpret_cast<const StringImpl*>(&baseData)->assertHashIsCorrect();
95 reinterpret_cast<const StringImpl*>(&langData)->assertHashIsCorrect();
96 reinterpret_cast<const StringImpl*>(&spaceData)->assertHashIsCorrect();
97#endif // NDEBUG
98
99
100 struct AttributesTableEntry {
101 LazyNeverDestroyed<const QualifiedName>* targetAddress;
102 const StaticStringImpl& name;
103 };
104
105 static const AttributesTableEntry attributesTable[] = {
106 { &baseAttr, *(&baseData) },
107 { &langAttr, *(&langData) },
108 { &spaceAttr, *(&spaceData) },
109 };
110
111 for (auto& entry : attributesTable)
112 entry.targetAddress->construct(nullAtom(), AtomicString(&entry.name), xmlNS);
113}
114
115} }
116
117