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 CSS_WebKitFontFamily_NAMES_HIDE_GLOBALS 1
34#else
35#define QNAME_DEFAULT_CONSTRUCTOR 1
36#endif
37
38#include "WebKitFontFamilyNames.h"
39
40namespace WebCore {
41
42namespace WebKitFontFamilyNames {
43
44using namespace WTF;
45
46#if COMPILER(MSVC)
47#pragma warning(push)
48#pragma warning(disable: 4307)
49#endif
50
51static constexpr StringImpl::StaticStringImpl cursiveFamilyData("-webkit-cursive");
52static constexpr StringImpl::StaticStringImpl fantasyFamilyData("-webkit-fantasy");
53static constexpr StringImpl::StaticStringImpl monospaceFamilyData("-webkit-monospace");
54static constexpr StringImpl::StaticStringImpl pictographFamilyData("-webkit-pictograph");
55static constexpr StringImpl::StaticStringImpl sansSerifFamilyData("-webkit-sans-serif");
56static constexpr StringImpl::StaticStringImpl serifFamilyData("-webkit-serif");
57static constexpr StringImpl::StaticStringImpl standardFamilyData("-webkit-standard");
58static constexpr StringImpl::StaticStringImpl systemUiFamilyData("-webkit-system-ui");
59
60#if COMPILER(MSVC)
61#pragma warning(pop)
62#endif
63
64LazyNeverDestroyed<const WTF::AtomicString> cursiveFamily;
65LazyNeverDestroyed<const WTF::AtomicString> fantasyFamily;
66LazyNeverDestroyed<const WTF::AtomicString> monospaceFamily;
67LazyNeverDestroyed<const WTF::AtomicString> pictographFamily;
68LazyNeverDestroyed<const WTF::AtomicString> sansSerifFamily;
69LazyNeverDestroyed<const WTF::AtomicString> serifFamily;
70LazyNeverDestroyed<const WTF::AtomicString> standardFamily;
71LazyNeverDestroyed<const WTF::AtomicString> systemUiFamily;
72
73void init()
74{
75 static bool initialized = false;
76 if (initialized)
77 return;
78 initialized = true;
79
80 // Use placement new to initialize the globals.
81
82 AtomicString::init();
83
84#ifndef NDEBUG
85 reinterpret_cast<const StringImpl*>(&cursiveFamilyData)->assertHashIsCorrect();
86 reinterpret_cast<const StringImpl*>(&fantasyFamilyData)->assertHashIsCorrect();
87 reinterpret_cast<const StringImpl*>(&monospaceFamilyData)->assertHashIsCorrect();
88 reinterpret_cast<const StringImpl*>(&pictographFamilyData)->assertHashIsCorrect();
89 reinterpret_cast<const StringImpl*>(&sansSerifFamilyData)->assertHashIsCorrect();
90 reinterpret_cast<const StringImpl*>(&serifFamilyData)->assertHashIsCorrect();
91 reinterpret_cast<const StringImpl*>(&standardFamilyData)->assertHashIsCorrect();
92 reinterpret_cast<const StringImpl*>(&systemUiFamilyData)->assertHashIsCorrect();
93#endif // NDEBUG
94
95 cursiveFamily.construct(&cursiveFamilyData);
96 fantasyFamily.construct(&fantasyFamilyData);
97 monospaceFamily.construct(&monospaceFamilyData);
98 pictographFamily.construct(&pictographFamilyData);
99 sansSerifFamily.construct(&sansSerifFamilyData);
100 serifFamily.construct(&serifFamilyData);
101 standardFamily.construct(&standardFamilyData);
102 systemUiFamily.construct(&systemUiFamilyData);
103}
104}
105}
106