Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Side by Side Diff: third_party/WebKit/Source/core/Init.cpp

Issue 1363653006: Reserve capacity for static strings HashMap. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2013 Google Inc. All rights reserved. 2 * Copyright (C) 2013 Google Inc. All rights reserved.
3 * 3 *
4 * Redistribution and use in source and binary forms, with or without 4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions are 5 * modification, are permitted provided that the following conditions are
6 * met: 6 * met:
7 * 7 *
8 * * Redistributions of source code must retain the above copyright 8 * * Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer. 9 * notice, this list of conditions and the following disclaimer.
10 * * Redistributions in binary form must reproduce the above 10 * * Redistributions in binary form must reproduce the above
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
69 return; 69 return;
70 isRegistered = true; 70 isRegistered = true;
71 71
72 Document::registerEventFactory(EventFactory::create()); 72 Document::registerEventFactory(EventFactory::create());
73 } 73 }
74 74
75 void CoreInitializer::init() 75 void CoreInitializer::init()
76 { 76 {
77 ASSERT(!m_isInited); 77 ASSERT(!m_isInited);
78 m_isInited = true; 78 m_isInited = true;
79 // Note: in order to add core static strings for a new module (1)
80 // the value of 'coreStaticStringsCount' must be updated with the
81 // added strings count, (2) if the added strings are quialified names
82 // the 'qualifiedNamesCount' must be updated as well, (3) the strings
83 // 'init()' function call must be added.
84 // TODO: We should generate static strings initialization code.
tkent 2015/09/28 00:11:17 TODO needs your name. TODO(mikhail.pozdnyakov@in
Mikhail 2015/09/28 08:39:34 Done.
85 const unsigned qualifiedNamesCount = HTMLNames::HTMLTagsCount + HTMLNames::H TMLAttrsCount
86 + MathMLNames::MathMLTagsCount + MathMLNames::MathMLAttrsCount
87 + SVGNames::SVGTagsCount + SVGNames::SVGAttrsCount
88 + XLinkNames::XLinkAttrsCount
89 + XMLNSNames::XMLNSAttrsCount
90 + XMLNames::XMLAttrsCount;
91
92 QualifiedName::initAndReserveCapacityForSize(qualifiedNamesCount);
93
94 const unsigned coreStaticStringsCount = qualifiedNamesCount
95 + EventNames::EventNamesCount
96 + EventTargetNames::EventTargetNamesCount
97 + EventTypeNames::EventTypeNamesCount
98 + FetchInitiatorTypeNames::FetchInitiatorTypeNamesCount
99 + FontFamilyNames::FontFamilyNamesCount
100 + HTMLTokenizerNames::HTMLTokenizerNamesCount
101 + InputTypeNames::InputTypeNamesCount
102 + MediaFeatureNames::MediaFeatureNamesCount
103 + MediaTypeNames::MediaTypeNamesCount;
104
105 StringImpl::reserveStaticStringsCapacityForSize(coreStaticStringsCount + Str ingImpl::allStaticStrings().size());
79 106
80 HTMLNames::init(); 107 HTMLNames::init();
81 SVGNames::init(); 108 SVGNames::init();
82 XLinkNames::init(); 109 XLinkNames::init();
83 MathMLNames::init(); 110 MathMLNames::init();
84 XMLNSNames::init(); 111 XMLNSNames::init();
85 XMLNames::init(); 112 XMLNames::init();
86 113
87 EventNames::init(); 114 EventNames::init();
88 EventTargetNames::init(); 115 EventTargetNames::init();
89 EventTypeNames::init(); 116 EventTypeNames::init();
90 FetchInitiatorTypeNames::init(); 117 FetchInitiatorTypeNames::init();
91 FontFamilyNames::init(); 118 FontFamilyNames::init();
92 HTMLTokenizerNames::init(); 119 HTMLTokenizerNames::init();
93 InputTypeNames::init(); 120 InputTypeNames::init();
94 MediaFeatureNames::init(); 121 MediaFeatureNames::init();
95 MediaTypeNames::init(); 122 MediaTypeNames::init();
96 123
97 CSSPrimitiveValue::initUnitTable(); 124 CSSPrimitiveValue::initUnitTable();
98 CSSParserTokenRange::initStaticEOFToken(); 125 CSSParserTokenRange::initStaticEOFToken();
99 126
100 // It would make logical sense to do this in WTF::initialize() but there are 127 // It would make logical sense to do this in WTF::initialize() but there are
101 // ordering dependencies, e.g. about "xmlns". 128 // ordering dependencies, e.g. about "xmlns".
102 WTF::StringStatics::init(); 129 WTF::StringStatics::init();
tkent 2015/09/28 00:11:16 This needs to be called before QualifiedName::init
Mikhail 2015/09/28 08:39:34 Done.
103 130
104 StyleChangeExtraData::init(); 131 StyleChangeExtraData::init();
105 132
106 QualifiedName::init();
107 EventTracer::initialize(); 133 EventTracer::initialize();
108 KURL::initialize(); 134 KURL::initialize();
109 SecurityPolicy::init(); 135 SecurityPolicy::init();
110 136
111 registerEventFactory(); 137 registerEventFactory();
112 138
113 StringImpl::freezeStaticStrings(); 139 StringImpl::freezeStaticStrings();
114 140
115 // Creates HTMLParserThread::shared and ScriptStreamerThread::shared, but 141 // Creates HTMLParserThread::shared and ScriptStreamerThread::shared, but
116 // does not start the threads. 142 // does not start the threads.
117 HTMLParserThread::init(); 143 HTMLParserThread::init();
118 ScriptStreamerThread::init(); 144 ScriptStreamerThread::init();
119 } 145 }
120 146
121 void CoreInitializer::shutdown() 147 void CoreInitializer::shutdown()
122 { 148 {
123 // Make sure we stop the HTMLParserThread before Platform::current() is 149 // Make sure we stop the HTMLParserThread before Platform::current() is
124 // cleared. 150 // cleared.
125 HTMLParserThread::shutdown(); 151 HTMLParserThread::shutdown();
126 } 152 }
127 153
128 } // namespace blink 154 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/build/scripts/templates/MakeNames.h.tmpl ('k') | third_party/WebKit/Source/core/dom/QualifiedName.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698