Diff
Modified: trunk/Source/WTF/ChangeLog (233185 => 233186)
--- trunk/Source/WTF/ChangeLog 2018-06-26 00:38:49 UTC (rev 233185)
+++ trunk/Source/WTF/ChangeLog 2018-06-26 00:40:41 UTC (rev 233186)
@@ -1,3 +1,16 @@
+2018-06-25 David Fenton <david_fen...@apple.com>
+
+ Unreviewed, rolling out r233120.
+
+ caused regression in ios API tests
+
+ Reverted changeset:
+
+ "[Cocoa] reduce unnecessary use of .mm source files in WTF,
+ spruce up some implementation details"
+ https://bugs.webkit.org/show_bug.cgi?id=186924
+ https://trac.webkit.org/changeset/233120
+
2018-06-25 Alicia Boya GarcĂa <ab...@igalia.com>
Fix ASAN_ENABLED in GCC
Modified: trunk/Source/WTF/WTF.xcodeproj/project.pbxproj (233185 => 233186)
--- trunk/Source/WTF/WTF.xcodeproj/project.pbxproj 2018-06-26 00:38:49 UTC (rev 233185)
+++ trunk/Source/WTF/WTF.xcodeproj/project.pbxproj 2018-06-26 00:40:41 UTC (rev 233186)
@@ -60,7 +60,7 @@
1C181C8F1D307AB800F5FA16 /* UTextProvider.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C181C891D307AB800F5FA16 /* UTextProvider.cpp */; };
1C181C911D307AB800F5FA16 /* UTextProviderLatin1.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C181C8B1D307AB800F5FA16 /* UTextProviderLatin1.cpp */; };
1C181C931D307AB800F5FA16 /* UTextProviderUTF16.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C181C8D1D307AB800F5FA16 /* UTextProviderUTF16.cpp */; };
- 1C181C961D30800A00F5FA16 /* TextBreakIteratorInternalICUCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1C181C951D30800A00F5FA16 /* TextBreakIteratorInternalICUCocoa.cpp */; };
+ 1C181C961D30800A00F5FA16 /* TextBreakIteratorInternalICUMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = 1C181C951D30800A00F5FA16 /* TextBreakIteratorInternalICUMac.mm */; };
1FA47C8A152502DA00568D1B /* WebCoreThread.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 1FA47C88152502DA00568D1B /* WebCoreThread.cpp */; };
2CCD892A15C0390200285083 /* GregorianDateTime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2CCD892915C0390200285083 /* GregorianDateTime.cpp */; };
2CDED0EF18115C38004DBA70 /* RunLoopCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 2CDED0EE18115C38004DBA70 /* RunLoopCF.cpp */; };
@@ -82,13 +82,14 @@
7AF023B52061E17000A8EFD6 /* ProcessPrivilege.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AF023B42061E16F00A8EFD6 /* ProcessPrivilege.cpp */; };
7AFEC6B11EB22B5900DADE36 /* UUID.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 7AFEC6B01EB22B5900DADE36 /* UUID.cpp */; };
8134013815B092FD001FF0B8 /* Base64.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 8134013615B092FD001FF0B8 /* Base64.cpp */; };
- 93934BD318A1E8C300D0D6A1 /* StringViewCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = 93934BD218A1E8C300D0D6A1 /* StringViewCocoa.mm */; };
+ 93934BD318A1E8C300D0D6A1 /* StringViewObjC.mm in Sources */ = {isa = PBXBuildFile; fileRef = 93934BD218A1E8C300D0D6A1 /* StringViewObjC.mm */; };
93934BD518A1F16900D0D6A1 /* StringViewCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93934BD418A1F16900D0D6A1 /* StringViewCF.cpp */; };
93F1993E19D7958D00C2390B /* StringView.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 93F1993D19D7958D00C2390B /* StringView.cpp */; };
9BC70F05176C379D00101DEC /* AtomicStringTable.cpp in Sources */ = {isa = PBXBuildFile; fileRef = 9BC70F04176C379D00101DEC /* AtomicStringTable.cpp */; };
A3B725EC987446AD93F1A440 /* RandomDevice.cpp in Sources */ = {isa = PBXBuildFile; fileRef = C8F597CA2A57417FBAB92FD6 /* RandomDevice.cpp */; };
A3E4DD931F3A803400DED0B4 /* TextStream.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A3E4DD911F3A803400DED0B4 /* TextStream.cpp */; };
- A5BA15F51824348000A82E69 /* StringImplCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = A5BA15F41824348000A82E69 /* StringImplCocoa.mm */; };
+ A5BA15F3182433A900A82E69 /* StringMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = A5BA15F2182433A900A82E69 /* StringMac.mm */; };
+ A5BA15F51824348000A82E69 /* StringImplMac.mm in Sources */ = {isa = PBXBuildFile; fileRef = A5BA15F41824348000A82E69 /* StringImplMac.mm */; };
A5BA15FA182435A600A82E69 /* AtomicStringImplCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5BA15F7182435A600A82E69 /* AtomicStringImplCF.cpp */; };
A5BA15FB182435A600A82E69 /* StringCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5BA15F8182435A600A82E69 /* StringCF.cpp */; };
A5BA15FC182435A600A82E69 /* StringImplCF.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A5BA15F9182435A600A82E69 /* StringImplCF.cpp */; };
@@ -146,7 +147,7 @@
E15556F518A0CC18006F48FB /* CryptographicUtilities.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E15556F318A0CC18006F48FB /* CryptographicUtilities.cpp */; };
E311FB171F0A568B003C08DE /* ThreadGroup.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E311FB151F0A568B003C08DE /* ThreadGroup.cpp */; };
E388886F20C9095100E632BC /* WorkerPool.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E388886D20C9095100E632BC /* WorkerPool.cpp */; };
- E38C41251EB4E04C0042957D /* CPUTimeCocoa.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E38C41241EB4E04C0042957D /* CPUTimeCocoa.cpp */; };
+ E38C41251EB4E04C0042957D /* CPUTimeCocoa.mm in Sources */ = {isa = PBXBuildFile; fileRef = E38C41241EB4E04C0042957D /* CPUTimeCocoa.mm */; };
E38C41281EB4E0680042957D /* CPUTime.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E38C41261EB4E0680042957D /* CPUTime.cpp */; };
E38D6E271F5522E300A75CC4 /* StringBuilderJSON.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E38D6E261F5522E300A75CC4 /* StringBuilderJSON.cpp */; };
E3A32BC41FC830E2007D7E76 /* JSValueMalloc.cpp in Sources */ = {isa = PBXBuildFile; fileRef = E3A32BC21FC830E2007D7E76 /* JSValueMalloc.cpp */; };
@@ -313,8 +314,8 @@
1C181C8C1D307AB800F5FA16 /* UTextProviderLatin1.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UTextProviderLatin1.h; sourceTree = "<group>"; };
1C181C8D1D307AB800F5FA16 /* UTextProviderUTF16.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = UTextProviderUTF16.cpp; sourceTree = "<group>"; };
1C181C8E1D307AB800F5FA16 /* UTextProviderUTF16.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UTextProviderUTF16.h; sourceTree = "<group>"; };
- 1C181C951D30800A00F5FA16 /* TextBreakIteratorInternalICUCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = TextBreakIteratorInternalICUCocoa.cpp; sourceTree = "<group>"; };
- 1CCDB1491E566626006C73C0 /* TextBreakIteratorCF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextBreakIteratorCF.h; sourceTree = "<group>"; };
+ 1C181C951D30800A00F5FA16 /* TextBreakIteratorInternalICUMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = TextBreakIteratorInternalICUMac.mm; path = mac/TextBreakIteratorInternalICUMac.mm; sourceTree = "<group>"; };
+ 1CCDB1491E566626006C73C0 /* TextBreakIteratorCF.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = TextBreakIteratorCF.h; path = cf/TextBreakIteratorCF.h; sourceTree = "<group>"; };
1CCDB14D1E566898006C73C0 /* TextBreakIteratorICU.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TextBreakIteratorICU.h; sourceTree = "<group>"; };
1CCDB1511E566BC5006C73C0 /* CFStringSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = CFStringSPI.h; path = cf/CFStringSPI.h; sourceTree = "<group>"; };
1FA47C88152502DA00568D1B /* WebCoreThread.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WebCoreThread.cpp; sourceTree = "<group>"; };
@@ -405,8 +406,8 @@
83FBA93119DF459700F30ADB /* TypeCasts.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = TypeCasts.h; sourceTree = "<group>"; };
86F46F5F1A2840EE00CCBF22 /* RefCounter.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RefCounter.h; sourceTree = "<group>"; };
933D63191FCB6AB90032ECD6 /* StringHasher.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = StringHasher.h; sourceTree = "<group>"; };
- 93934BD218A1E8C300D0D6A1 /* StringViewCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = StringViewCocoa.mm; sourceTree = "<group>"; };
- 93934BD418A1F16900D0D6A1 /* StringViewCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringViewCF.cpp; sourceTree = "<group>"; };
+ 93934BD218A1E8C300D0D6A1 /* StringViewObjC.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = StringViewObjC.mm; path = mac/StringViewObjC.mm; sourceTree = "<group>"; };
+ 93934BD418A1F16900D0D6A1 /* StringViewCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StringViewCF.cpp; path = cf/StringViewCF.cpp; sourceTree = "<group>"; };
93AC91A718942FC400244939 /* LChar.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LChar.h; sourceTree = "<group>"; };
93D191CF20CAECE800C51B8E /* FoundationSPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FoundationSPI.h; sourceTree = "<group>"; };
93DDE9311CDC052D00FD3491 /* dyldSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = dyldSPI.h; sourceTree = "<group>"; };
@@ -424,10 +425,11 @@
A5098AFF1C169E0700087797 /* SandboxSPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SandboxSPI.h; sourceTree = "<group>"; };
A5098B011C16A4F900087797 /* SecuritySPI.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SecuritySPI.h; sourceTree = "<group>"; };
A561F30F1DF2642100FF675D /* DeprecatedOptional.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = DeprecatedOptional.h; sourceTree = "<group>"; };
- A5BA15F41824348000A82E69 /* StringImplCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = StringImplCocoa.mm; sourceTree = "<group>"; };
- A5BA15F7182435A600A82E69 /* AtomicStringImplCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = AtomicStringImplCF.cpp; sourceTree = "<group>"; };
- A5BA15F8182435A600A82E69 /* StringCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringCF.cpp; sourceTree = "<group>"; };
- A5BA15F9182435A600A82E69 /* StringImplCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringImplCF.cpp; sourceTree = "<group>"; };
+ A5BA15F2182433A900A82E69 /* StringMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = StringMac.mm; path = mac/StringMac.mm; sourceTree = "<group>"; };
+ A5BA15F41824348000A82E69 /* StringImplMac.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; name = StringImplMac.mm; path = mac/StringImplMac.mm; sourceTree = "<group>"; };
+ A5BA15F7182435A600A82E69 /* AtomicStringImplCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = AtomicStringImplCF.cpp; path = cf/AtomicStringImplCF.cpp; sourceTree = "<group>"; };
+ A5BA15F8182435A600A82E69 /* StringCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StringCF.cpp; path = cf/StringCF.cpp; sourceTree = "<group>"; };
+ A5BA15F9182435A600A82E69 /* StringImplCF.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = StringImplCF.cpp; path = cf/StringImplCF.cpp; sourceTree = "<group>"; };
A70DA0821799F04D00529A9B /* Insertion.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = Insertion.h; sourceTree = "<group>"; };
A70DA0831799F04D00529A9B /* ListDump.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ListDump.h; sourceTree = "<group>"; };
A748744F17A0BDAE00FA04CB /* SixCharacterHash.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = SixCharacterHash.cpp; sourceTree = "<group>"; };
@@ -620,7 +622,7 @@
E33D5F871FBED66700BF625E /* RecursableLambda.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = RecursableLambda.h; sourceTree = "<group>"; };
E388886D20C9095100E632BC /* WorkerPool.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = WorkerPool.cpp; sourceTree = "<group>"; };
E388886E20C9095100E632BC /* WorkerPool.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WorkerPool.h; sourceTree = "<group>"; };
- E38C41241EB4E04C0042957D /* CPUTimeCocoa.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CPUTimeCocoa.cpp; sourceTree = "<group>"; };
+ E38C41241EB4E04C0042957D /* CPUTimeCocoa.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = CPUTimeCocoa.mm; sourceTree = "<group>"; };
E38C41261EB4E0680042957D /* CPUTime.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = CPUTime.cpp; sourceTree = "<group>"; };
E38C41271EB4E0680042957D /* CPUTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = CPUTime.h; sourceTree = "<group>"; };
E38D6E261F5522E300A75CC4 /* StringBuilderJSON.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; path = StringBuilderJSON.cpp; sourceTree = "<group>"; };
@@ -766,14 +768,15 @@
name = Source;
sourceTree = "<group>";
};
- A5BA15F11824339F00A82E69 /* cocoa */ = {
+ A5BA15F11824339F00A82E69 /* mac */ = {
isa = PBXGroup;
children = (
- A5BA15F41824348000A82E69 /* StringImplCocoa.mm */,
- 93934BD218A1E8C300D0D6A1 /* StringViewCocoa.mm */,
- 1C181C951D30800A00F5FA16 /* TextBreakIteratorInternalICUCocoa.cpp */,
+ A5BA15F41824348000A82E69 /* StringImplMac.mm */,
+ A5BA15F2182433A900A82E69 /* StringMac.mm */,
+ 93934BD218A1E8C300D0D6A1 /* StringViewObjC.mm */,
+ 1C181C951D30800A00F5FA16 /* TextBreakIteratorInternalICUMac.mm */,
);
- path = cocoa;
+ name = mac;
sourceTree = "<group>";
};
A5BA15F61824359E00A82E69 /* cf */ = {
@@ -785,7 +788,7 @@
93934BD418A1F16900D0D6A1 /* StringViewCF.cpp */,
1CCDB1491E566626006C73C0 /* TextBreakIteratorCF.h */,
);
- path = cf;
+ name = cf;
sourceTree = "<group>";
};
A876DBD6151816E500DADB95 /* wtf */ = {
@@ -1180,8 +1183,8 @@
isa = PBXGroup;
children = (
A5BA15F61824359E00A82E69 /* cf */,
- A5BA15F11824339F00A82E69 /* cocoa */,
1C181C881D307AB800F5FA16 /* icu */,
+ A5BA15F11824339F00A82E69 /* mac */,
A8A4731C151A825B004123FF /* ASCIIFastPath.h */,
C6F050790D9C432A99085E75 /* ASCIILiteral.cpp */,
382029E246C84B0099FD6764 /* ASCIILiteral.h */,
@@ -1326,7 +1329,7 @@
isa = PBXGroup;
children = (
1469419B16EAB10A0024E146 /* AutodrainedPool.cpp */,
- E38C41241EB4E04C0042957D /* CPUTimeCocoa.cpp */,
+ E38C41241EB4E04C0042957D /* CPUTimeCocoa.mm */,
143DDE9520C8BC37007F76FA /* Entitlements.cpp */,
143DDE9720C8BE99007F76FA /* Entitlements.h */,
7A6EBA3320746C34004F9C44 /* MachSendRight.cpp */,
@@ -1466,7 +1469,7 @@
0F30CB5A1FCDF134004B5323 /* ConcurrentPtrHashSet.cpp in Sources */,
0F8E85DB1FD485B000691889 /* CountingLock.cpp in Sources */,
E38C41281EB4E0680042957D /* CPUTime.cpp in Sources */,
- E38C41251EB4E04C0042957D /* CPUTimeCocoa.cpp in Sources */,
+ E38C41251EB4E04C0042957D /* CPUTimeCocoa.mm in Sources */,
515F794E1CFC9F4A00CCED93 /* CrossThreadCopier.cpp in Sources */,
517F82D71FD22F3000DA3DEA /* CrossThreadTaskHandler.cpp in Sources */,
A8A4739A151A825B004123FF /* CryptographicallyRandomNumber.cpp in Sources */,
@@ -1544,16 +1547,17 @@
A5BA15FB182435A600A82E69 /* StringCF.cpp in Sources */,
A8A47440151A825B004123FF /* StringImpl.cpp in Sources */,
A5BA15FC182435A600A82E69 /* StringImplCF.cpp in Sources */,
- A5BA15F51824348000A82E69 /* StringImplCocoa.mm in Sources */,
+ A5BA15F51824348000A82E69 /* StringImplMac.mm in Sources */,
+ A5BA15F3182433A900A82E69 /* StringMac.mm in Sources */,
0FDDBFA71666DFA300C55FEF /* StringPrintStream.cpp in Sources */,
93F1993E19D7958D00C2390B /* StringView.cpp in Sources */,
93934BD518A1F16900D0D6A1 /* StringViewCF.cpp in Sources */,
- 93934BD318A1E8C300D0D6A1 /* StringViewCocoa.mm in Sources */,
+ 93934BD318A1E8C300D0D6A1 /* StringViewObjC.mm in Sources */,
A8A473B7151A825B004123FF /* strtod.cc in Sources */,
52183012C99E476A84EEBEA8 /* SymbolImpl.cpp in Sources */,
70A993FE1AD7151300FA615B /* SymbolRegistry.cpp in Sources */,
1C181C7F1D3078DA00F5FA16 /* TextBreakIterator.cpp in Sources */,
- 1C181C961D30800A00F5FA16 /* TextBreakIteratorInternalICUCocoa.cpp in Sources */,
+ 1C181C961D30800A00F5FA16 /* TextBreakIteratorInternalICUMac.mm in Sources */,
A3E4DD931F3A803400DED0B4 /* TextStream.cpp in Sources */,
E311FB171F0A568B003C08DE /* ThreadGroup.cpp in Sources */,
A8A4744A151A825B004123FF /* Threading.cpp in Sources */,
Modified: trunk/Source/WTF/wtf/MemoryPressureHandler.cpp (233185 => 233186)
--- trunk/Source/WTF/wtf/MemoryPressureHandler.cpp 2018-06-26 00:38:49 UTC (rev 233185)
+++ trunk/Source/WTF/wtf/MemoryPressureHandler.cpp 2018-06-26 00:40:41 UTC (rev 233186)
@@ -286,6 +286,7 @@
#if !PLATFORM(COCOA) && !OS(LINUX) && !OS(WINDOWS)
void MemoryPressureHandler::install() { }
void MemoryPressureHandler::uninstall() { }
+void MemoryPressureHandler::holdOff(Seconds) { }
void MemoryPressureHandler::respondToMemoryPressure(Critical, Synchronous) { }
void MemoryPressureHandler::platformReleaseMemory(Critical) { }
std::optional<MemoryPressureHandler::ReliefLogger::MemoryUsage> MemoryPressureHandler::ReliefLogger::platformMemoryUsage() { return std::nullopt; }
Modified: trunk/Source/WTF/wtf/PlatformMac.cmake (233185 => 233186)
--- trunk/Source/WTF/wtf/PlatformMac.cmake 2018-06-26 00:38:49 UTC (rev 233185)
+++ trunk/Source/WTF/wtf/PlatformMac.cmake 2018-06-26 00:40:41 UTC (rev 233186)
@@ -41,8 +41,8 @@
cf/LanguageCF.cpp
cf/RunLoopCF.cpp
- cocoa/AutodrainedPool.cpp
- cocoa/CPUTimeCocoa.cpp
+ cocoa/AutodrainedPool.mm
+ cocoa/CPUTimeCocoa.mm
cocoa/Entitlements.cpp
cocoa/MachSendRight.cpp
cocoa/MemoryFootprintCocoa.cpp
@@ -57,9 +57,10 @@
text/cf/StringImplCF.cpp
text/cf/StringViewCF.cpp
- text/cocoa/StringImplCocoa.mm
- text/cocoa/StringViewCocoa.mm
- text/cocoa/TextBreakIteratorInternalICUMac.mm
+ text/mac/StringImplMac.mm
+ text/mac/StringMac.mm
+ text/mac/StringViewObjC.mm
+ text/mac/TextBreakIteratorInternalICUMac.mm
)
list(APPEND WTF_PRIVATE_INCLUDE_DIRECTORIES
Deleted: trunk/Source/WTF/wtf/cocoa/CPUTimeCocoa.cpp (233185 => 233186)
--- trunk/Source/WTF/wtf/cocoa/CPUTimeCocoa.cpp 2018-06-26 00:38:49 UTC (rev 233185)
+++ trunk/Source/WTF/wtf/cocoa/CPUTimeCocoa.cpp 2018-06-26 00:40:41 UTC (rev 233186)
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2017-2018 Apple Inc. All rights reserved.
- *
- * Redistribution and use in source and binary forms, with or without
- * modification, are permitted provided that the following conditions
- * are met:
- * 1. Redistributions of source code must retain the above copyright
- * notice, this list of conditions and the following disclaimer.
- * 2. Redistributions in binary form must reproduce the above copyright
- * notice, this list of conditions and the following disclaimer in the
- * documentation and/or other materials provided with the distribution.
- *
- * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
- * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
- * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
- * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
- * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
- * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
- * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
- * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
- * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
- * THE POSSIBILITY OF SUCH DAMAGE.
- */
-
-#import "config.h"
-#import "CPUTime.h"
-
-#import "MachSendRight.h"
-#import <mach/mach.h>
-#import <mach/mach_time.h>
-#import <mach/task.h>
-#import <mach/task_info.h>
-#import <mach/thread_info.h>
-#import <sys/time.h>
-
-namespace WTF {
-
-static Seconds seconds(const time_value_t& value)
-{
- return Seconds { static_cast<double>(value.seconds) } + Seconds::fromMicroseconds(value.microseconds);
-}
-
-std::optional<CPUTime> CPUTime::get()
-{
- // Current threads.
- task_thread_times_info threadTimes;
- mach_msg_type_number_t threadInfoCount = TASK_THREAD_TIMES_INFO_COUNT;
- auto result = task_info(mach_task_self(), TASK_THREAD_TIMES_INFO, reinterpret_cast<task_info_t>(&threadTimes), &threadInfoCount);
- if (result != KERN_SUCCESS)
- return std::nullopt;
-
- // Terminated threads.
- task_basic_info taskInfo;
- mach_msg_type_number_t taskInfoCount = TASK_BASIC_INFO_COUNT;
- result = task_info(mach_task_self(), TASK_BASIC_INFO, reinterpret_cast<task_info_t>(&taskInfo), &taskInfoCount);
- if (result != KERN_SUCCESS)
- return std::nullopt;
-
- auto userTime = seconds(threadTimes.user_time) + seconds(taskInfo.user_time);
- auto systemTime = seconds(threadTimes.system_time) + seconds(taskInfo.system_time);
-
- return CPUTime { MonotonicTime::now(), userTime, systemTime };
-}
-
-Seconds CPUTime::forCurrentThread()
-{
- mach_msg_type_number_t infoCount = THREAD_BASIC_INFO_COUNT;
- thread_basic_info_data_t info;
-
- auto threadPort = MachSendRight::adopt(mach_thread_self());
- auto result = thread_info(threadPort.sendRight(), THREAD_BASIC_INFO, reinterpret_cast<thread_info_t>(&info), &infoCount);
- RELEASE_ASSERT(result == KERN_SUCCESS);
-
- return seconds(info.user_time) + seconds(info.system_time);
-}
-
-}
Copied: trunk/Source/WTF/wtf/cocoa/CPUTimeCocoa.mm (from rev 233185, trunk/Source/WTF/wtf/cocoa/CPUTimeCocoa.cpp) (0 => 233186)
--- trunk/Source/WTF/wtf/cocoa/CPUTimeCocoa.mm (rev 0)
+++ trunk/Source/WTF/wtf/cocoa/CPUTimeCocoa.mm 2018-06-26 00:40:41 UTC (rev 233186)
@@ -0,0 +1,86 @@
+/*
+ * Copyright (C) 2017-2018 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "CPUTime.h"
+
+#import "MachSendRight.h"
+#import <mach/mach.h>
+#import <mach/mach_time.h>
+#import <mach/task.h>
+#import <mach/task_info.h>
+#import <mach/thread_info.h>
+#import <sys/time.h>
+
+namespace WTF {
+
+static const int64_t microsecondsPerSecond = 1000000;
+
+static int64_t timeValueToMicroseconds(const time_value_t& value)
+{
+ int64_t result = value.seconds;
+ result *= microsecondsPerSecond;
+ result += value.microseconds;
+ return result;
+}
+
+std::optional<CPUTime> CPUTime::get()
+{
+ // Account for current threads.
+ task_thread_times_info threadInfoData;
+ mach_msg_type_number_t threadInfoCount = TASK_THREAD_TIMES_INFO_COUNT;
+ kern_return_t result = task_info(mach_task_self(), TASK_THREAD_TIMES_INFO, reinterpret_cast<task_info_t>(&threadInfoData), &threadInfoCount);
+ if (result != KERN_SUCCESS)
+ return std::nullopt;
+
+ int64_t userTime = timeValueToMicroseconds(threadInfoData.user_time);
+ int64_t systemTime = timeValueToMicroseconds(threadInfoData.system_time);
+
+ // Account for termined threads.
+ task_basic_info taskInfoData;
+ mach_msg_type_number_t taskInfoCount = TASK_BASIC_INFO_COUNT;
+ result = task_info(mach_task_self(), TASK_BASIC_INFO, reinterpret_cast<task_info_t>(&taskInfoData), &taskInfoCount);
+ if (result != KERN_SUCCESS)
+ return std::nullopt;
+
+ userTime += timeValueToMicroseconds(taskInfoData.user_time);
+ systemTime += timeValueToMicroseconds(taskInfoData.system_time);
+
+ return CPUTime { MonotonicTime::now(), Seconds::fromMicroseconds(userTime), Seconds::fromMicroseconds(systemTime) };
+}
+
+Seconds CPUTime::forCurrentThread()
+{
+ mach_msg_type_number_t infoCount = THREAD_BASIC_INFO_COUNT;
+ thread_basic_info_data_t info;
+
+ auto threadPort = MachSendRight::adopt(mach_thread_self());
+ auto ret = thread_info(threadPort.sendRight(), THREAD_BASIC_INFO, reinterpret_cast<thread_info_t>(&info), &infoCount);
+ RELEASE_ASSERT(ret == KERN_SUCCESS);
+
+ return Seconds(info.user_time.seconds + info.system_time.seconds) + Seconds::fromMicroseconds(info.user_time.microseconds + info.system_time.microseconds);
+}
+
+}
Modified: trunk/Source/WTF/wtf/text/WTFString.h (233185 => 233186)
--- trunk/Source/WTF/wtf/text/WTFString.h 2018-06-26 00:38:49 UTC (rev 233185)
+++ trunk/Source/WTF/wtf/text/WTFString.h 2018-06-26 00:40:41 UTC (rev 233186)
@@ -318,7 +318,7 @@
#endif
#ifdef __OBJC__
- String(NSString *);
+ WTF_EXPORT_PRIVATE String(NSString *);
// This conversion converts the null string to an empty NSString rather than to nil.
// Given Cocoa idioms, this is a more useful default. Clients that need to preserve the
@@ -568,11 +568,6 @@
#ifdef __OBJC__
-inline String::String(NSString *string)
- : String((__bridge CFStringRef)string)
-{
-}
-
inline String::operator NSString *() const
{
if (!m_impl)
Copied: trunk/Source/WTF/wtf/text/mac/StringImplMac.mm (from rev 233185, trunk/Source/WTF/wtf/text/cocoa/StringImplCocoa.mm) (0 => 233186)
--- trunk/Source/WTF/wtf/text/mac/StringImplMac.mm (rev 0)
+++ trunk/Source/WTF/wtf/text/mac/StringImplMac.mm 2018-06-26 00:40:41 UTC (rev 233186)
@@ -0,0 +1,34 @@
+/*
+ * Copyright (C) 2006, 2009 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#import "config.h"
+#import "StringImpl.h"
+
+#import "ObjcRuntimeExtras.h"
+#import "RetainPtr.h"
+
+namespace WTF {
+
+StringImpl::operator NSString *()
+{
+ return createCFString().bridgingAutorelease();
+}
+
+}
Added: trunk/Source/WTF/wtf/text/mac/StringMac.mm (0 => 233186)
--- trunk/Source/WTF/wtf/text/mac/StringMac.mm (rev 0)
+++ trunk/Source/WTF/wtf/text/mac/StringMac.mm 2018-06-26 00:40:41 UTC (rev 233186)
@@ -0,0 +1,51 @@
+/*
+ * Copyright (C) 2006 Apple Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "config.h"
+#include "WTFString.h"
+
+#include <CoreFoundation/CFString.h>
+
+namespace WTF {
+
+String::String(NSString *str)
+{
+ if (!str)
+ return;
+
+ CFIndex size = CFStringGetLength(reinterpret_cast<CFStringRef>(str));
+ if (size == 0)
+ m_impl = StringImpl::empty();
+ else {
+ Vector<LChar, 1024> lcharBuffer(size);
+ CFIndex usedBufLen;
+ CFIndex convertedsize = CFStringGetBytes(reinterpret_cast<CFStringRef>(str), CFRangeMake(0, size), kCFStringEncodingISOLatin1, 0, false, lcharBuffer.data(), size, &usedBufLen);
+ if ((convertedsize == size) && (usedBufLen == size)) {
+ m_impl = StringImpl::create(lcharBuffer.data(), size);
+ return;
+ }
+
+ Vector<UChar, 1024> ucharBuffer(size);
+ CFStringGetCharacters(reinterpret_cast<CFStringRef>(str), CFRangeMake(0, size), ucharBuffer.data());
+ m_impl = StringImpl::create(ucharBuffer.data(), size);
+ }
+}
+
+}
Copied: trunk/Source/WTF/wtf/text/mac/StringViewObjC.mm (from rev 233185, trunk/Source/WTF/wtf/text/cocoa/StringViewCocoa.mm) (0 => 233186)
--- trunk/Source/WTF/wtf/text/mac/StringViewObjC.mm (rev 0)
+++ trunk/Source/WTF/wtf/text/mac/StringViewObjC.mm 2018-06-26 00:40:41 UTC (rev 233186)
@@ -0,0 +1,49 @@
+/*
+ * Copyright (C) 2014 Apple Inc. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ *
+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS''
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS
+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+ * THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#import "config.h"
+#import "StringView.h"
+
+#import "RetainPtr.h"
+
+namespace WTF {
+
+RetainPtr<NSString> StringView::createNSString() const
+{
+ if (is8Bit())
+ return adoptNS([[NSString alloc] initWithBytes:const_cast<LChar*>(characters8()) length:length() encoding:NSISOLatin1StringEncoding]);
+
+ return adoptNS([[NSString alloc] initWithCharacters:const_cast<UChar*>(characters16()) length:length()]);
+}
+
+RetainPtr<NSString> StringView::createNSStringWithoutCopying() const
+{
+ if (is8Bit())
+ return adoptNS([[NSString alloc] initWithBytesNoCopy:const_cast<LChar*>(characters8()) length:length() encoding:NSISOLatin1StringEncoding freeWhenDone:NO]);
+
+ return adoptNS([[NSString alloc] initWithCharactersNoCopy:const_cast<UChar*>(characters16()) length:length() freeWhenDone:NO]);
+}
+
+}
Copied: trunk/Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm (from rev 233185, trunk/Source/WTF/wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp) (0 => 233186)
--- trunk/Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm (rev 0)
+++ trunk/Source/WTF/wtf/text/mac/TextBreakIteratorInternalICUMac.mm 2018-06-26 00:40:41 UTC (rev 233186)
@@ -0,0 +1,117 @@
+/*
+ * Copyright (C) 2007, 2009 Apple Inc. All rights reserved.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public
+ * License as published by the Free Software Foundation; either
+ * version 2 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public License
+ * along with this library; see the file COPYING.LIB. If not, write to
+ * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ *
+ */
+
+#include "config.h"
+#include "TextBreakIteratorInternalICU.h"
+
+#include "TextBreakIterator.h"
+#include <wtf/RetainPtr.h>
+
+namespace WTF {
+
+static Variant<TextBreakIteratorICU, TextBreakIteratorPlatform> mapModeToBackingIterator(StringView string, TextBreakIterator::Mode mode, const AtomicString& locale)
+{
+ switch (mode) {
+ case TextBreakIterator::Mode::Line:
+ return TextBreakIteratorICU(string, TextBreakIteratorICU::Mode::Line, locale.string().utf8().data());
+ case TextBreakIterator::Mode::Caret:
+ return TextBreakIteratorCF(string, TextBreakIteratorCF::Mode::Caret);
+ case TextBreakIterator::Mode::Delete:
+ return TextBreakIteratorCF(string, TextBreakIteratorCF::Mode::Delete);
+ }
+}
+
+TextBreakIterator::TextBreakIterator(StringView string, Mode mode, const AtomicString& locale)
+ : m_backing(mapModeToBackingIterator(string, mode, locale))
+ , m_mode(mode)
+ , m_locale(locale)
+{
+}
+
+static const int maxLocaleStringLength = 32;
+
+static inline RetainPtr<CFStringRef> textBreakLocalePreference()
+{
+ RetainPtr<CFPropertyListRef> locale = adoptCF(CFPreferencesCopyValue(CFSTR("AppleTextBreakLocale"),
+ kCFPreferencesAnyApplication, kCFPreferencesCurrentUser, kCFPreferencesAnyHost));
+ if (!locale || CFGetTypeID(locale.get()) != CFStringGetTypeID())
+ return nullptr;
+ return static_cast<CFStringRef>(locale.get());
+}
+
+static RetainPtr<CFStringRef> topLanguagePreference()
+{
+ RetainPtr<CFArrayRef> languagesArray = adoptCF(CFLocaleCopyPreferredLanguages());
+ if (!languagesArray)
+ return nullptr;
+ if (!CFArrayGetCount(languagesArray.get()))
+ return nullptr;
+ return static_cast<CFStringRef>(CFArrayGetValueAtIndex(languagesArray.get(), 0));
+}
+
+static void getLocale(CFStringRef locale, char localeStringBuffer[maxLocaleStringLength])
+{
+ // Empty string means "root locale", and that is what we use if we can't get a preference.
+ localeStringBuffer[0] = 0;
+ if (!locale)
+ return;
+ CFStringGetCString(locale, localeStringBuffer, maxLocaleStringLength, kCFStringEncodingASCII);
+}
+
+static void getSearchLocale(char localeStringBuffer[maxLocaleStringLength])
+{
+ getLocale(topLanguagePreference().get(), localeStringBuffer);
+}
+
+const char* currentSearchLocaleID()
+{
+ static char localeStringBuffer[maxLocaleStringLength];
+ static bool gotSearchLocale = false;
+ if (!gotSearchLocale) {
+ getSearchLocale(localeStringBuffer);
+ gotSearchLocale = true;
+ }
+ return localeStringBuffer;
+}
+
+static void getTextBreakLocale(char localeStringBuffer[maxLocaleStringLength])
+{
+ // If there is no text break locale, use the top language preference.
+ RetainPtr<CFStringRef> locale = textBreakLocalePreference();
+ if (locale) {
+ if (RetainPtr<CFStringRef> canonicalLocale = adoptCF(CFLocaleCreateCanonicalLanguageIdentifierFromString(kCFAllocatorDefault, locale.get())))
+ locale = canonicalLocale;
+ } else
+ locale = topLanguagePreference();
+ getLocale(locale.get(), localeStringBuffer);
+}
+
+const char* currentTextBreakLocaleID()
+{
+ static char localeStringBuffer[maxLocaleStringLength];
+ static bool gotTextBreakLocale = false;
+ if (!gotTextBreakLocale) {
+ getTextBreakLocale(localeStringBuffer);
+ gotTextBreakLocale = true;
+ }
+ return localeStringBuffer;
+}
+
+}