Changeset 127991 in webkit
- Timestamp:
- Sep 9, 2012 1:48:23 PM (12 years ago)
- Location:
- trunk
- Files:
-
- 1 deleted
- 17 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/Source/JavaScriptCore/ChangeLog
r127987 r127991 1 2012-09-09 Patrick Gansterer <paroga@webkit.org> 2 3 Make the String initialization on the function side of String::number() 4 https://bugs.webkit.org/show_bug.cgi?id=95940 5 6 Reviewed by Benjamin Poulain. 7 8 * JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: 9 1 10 2012-09-09 Geoffrey Garen <ggaren@apple.com> 2 11 -
trunk/Source/JavaScriptCore/JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def
r127351 r127991 254 254 ?notifyWriteSlow@WatchpointSet@JSC@@QAEXXZ 255 255 ?nullptr@@3Vnullptr_t@std@@A 256 ?number@String@WTF@@SA?AV12@NII@Z257 256 ?numberToFixedPrecisionString@WTF@@YAPBDNIQAD_N@Z 258 257 ?numberToFixedWidthString@WTF@@YAPBDNIQAD@Z 259 258 ?numberToString@WTF@@YAPBDNQAD@Z 260 ?numberToStringImpl@WTF@@YA?AV?$PassRefPtr@VStringImpl@WTF@@@1@_J@Z261 ?numberToStringImpl@WTF@@YA?AV?$PassRefPtr@VStringImpl@WTF@@@1@_K@Z262 ?numberToStringImpl@WTF@@YA?AV?$PassRefPtr@VStringImpl@WTF@@@1@H@Z263 ?numberToStringImpl@WTF@@YA?AV?$PassRefPtr@VStringImpl@WTF@@@1@I@Z264 ?numberToStringImpl@WTF@@YA?AV?$PassRefPtr@VStringImpl@WTF@@@1@J@Z265 ?numberToStringImpl@WTF@@YA?AV?$PassRefPtr@VStringImpl@WTF@@@1@K@Z266 259 ?objectAtScope@JSScope@JSC@@SAPAVJSObject@2@PAV12@@Z 267 260 ?objectCount@Heap@JSC@@QAEIXZ -
trunk/Source/WTF/ChangeLog
r127973 r127991 1 2012-09-09 Patrick Gansterer <paroga@webkit.org> 2 3 Make the String initialization on the function side of String::number() 4 https://bugs.webkit.org/show_bug.cgi?id=95940 5 6 Reviewed by Benjamin Poulain. 7 8 Un-Inline String::number() to make the String initialization done on the function side 9 instead of being on the caller side. 10 11 * GNUmakefile.list.am: 12 * WTF.gypi: 13 * WTF.pro: 14 * WTF.vcproj/WTF.vcproj: 15 * WTF.xcodeproj/project.pbxproj: 16 * wtf/CMakeLists.txt: 17 * wtf/text/IntegerToStringConversion.cpp: Removed. 18 * wtf/text/IntegerToStringConversion.h: 19 (WTF::numberToStringImpl): 20 (WTF::numberToStringSigned): 21 (WTF::numberToStringUnsigned): 22 * wtf/text/WTFString.cpp: 23 (WTF::String::number): 24 * wtf/text/WTFString.h: 25 1 26 2012-09-08 Andreas Kling <kling@webkit.org> 2 27 -
trunk/Source/WTF/GNUmakefile.list.am
r126658 r127991 209 209 Source/WTF/wtf/text/CString.cpp \ 210 210 Source/WTF/wtf/text/CString.h \ 211 Source/WTF/wtf/text/IntegerToStringConversion.cpp \212 211 Source/WTF/wtf/text/IntegerToStringConversion.h \ 213 212 Source/WTF/wtf/text/StringBuffer.h \ -
trunk/Source/WTF/WTF.gypi
r126658 r127991 225 225 'wtf/text/Base64.cpp', 226 226 'wtf/text/CString.cpp', 227 'wtf/text/IntegerToStringConversion.cpp',228 227 'wtf/text/StringBuilder.cpp', 229 228 'wtf/text/StringImpl.cpp', -
trunk/Source/WTF/WTF.pro
r126658 r127991 220 220 text/Base64.cpp \ 221 221 text/CString.cpp \ 222 text/IntegerToStringConversion.cpp \223 222 text/StringBuilder.cpp \ 224 223 text/StringImpl.cpp \ -
trunk/Source/WTF/WTF.vcproj/WTF.vcproj
r126658 r127991 425 425 </File> 426 426 <File 427 RelativePath="..\wtf\text\IntegerToStringConversion.cpp"428 >429 </File>430 <File431 427 RelativePath="..\wtf\text\IntegerToStringConversion.h" 432 428 > -
trunk/Source/WTF/WTF.xcodeproj/project.pbxproj
r126658 r127991 12 12 143F61201565F0F900DB514A /* RAMSize.h in Headers */ = {isa = PBXBuildFile; fileRef = 143F611E1565F0F900DB514A /* RAMSize.h */; settings = {ATTRIBUTES = (Private, ); }; }; 13 13 14F3B0F715E45E4600210069 /* SaturatedArithmetic.h in Headers */ = {isa = PBXBuildFile; fileRef = 14F3B0F615E45E4600210069 /* SaturatedArithmetic.h */; settings = {ATTRIBUTES = (Private, ); }; }; 14 26147B0915DDCCDC00DDB907 /* IntegerToStringConversion.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 26147B0715DDCCDC00DDB907 /* IntegerToStringConversion.cpp */; };15 14 26147B0A15DDCCDC00DDB907 /* IntegerToStringConversion.h in Headers */ = {isa = PBXBuildFile; fileRef = 26147B0815DDCCDC00DDB907 /* IntegerToStringConversion.h */; }; 16 15 2C05385415BC819000F21B96 /* GregorianDateTime.h in Headers */ = {isa = PBXBuildFile; fileRef = 2C05385315BC819000F21B96 /* GregorianDateTime.h */; }; … … 259 258 143F611E1565F0F900DB514A /* RAMSize.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RAMSize.h; sourceTree = "<group>"; }; 260 259 14F3B0F615E45E4600210069 /* SaturatedArithmetic.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SaturatedArithmetic.h; sourceTree = "<group>"; }; 261 26147B0715DDCCDC00DDB907 /* IntegerToStringConversion.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = IntegerToStringConversion.cpp; sourceTree = "<group>"; };262 260 26147B0815DDCCDC00DDB907 /* IntegerToStringConversion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = IntegerToStringConversion.h; sourceTree = "<group>"; }; 263 261 2C05385315BC819000F21B96 /* GregorianDateTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = GregorianDateTime.h; sourceTree = "<group>"; }; … … 796 794 A8A47321151A825B004123FF /* CString.cpp */, 797 795 A8A47322151A825B004123FF /* CString.h */, 798 26147B0715DDCCDC00DDB907 /* IntegerToStringConversion.cpp */,799 796 26147B0815DDCCDC00DDB907 /* IntegerToStringConversion.h */, 800 797 A8A47323151A825B004123FF /* StringBuffer.h */, … … 1189 1186 2CCD892A15C0390200285083 /* GregorianDateTime.cpp in Sources */, 1190 1187 A8A473D8151A825B004123FF /* HashTable.cpp in Sources */, 1191 26147B0915DDCCDC00DDB907 /* IntegerToStringConversion.cpp in Sources */,1192 1188 A8A473E5151A825B004123FF /* MainThread.cpp in Sources */, 1193 1189 A8A473E4151A825B004123FF /* MainThreadMac.mm in Sources */, -
trunk/Source/WTF/wtf/CMakeLists.txt
r126658 r127991 184 184 text/Base64.cpp 185 185 text/CString.cpp 186 text/IntegerToStringConversion.cpp187 186 text/StringBuilder.cpp 188 187 text/StringImpl.cpp -
trunk/Source/WTF/wtf/text/IntegerToStringConversion.h
r127761 r127991 1 1 /* 2 2 * Copyright (C) 2012 Apple Inc. All Rights Reserved. 3 * Copyright (C) 2012 Patrick Gansterer <paroga@paroga.com> 3 4 * 4 5 * This library is free software; you can redistribute it and/or … … 22 23 #define IntegerToStringConversion_h 23 24 24 #include "StringImpl.h" 25 #include <wtf/text/StringBuilder.h> 26 #include <wtf/text/StringImpl.h> 25 27 26 28 namespace WTF { 27 29 28 WTF_EXPORT_PRIVATE PassRefPtr<StringImpl> numberToStringImpl(int); 29 WTF_EXPORT_PRIVATE PassRefPtr<StringImpl> numberToStringImpl(long); 30 WTF_EXPORT_PRIVATE PassRefPtr<StringImpl> numberToStringImpl(long long); 30 enum PositiveOrNegativeNumber { 31 PositiveNumber, 32 NegativeNumber 33 }; 31 34 32 WTF_EXPORT_PRIVATE PassRefPtr<StringImpl> numberToStringImpl(unsigned); 33 WTF_EXPORT_PRIVATE PassRefPtr<StringImpl> numberToStringImpl(unsigned long); 34 WTF_EXPORT_PRIVATE PassRefPtr<StringImpl> numberToStringImpl(unsigned long long); 35 template<typename T> struct ConversionTrait; 36 37 template<> struct ConversionTrait<String> { 38 typedef PassRefPtr<StringImpl> ReturnType; 39 typedef void AdditionalArgumentType; 40 static inline ReturnType flush(LChar* characters, unsigned length, void*) { return StringImpl::create(characters, length); } 41 }; 42 template<> struct ConversionTrait<StringBuilder> { 43 typedef void ReturnType; 44 typedef StringBuilder AdditionalArgumentType; 45 static inline ReturnType flush(LChar* characters, unsigned length, StringBuilder* stringBuilder) { stringBuilder->append(characters, length); } 46 }; 47 48 template<typename T> struct UnsignedIntegerTrait; 49 50 template<> struct UnsignedIntegerTrait<int> { 51 typedef unsigned int Type; 52 }; 53 template<> struct UnsignedIntegerTrait<long> { 54 typedef unsigned long Type; 55 }; 56 template<> struct UnsignedIntegerTrait<long long> { 57 typedef unsigned long long Type; 58 }; 59 60 template<typename T, typename UnsignedIntegerType, PositiveOrNegativeNumber NumberType> 61 static typename ConversionTrait<T>::ReturnType numberToStringImpl(UnsignedIntegerType number, typename ConversionTrait<T>::AdditionalArgumentType* additionalArgument) 62 { 63 LChar buf[sizeof(UnsignedIntegerType) * 3 + 1]; 64 LChar* end = buf + WTF_ARRAY_LENGTH(buf); 65 LChar* p = end; 66 67 do { 68 *--p = static_cast<LChar>((number % 10) + '0'); 69 number /= 10; 70 } while (number); 71 72 if (NumberType == NegativeNumber) 73 *--p = '-'; 74 75 return ConversionTrait<T>::flush(p, static_cast<unsigned>(end - p), additionalArgument); 76 } 77 78 template<typename T, typename SignedIntegerType> 79 inline typename ConversionTrait<T>::ReturnType numberToStringSigned(SignedIntegerType number, typename ConversionTrait<T>::AdditionalArgumentType* additionalArgument = 0) 80 { 81 if (number < 0) 82 return numberToStringImpl<T, typename UnsignedIntegerTrait<SignedIntegerType>::Type, NegativeNumber>(-number, additionalArgument); 83 return numberToStringImpl<T, typename UnsignedIntegerTrait<SignedIntegerType>::Type, PositiveNumber>(number, additionalArgument); 84 } 85 86 template<typename T, typename UnsignedIntegerType> 87 inline typename ConversionTrait<T>::ReturnType numberToStringUnsigned(UnsignedIntegerType number, typename ConversionTrait<T>::AdditionalArgumentType* additionalArgument = 0) 88 { 89 return numberToStringImpl<T, UnsignedIntegerType, PositiveNumber>(number, additionalArgument); 90 } 35 91 36 92 } // namespace WTF -
trunk/Source/WTF/wtf/text/WTFString.cpp
r127093 r127991 418 418 #endif 419 419 } 420 420 421 String String::number(int number) 422 { 423 return numberToStringSigned<String>(number); 424 } 425 426 String String::number(unsigned int number) 427 { 428 return numberToStringUnsigned<String>(number); 429 } 430 431 String String::number(long number) 432 { 433 return numberToStringSigned<String>(number); 434 } 435 436 String String::number(unsigned long number) 437 { 438 return numberToStringUnsigned<String>(number); 439 } 440 441 String String::number(long long number) 442 { 443 return numberToStringSigned<String>(number); 444 } 445 446 String String::number(unsigned long long number) 447 { 448 return numberToStringUnsigned<String>(number); 449 } 450 421 451 String String::number(double number, unsigned flags, unsigned precision) 422 452 { -
trunk/Source/WTF/wtf/text/WTFString.h
r127702 r127991 27 27 28 28 #include <wtf/text/ASCIIFastPath.h> 29 #include <wtf/text/IntegerToStringConversion.h>30 29 #include <wtf/text/StringImpl.h> 31 30 … … 227 226 } 228 227 229 static String number(unsigned short number) { return numberToStringImpl(number); } 230 static String number(int number) { return numberToStringImpl(number); } 231 static String number(unsigned number) { return numberToStringImpl(number); } 232 static String number(long number) { return numberToStringImpl(number); } 233 static String number(unsigned long number) { return numberToStringImpl(number); } 234 static String number(long long number) { return numberToStringImpl(number); } 235 static String number(unsigned long long number) { return numberToStringImpl(number); } 228 WTF_EXPORT_STRING_API static String number(int); 229 WTF_EXPORT_STRING_API static String number(unsigned int); 230 WTF_EXPORT_STRING_API static String number(long); 231 WTF_EXPORT_STRING_API static String number(unsigned long); 232 WTF_EXPORT_STRING_API static String number(long long); 233 WTF_EXPORT_STRING_API static String number(unsigned long long); 236 234 237 235 WTF_EXPORT_STRING_API static String number(double, unsigned = ShouldRoundSignificantFigures | ShouldTruncateTrailingZeros, unsigned precision = 6); -
trunk/Source/WebKit2/ChangeLog
r127988 r127991 1 2012-09-09 Patrick Gansterer <paroga@webkit.org> 2 3 Make the String initialization on the function side of String::number() 4 https://bugs.webkit.org/show_bug.cgi?id=95940 5 6 Reviewed by Benjamin Poulain. 7 8 * win/WebKit2.def: 9 * win/WebKit2CFLite.def: 10 1 11 2012-09-09 Pierre Rossi <pierre.rossi@gmail.com> 2 12 -
trunk/Source/WebKit2/win/WebKit2.def
r127876 r127991 196 196 ?next@ComposedShadowTreeWalker@WebCore@@QAEXXZ 197 197 ?previous@ComposedShadowTreeWalker@WebCore@@QAEXXZ 198 ?numberToStringImpl@WTF@@YA?AV?$PassRefPtr@VStringImpl@WTF@@@1@H@Z 199 ?numberToStringImpl@WTF@@YA?AV?$PassRefPtr@VStringImpl@WTF@@@1@I@Z 198 ?number@String@WTF@@SA?AV12@_K@Z 199 ?number@String@WTF@@SA?AV12@H@Z 200 ?number@String@WTF@@SA?AV12@I@Z 201 ?number@String@WTF@@SA?AV12@NII@Z 200 202 ?overrideUserPreferredLanguages@WebCore@@YAXABV?$Vector@VString@WTF@@$0A@@WTF@@@Z 201 203 ?numberOfScopedHTMLStyleChildren@Node@WebCore@@QBEIXZ -
trunk/Source/WebKit2/win/WebKit2CFLite.def
r127876 r127991 193 193 ?next@ComposedShadowTreeWalker@WebCore@@QAEXXZ 194 194 ?previous@ComposedShadowTreeWalker@WebCore@@QAEXXZ 195 ?number@String@WTF@@SA?AV12@_K@Z 196 ?number@String@WTF@@SA?AV12@H@Z 195 197 ?number@String@WTF@@SA?AV12@I@Z 196 ?number@String@WTF@@SA?AV12@ H@Z198 ?number@String@WTF@@SA?AV12@NII@Z 197 199 ?overrideUserPreferredLanguages@WebCore@@YAXABV?$Vector@VString@WTF@@$0A@@WTF@@@Z 198 200 ?numberOfScopedHTMLStyleChildren@Node@WebCore@@QBEIXZ -
trunk/Tools/ChangeLog
r127988 r127991 1 2012-09-09 Patrick Gansterer <paroga@webkit.org> 2 3 Make the String initialization on the function side of String::number() 4 https://bugs.webkit.org/show_bug.cgi?id=95940 5 6 Reviewed by Benjamin Poulain. 7 8 * TestWebKitAPI/Tests/WTF/IntegerToStringConversion.cpp: 9 (testBoundaries): 10 (testNumbers): 11 1 12 2012-09-09 Pierre Rossi <pierre.rossi@gmail.com> 2 13 -
trunk/Tools/TestWebKitAPI/Tests/WTF/IntegerToStringConversion.cpp
r126658 r127991 29 29 #include <wtf/StringExtras.h> 30 30 #include <wtf/text/CString.h> 31 #include <wtf/text/IntegerToStringConversion.h>32 31 #include <wtf/text/WTFString.h> 33 32 … … 76 75 77 76 const IntegerType min = std::numeric_limits<IntegerType>::min(); 78 CString minStringData = String (WTF::numberToStringImpl(min)).latin1();77 CString minStringData = String::number(min).latin1(); 79 78 snprintf(buffer.data(), bufferSize, PrintfFormatTrait<IntegerType>::format, min); 80 79 ASSERT_STREQ(buffer.data(), minStringData.data()); 81 80 82 81 const IntegerType max = std::numeric_limits<IntegerType>::max(); 83 CString maxStringData = String (WTF::numberToStringImpl(max)).latin1();82 CString maxStringData = String::number(max).latin1(); 84 83 snprintf(buffer.data(), bufferSize, PrintfFormatTrait<IntegerType>::format, max); 85 84 ASSERT_STREQ(buffer.data(), maxStringData.data()); … … 95 94 for (int i = -100; i < 100; ++i) { 96 95 const IntegerType number = static_cast<IntegerType>(i); 97 CString numberStringData = String (WTF::numberToStringImpl(number)).latin1();96 CString numberStringData = String::number(number).latin1(); 98 97 snprintf(buffer.data(), bufferSize, PrintfFormatTrait<IntegerType>::format, number); 99 98 ASSERT_STREQ(buffer.data(), numberStringData.data());
Note: See TracChangeset
for help on using the changeset viewer.