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_XLink_NAMES_HIDE_GLOBALS 1
34#else
35#define QNAME_DEFAULT_CONSTRUCTOR 1
36#endif
37
38#include "XLinkNames.h"
39
40namespace WebCore {
41
42namespace XLinkNames {
43
44using namespace WebCore;
45
46LazyNeverDestroyed<const AtomicString> xlinkNamespaceURI;
47
48#if COMPILER(MSVC)
49#pragma warning(push)
50#pragma warning(disable: 4307)
51#endif
52
53static constexpr StringImpl::StaticStringImpl actuateData("actuate");
54static constexpr StringImpl::StaticStringImpl arcroleData("arcrole");
55static constexpr StringImpl::StaticStringImpl hrefData("href");
56static constexpr StringImpl::StaticStringImpl roleData("role");
57static constexpr StringImpl::StaticStringImpl showData("show");
58static constexpr StringImpl::StaticStringImpl titleData("title");
59static constexpr StringImpl::StaticStringImpl typeData("type");
60
61#if COMPILER(MSVC)
62#pragma warning(pop)
63#endif
64
65
66// Attributes
67WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> actuateAttr;
68WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> arcroleAttr;
69WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> hrefAttr;
70WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> roleAttr;
71WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> showAttr;
72WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> titleAttr;
73WEBCORE_EXPORT LazyNeverDestroyed<const QualifiedName> typeAttr;
74
75
76const WebCore::QualifiedName* const* getXLinkAttrs()
77{
78 static const WebCore::QualifiedName* const XLinkAttrs[] = {
79 &actuateAttr.get(),
80 &arcroleAttr.get(),
81 &hrefAttr.get(),
82 &roleAttr.get(),
83 &showAttr.get(),
84 &titleAttr.get(),
85 &typeAttr.get(),
86 };
87 return XLinkAttrs;
88}
89
90void init()
91{
92 static bool initialized = false;
93 if (initialized)
94 return;
95 initialized = true;
96
97 // Use placement new to initialize the globals.
98
99 AtomicString::init();
100 AtomicString xlinkNS("http://www.w3.org/1999/xlink", AtomicString::ConstructFromLiteral);
101
102 // Namespace
103 xlinkNamespaceURI.construct(xlinkNS);
104
105#ifndef NDEBUG
106 reinterpret_cast<const StringImpl*>(&actuateData)->assertHashIsCorrect();
107 reinterpret_cast<const StringImpl*>(&arcroleData)->assertHashIsCorrect();
108 reinterpret_cast<const StringImpl*>(&hrefData)->assertHashIsCorrect();
109 reinterpret_cast<const StringImpl*>(&roleData)->assertHashIsCorrect();
110 reinterpret_cast<const StringImpl*>(&showData)->assertHashIsCorrect();
111 reinterpret_cast<const StringImpl*>(&titleData)->assertHashIsCorrect();
112 reinterpret_cast<const StringImpl*>(&typeData)->assertHashIsCorrect();
113#endif // NDEBUG
114
115
116 struct AttributesTableEntry {
117 LazyNeverDestroyed<const QualifiedName>* targetAddress;
118 const StaticStringImpl& name;
119 };
120
121 static const AttributesTableEntry attributesTable[] = {
122 { &actuateAttr, *(&actuateData) },
123 { &arcroleAttr, *(&arcroleData) },
124 { &hrefAttr, *(&hrefData) },
125 { &roleAttr, *(&roleData) },
126 { &showAttr, *(&showData) },
127 { &titleAttr, *(&titleData) },
128 { &typeAttr, *(&typeData) },
129 };
130
131 for (auto& entry : attributesTable)
132 entry.targetAddress->construct(nullAtom(), AtomicString(&entry.name), xlinkNS);
133}
134
135} }
136
137