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

Side by Side Diff: third_party/WebKit/Source/core/html/parser/HTMLParserIdioms.h

Issue 1694773002: Check length of String before checking if it's 8/16 bit (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Add CORE_EXPORT Created 4 years, 10 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) 2010 Apple Inc. All rights reserved. 2 * Copyright (C) 2010 Apple 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
11 * documentation and/or other materials provided with the distribution. 11 * documentation and/or other materials provided with the distribution.
12 * 12 *
13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN Y 13 * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' AND AN Y
14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 14 * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 15 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
16 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN Y 16 * DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS BE LIABLE FOR AN Y
17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 17 * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; 18 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O N 19 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND O N
20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 20 * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 21 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
22 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 22 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
23 */ 23 */
24 24
25 #ifndef HTMLParserIdioms_h 25 #ifndef HTMLParserIdioms_h
26 #define HTMLParserIdioms_h 26 #define HTMLParserIdioms_h
27 27
28 #include "core/CoreExport.h"
28 #include "core/dom/QualifiedName.h" 29 #include "core/dom/QualifiedName.h"
29 #include "platform/Decimal.h" 30 #include "platform/Decimal.h"
30 #include "wtf/Forward.h" 31 #include "wtf/Forward.h"
31 #include "wtf/text/WTFString.h" 32 #include "wtf/text/WTFString.h"
32 33
33 namespace WTF { 34 namespace WTF {
34 class TextEncoding; 35 class TextEncoding;
35 } 36 }
36 37
37 namespace blink { 38 namespace blink {
(...skipping 16 matching lines...) Expand all
54 Decimal parseToDecimalForNumberType(const String&, const Decimal& fallbackValue = Decimal::nan()); 55 Decimal parseToDecimalForNumberType(const String&, const Decimal& fallbackValue = Decimal::nan());
55 double parseToDoubleForNumberType(const String&, double fallbackValue = std::num eric_limits<double>::quiet_NaN()); 56 double parseToDoubleForNumberType(const String&, double fallbackValue = std::num eric_limits<double>::quiet_NaN());
56 57
57 // http://www.whatwg.org/specs/web-apps/current-work/#rules-for-parsing-integers 58 // http://www.whatwg.org/specs/web-apps/current-work/#rules-for-parsing-integers
58 bool parseHTMLInteger(const String&, int&); 59 bool parseHTMLInteger(const String&, int&);
59 60
60 // http://www.whatwg.org/specs/web-apps/current-work/#rules-for-parsing-non-nega tive-integers 61 // http://www.whatwg.org/specs/web-apps/current-work/#rules-for-parsing-non-nega tive-integers
61 bool parseHTMLNonNegativeInteger(const String&, unsigned&); 62 bool parseHTMLNonNegativeInteger(const String&, unsigned&);
62 63
63 // https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing- a-list-of-floating-point-numbers 64 // https://html.spec.whatwg.org/multipage/infrastructure.html#rules-for-parsing- a-list-of-floating-point-numbers
64 Vector<double> parseHTMLListOfFloatingPointNumbers(const String&); 65 CORE_EXPORT Vector<double> parseHTMLListOfFloatingPointNumbers(const String&);
65 66
66 typedef Vector<std::pair<String, String>> HTMLAttributeList; 67 typedef Vector<std::pair<String, String>> HTMLAttributeList;
67 // The returned encoding might not be valid. 68 // The returned encoding might not be valid.
68 WTF::TextEncoding encodingFromMetaAttributes(const HTMLAttributeList&); 69 WTF::TextEncoding encodingFromMetaAttributes(const HTMLAttributeList&);
69 70
70 // Space characters as defined by the HTML specification. 71 // Space characters as defined by the HTML specification.
71 template<typename CharType> 72 template<typename CharType>
72 inline bool isHTMLSpace(CharType character) 73 inline bool isHTMLSpace(CharType character)
73 { 74 {
74 // Histogram from Apple's page load test combined with some ad hoc browsing some other test suites. 75 // Histogram from Apple's page load test combined with some ad hoc browsing some other test suites.
(...skipping 53 matching lines...) Expand 10 before | Expand all | Expand 10 after
128 129
129 inline static String attemptStaticStringCreation(const String str) 130 inline static String attemptStaticStringCreation(const String str)
130 { 131 {
131 if (!str.is8Bit()) 132 if (!str.is8Bit())
132 return attemptStaticStringCreation(str.characters16(), str.length(), For ce16Bit); 133 return attemptStaticStringCreation(str.characters16(), str.length(), For ce16Bit);
133 return attemptStaticStringCreation(str.characters8(), str.length()); 134 return attemptStaticStringCreation(str.characters8(), str.length());
134 } 135 }
135 136
136 } // namespace blink 137 } // namespace blink
137 #endif 138 #endif
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698