OLD | NEW |
---|---|
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 Loading... | |
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 |
OLD | NEW |