| OLD | NEW |
| 1 /* | 1 /* |
| 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
| 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 3 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
| 4 * (C) 2001 Dirk Mueller ( mueller@kde.org ) | 4 * (C) 2001 Dirk Mueller ( mueller@kde.org ) |
| 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2013 Apple Inc. All r
ights reserved. | 5 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2013 Apple Inc. All r
ights reserved. |
| 6 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) | 6 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) |
| 7 * | 7 * |
| 8 * This library is free software; you can redistribute it and/or | 8 * This library is free software; you can redistribute it and/or |
| 9 * modify it under the terms of the GNU Library General Public | 9 * modify it under the terms of the GNU Library General Public |
| 10 * License as published by the Free Software Foundation; either | 10 * License as published by the Free Software Foundation; either |
| (...skipping 299 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 310 | 310 |
| 311 // Allocate a single buffer large enough to contain the StringImpl | 311 // Allocate a single buffer large enough to contain the StringImpl |
| 312 // struct as well as the data which it contains. This removes one | 312 // struct as well as the data which it contains. This removes one |
| 313 // heap allocation from this call. | 313 // heap allocation from this call. |
| 314 StringImpl* string = static_cast<StringImpl*>(Partitions::bufferMalloc(alloc
ationSize<UChar>(length))); | 314 StringImpl* string = static_cast<StringImpl*>(Partitions::bufferMalloc(alloc
ationSize<UChar>(length))); |
| 315 | 315 |
| 316 data = reinterpret_cast<UChar*>(string + 1); | 316 data = reinterpret_cast<UChar*>(string + 1); |
| 317 return adoptRef(new (string) StringImpl(length)); | 317 return adoptRef(new (string) StringImpl(length)); |
| 318 } | 318 } |
| 319 | 319 |
| 320 PassRefPtr<StringImpl> StringImpl::reallocate(PassRefPtr<StringImpl> originalStr
ing, unsigned length) | |
| 321 { | |
| 322 ASSERT(originalString->hasOneRef()); | |
| 323 | |
| 324 if (!length) | |
| 325 return empty(); | |
| 326 | |
| 327 bool is8Bit = originalString->is8Bit(); | |
| 328 // Same as createUninitialized() except here we use realloc. | |
| 329 size_t size = is8Bit ? allocationSize<LChar>(length) : allocationSize<UChar>
(length); | |
| 330 originalString->~StringImpl(); | |
| 331 StringImpl* string = static_cast<StringImpl*>(Partitions::bufferRealloc(orig
inalString.leakRef(), size)); | |
| 332 if (is8Bit) | |
| 333 return adoptRef(new (string) StringImpl(length, Force8BitConstructor)); | |
| 334 return adoptRef(new (string) StringImpl(length)); | |
| 335 } | |
| 336 | |
| 337 static StaticStringsTable& staticStrings() | 320 static StaticStringsTable& staticStrings() |
| 338 { | 321 { |
| 339 DEFINE_STATIC_LOCAL(StaticStringsTable, staticStrings, ()); | 322 DEFINE_STATIC_LOCAL(StaticStringsTable, staticStrings, ()); |
| 340 return staticStrings; | 323 return staticStrings; |
| 341 } | 324 } |
| 342 | 325 |
| 343 #if ENABLE(ASSERT) | 326 #if ENABLE(ASSERT) |
| 344 static bool s_allowCreationOfStaticStrings = true; | 327 static bool s_allowCreationOfStaticStrings = true; |
| 345 #endif | 328 #endif |
| 346 | 329 |
| (...skipping 1779 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2126 } else if (localeIdMatchesLang(localeIdentifier, "lt")) { | 2109 } else if (localeIdMatchesLang(localeIdentifier, "lt")) { |
| 2127 // TODO(rob.buis) implement upper-casing rules for lt | 2110 // TODO(rob.buis) implement upper-casing rules for lt |
| 2128 // like in StringImpl::upper(locale). | 2111 // like in StringImpl::upper(locale). |
| 2129 } | 2112 } |
| 2130 } | 2113 } |
| 2131 | 2114 |
| 2132 return toUpper(c); | 2115 return toUpper(c); |
| 2133 } | 2116 } |
| 2134 | 2117 |
| 2135 } // namespace WTF | 2118 } // namespace WTF |
| OLD | NEW |