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

Side by Side Diff: Source/core/loader/LinkHeader.h

Issue 1304043006: Make classes and structures in core/loader fast-allocated. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 5 years, 3 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 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef LinkHeader_h 5 #ifndef LinkHeader_h
6 #define LinkHeader_h 6 #define LinkHeader_h
7 7
8 #include "core/CoreExport.h" 8 #include "core/CoreExport.h"
9 #include "core/html/CrossOriginAttribute.h" 9 #include "core/html/CrossOriginAttribute.h"
10 #include "wtf/Allocator.h"
10 #include "wtf/text/WTFString.h" 11 #include "wtf/text/WTFString.h"
11 12
12 namespace blink { 13 namespace blink {
13 14
14 class LinkHeader { 15 class LinkHeader {
16 ALLOW_ONLY_INLINE_ALLOCATION();
15 public: 17 public:
16 template <typename CharType> 18 template <typename CharType>
17 LinkHeader(CharType*& position, CharType* end); 19 LinkHeader(CharType*& position, CharType* end);
18 20
19 const String& url() const { return m_url; } 21 const String& url() const { return m_url; }
20 const String& rel() const { return m_rel; } 22 const String& rel() const { return m_rel; }
21 CrossOriginAttributeValue crossOrigin() const { return m_crossOrigin; } 23 CrossOriginAttributeValue crossOrigin() const { return m_crossOrigin; }
22 bool valid() const { return m_isValid; } 24 bool valid() const { return m_isValid; }
23 25
24 enum LinkParameterName { 26 enum LinkParameterName {
25 LinkParameterUnknown, 27 LinkParameterUnknown,
26 LinkParameterRel, 28 LinkParameterRel,
27 LinkParameterAnchor, 29 LinkParameterAnchor,
28 LinkParameterCrossOrigin, 30 LinkParameterCrossOrigin,
29 }; 31 };
30 32
31 private: 33 private:
32 void setValue(LinkParameterName, String value); 34 void setValue(LinkParameterName, String value);
33 35
34 String m_url; 36 String m_url;
35 String m_rel; 37 String m_rel;
36 CrossOriginAttributeValue m_crossOrigin; 38 CrossOriginAttributeValue m_crossOrigin;
37 bool m_isValid; 39 bool m_isValid;
38 }; 40 };
39 41
40 class CORE_EXPORT LinkHeaderSet { 42 class CORE_EXPORT LinkHeaderSet {
43 STACK_ALLOCATED();
41 public: 44 public:
42 LinkHeaderSet(const String& header); 45 LinkHeaderSet(const String& header);
43 46
44 Vector<LinkHeader>::const_iterator begin() const { return m_headerSet.begin( ); } 47 Vector<LinkHeader>::const_iterator begin() const { return m_headerSet.begin( ); }
45 Vector<LinkHeader>::const_iterator end() const { return m_headerSet.end(); } 48 Vector<LinkHeader>::const_iterator end() const { return m_headerSet.end(); }
46 LinkHeader& operator[](size_t i) { return m_headerSet[i]; } 49 LinkHeader& operator[](size_t i) { return m_headerSet[i]; }
47 size_t size() { return m_headerSet.size(); } 50 size_t size() { return m_headerSet.size(); }
48 51
49 private: 52 private:
50 template <typename CharType> 53 template <typename CharType>
51 void init(CharType* headerValue, unsigned len); 54 void init(CharType* headerValue, unsigned len);
52 55
53 Vector<LinkHeader> m_headerSet; 56 Vector<LinkHeader> m_headerSet;
54 }; 57 };
55 58
56 } 59 }
57 60
58 #endif 61 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698