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

Side by Side Diff: third_party/WebKit/Source/wtf/text/IntegerToStringConversion.h

Issue 1436153002: Apply clang-format with Chromium-style without column limit. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 1 month 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) 2012 Apple Inc. All Rights Reserved. 2 * Copyright (C) 2012 Apple Inc. All Rights Reserved.
3 * Copyright (C) 2012 Patrick Gansterer <paroga@paroga.com> 3 * Copyright (C) 2012 Patrick Gansterer <paroga@paroga.com>
4 * 4 *
5 * This library is free software; you can redistribute it and/or 5 * This library is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU Library General Public 6 * modify it under the terms of the GNU Library General Public
7 * License as published by the Free Software Foundation; either 7 * License as published by the Free Software Foundation; either
8 * version 2 of the License, or (at your option) any later version. 8 * version 2 of the License, or (at your option) any later version.
9 * 9 *
10 * This library is distributed in the hope that it will be useful, 10 * This library is distributed in the hope that it will be useful,
(...skipping 10 matching lines...) Expand all
21 21
22 #ifndef IntegerToStringConversion_h 22 #ifndef IntegerToStringConversion_h
23 #define IntegerToStringConversion_h 23 #define IntegerToStringConversion_h
24 24
25 #include "wtf/text/StringBuilder.h" 25 #include "wtf/text/StringBuilder.h"
26 #include "wtf/text/StringImpl.h" 26 #include "wtf/text/StringImpl.h"
27 27
28 namespace WTF { 28 namespace WTF {
29 29
30 enum PositiveOrNegativeNumber { 30 enum PositiveOrNegativeNumber {
31 PositiveNumber, 31 PositiveNumber,
32 NegativeNumber 32 NegativeNumber
33 }; 33 };
34 34
35 template<typename T> struct ConversionTrait; 35 template <typename T>
36 struct ConversionTrait;
36 37
37 template<> struct ConversionTrait<String> { 38 template <>
38 typedef PassRefPtr<StringImpl> ReturnType; 39 struct ConversionTrait<String> {
39 typedef void AdditionalArgumentType; 40 typedef PassRefPtr<StringImpl> ReturnType;
40 static inline ReturnType flush(LChar* characters, unsigned length, void*) { return StringImpl::create(characters, length); } 41 typedef void AdditionalArgumentType;
42 static inline ReturnType flush(LChar* characters, unsigned length, void*) { re turn StringImpl::create(characters, length); }
41 }; 43 };
42 template<> struct ConversionTrait<StringBuilder> { 44 template <>
43 typedef void ReturnType; 45 struct ConversionTrait<StringBuilder> {
44 typedef StringBuilder AdditionalArgumentType; 46 typedef void ReturnType;
45 static inline ReturnType flush(LChar* characters, unsigned length, StringBui lder* stringBuilder) { stringBuilder->append(characters, length); } 47 typedef StringBuilder AdditionalArgumentType;
48 static inline ReturnType flush(LChar* characters, unsigned length, StringBuild er* stringBuilder) { stringBuilder->append(characters, length); }
46 }; 49 };
47 template<> struct ConversionTrait<AtomicString> { 50 template <>
48 typedef AtomicString ReturnType; 51 struct ConversionTrait<AtomicString> {
49 typedef void AdditionalArgumentType; 52 typedef AtomicString ReturnType;
50 static inline ReturnType flush(LChar* characters, unsigned length, void*) { return AtomicString(characters, length); } 53 typedef void AdditionalArgumentType;
54 static inline ReturnType flush(LChar* characters, unsigned length, void*) { re turn AtomicString(characters, length); }
51 }; 55 };
52 56
53 template<typename T> struct UnsignedIntegerTrait; 57 template <typename T>
58 struct UnsignedIntegerTrait;
54 59
55 template<> struct UnsignedIntegerTrait<int> { 60 template <>
56 typedef unsigned Type; 61 struct UnsignedIntegerTrait<int> {
62 typedef unsigned Type;
57 }; 63 };
58 template<> struct UnsignedIntegerTrait<long> { 64 template <>
59 typedef unsigned long Type; 65 struct UnsignedIntegerTrait<long> {
66 typedef unsigned long Type;
60 }; 67 };
61 template<> struct UnsignedIntegerTrait<long long> { 68 template <>
62 typedef unsigned long long Type; 69 struct UnsignedIntegerTrait<long long> {
70 typedef unsigned long long Type;
63 }; 71 };
64 72
65 template<typename T, typename UnsignedIntegerType, PositiveOrNegativeNumber Numb erType> 73 template <typename T, typename UnsignedIntegerType, PositiveOrNegativeNumber Num berType>
66 static typename ConversionTrait<T>::ReturnType numberToStringImpl(UnsignedIntege rType number, typename ConversionTrait<T>::AdditionalArgumentType* additionalArg ument) 74 static typename ConversionTrait<T>::ReturnType numberToStringImpl(UnsignedIntege rType number, typename ConversionTrait<T>::AdditionalArgumentType* additionalArg ument) {
67 { 75 LChar buf[sizeof(UnsignedIntegerType) * 3 + 1];
68 LChar buf[sizeof(UnsignedIntegerType) * 3 + 1]; 76 LChar* end = buf + WTF_ARRAY_LENGTH(buf);
69 LChar* end = buf + WTF_ARRAY_LENGTH(buf); 77 LChar* p = end;
70 LChar* p = end;
71 78
72 do { 79 do {
73 *--p = static_cast<LChar>((number % 10) + '0'); 80 *--p = static_cast<LChar>((number % 10) + '0');
74 number /= 10; 81 number /= 10;
75 } while (number); 82 } while (number);
76 83
77 if (NumberType == NegativeNumber) 84 if (NumberType == NegativeNumber)
78 *--p = '-'; 85 *--p = '-';
79 86
80 return ConversionTrait<T>::flush(p, static_cast<unsigned>(end - p), addition alArgument); 87 return ConversionTrait<T>::flush(p, static_cast<unsigned>(end - p), additional Argument);
81 } 88 }
82 89
83 template<typename T, typename SignedIntegerType> 90 template <typename T, typename SignedIntegerType>
84 inline typename ConversionTrait<T>::ReturnType numberToStringSigned(SignedIntege rType number, typename ConversionTrait<T>::AdditionalArgumentType* additionalArg ument = 0) 91 inline typename ConversionTrait<T>::ReturnType numberToStringSigned(SignedIntege rType number, typename ConversionTrait<T>::AdditionalArgumentType* additionalArg ument = 0) {
85 { 92 if (number < 0)
86 if (number < 0) 93 return numberToStringImpl<T, typename UnsignedIntegerTrait<SignedIntegerType >::Type, NegativeNumber>(-number, additionalArgument);
87 return numberToStringImpl<T, typename UnsignedIntegerTrait<SignedInteger Type>::Type, NegativeNumber>(-number, additionalArgument); 94 return numberToStringImpl<T, typename UnsignedIntegerTrait<SignedIntegerType>: :Type, PositiveNumber>(number, additionalArgument);
88 return numberToStringImpl<T, typename UnsignedIntegerTrait<SignedIntegerType >::Type, PositiveNumber>(number, additionalArgument);
89 } 95 }
90 96
91 template<typename T, typename UnsignedIntegerType> 97 template <typename T, typename UnsignedIntegerType>
92 inline typename ConversionTrait<T>::ReturnType numberToStringUnsigned(UnsignedIn tegerType number, typename ConversionTrait<T>::AdditionalArgumentType* additiona lArgument = 0) 98 inline typename ConversionTrait<T>::ReturnType numberToStringUnsigned(UnsignedIn tegerType number, typename ConversionTrait<T>::AdditionalArgumentType* additiona lArgument = 0) {
93 { 99 return numberToStringImpl<T, UnsignedIntegerType, PositiveNumber>(number, addi tionalArgument);
94 return numberToStringImpl<T, UnsignedIntegerType, PositiveNumber>(number, ad ditionalArgument);
95 } 100 }
96 101
97 } // namespace WTF 102 } // namespace WTF
98 103
99 #endif // IntegerToStringConversion_h 104 #endif // IntegerToStringConversion_h
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/wtf/text/Collator.h ('k') | third_party/WebKit/Source/wtf/text/StringBuffer.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698