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

Side by Side Diff: Source/core/html/parser/HTMLIdentifier.h

Issue 110843004: Replaced HTMLIdentifier with an atomized string factory function (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Created 7 years 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 5 * modification, are permitted provided that the following conditions
6 * are met: 6 * are met:
7 * 1. Redistributions of source code must retain the above copyright 7 * 1. Redistributions of source code must retain the above copyright
8 * notice, this list of conditions and the following disclaimer. 8 * notice, this list of conditions and the following disclaimer.
9 * 2. Redistributions in binary form must reproduce the above copyright 9 * 2. Redistributions in binary form must reproduce the above copyright
10 * notice, this list of conditions and the following disclaimer in the 10 * notice, this list of conditions and the following disclaimer in the
(...skipping 22 matching lines...) Expand all
33 class QualifiedName; 33 class QualifiedName;
34 34
35 enum CharacterWidth { 35 enum CharacterWidth {
36 Likely8Bit, 36 Likely8Bit,
37 Force8Bit, 37 Force8Bit,
38 Force16Bit 38 Force16Bit
39 }; 39 };
40 40
41 class HTMLIdentifier { 41 class HTMLIdentifier {
42 public: 42 public:
43 HTMLIdentifier() { }
44 43
45 template<size_t inlineCapacity> 44 template<size_t inlineCapacity>
46 HTMLIdentifier(const Vector<UChar, inlineCapacity>& vector, CharacterWidth w idth) 45 static String create(const Vector<UChar, inlineCapacity>& vector, CharacterW idth width)
47 : m_string(findIfKnown(vector.data(), vector.size()))
48 { 46 {
49 if (m_string.impl()) 47 String string(findIfKnown(vector.data(), vector.size()));
50 return; 48 if (string.impl())
49 return string;
51 if (width == Likely8Bit) 50 if (width == Likely8Bit)
52 m_string = StringImpl::create8BitIfPossible(vector); 51 string = StringImpl::create8BitIfPossible(vector);
53 else if (width == Force8Bit) 52 else if (width == Force8Bit)
54 m_string = String::make8BitFrom16BitSource(vector); 53 string = String::make8BitFrom16BitSource(vector);
55 else 54 else
56 m_string = String(vector); 55 string = String(vector);
56
57 return string;
57 } 58 }
abarth-chromium 2013/12/10 01:22:52 It seems like we don't need this class anymore. W
58 59
59 // asString should only be used on the main thread.
60 const String& asString() const;
61 // asStringImpl() is safe to call from any thread.
62 const StringImpl* asStringImpl() const;
63
64 static void init(); 60 static void init();
65 61
66 bool isSafeToSendToAnotherThread() const { return m_string.isSafeToSendToAno therThread(); }
67
68 #ifndef NDEBUG
69 static bool isKnown(const StringImpl*);
70 #endif
71 62
72 private: 63 private:
73 static unsigned maxNameLength; 64 static unsigned maxNameLength;
74 static StringImpl* findIfKnown(const UChar* characters, unsigned length); 65 static StringImpl* findIfKnown(const UChar* characters, unsigned length);
75 static void addNames(const QualifiedName* const* names, unsigned namesCount) ; 66 static void addNames(const QualifiedName* const* names, unsigned namesCount) ;
76 67
77 String m_string; 68 String m_string;
abarth-chromium 2013/12/10 01:22:52 Is this member used anywhere?
78 }; 69 };
79 70
80 } 71 }
81 72
82 #endif 73 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698