Build fixed for http://trac.webkit.org/changeset/128243
[WebKit-https.git] / Source / WTF / ChangeLog
1 2012-09-11  Michael Saboff  <msaboff@apple.com>
2
3         Build fixed for http://trac.webkit.org/changeset/128243
4
5         Rubber stamped by Stephanie Lewis.
6
7         Added missing include file needed by 96422.
8
9         * icu/unicode/ptypes.h: Added.
10
11 2012-09-11  Michael Saboff  <msaboff@apple.com>
12
13         Update ICU header files to more recent version
14         https://bugs.webkit.org/show_bug.cgi?id=96422
15
16         Reviewed by Geoff Garen.
17
18         Updated ICU header files to 4.6.1.  Modifications made as part of the merge are:
19         platform.h - Changed ifndef / define / endif for U_HAVE_UINT8_T, U_HAVE_UINT16_T, U_HAVE_UINT32_T,
20             U_HAVE_UINT64_T, U_IS_BIG_ENDIAN and U_ENABLE_TRACING to match the existing platform.h
21         putil.h (line 132) - Changes defined(U_WINDOWS) to defined(WIN32) || defined(OS2) to match existing putil.h
22         ustring.h (line 945) - Wrapped macro argument cs with { (const UChar *)cs } to match existing ustring.h
23         utypes.h (line 545) - Changed defined(U_WINDOWS) to defined(WIN32) to match existing utypes.h
24
25         * icu/unicode/localpointer.h: Added.
26         * icu/unicode/parseerr.h:
27         * icu/unicode/platform.h:
28         * icu/unicode/putil.h:
29         * icu/unicode/uchar.h:
30         * icu/unicode/ucnv.h:
31         * icu/unicode/ucnv_err.h:
32         * icu/unicode/ucol.h:
33         * icu/unicode/uconfig.h:
34         * icu/unicode/uenum.h:
35         * icu/unicode/uiter.h:
36         * icu/unicode/uloc.h:
37         * icu/unicode/umachine.h:
38         * icu/unicode/unorm.h:
39         * icu/unicode/urename.h:
40         * icu/unicode/uscript.h:
41         * icu/unicode/uset.h:
42         * icu/unicode/ustring.h:
43         * icu/unicode/utf.h:
44         * icu/unicode/utf16.h:
45         * icu/unicode/utf8.h:
46         * icu/unicode/utypes.h:
47         * icu/unicode/uvernum.h: Added.
48         * icu/unicode/uversion.h:
49
50 2012-09-11  Pratik Solanki  <psolanki@apple.com>
51
52         Add ObjcRuntimeExtras.h to the Xcode project file
53         https://bugs.webkit.org/show_bug.cgi?id=96419
54
55         Reviewed by Alexey Proskuryakov.
56
57         * WTF.xcodeproj/project.pbxproj:
58
59 2012-09-11  Adrienne Walker  <enne@google.com>
60
61         Clang doesn't optimize away undefined OwnPtr copy constructor
62         https://bugs.webkit.org/show_bug.cgi?id=74625
63
64         Reviewed by Anders Carlsson.
65
66         Original patch by Anders Carlsson, with a minor edit.
67
68         The publicly declared-but-not-defined copy constructor is a compiler
69         optimization-dependent landmine. Clang often fails to optimize the use
70         of this function out, leading to internal linkage errors for the missing
71         definition. gcc doesn't have this problem and optimizes that function
72         out, leading to code that inconsistently fails to link across platforms.
73
74         As a partial fix for this problem, on any compiler that supports C++11
75         move semantics, replace the bogus copy constructor with the move
76         constructors.  In the future, if all compilers support this, then the
77         copy constructor can be removed.
78
79         This still leaves other compilers that don't support move semantics
80         like Visual Studio vulnerable to linking inconsistencies.
81
82         * wtf/OwnPtr.h:
83         (OwnPtr):
84         (WTF):
85         (WTF::::OwnPtr):
86         (WTF::=):
87
88 2012-09-11  Raphael Kubo da Costa  <rakuco@webkit.org>
89
90         [EFL] Rewrite the EFL-related Find modules
91         https://bugs.webkit.org/show_bug.cgi?id=95237
92
93         Reviewed by Kenneth Rohde Christiansen.
94
95         * CMakeLists.txt: Stop setting the LINK_FLAGS property.
96         * PlatformEfl.cmake: Add libraries and include directories for
97         each Enlightenment Foundation Library used by the port.
98
99 2012-09-11  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
100
101         [Qt] Add a configure step to the Qt build system
102
103         This allows building the Qt port using just 'qmake WebKit.pro'. Using
104         the build-webkit script is still supported, and will add slightly more
105         logic to the build, such as detecting the need for clean or incremental
106         builds.
107
108         Internally, the build system now uses a new variable, WEBKIT_CONFIG, for
109         all things related to configuring the build, such as use/have/enable flags,
110         and these are translated to defines in default_post. Project files should
111         no longer check contains(DEFINES,...) to detect features, but use the new
112         enable?(), use?(), and have?() functions. The no_webkit1 and no_webkit2
113         options have been translated into WEBKIT_CONFIG options as well, and can
114         be checked using build?().
115
116         Reviewed by Simon Hausmann.
117
118         * WTF.pri:
119         * wtf/Platform.h:
120
121 2012-09-10  Ilya Tikhonovsky  <loislo@chromium.org>
122
123         Web Inspector: NMI: move MemoryInstrumentation.h to wtf
124         https://bugs.webkit.org/show_bug.cgi?id=96356
125
126         Reviewed by Yury Semikhatsky.
127
128         It is necessary step because it helps us to remove dependency between platform and WebCore.
129
130         * GNUmakefile.list.am:
131         * WTF.gypi:
132         * WTF.pro:
133         * WTF.vcproj/WTF.vcproj:
134         * WTF.xcodeproj/project.pbxproj:
135         * wtf/MemoryInstrumentation.h: Renamed from Source/WebCore/dom/MemoryInstrumentation.h.
136         (WebCore):
137         (GenericMemoryTypes):
138         (MemoryInstrumentationTraits):
139         (MemoryInstrumentation):
140         (WebCore::MemoryInstrumentation::~MemoryInstrumentation):
141         (WebCore::MemoryInstrumentation::addRootObject):
142         (InstrumentedPointerBase):
143         (WebCore::MemoryInstrumentation::InstrumentedPointerBase::~InstrumentedPointerBase):
144         (InstrumentedPointer):
145         (WebCore::MemoryInstrumentation::InstrumentedPointer::InstrumentedPointer):
146         (WebCore::MemoryInstrumentation::addObject):
147         (WebCore::MemoryInstrumentation::addInstrumentedObject):
148         (WebCore::MemoryInstrumentation::addRawBuffer):
149         (WebCore::MemoryInstrumentation::OwningTraits::addInstrumentedObject):
150         (WebCore::MemoryInstrumentation::OwningTraits::addObject):
151         (WebCore::MemoryInstrumentationTraits::addInstrumentedObject):
152         (WebCore::MemoryInstrumentationTraits::addObject):
153         (MemoryObjectInfo):
154         (WebCore::MemoryObjectInfo::MemoryObjectInfo):
155         (WebCore::MemoryObjectInfo::objectType):
156         (WebCore::MemoryObjectInfo::objectSize):
157         (WebCore::MemoryObjectInfo::memoryInstrumentation):
158         (WebCore::MemoryObjectInfo::reportObjectInfo):
159         (MemoryClassInfo):
160         (WebCore::MemoryClassInfo::MemoryClassInfo):
161         (WebCore::MemoryClassInfo::addInstrumentedMember):
162         (WebCore::MemoryClassInfo::addMember):
163         (WebCore::MemoryClassInfo::addHashMap):
164         (WebCore::MemoryClassInfo::addHashSet):
165         (WebCore::MemoryClassInfo::addHashCountedSet):
166         (WebCore::MemoryClassInfo::addInstrumentedHashSet):
167         (WebCore::MemoryClassInfo::addInstrumentedVector):
168         (WebCore::MemoryClassInfo::addInstrumentedVectorPtr):
169         (WebCore::MemoryClassInfo::addInstrumentedMapEntries):
170         (WebCore::MemoryClassInfo::addInstrumentedMapValues):
171         (WebCore::MemoryClassInfo::addListHashSet):
172         (WebCore::MemoryClassInfo::addVector):
173         (WebCore::MemoryClassInfo::addVectorPtr):
174         (WebCore::MemoryClassInfo::addRawBuffer):
175         (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
176         (WebCore::MemoryInstrumentation::addObjectImpl):
177         (WebCore::MemoryInstrumentation::addHashMap):
178         (WebCore::MemoryInstrumentation::addHashSet):
179         (WebCore::MemoryInstrumentation::addInstrumentedCollection):
180         (WebCore::MemoryInstrumentation::addInstrumentedMapEntries):
181         (WebCore::MemoryInstrumentation::addInstrumentedMapValues):
182         (WebCore::MemoryInstrumentation::addListHashSet):
183         (WebCore::MemoryInstrumentation::addVector):
184         (WebCore::MemoryInstrumentation::calculateContainerSize):
185         (WebCore::::process):
186
187 2012-09-09  Mark Lam  <mark.lam@apple.com>
188
189         Fixed ASSERT() and ASSERT_AT() macros so that they can be used in
190         comma expressions. Also, added UNUSED_LABEL().
191         https://bugs.webkit.org/show_bug.cgi?id=96127.
192
193         Reviewed by Geoffrey Garen.
194
195         * wtf/Assertions.h:
196         * wtf/UnusedParam.h: Added UNUSED_LABEL(). Removed an obsolete comment.
197
198 2012-09-09  Patrick Gansterer  <paroga@webkit.org>
199
200         Add StringBuilder::appendNumber() and use it
201         https://bugs.webkit.org/show_bug.cgi?id=96030
202
203         Reviewed by Eric Seidel.
204
205         Also fix a bunch of append() vs. appendLiteral() issues in the surrounding code.
206
207         * wtf/DateMath.cpp:
208         (WTF::makeRFC2822DateString):
209         * wtf/text/StringBuilder.cpp:
210         (WTF::StringBuilder::appendNumber):
211         * wtf/text/StringBuilder.h:
212         (StringBuilder):
213
214 2012-09-09  Patrick Gansterer  <paroga@webkit.org>
215
216         Make the String initialization on the function side of String::number()
217         https://bugs.webkit.org/show_bug.cgi?id=95940
218
219         Reviewed by Benjamin Poulain.
220
221         Un-Inline String::number() to make the String initialization done on the function side
222         instead of being on the caller side.
223
224         * GNUmakefile.list.am:
225         * WTF.gypi:
226         * WTF.pro:
227         * WTF.vcproj/WTF.vcproj:
228         * WTF.xcodeproj/project.pbxproj:
229         * wtf/CMakeLists.txt:
230         * wtf/text/IntegerToStringConversion.cpp: Removed.
231         * wtf/text/IntegerToStringConversion.h:
232         (WTF::numberToStringImpl):
233         (WTF::numberToStringSigned):
234         (WTF::numberToStringUnsigned):
235         * wtf/text/WTFString.cpp:
236         (WTF::String::number):
237         * wtf/text/WTFString.h:
238
239 2012-09-08  Andreas Kling  <kling@webkit.org>
240
241         Give AtomicString SimpleClassVectorTraits.
242         <http://webkit.org/b/96186>
243
244         Reviewed by Karl Anders Carlsson.
245
246         AtomicString can be initialized/moved/compared with memset/memcpy/memcmp,
247         so add a VectorTraits<AtomicString> to make Vector<AtomicString> a little
248         more efficient.
249
250         * wtf/VectorTraits.h:
251
252 2012-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
253
254         Unreviewed, rolling out r127938.
255         http://trac.webkit.org/changeset/127938
256         https://bugs.webkit.org/show_bug.cgi?id=96166
257
258         It broke the build (Requested by smfr on #webkit).
259
260         * wtf/Assertions.h:
261
262 2012-09-07  Mark Lam  <mark.lam@apple.com>
263
264         Fixed ASSERT() and ASSERT_AT() macros so that they can be used in
265         comma expressions.
266         https://bugs.webkit.org/show_bug.cgi?id=96127.
267
268         Reviewed by Filip Pizlo.
269
270         * wtf/Assertions.h:
271         (wtfAssert):
272
273 2012-09-07  Michael Saboff  <msaboff@apple.com>
274
275         StringImpl::find(StringImpl*) doesn't handle cases where search and match strings are different bitness
276         https://bugs.webkit.org/show_bug.cgi?id=96125
277
278         Reviewed by Benjamin Poulain.
279
280         Changed findInner and reverseFindInner to be templated on both search and match character types.
281         Changed both find's and reverseFind to use all four bitness combinations of findInner and
282         reverseFindInner.
283
284         * wtf/text/StringImpl.cpp:
285         (WTF::findInner):
286         (WTF::StringImpl::find):
287         (WTF::reverseFindInner):
288         (WTF::StringImpl::reverseFind):
289
290 2012-09-07  Michael Saboff  <msaboff@apple.com>
291
292         equalIgnoringCase of two StringImpls doesn't handle 8 bit strings
293         https://bugs.webkit.org/show_bug.cgi?id=96028
294
295         Reviewed by Benjamin Poulain.
296
297         Added 8 bit checks and paths to CaseFoldingHash::equal.  Also cleaned up StringHash::equal(), removing
298         obvious and in one case wrong comments.  Moved equalIgnoringCase(UChar*, UChar*) from StringImpl.cpp
299         to StringImpl.h.
300
301         * wtf/text/StringHash.h:
302         (WTF::StringHash::equal):
303         (WTF::CaseFoldingHash::equal):
304         * wtf/text/StringImpl.cpp:
305         * wtf/text/StringImpl.h:
306         (WTF::equalIgnoringCase):
307
308 2012-09-07  Patrick Gansterer  <paroga@webkit.org>
309
310         [WIN] Deprecate String += operator
311         https://bugs.webkit.org/show_bug.cgi?id=96083
312
313         Reviewed by Adam Barth.
314
315         * wtf/Platform.h:
316
317 2012-09-06  Michael Saboff  <msaboff@apple.com>
318
319         StringBuilder::toAtomicString() can create an 16 bit string with 8 bit contents
320         https://bugs.webkit.org/show_bug.cgi?id=96029
321
322         Reviewed by Benjamin Poulain.
323
324         Added 8 bit path when creating an AtomicString from a partial 8 bit buffer.
325
326         * wtf/text/StringBuilder.h:
327         (WTF::StringBuilder::toAtomicString):
328
329 2012-09-06  Michael Saboff  <msaboff@apple.com>
330
331         16 bit JSRopeString up converts an 8 bit fibers to 16 bits during resolution
332         https://bugs.webkit.org/show_bug.cgi?id=95810
333
334         Reviewed by Benjamin Poulain.
335
336         New copy routine that takes an 8 bit source and a 16 bit destination.  Used when copying
337         the contents of an 8 bit fiber to the 16 bit buffer when resolving a 16 bit rope.
338
339         * wtf/text/StringImpl.h:
340         (WTF::StringImpl::copyChars):
341         (StringImpl):
342
343 2012-09-06  Michael Saboff  <msaboff@apple.com>
344
345         Unreviewed fix to r127799.
346         https://bugs.webkit.org/show_bug.cgi?id=95807
347
348         Unreviewed fix.
349
350         Removed extraneous "static".  This code is hidden behind STRING_STATS define and 
351         therefore is not enabled by default.
352
353         * wtf/text/StringImpl.cpp:
354
355 2012-09-06  Lauro Neto  <lauro.neto@openbossa.org>
356
357         [Qt] Deprecate String += operator
358         https://bugs.webkit.org/show_bug.cgi?id=95895
359
360         Reviewed by Benjamin Poulain.
361
362         Remove Qt from WTF_DEPRECATED_STRING_OPERATORS guard.
363
364         * wtf/Platform.h:
365
366 2012-09-06  Michael Saboff  <msaboff@apple.com>
367
368         ENH: Add Logging to StringImpl to track String Types
369         https://bugs.webkit.org/show_bug.cgi?id=95807
370
371         Reviewed by Benjamin Poulain.
372
373         Added StringsStats class that keeps track of the number of strings, number of 8 and 16 bit
374         strings as well as the number of 8 bit strings up converted to 16 bits. The number of characrters
375         for each type is also accumulated. These statistics are output via DataLog every 5000
376         calls to StringImpl destructor. The 5000 can be adjusted via s_printStringStatsFrequency.
377         This StringStats code is disabled by default and enabled by defining STRING_STATS in
378         wtf/text/StringImpl.h.
379
380         * wtf/text/StringImpl.cpp:
381         (WTF::StringStats::removeString):
382         (WTF::StringStats::printStats):
383         (WTF::StringImpl::~StringImpl):
384         (WTF::StringImpl::getData16SlowCase):
385         * wtf/text/StringImpl.h:
386         (WTF::StringStats::add8BitString):
387         (StringStats):
388         (WTF::StringStats::add16BitString):
389         (WTF::StringStats::addUpconvertedString):
390         (WTF::StringImpl::StringImpl):
391         (StringImpl):
392         (WTF::StringImpl::isSubString):
393         (WTF::StringImpl::stringStats):
394
395 2012-09-06  Patrick Gansterer  <paroga@webkit.org>
396
397         Fix export macros in IntegerToStringConversion.h
398         https://bugs.webkit.org/show_bug.cgi?id=95900
399
400         Reviewed by Benjamin Poulain.
401
402         The WTF_EXPORT_STRING_API must be used only for symbols which are compiled
403         on windows in "non-WTF" binaries too. Since this isn't valid for the
404         IntegerToStringConversion function replace it with WTF_EXPORT_PRIVATE.
405
406         * wtf/text/IntegerToStringConversion.h:
407
408 2012-09-06  Simon Hausmann  <simon.hausmann@nokia.com>
409
410         [Qt] Various small Windows / MSVC build fixes
411         https://bugs.webkit.org/show_bug.cgi?id=95934
412
413         Reviewed by Kenneth Rohde Christiansen.
414
415         For the Qt build on Windows, do not enable WTF_USE_UNIX_DOMAIN_SOCKETS for
416         WebKit2 IPC.
417
418         * wtf/Platform.h:
419
420 2012-09-06  Adam Barth  <abarth@chromium.org>
421
422         Remove WTF::String::operator+=
423         https://bugs.webkit.org/show_bug.cgi?id=95797
424
425         Reviewed by Sam Weinig.
426
427         This patch encloses WTF::String::operator+= in an ifdef so that we can
428         gradually remove it from the various port-specific files. The ifdef
429         lets us whitelist use of operator+= in individual files during the
430         transition.
431
432         * wtf/Platform.h
433         * wtf/text/WTFString.h:
434
435 2012-09-05  Gabor Rapcsanyi  <rgabor@webkit.org>
436
437         DFG JIT doesn't work properly on ARM hardfp
438         https://bugs.webkit.org/show_bug.cgi?id=95684
439
440         Reviewed by Filip Pizlo.
441
442         Add hardfp support to DFG JIT. The patch is created with the
443         help of Zoltan Herczeg.
444
445         * wtf/Platform.h:
446
447 2012-09-04  Zoltan Horvath  <zoltan@webkit.org>
448
449         Extend the coverage of the Custom Allocation Framework in WTF and in JavaScriptCore
450         https://bugs.webkit.org/show_bug.cgi?id=95737
451
452         Reviewed by Eric Seidel.
453
454         Add WTF_MAKE_FAST_ALLOCATED macro to the following class declarations because these are instantiated by operator new.
455
456         * wtf/CryptographicallyRandomNumber.cpp: CryptographicallyRandomNumber is instantiated at wtf/CryptographicallyRandomNumber.cpp:162.
457         * wtf/MediaTime.h: MediaTime is instantiated at wtf/MediaTime.cpp:288.
458         * wtf/MetaAllocator.h:
459         (MetaAllocatorTracker): MetaAllocatorTracker is instantiated at JavaScriptCore/tools/CodeProfiling.cpp:120.
460         * wtf/ThreadingPthreads.cpp:
461         (PthreadState): PthreadState is instantiated at wtf/ThreadingPthreads.cpp:165.
462         * wtf/text/AtomicString.cpp:
463         (AtomicStringTable): AtomicStringTable is instantiated at wtf/text/AtomicString.cpp:43.
464
465 2012-09-01  Mark Lam  <mark.lam@apple.com>
466
467         LLInt C loop backend.
468         https://bugs.webkit.org/show_bug.cgi?id=91052.
469
470         Reviewed by Filip Pizlo.
471
472         Added configs for the llint C loop backend.
473
474         * wtf/Platform.h:
475
476 2012-08-31  Pratik Solanki  <psolanki@apple.com>
477
478         objc_msgSend and IMP should be cast appropriately before using
479         https://bugs.webkit.org/show_bug.cgi?id=95242
480
481         Reviewed by Benjamin Poulain.
482
483         Fix for older compilers. Pass id as the return type to the template
484         instead of relying on default type.
485
486         * wtf/Functional.h:
487         (WTF::R):
488         * wtf/ObjcRuntimeExtras.h:
489
490 2012-08-31  Michael Saboff  <msaboff@apple.com>
491
492         CSS Parser should directly parse 8 bit source strings
493         https://bugs.webkit.org/show_bug.cgi?id=95207
494
495         Reviewed by Geoffrey Garen.
496
497         * wtf/text/StringImpl.h:
498         (WTF::equalIgnoringCase): Added (const char*, const LChar*, unsigned) flavor to support
499         8 bit CSS parser work.
500
501 2012-08-30  Benjamin Poulain  <bpoulain@apple.com>
502
503         AtomicString(ASCIILiteral) should not compile
504         https://bugs.webkit.org/show_bug.cgi?id=95413
505
506         Reviewed by Adam Barth.
507
508         * wtf/text/AtomicString.h:
509         (AtomicString): Declare the constructor from ASCIILiteral private to ensure it is
510         not used by accident.
511
512 2012-08-30  Benjamin Poulain  <bpoulain@apple.com>
513
514         Ambiguous operator[]  after r127191 on some compiler
515         https://bugs.webkit.org/show_bug.cgi?id=95509
516
517         Reviewed by Simon Fraser.
518
519         * wtf/text/WTFString.h:
520         (WTF::String::characterAt): At this as a synonym to operator[] to attempt a build fix.
521
522 2012-08-30  Mark Lam  <mark.lam@apple.com>
523
524         Render unto #ifdef's that which belong to them.
525         https://bugs.webkit.org/show_bug.cgi?id=95482.
526
527         Reviewed by Filip Pizlo.
528
529         * wtf/Platform.h: Added ENABLE(COMPUTED_GOTO_OPCODES).
530
531 2012-08-30  Pratik Solanki  <psolanki@apple.com>
532
533         objc_msgSend and IMP should be cast appropriately before using
534         https://bugs.webkit.org/show_bug.cgi?id=95242
535
536         Reviewed by Benjamin Poulain.
537
538         Add new templates wtfObjcMsgSend and wtfCallIMP that do the appropriate
539         casts to correctly typed function pointers before calling objc_msgSend
540         and IMP methods directly.
541
542         * wtf/Functional.h:
543         (WTF::R): Use wtfObjcMsgSend.
544         * wtf/ObjcRuntimeExtras.h: Added.
545         (wtfObjcMsgSend):
546         (wtfCallIMP):
547
548 2012-08-30  Benjamin Poulain  <bpoulain@apple.com>
549
550         Replace JSC::UString by WTF::String
551         https://bugs.webkit.org/show_bug.cgi?id=95271
552
553         Reviewed by Geoffrey Garen.
554
555         * wtf/Platform.h: Useless edit to force a full build. This is needed for some bots for some reason.
556         * wtf/text/WTFString.h: Export a symbol that was exported on UString and needed in WebCore.
557
558         Add String::getCharactersWithUpconvert<>(), which is similar to String::getCharacters<>() but with the same
559         behaviors as UString::getCharacters<>().
560
561         String::getCharactersWithUpconvert<>() is useful when manipulating multiple strings, it allow writting code
562         using 16bits characters if any of the input String is not 8bit.
563
564 2012-08-30  Yong Li  <yoli@rim.com>
565
566         Vector::shrinkToFit should use realloc when suitable.
567         https://bugs.webkit.org/show_bug.cgi?id=94810
568
569         Reviewed by Benjamin Poulain.
570
571         Only tested on BlackBerry. So it is wrapped with PLATFORM(BLACKBERRY) in the mean time.
572         Use realloc to shrink buffer when inline buffer isn't involved and and canMoveWithMemcpy is true.
573
574         When running the test code attached to the bug, it gives 30-45% performance boost for the large blocks
575         (Every test cycle includes an extra pair of malloc/free, so the boost on shrinkToFit() is even bigger)
576         Performance impact on small blocks is not noticeable. (Tested on BlackBerry)
577
578         * wtf/Vector.h:
579         (WTF::VectorBufferBase::shouldReallocateBuffer):
580         (VectorBufferBase):
581         (WTF::VectorBufferBase::reallocateBuffer):
582         (VectorBuffer):
583         (WTF::VectorBuffer::shouldReallocateBuffer):
584         (WTF::VectorBuffer::reallocateBuffer):
585         (WTF::VectorBuffer::inlineBuffer):
586         (WTF::::shrinkCapacity):
587
588 2012-08-30  Patrick Gansterer  <paroga@webkit.org>
589
590         Build fix for COMPILER(MSVC) && !CPU(X86) after r127001.
591
592         * wtf/MathExtras.h:
593         (lrint): Added additional parentheses to silence compiler warning.
594
595 2012-08-29  Benjamin Poulain  <bpoulain@apple.com>
596
597         REGRESSION(r126780): Crash using StringImpl::is8Bit before checking if there is an impl
598         https://bugs.webkit.org/show_bug.cgi?id=95380
599
600         Reviewed by Michael Saboff.
601
602         Blindly copying code from UString in r126780 was stupid. I just brought over a bug.
603         This patch adds the zero length branch back so that null strings are handled correctly.
604
605         * wtf/text/WTFString.cpp:
606         (WTF::String::ascii): Return a empty CString if the String is null or empty.
607
608 2012-08-29  Dominik Röttsches  <dominik.rottsches@intel.com>
609
610         The 2d.imageData.object.round canvas test is failing
611         https://bugs.webkit.org/show_bug.cgi?id=40272
612
613         Reviewed by Benjamin Poulain.
614
615         Updating previous patch to address Benjamin's comments.
616         #ifdef in Uint8ClampedArray removed, fallback implementation for MSVC on non-X86 added.
617
618         * wtf/MathExtras.h:
619         (lrint): Fallback implementation for non-X86 & MSVC case.
620         * wtf/Uint8ClampedArray.h: Removed #ifdef.
621
622 2012-08-28  Sheriff Bot  <webkit.review.bot@gmail.com>
623
624         Unreviewed, rolling out r126914.
625         http://trac.webkit.org/changeset/126914
626         https://bugs.webkit.org/show_bug.cgi?id=95239
627
628         it breaks everything and fixes nothing (Requested by pizlo on
629         #webkit).
630
631         * wtf/HashCountedSet.h:
632         (WTF::::add):
633         (WTF::::remove):
634         (WTF::copyToVector):
635         * wtf/HashIterators.h:
636         (WTF::HashTableConstKeysIterator::get):
637         (WTF::HashTableConstValuesIterator::get):
638         (WTF::HashTableKeysIterator::get):
639         (WTF::HashTableValuesIterator::get):
640         * wtf/HashMap.h:
641         (WTF::KeyValuePairKeyExtractor::extract):
642         (WTF::HashMapValueTraits::isEmptyValue):
643         (WTF::HashMapTranslator::translate):
644         (WTF::HashMapTranslatorAdapter::translate):
645         (WTF::::set):
646         (WTF::::get):
647         (WTF::::take):
648         (WTF::operator==):
649         (WTF):
650         (WTF::deleteAllPairSeconds):
651         (WTF::deleteAllValues):
652         (WTF::deleteAllPairFirsts):
653         (WTF::deleteAllKeys):
654         * wtf/HashTable.h:
655         (WTF::hashTableSwap):
656         (WTF::::checkTableConsistencyExceptSize):
657         * wtf/HashTraits.h:
658         (WTF::KeyValuePair::KeyValuePair):
659         (KeyValuePair):
660         (WTF::KeyValuePairHashTraits::constructDeletedValue):
661         (WTF::KeyValuePairHashTraits::isDeletedValue):
662         * wtf/MetaAllocator.cpp:
663         (WTF::MetaAllocator::addFreeSpace):
664         (WTF::MetaAllocator::incrementPageOccupancy):
665         (WTF::MetaAllocator::decrementPageOccupancy):
666         * wtf/RefCountedLeakCounter.cpp:
667         (WTF::RefCountedLeakCounter::~RefCountedLeakCounter):
668         * wtf/RefPtrHashMap.h:
669         (WTF::::set):
670         (WTF::::get):
671         (WTF::::inlineGet):
672         (WTF::::take):
673         * wtf/Spectrum.h:
674         (WTF::Spectrum::add):
675         (WTF::Spectrum::get):
676         (WTF::Spectrum::buildList):
677         * wtf/ThreadingPthreads.cpp:
678         (WTF::identifierByPthreadHandle):
679
680 2012-08-28  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
681
682         Rename first/second to key/value in HashMap iterators
683         https://bugs.webkit.org/show_bug.cgi?id=82784
684
685         Reviewed by Eric Seidel.
686
687         * wtf/HashCountedSet.h:
688         (WTF::::add):
689         (WTF::::remove):
690         (WTF::copyToVector):
691         * wtf/HashIterators.h:
692         (WTF::HashTableConstKeysIterator::get):
693         (WTF::HashTableConstValuesIterator::get):
694         (WTF::HashTableKeysIterator::get):
695         (WTF::HashTableValuesIterator::get):
696         * wtf/HashMap.h:
697         (WTF::KeyValuePairKeyExtractor::extract):
698         (WTF::HashMapValueTraits::isEmptyValue):
699         (WTF::HashMapTranslator::translate):
700         (WTF::HashMapTranslatorAdapter::translate):
701         (WTF::::set):
702         (WTF::::get):
703         (WTF::::take):
704         (WTF::operator==):
705         (WTF::deleteAllValues):
706         (WTF::deleteAllKeys):
707         Remove deleteAllPairFirsts/Seconds.
708
709         * wtf/HashTable.h:
710         (WTF::hashTableSwap):
711         (WTF::::checkTableConsistencyExceptSize):
712         * wtf/HashTraits.h:
713         (WTF::KeyValuePair::KeyValuePair):
714         (KeyValuePair):
715         (WTF::KeyValuePairHashTraits::constructDeletedValue):
716         (WTF::KeyValuePairHashTraits::isDeletedValue):
717         * wtf/MetaAllocator.cpp:
718         (WTF::MetaAllocator::addFreeSpace):
719         (WTF::MetaAllocator::incrementPageOccupancy):
720         (WTF::MetaAllocator::decrementPageOccupancy):
721         * wtf/RefCountedLeakCounter.cpp:
722         (WTF::RefCountedLeakCounter::~RefCountedLeakCounter):
723         * wtf/RefPtrHashMap.h:
724         (WTF::::set):
725         (WTF::::get):
726         (WTF::::inlineGet):
727         (WTF::::take):
728         * wtf/Spectrum.h:
729         (WTF::Spectrum::add):
730         (WTF::Spectrum::get):
731         (WTF::Spectrum::buildList):
732         * wtf/ThreadingPthreads.cpp:
733         (WTF::identifierByPthreadHandle):
734
735 2012-08-27  Sheriff Bot  <webkit.review.bot@gmail.com>
736
737         Unreviewed, rolling out r126836.
738         http://trac.webkit.org/changeset/126836
739         https://bugs.webkit.org/show_bug.cgi?id=95163
740
741         Broke all Apple ports, EFL, and Qt. (Requested by tkent on
742         #webkit).
743
744         * wtf/HashCountedSet.h:
745         (WTF::::add):
746         (WTF::::remove):
747         (WTF::copyToVector):
748         * wtf/HashIterators.h:
749         (WTF::HashTableConstKeysIterator::get):
750         (WTF::HashTableConstValuesIterator::get):
751         (WTF::HashTableValuesIterator::get):
752         * wtf/HashMap.h:
753         (WTF::KeyValuePairKeyExtractor::extract):
754         (WTF::HashMapValueTraits::isEmptyValue):
755         (WTF::HashMapTranslator::translate):
756         (WTF::HashMapTranslatorAdapter::translate):
757         (WTF::::set):
758         (WTF::::get):
759         (WTF::::take):
760         (WTF::operator==):
761         (WTF):
762         (WTF::deleteAllPairSeconds):
763         (WTF::deleteAllValues):
764         (WTF::deleteAllPairFirsts):
765         (WTF::deleteAllKeys):
766         * wtf/HashTable.h:
767         (WTF::hashTableSwap):
768         (WTF::::checkTableConsistencyExceptSize):
769         * wtf/HashTraits.h:
770         (WTF::KeyValuePair::KeyValuePair):
771         (KeyValuePair):
772         (WTF::KeyValuePairHashTraits::constructDeletedValue):
773         (WTF::KeyValuePairHashTraits::isDeletedValue):
774         * wtf/MetaAllocator.cpp:
775         (WTF::MetaAllocator::addFreeSpace):
776         (WTF::MetaAllocator::incrementPageOccupancy):
777         (WTF::MetaAllocator::decrementPageOccupancy):
778         * wtf/RefCountedLeakCounter.cpp:
779         (WTF::RefCountedLeakCounter::~RefCountedLeakCounter):
780         * wtf/RefPtrHashMap.h:
781         (WTF::::set):
782         (WTF::::get):
783         (WTF::::inlineGet):
784         (WTF::::take):
785         * wtf/Spectrum.h:
786         (WTF::Spectrum::add):
787         (WTF::Spectrum::get):
788         (WTF::Spectrum::buildList):
789         * wtf/ThreadingPthreads.cpp:
790         (WTF::identifierByPthreadHandle):
791
792 2012-08-27  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
793
794         Rename first/second to key/value in HashMap iterators
795         https://bugs.webkit.org/show_bug.cgi?id=82784
796
797         Reviewed by Eric Seidel.
798
799         * wtf/HashCountedSet.h:
800         (WTF::::add):
801         (WTF::::remove):
802         (WTF::copyToVector):
803         * wtf/HashIterators.h:
804         (WTF::HashTableConstKeysIterator::get):
805         (WTF::HashTableConstValuesIterator::get):
806         (WTF::HashTableValuesIterator::get):
807         * wtf/HashMap.h:
808         (WTF::KeyValuePairKeyExtractor::extract):
809         (WTF::HashMapValueTraits::isEmptyValue):
810         (WTF::HashMapTranslator::translate):
811         (WTF::HashMapTranslatorAdapter::translate):
812         (WTF::::set):
813         (WTF::::get):
814         (WTF::::take):
815         (WTF::operator==):
816         (WTF::deleteAllValues):
817         (WTF::deleteAllKeys):
818         Remove deleteAllPairFirsts/Seconds.
819
820         * wtf/HashTable.h:
821         (WTF::hashTableSwap):
822         (WTF::::checkTableConsistencyExceptSize):
823         * wtf/HashTraits.h:
824         (WTF::KeyValuePair::KeyValuePair):
825         (KeyValuePair):
826         (WTF::KeyValuePairHashTraits::constructDeletedValue):
827         (WTF::KeyValuePairHashTraits::isDeletedValue):
828         * wtf/MetaAllocator.cpp:
829         (WTF::MetaAllocator::addFreeSpace):
830         (WTF::MetaAllocator::incrementPageOccupancy):
831         (WTF::MetaAllocator::decrementPageOccupancy):
832         * wtf/RefCountedLeakCounter.cpp:
833         (WTF::RefCountedLeakCounter::~RefCountedLeakCounter):
834         * wtf/RefPtrHashMap.h:
835         (WTF::::set):
836         (WTF::::get):
837         (WTF::::inlineGet):
838         (WTF::::take):
839         * wtf/Spectrum.h:
840         (WTF::Spectrum::add):
841         (WTF::Spectrum::get):
842         (WTF::Spectrum::buildList):
843         * wtf/ThreadingPthreads.cpp:
844         (WTF::identifierByPthreadHandle):
845
846 2012-08-27  Benjamin Poulain  <benjamin@webkit.org>
847
848         Add ECMAScript Number to String conversion to WTF::String
849         https://bugs.webkit.org/show_bug.cgi?id=95016
850
851         Reviewed by Geoffrey Garen.
852
853         * wtf/text/WTFString.cpp:
854         (WTF::String::numberToStringECMAScript):
855         * wtf/text/WTFString.h:
856         Add the implementation of numberToStringECMAScript(double) from UString to String.
857         This will make it easier to replace UString in the future.
858
859 2012-08-27  Benjamin Poulain  <benjamin@webkit.org>
860
861         Even up WTF::String to CString functions
862         https://bugs.webkit.org/show_bug.cgi?id=95008
863
864         Reviewed by Sam Weinig.
865
866         Apply advantages from UString to WTF::String.
867
868         * wtf/text/WTFString.cpp:
869         (WTF::String::ascii): There is no need to special case the null length, both
870         following branches use CString::newUninitialized(), which create empty string
871         for null length.
872         (WTF::String::latin1): Use characters16() instead of characters() to avoid
873         testing is8Bit() a second time.
874
875 2012-08-24  Benjamin Poulain  <benjamin@webkit.org>
876
877         Touch Platform.h to solve a build dependency issue
878
879         Unreviewed.
880
881         * wtf/Platform.h:
882
883 2012-08-24  Benjamin Poulain  <bpoulain@apple.com>
884
885         Unify Number to StringImpl conversion
886         https://bugs.webkit.org/show_bug.cgi?id=94879
887
888         Reviewed by Geoffrey Garen.
889
890         Previously, UString::number() and String::number() used different implementations.
891
892         WTF::String::number() was simply forwarding to String::format().
893         UString::number() had an optimized version of the conversion.
894
895         This patch replace both implementation by a new version, faster than the two previous versions.
896
897         The new functions numberToStringImpl improvements are:
898         -about 3 times faster than String::number().
899         -14% faster than UString::number() on signed numbers.
900         -9% faster than UString::number() on unsigned numbers.
901
902         * GNUmakefile.list.am:
903         * WTF.gypi:
904         * WTF.pro:
905         * WTF.vcproj/WTF.vcproj:
906         * WTF.xcodeproj/project.pbxproj:
907         * wtf/CMakeLists.txt:
908         * wtf/text/IntegerToStringConversion.cpp: Added.
909         (WTF::numberToStringImplSigned):
910         (WTF::numberToStringImpl):
911         (WTF::numberToStringImplUnsigned):
912         * wtf/text/IntegerToStringConversion.h: Added.
913         * wtf/text/WTFString.cpp:
914         (WTF::String::format):
915         * wtf/text/WTFString.h:
916         (WTF::String::number):
917
918 2012-08-24  Andras Becsi  <andras.becsi@nokia.com>
919
920         [Qt] Be more explicit about the ICU dependency in the error message
921
922         Rubber-stamped by Simon Hausmann.
923
924         When building QtWebKit with a Qt5 which was not configured with libICU support
925         the error message is somewhat ambiguous about the indirect dependency.
926
927         * WTF.pri:
928
929 2012-08-23  Julien Chaffraix  <jchaffraix@webkit.org>
930
931         [Chromium] Enable AtomicString && CString && WTFString && StringImpl unit tests
932         https://bugs.webkit.org/show_bug.cgi?id=94871
933
934         Reviewed by Benjamin Poulain.
935
936         * wtf/PassRefPtr.h:
937         We need to include Assertions.h due to the COMPILE_ASSERT added in r89283.
938         This matches other files in WTF though I am not sure why Chromium is the only
939         platform complaining about that.
940
941 2012-08-23  Mark Rowe  <mrowe@apple.com>
942
943         Build fix for old, old versions of Clang.
944
945         * wtf/FastMalloc.cpp:
946         (WTF): Rejigger things so that they parse correctly if __has_warning isn't defined.
947
948 2012-08-23  Emil A Eklund  <eae@chromium.org>
949
950         Add saturation arithmetic support to FractionalLayoutUnit
951         https://bugs.webkit.org/show_bug.cgi?id=94364
952
953         Reviewed by Benjamin Poulain.
954
955         Add support functions for saturated addition and subtraction.
956
957         Test: TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp
958
959         * GNUmakefile.list.am:
960         * WTF.gypi:
961         * WTF.pro:
962         * WTF.vcproj/WTF.vcproj:
963         * WTF.xcodeproj/project.pbxproj:
964         * WTF/wtf/CMakeLists.txt:
965         Add SaturatedArithmetic.h to build files.
966
967         * wtf/SaturatedArithmetic.h: Added.
968         (saturatedAddition):
969         (saturatedSubtraction):
970         Support functions for saturated addition/subtraction. Compares the signed
971         bit of the values instead of using range checks to reduce branching.
972
973         * wtf/Platform.h:
974         Add ENABLE_SATURATED_LAYOUT_ARITHMETIC flag.
975
976 2012-08-23  Mark Rowe  <mrowe@apple.com>
977
978         Roll back in the part of r126475 that I had rolled out.
979
980         * wtf/FastMalloc.cpp:
981         (WTF): Disable the -Wunused-private-field warning around the declaration of
982         TCMalloc_Central_FreeListPadded since the padding is intentionally unused.
983         Only disable the warning if we detect it is enabled, since the warning may not
984         be supported by the version of Clang that is being used.
985
986 2012-08-23  Mark Rowe  <mrowe@apple.com>
987
988         Roll out part of r126475 that breaks the build with older versions of Clang.
989
990         * wtf/FastMalloc.cpp:
991
992 2012-08-23  Mark Rowe  <mrowe@apple.com>
993
994         Make WTF build with the latest version of clang.
995
996         Reviewed by Dan Bernstein.
997
998         * wtf/FastMalloc.cpp:
999         (WTF): Disable the -Wunused-private-field warning around the declaration of
1000         TCMalloc_Central_FreeListPadded since the padding is intentionally unused.
1001         (WTF::AdminRegionRecorder): Remove the unused m_reader member.
1002         (WTF::FastMallocZone::enumerate): Don't pass in the RemoteMemoryReader since
1003         it is no longer needed.
1004
1005 2012-08-22  Geoffrey Garen  <ggaren@apple.com>
1006
1007         Fixed a fastMallocForbid/Allow compile error for some compilers
1008         https://bugs.webkit.org/show_bug.cgi?id=94775
1009
1010         Reviewed by Gavin Barraclough.
1011
1012         * wtf/FastMalloc.h:
1013         (WTF::fastMallocForbid()):
1014         (WTF::fastMallocAllow()): Export, since these are called by JavaScriptCore.
1015
1016 2012-08-22  Geoffrey Garen  <ggaren@apple.com>
1017
1018         ThreadRestrictionVerifier should be opt-in, not opt-out
1019         https://bugs.webkit.org/show_bug.cgi?id=94761
1020
1021         Reviewed by Mark Hahnenberg.
1022
1023         WebKit's JavaScript engine supports use on multiple threads, so default-on
1024         is not appropriate for most of our objects, and it causes lots of suprious
1025         assertions.
1026
1027         * wtf/MetaAllocator.cpp:
1028         (WTF::MetaAllocatorHandle::MetaAllocatorHandle): No need to turn off
1029         explicitly, since it's off by default now.
1030
1031         * wtf/ThreadRestrictionVerifier.h:
1032         (WTF::ThreadRestrictionVerifier::ThreadRestrictionVerifier): Turn off by default.
1033
1034         (WTF::ThreadRestrictionVerifier::setMutexMode):
1035         (WTF::ThreadRestrictionVerifier::setDispatchQueueMode):
1036         (WTF::ThreadRestrictionVerifier::turnOffVerification): These assertions
1037         about state transitions were inconsistent with each other, and impossible
1038         to maintain with default off, so I removed them.
1039
1040 2012-08-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1041
1042         [Qt] Optionally support smooth-scrolling on all platforms
1043         https://bugs.webkit.org/show_bug.cgi?id=74926
1044
1045         Reviewed by Simon Hausmann.
1046
1047         Initialize GESTURE_ANIMATION feature flag.
1048
1049         * wtf/Platform.h:
1050
1051 2012-08-21  Mark Hahnenberg  <mhahnenberg@apple.com>
1052
1053         WTF Threading leaks kernel objects on platforms that use pthreads
1054         https://bugs.webkit.org/show_bug.cgi?id=94636
1055
1056         Reviewed by Geoffrey Garen.
1057
1058         Creating lots of Web workers on Mac platforms leaks lots of Mach ports. Eventually, the 
1059         process can exhaust its allocation of Mach ports from the kernel, which can then cause 
1060         all sorts of badness, including the inability to allocate new virtual memory from the 
1061         kernel. ThreadingPthreads.cpp and ThreadIdentifierDataPthreads.cpp need to be refactored 
1062         so that we do not leak these kernel resources. I would assume that we also leak kernel 
1063         resources on other pthreads platforms as well.
1064
1065         * wtf/ThreadIdentifierDataPthreads.cpp:
1066         (WTF):
1067         (WTF::ThreadIdentifierData::~ThreadIdentifierData): Now calls the event threadDidExit, which 
1068         handles all relevant tear-down of the thread metadata in the thread map.
1069         * wtf/ThreadingPthreads.cpp: Added a new class called PthreadState that encapsulates the 
1070         state of a thread and the possible transitions between those states.
1071         (PthreadState):
1072         (WTF::PthreadState::PthreadState):
1073         (WTF::PthreadState::joinableState): Returns the current state of the pthread.
1074         (WTF::PthreadState::pthreadHandle): Returns the pthread_t for this particular thread. This needs to 
1075         remain valid even after the thread has exited because somebody could come along at any time in the 
1076         future and call join on the thread.
1077         (WTF::PthreadState::didBecomeDetached): Signals that the thread was detached.
1078         (WTF::PthreadState::didExit): Signals that the thread's exit destructor (~ThreadIdentifierData) has run.
1079         (WTF::PthreadState::didJoin): Signals that the thread has been joined on successfully.
1080         (WTF::PthreadState::hasExited): Returns whether or not the thread's exit destructor has run.
1081         (WTF):
1082         (WTF::identifierByPthreadHandle): Changed to also check hasExited() on the threads it finds in the map. We 
1083         should only have one valid pthread_t in the map, but there are other pthread_t's that need to remain in the 
1084         thread map for when somebody joins on that thread id later.
1085         (WTF::establishIdentifierForPthreadHandle): Changed to put the allocate the new PthreadState data structure and 
1086         put it in the map.
1087         (WTF::pthreadHandleForIdentifierWithLockAlreadyHeld):
1088         (WTF::wtfThreadEntryPoint):
1089         (WTF::waitForThreadCompletion): We now do the relevant cleanup after the specified thread has been 
1090         successfully joined on depending on if the joined thread has already exited.
1091         (WTF::detachThread): Performs relevant cleanup if the thread has already exited. Otherwise signals to the 
1092         PthreadState that the thread has been detached.
1093         (WTF::threadDidExit): Function called by ~ThreadIdentifierData to indicate that the thread has exited. 
1094         Only cleans up after itself if the thread isn't Joinable (i.e. Joined or Detached).
1095
1096 2012-08-21  Ulan Degenbaev  <ulan@chromium.org>
1097
1098         Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer constructed and destructed
1099         https://bugs.webkit.org/show_bug.cgi?id=92993
1100
1101         Reviewed by Kenneth Russell.
1102
1103         Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer
1104         is constructed and destructed so that V8's garbage collection
1105         heuristics can account for the memory held by these objects.
1106
1107         * wtf/ArrayBuffer.h:
1108         (WTF):
1109         (ArrayBufferDeallocationObserver):
1110         (WTF::ArrayBufferContents::ArrayBufferContents):
1111         (WTF::ArrayBufferContents::transfer):
1112         (ArrayBufferContents):
1113         (ArrayBuffer):
1114         (WTF::ArrayBuffer::setDeallocationObserver):
1115         (WTF::ArrayBufferContents::~ArrayBufferContents):
1116
1117 2012-08-21  Benjamin Poulain  <bpoulain@apple.com>
1118
1119         Store CString data in the CStringBuffer to avoid the double indirection
1120         https://bugs.webkit.org/show_bug.cgi?id=94562
1121
1122         Reviewed by Darin Adler.
1123
1124         Previously, any non-trivial CString would require two allocations:
1125         1) CStringBuffer (ref-counted container for CString's data).
1126         2) VectorBuffer's m_buffer (the actual char data).
1127
1128         This patches changes CStringBuffer to hold the data previously owned by
1129         WTF::Vector and WTF::VectorBuffer. This makes CString more efficient
1130         both in CPU time and memory use.
1131
1132         * wtf/text/CString.cpp:
1133         (WTF::CStringBuffer::createUninitialized): This new method allocate the memory
1134         for CStringBuffer and its data. We simply allocate more memory after CStringBuffer
1135         to hold the data.
1136
1137         The extra memory needed to store the terminating zero is now handled by design.
1138         (WTF::CString::CString): Move the test for "str" one level up the stack from CString::init().
1139         This avoid double checking the pointer when using the other constructor.
1140         (WTF::CString::init):
1141         (WTF::CString::newUninitialized):
1142         (WTF::CString::copyBufferIfNeeded):
1143         * wtf/text/CString.h:
1144         (WTF::CStringBuffer::data):
1145         (WTF::CStringBuffer::length):
1146         (CStringBuffer):
1147         (WTF::CStringBuffer::CStringBuffer):
1148         (WTF::CStringBuffer::mutableData):
1149         (WTF::CString::length):
1150
1151 2012-08-21  Patrick Gansterer  <paroga@webkit.org>
1152
1153         Build fix for COMPILER(MSVC) && !CPU(X86) after r126023.
1154
1155         * wtf/MathExtras.h:
1156         (lrint):
1157
1158 2012-08-20  Dominik Röttsches  <dominik.rottsches@intel.com>
1159
1160         The 2d.imageData.object.round canvas test is failing
1161         https://bugs.webkit.org/show_bug.cgi?id=40272
1162
1163         Reviewed by Kenneth Rohde Christiansen.
1164
1165         According to the Uint8ClampedArray spec (http://www.khronos.org/registry/typedarray/specs/latest/#7.1)
1166         which references WebIDL's clamping rules, with implications defined in http://www.w3.org/TR/WebIDL/#es-octet
1167         we need to round to nearest integer, and to the even one if exactly halfway in between.
1168         As a solution: applying C99's lrint which, in default rounding mode, does that.
1169
1170         The updated version of test 2d.imageData.object.round.html test passes now.
1171
1172         * wtf/MathExtras.h:
1173         (lrint): Assembly based implementation for MSVC under X86, otherwise falling back to casting.
1174         * wtf/Uint8ClampedArray.h:
1175         (WTF::Uint8ClampedArray::set): lrint instead of simple rounding.
1176
1177 2012-08-17  Michael Saboff  <msaboff@apple.com>
1178
1179         Add ability to create AtomicString using LChar* buffer and length
1180         https://bugs.webkit.org/show_bug.cgi?id=94381
1181
1182         Reviewed by Geoffrey Garen.
1183
1184         Allows the use of 8 bit string data directly without converting to 16 bits first.
1185
1186         * wtf/text/AtomicString.cpp:
1187         (WTF::LCharBufferTranslator::hash):
1188         (LCharBufferTranslator):
1189         (WTF::LCharBufferTranslator::equal):
1190         (WTF::LCharBufferTranslator::translate):
1191         (WTF::AtomicString::add):
1192         * wtf/text/AtomicString.h:
1193         (WTF::AtomicString::AtomicString):
1194         (AtomicString):
1195         * wtf/text/StringImpl.h:
1196         (StringImpl):
1197
1198 2012-08-17  Benjamin Poulain  <bpoulain@apple.com>
1199
1200         Make it easier to append a literal to StringBuilder
1201         https://bugs.webkit.org/show_bug.cgi?id=94273
1202
1203         Reviewed by Kentaro Hara.
1204
1205         * wtf/text/StringBuilder.h:
1206         (WTF::StringBuilder::appendLiteral): Add the method StringBuilder::appendLiteral() for efficiently
1207         adding a string literal to the StringBuilder.
1208
1209 2012-08-17  Yong Li  <yoli@rim.com>
1210
1211         [BlackBerry] Turn on a few macros for jpeg decoding and image interpolation
1212         https://bugs.webkit.org/show_bug.cgi?id=94244
1213
1214         Reviewed by Antonio Gomes.
1215
1216         Turn on these macros to get better performance.
1217
1218         * wtf/Platform.h:
1219
1220 2012-08-17  Milian Wolff  <milian.wolff@kdab.com>
1221
1222         [Qt] QNX build fails due to ctype usage in system headers
1223         https://bugs.webkit.org/show_bug.cgi?id=93849
1224
1225         Reviewed by Simon Hausmann.
1226
1227         Move the check for whether DisallowCType should be active or not
1228         to the DisallowCType.h header. This way, we can update the list
1229         of platforms or OSes which do not work with this header in a
1230         central place. All users can now safely include the header
1231         and do not need to place custom guards around it.
1232
1233         * config.h:
1234         * wtf/DisallowCType.h:
1235
1236 2012-08-17  Milian Wolff  <milian.wolff@kdab.com>
1237
1238         [Qt] QNX build fails due to missing timegm declaration
1239         https://bugs.webkit.org/show_bug.cgi?id=93842
1240
1241         Reviewed by Simon Hausmann.
1242
1243         On QNX, timegm is declared in nbutils.h and one must link against
1244         nbutils to use it.
1245
1246         * WTF.pri:
1247         * wtf/DateMath.cpp:
1248
1249 2012-08-16  Kent Tamura  <tkent@chromium.org>
1250
1251         Build fix for Chromium-mac.
1252
1253         * wtf/text/WTFString.cpp: Remove unnecessary includes.
1254
1255 2012-08-16  Michael Saboff  <msaboff@apple.com>
1256
1257         HTML Parser should produce 8bit substrings for inline style and script elements
1258         https://bugs.webkit.org/show_bug.cgi?id=93742
1259
1260         Reviewed by Benjamin Poulain.
1261
1262         Added 8 bit path to String::isAllSpecialCharacters(). Added new String creator
1263         that takes a pointer to a UChar array that is known to contain only 8 bit
1264         characters (LChar's). Added new helper method to copy contents of a
1265         UChar buffer to a LChar buffer. The helper method includes X86-64 intrinsics
1266         of SSE family instructions for performance.
1267
1268         * wtf/Alignment.h:
1269         (WTF::isAlignedTo):
1270         * wtf/text/ASCIIFastPath.h:
1271         (WTF::copyLCharsFromUCharSource):
1272         * wtf/text/WTFString.cpp:
1273         (WTF::String::make8BitFrom16BitSource):
1274         * wtf/text/WTFString.h:
1275         (String):
1276         (WTF::isAllSpecialCharacters):
1277         (WTF::String::isAllSpecialCharacters):
1278
1279 2012-08-16  Benjamin Poulain  <bpoulain@apple.com>
1280
1281         Use initialization from literals for StringStatics
1282         https://bugs.webkit.org/show_bug.cgi?id=94185
1283
1284         Reviewed by Geoffrey Garen.
1285
1286         * wtf/text/StringStatics.cpp:
1287         Remove the arguments for DEFINE_GLOBAL. They are no longer used by the macro.
1288         (WTF::AtomicString::init):
1289         Use ConstructFromLiteral to initialize the strings faster and to save memory.
1290
1291 2012-08-14  Milian Wolff  <milian.wolff@kdab.com>
1292
1293         [Qt] QNX build fails due to reference to MADV_FREE_REUSE and MADV_FREE_REUSABLE
1294         https://bugs.webkit.org/show_bug.cgi?id=93843
1295
1296         Reviewed by Simon Hausmann.
1297
1298         QNX does not implement MADV_FREE_REUSE nor MADV_FREE_REUSABLE.
1299         The Blackberry port already sets the define to use the system
1300         malloc, which is now also done for QNX in general.
1301
1302         * wtf/Platform.h:
1303
1304 2012-08-13  Raphael Kubo da Costa  <rakuco@webkit.org>
1305
1306         [CMake] Remove glib-related Find modules and write single new one instead.
1307         https://bugs.webkit.org/show_bug.cgi?id=93786
1308
1309         Reviewed by Rob Buis.
1310
1311         * wtf/PlatformEfl.cmake: Use GLIB_* instead of Glib_*, and link directly to GIO, as wtf/gobject uses functions from it.
1312
1313 2012-08-11  Sam Weinig  <sam@webkit.org>
1314
1315         Enable XPC Service based WebProcess with runtime flag
1316         https://bugs.webkit.org/show_bug.cgi?id=93773
1317
1318         Reviewed by Dan Bernstein.
1319
1320         * wtf/Platform.h:
1321         Define HAVE_XPC on 10.7 and later.
1322
1323 2012-08-11  Benjamin Poulain  <bpoulain@apple.com>
1324
1325         Do the DecimalNumber to String conversion on 8 bits
1326         https://bugs.webkit.org/show_bug.cgi?id=93683
1327
1328         Reviewed by Andreas Kling.
1329
1330         Modify DecimalNumber to do the conversion to string on LChar instead of UChar.
1331
1332         * wtf/DecimalNumber.cpp:
1333         (WTF::DecimalNumber::toStringDecimal):
1334         (WTF::DecimalNumber::toStringExponential):
1335         * wtf/DecimalNumber.h:
1336         (DecimalNumber):
1337         * wtf/dtoa.h:
1338         * wtf/text/StringBuffer.h:
1339         (WTF::StringBuffer::operator[]): StringBuffer::operator[] was incorrectly typed to UChar, making
1340         the method impossible to instanciate with LChar.
1341         * wtf/text/WTFString.h:
1342         (String):
1343         (WTF::String::adopt): String::adopt() is modified to work with both LChar and UChar. StringImpl
1344         already support that.
1345         (WTF::appendNumber): Add support for any type that can instanciate the template.
1346
1347 2012-08-11  Benjamin Poulain  <benjamin@webkit.org>
1348
1349         WebCore::findAtomicString(PropertyName) always convert the name to 16bits
1350         https://bugs.webkit.org/show_bug.cgi?id=93685
1351
1352         Reviewed by Geoffrey Garen.
1353
1354         Previously, WebCore::findAtomicString() was causing a conversion for the 8bit property name
1355         to a 16bits due to the call to StringImpl::character16().
1356
1357         This patch fixes the issue by adding support for both 8bits and 16bits string in AtomicString::find().
1358
1359         * wtf/text/AtomicString.cpp:
1360         (HashAndCharacters):
1361         (WTF::HashAndCharactersTranslator::hash):
1362         (WTF::HashAndCharactersTranslator::equal):
1363         (WTF::HashAndCharactersTranslator::translate):
1364         Use a template to make the struct and the translator independant of the CharacterType.
1365
1366         (WTF::AtomicString::add):
1367         (WTF::findString):
1368         (WTF::AtomicString::find): Change the API to take a StringImpl*. AtomicString can use
1369         it efficiently to find the right string.
1370         * wtf/text/AtomicString.h:
1371         (AtomicString):
1372         * wtf/text/StringImpl.h:
1373         (StringImpl): Adapt the friends translator to support the template.
1374
1375 2012-08-10  Benjamin Poulain  <bpoulain@apple.com>
1376
1377         Add support for String initialization from literal to WTFString
1378         https://bugs.webkit.org/show_bug.cgi?id=93426
1379
1380         Reviewed by Anders Carlsson.
1381
1382         This patch adds two constructor to WTF::String in order to support fast initialization from literal:
1383         -String(ASCIILiteral): Constructor similar to String(const char*) while being faster. This constructor
1384          does not incur any overhead over String(const char*).
1385         -String(char[], ConstructFromLiteralTag): Template constructor that encode explicitely the size of the
1386          string.
1387
1388         String(ASCIILiteral) is expected to be used in most cases to avoid regressions. This constructor was
1389         added because of what we have learned from r124922: inlining the string length in the code causes a code bloat
1390         that is not always welcome.
1391
1392         Regarding performance of string initialization, the constructors performance are (6 characters string):
1393         -String(ASCIILiteral): 16% faster.
1394         -String(char[], ConstructFromLiteralTag): 33% faster (the delta increases with the string length).
1395
1396         In addition, no memory is allocated for the characters.
1397
1398         * wtf/text/StringImpl.cpp:
1399         * wtf/text/StringImpl.h:
1400         (WTF::StringImpl::createFromLiteral): Extend StringImpl::createFromLiteral to have a version
1401         with strlen() which avoids loading one extra argument.
1402         * wtf/text/WTFString.cpp:
1403         (WTF::String::String):
1404         * wtf/text/WTFString.h:
1405         (WTF::String::String):
1406         (ASCIILiteral): This class is aimed at making the construction of WTFString from a literal very easy.
1407         By using the explicit constructor ASCIILiteral(char *), one can expect the implicit conversion to String
1408         when needed.
1409         (WTF::ASCIILiteral::ASCIILiteral):
1410         (WTF::ASCIILiteral::operator const char*):
1411
1412 2012-08-08  Benjamin Poulain  <bpoulain@apple.com>
1413
1414         Use char* instead of LChar* for the public interface of String construction from literals
1415         https://bugs.webkit.org/show_bug.cgi?id=93402
1416
1417         Reviewed by Michael Saboff.
1418
1419         When the initialization from literal was added, some constructor/initialization function were
1420         using LChar for convenience.
1421
1422         Since those function should only take ASCII characters, using LChar* could cause confusion. This
1423         patch intents to clarify this by using char* for all those APIs.
1424
1425         * wtf/text/AtomicString.cpp:
1426         (WTF::CharBufferFromLiteralDataTranslator::hash):
1427         (WTF::CharBufferFromLiteralDataTranslator::equal):
1428         (WTF::CharBufferFromLiteralDataTranslator::translate):
1429         (WTF::AtomicString::addFromLiteralData):
1430         * wtf/text/AtomicString.h:
1431         (WTF::AtomicString::AtomicString):
1432         (AtomicString):
1433         * wtf/text/StringImpl.cpp:
1434         (WTF::StringImpl::createFromLiteral):
1435         * wtf/text/StringImpl.h:
1436         (StringImpl):
1437         (WTF::StringImpl::StringImpl):
1438         (WTF::StringImpl::createFromLiteral):
1439
1440 2012-08-08  Patrick Gansterer  <paroga@webkit.org>
1441
1442         Remove ce_time.(cpp|h) from list of source files
1443         https://bugs.webkit.org/show_bug.cgi?id=93446
1444
1445         Reviewed by Simon Hausmann.
1446
1447         r125004 removed the last dependency on functions defined in ce_time.cpp.
1448
1449         * wtf/PlatformWinCE.cmake:
1450
1451 2012-08-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>
1452
1453         Atomics.h has incorrect GCC test for ext/atomicity.h when using LSB compilers
1454         https://bugs.webkit.org/show_bug.cgi?id=51974
1455
1456         Reviewed by Simon Hausmann.
1457
1458         * wtf/Atomics.h: Inhibits the inclusion of the atomicity.h GNU C++
1459         extension when compiling with a LSB compliant compiler. Thanks to
1460         Craig Scott for the new precompiler check code.
1461
1462 2012-08-07  Yoshifumi Inoue  <yosin@chromium.org>
1463
1464         [WTF] Add using WTF::msPerHour into DateMath.h
1465         https://bugs.webkit.org/show_bug.cgi?id=93428
1466
1467         Reviewed by Kent Tamura.
1468
1469         This patch adds "using WTF::msPerHour" into DateMath.h for some codes
1470         which will use it, e.g. bug 92960. Note: DateMath.h already has had
1471         using statements for msPerDay, msPerMinute and msPerSecond.
1472
1473         * wtf/DateMath.h: Added "using WTF::msPerHour".
1474
1475 2012-08-07  Benjamin Poulain  <benjamin@webkit.org>
1476
1477         Use the initialization from literal for JSC's Identifiers
1478         https://bugs.webkit.org/show_bug.cgi?id=93193
1479
1480         Reviewed by Geoffrey Garen.
1481
1482         * wtf/text/StringImpl.h: Update the names for the HashTranslator used by Identifier.
1483
1484 2012-07-19  Simon Hausmann  <simon.hausmann@nokia.com>
1485
1486         [Qt] Remove Qt 4 specific code paths
1487         https://bugs.webkit.org/show_bug.cgi?id=88161
1488
1489         Reviewed by Kenneth Rohde Christiansen.
1490
1491         * WTF.pri:
1492         * WTF.pro:
1493         * wtf/qt/StringQt.cpp:
1494         (WTF::String::String):
1495         (WTF::String::operator QString):
1496         * wtf/qt/UtilsQt.h: Removed.
1497         * wtf/qt/compat/QGuiApplication: Removed.
1498         * wtf/qt/compat/qguiapplication.h: Removed.
1499         * wtf/text/StringImpl.cpp:
1500         (WTF::StringImpl::~StringImpl):
1501         (WTF):
1502         * wtf/text/StringImpl.h:
1503         (StringImpl):
1504
1505 2012-08-06  Patrick Gansterer  <paroga@webkit.org>
1506
1507         [WIN] Remove dependency on pthread from MachineStackMarker
1508         https://bugs.webkit.org/show_bug.cgi?id=68429
1509
1510         Reviewed by Geoffrey Garen.
1511
1512         Windows has no support for calling a destructor for thread specific data.
1513         Since we need more control over creating and deleting thread specific keys
1514         we can not simply extend WTF::ThreadSpecific with this functionality.
1515
1516         All thread specific keys created via the new API get stored in a list.
1517         After a thread function finished we iterate over this list and call
1518         the registered destructor for every item if needed.
1519
1520         * wtf/ThreadSpecific.h:
1521         (WTF):
1522         (WTF::threadSpecificKeyCreate): Added wrapper around pthread_key_create.
1523         (WTF::threadSpecificKeyDelete): Added wrapper around pthread_key_delete.
1524         (WTF::threadSpecificSet): Added wrapper around pthread_setspecific.
1525         (WTF::threadSpecificGet): Added wrapper around pthread_getspecific.
1526         * wtf/ThreadSpecificWin.cpp:
1527
1528 2012-08-04  No'am Rosenthal  <noam.rosenthal@nokia.com>
1529
1530         [Qt] UI_SIDE_COMPOSITING code has confusing names
1531         https://bugs.webkit.org/show_bug.cgi?id=93164
1532
1533         Reviewed by Kenneth Rohde Christiansen.
1534
1535         Renamed UI_SIDE_COMPOSITING to COORDINATED_GRAPHICS.
1536
1537         * wtf/Platform.h:
1538
1539 2012-08-03  Michael Saboff  <msaboff@apple.com>
1540
1541         Convert HTML parser to handle 8-bit resources without converting to UChar*
1542         https://bugs.webkit.org/show_bug.cgi?id=90321
1543
1544         Reviewed by Adam Barth.
1545
1546         * wtf/text/WTFString.h:
1547         (WTF::String::dataSize): New method to return the number of bytes 
1548         the string requires.  This replaces a harcoded calculation based on
1549         length and sizeof(UChar).
1550
1551 2012-08-03  Benjamin Poulain  <benjamin@webkit.org>
1552
1553         StringImpl created from literal should be BufferInternal
1554         https://bugs.webkit.org/show_bug.cgi?id=92940
1555
1556         Reviewed by Anders Carlsson.
1557
1558         The ownership of string created from literal should be BufferInternal so that
1559         StringImpl never tries to delete the characters.
1560
1561         The ownership was accidentaly set to BufferOwned in r123689.
1562
1563         * wtf/text/StringImpl.cpp:
1564         (WTF::StringImpl::createFromLiteral): Update to use the new constructor.
1565         * wtf/text/StringImpl.h:
1566         (WTF::StringImpl::StringImpl):
1567         Add a new constructor making the construction from literal explicit.
1568         Add the flag s_hashFlagHasTerminatingNullCharacter since the data has the terminating
1569         null character.
1570
1571 2012-08-02  Patrick Gansterer  <paroga@webkit.org>
1572
1573         Move getLocalTime() as static inline function to DateMath
1574         https://bugs.webkit.org/show_bug.cgi?id=92955
1575
1576         Reviewed by Ryosuke Niwa.
1577
1578         getCurrentLocalTime() and getLocalTime() has been superseded with the
1579         GregorianDateTime class. So we can move it into DateMath.cpp as an static inline
1580         function. This allows us to remove the dependecy on time() and localtime()
1581         for Windows CE, where this functions require the ce_time library to work.
1582
1583         * wtf/CurrentTime.cpp:
1584         (WTF):
1585         * wtf/CurrentTime.h:
1586         * wtf/DateMath.cpp:
1587         (WTF):
1588         (WTF::getLocalTime):
1589
1590 2012-08-02  Patrick Gansterer  <paroga@webkit.org>
1591
1592         [WINCE] Return 0 at calculateDSTOffset(double, double)
1593         https://bugs.webkit.org/show_bug.cgi?id=92953
1594
1595         Reviewed by Ryosuke Niwa.
1596
1597         localtime() is implemented as a call to gmtime() in ce_time.c.
1598         Since this will never return correct values, returning 0 instead
1599         does not remove any existing functionality, but decreases the
1600         dependency on the (external) ce_time implementation.
1601
1602         * wtf/DateMath.cpp:
1603         (WTF::calculateDSTOffsetSimple):
1604
1605 2012-08-02  Arnaud Renevier  <a.renevier@sisa.samsung.com>
1606
1607         TypedArray set method is slow when called with another typed array
1608         https://bugs.webkit.org/show_bug.cgi?id=92556
1609
1610         Reviewed by Kenneth Russell.
1611
1612         Add an checkInboundData function to TypedArrayBase to check if a
1613         position will be not be out of bound or overflow from the typed array.
1614
1615         * wtf/TypedArrayBase.h:
1616         (WTF::TypedArrayBase::checkInboundData):
1617         (TypedArrayBase):
1618
1619 2012-08-01  Patrick Gansterer  <paroga@webkit.org>
1620
1621         Replace WTF::getCurrentLocalTime() with GregorianDateTime::setToCurrentLocalTime()
1622         https://bugs.webkit.org/show_bug.cgi?id=92286
1623
1624         Reviewed by Geoffrey Garen.
1625
1626         Add a method to GregorianDateTime to set its values to the current locale time.
1627         Replacing all occurrences of getCurrentLocalTime with the new function allows
1628         us to remove getCurrentLocalTime in a next step.
1629
1630         * GNUmakefile.list.am:
1631         * WTF.gypi:
1632         * WTF.pro:
1633         * WTF.vcproj/WTF.vcproj:
1634         * WTF.xcodeproj/project.pbxproj:
1635         * wtf/CMakeLists.txt:
1636         * wtf/DateMath.cpp:
1637         (WTF::dayInYear):
1638         * wtf/DateMath.h:
1639         (WTF):
1640         * wtf/GregorianDateTime.cpp: Added.
1641         (WTF):
1642         (WTF::GregorianDateTime::setToCurrentLocalTime):
1643         * wtf/GregorianDateTime.h:
1644         (GregorianDateTime):
1645
1646 2012-08-01  Patrick Gansterer  <paroga@webkit.org>
1647
1648         Fix FastMalloc build with assertions enabled.
1649
1650         * wtf/FastMalloc.cpp:
1651         (WTF::TCMalloc_PageHeap::isScavengerSuspended):
1652         (WTF::TCMalloc_PageHeap::scheduleScavenger):
1653         (WTF::TCMalloc_PageHeap::suspendScavenger):
1654
1655 2012-08-01  Patrick Gansterer  <paroga@webkit.org>
1656
1657         Export StringImpl::sizeInBytes() with WTF_EXPORT_STRING_API
1658         https://bugs.webkit.org/show_bug.cgi?id=92851
1659
1660         Reviewed by Hajime Morita.
1661
1662         r124069 missed to change one export macro, which is needed
1663         to make the windows port with USE(EXPORT_MACROS).
1664
1665         * wtf/text/StringImpl.h:
1666         (StringImpl):
1667
1668 2012-08-01  Patrick Gansterer  <paroga@webkit.org>
1669
1670         [WIN] Add missing WTF export macros to functions
1671         https://bugs.webkit.org/show_bug.cgi?id=92842
1672
1673         Reviewed by Hajime Morita.
1674
1675         When we switch the windows port to USE(EXPORT_MACROS) we
1676         need to export all functions referenced by WebKit.dll.
1677
1678         * wtf/ThreadingPrimitives.h:
1679         (WTF):
1680         * wtf/dtoa.h:
1681         (WTF):
1682         * wtf/dtoa/double-conversion.h:
1683         (StringToDoubleConverter):
1684         * wtf/unicode/UTF8.h:
1685
1686 2012-07-31  Sam Weinig  <sam@webkit.org>
1687
1688         Stop masking 8 bits off of the visited link hash. We need all the bits!
1689         https://bugs.webkit.org/show_bug.cgi?id=92799
1690
1691         Reviewed by Anders Carlsson.
1692
1693         * wtf/StringHasher.h:
1694         (WTF::StringHasher::hashWithTop8BitsMasked):
1695         (WTF::StringHasher::hash):
1696         (StringHasher):
1697         (WTF::StringHasher::computeHashAndMaskTop8Bits):
1698         (WTF::StringHasher::hashMemory):
1699         (WTF::StringHasher::avalancheBits):
1700         Rename existing computeHash and hash functions to computeHashAndMaskTop8Bits
1701         and hashWithTop8BitsMasked respectively. Add new computeHash and hash functions
1702         that do the StringHash without the masking.
1703
1704         * wtf/text/AtomicString.cpp:
1705         (WTF::CStringTranslator::hash):
1706         (WTF::UCharBufferTranslator::hash):
1707         (WTF::HashAndCharactersTranslator::hash):
1708         (WTF::SubstringTranslator::hash):
1709         (WTF::LCharBufferFromLiteralDataTranslator::hash):
1710         (WTF::AtomicString::fromUTF8Internal):
1711         * wtf/text/StringHash.h:
1712         (WTF::CaseFoldingHash::hash):
1713         * wtf/text/StringImpl.h:
1714         (WTF::StringImpl::setHash):
1715         * wtf/text/StringStatics.cpp:
1716         (WTF::StringImpl::hashSlowCase):
1717         * wtf/unicode/UTF8.cpp:
1718         (WTF::Unicode::calculateStringHashAndLengthFromUTF8MaskingTop8Bits):
1719         * wtf/unicode/UTF8.h:
1720         Update for new function names.
1721
1722 2012-07-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>
1723
1724         Add a mechanism to dump the stack trace in case of a crash
1725         https://bugs.webkit.org/show_bug.cgi?id=92666
1726
1727         Reviewed by Csaba Osztrogonác.
1728
1729         Unix based ports can make use of signal handlers to dump the stack
1730         trace in case of a crash. This is specially handy when a test crashes on
1731         the bot without hitting an assertion, we might have a chance to see
1732         some insightful information at the reports.
1733
1734         * wtf/Assertions.cpp:
1735         * wtf/Assertions.h:
1736
1737 2012-07-31  Stephen Chenney  <schenney@chromium.org>
1738
1739         xmlserializer strips xlink from xlink:html svg image tag
1740         https://bugs.webkit.org/show_bug.cgi?id=79586
1741
1742         Reviewed by Nikolas Zimmermann.
1743
1744         Add WTF::xlinkAtom as a global AtomicString constant.
1745
1746         * wtf/text/AtomicString.h:
1747         (WTF): Add xlinkAtom.
1748         * wtf/text/StringStatics.cpp:
1749         (WTF): Add xlinkAtom.
1750         (WTF::AtomicString::init): Add xlinkAtom.
1751
1752 2012-07-30  Patrick Gansterer  <paroga@webkit.org>
1753
1754         Add WTF_EXPORT_PRIVATE to deleteOwnedPtr()
1755         https://bugs.webkit.org/show_bug.cgi?id=92668
1756
1757         Reviewed by Hajime Morita.
1758
1759         When using export macros all non-inlined deleteOwnedPtr()
1760         functions need to be declared with WTF_EXPORT_PRIVATE.
1761
1762         * wtf/OwnPtrCommon.h:
1763         (WTF):
1764
1765 2012-07-30  Wei James  <james.wei@intel.com>
1766
1767         atomicDecrement() never reach 0 on Android so no deref() will be called
1768         https://bugs.webkit.org/show_bug.cgi?id=92635
1769
1770         Reviewed by Adam Barth.
1771
1772         With Android NDK 7b and later, __atomic_dec()  is implemented by
1773         __sync_fetch_and_sub(), which will result in that atomicDecrement()
1774         returns the old value instead of new one.
1775
1776         * wtf/Atomics.h:
1777         (WTF):
1778         (WTF::atomicIncrement):
1779         (WTF::atomicDecrement):
1780
1781 2012-07-30  Patrick Gansterer  <paroga@webkit.org>
1782
1783         Add function to calculate the day in year from a date
1784         https://bugs.webkit.org/show_bug.cgi?id=92671
1785
1786         Reviewed by Ryosuke Niwa.
1787
1788         Replace monthToDayInYear() with dayInYear() which takes a whole
1789         date for calculation and will be used for bug 92286 later.
1790
1791         * wtf/DateMath.cpp:
1792         (WTF::dayInYear):
1793         (WTF::dateToDaysFrom1970):
1794
1795 2012-07-30  Patrick Gansterer  <paroga@webkit.org>
1796
1797         Add special export macro for string related functions
1798         https://bugs.webkit.org/show_bug.cgi?id=92624
1799
1800         Reviewed by Hajime Morita.
1801
1802         The windows port compiles string related code into every binary for performance reasons (see r59187).
1803         Add the WTF_EXPORT_STRING_API define to allow this behaviour with export macros too.
1804
1805         * wtf/ExportMacros.h:
1806         * wtf/text/AtomicString.h:
1807         (AtomicString):
1808         * wtf/text/StringImpl.h:
1809         (StringImpl):
1810         (WTF):
1811         * wtf/text/WTFString.h:
1812         (WTF):
1813         (String):
1814
1815 2012-07-30  Patrick Gansterer  <paroga@webkit.org>
1816
1817         Replace UnicodeWinCE with UnicodeWchar
1818         https://bugs.webkit.org/show_bug.cgi?id=92539
1819
1820         Reviewed by Ryosuke Niwa.
1821
1822         UnicodeWinCE never contained WinCE specific code. UnicodeWchar
1823         is a replacement for it, which is mainly based on the functions
1824         from <wchar.h>. It is ment as a minimal Unicode backend, which
1825         can be used very easy and has no external dependencies.
1826
1827         * WTF.gyp/WTF.gyp:
1828         * WTF.gypi:
1829         * wtf/Platform.h:
1830         * wtf/PlatformWinCE.cmake:
1831         * wtf/unicode/Unicode.h:
1832         * wtf/unicode/wchar/UnicodeWchar.cpp: Added.
1833         (Unicode):
1834         (WTF::Unicode::category):
1835         (WTF::Unicode::combiningClass):
1836         (WTF::Unicode::direction):
1837         (WTF::Unicode::decompositionType):
1838         (WTF::Unicode::hasLineBreakingPropertyComplexContext):
1839         (WTF::Unicode::mirroredChar):
1840         (WTF::Unicode::convertWithFunction):
1841         (WTF::Unicode::foldCase):
1842         (WTF::Unicode::toLower):
1843         (WTF::Unicode::toUpper):
1844         * wtf/unicode/wchar/UnicodeWchar.h: Added.
1845         (Unicode):
1846         (WTF::Unicode::isAlphanumeric):
1847         (WTF::Unicode::isDigit):
1848         (WTF::Unicode::isLetter):
1849         (WTF::Unicode::isLower):
1850         (WTF::Unicode::isPrintableChar):
1851         (WTF::Unicode::isPunct):
1852         (WTF::Unicode::isSpace):
1853         (WTF::Unicode::isUpper):
1854         (WTF::Unicode::isArabicChar):
1855         (WTF::Unicode::isSeparatorSpace):
1856         (WTF::Unicode::foldCase):
1857         (WTF::Unicode::toLower):
1858         (WTF::Unicode::toUpper):
1859         (WTF::Unicode::toTitleCase):
1860         (WTF::Unicode::umemcasecmp):
1861         * wtf/unicode/wince/UnicodeWinCE.cpp: Removed.
1862         * wtf/unicode/wince/UnicodeWinCE.h: Removed.
1863
1864 2012-07-26  Yury Semikhatsky  <yurys@chromium.org>
1865
1866         Web Inspector: move StringImpl size calculation to StringImpl
1867         https://bugs.webkit.org/show_bug.cgi?id=92359
1868
1869         Reviewed by Pavel Feldman.
1870
1871         Moved stringSize(StringImpl*) implementation from InspectorMemoryAgent to
1872         StringImpl::sizeInBytes();
1873
1874         * wtf/text/StringImpl.cpp:
1875         (WTF::StringImpl::sizeInBytes):
1876         (WTF):
1877         * wtf/text/StringImpl.h:
1878         (StringImpl):
1879
1880 2012-07-28  Patrick Gansterer  <paroga@webkit.org>
1881
1882         [WIN] Add missing export macro to friend decleration.
1883
1884         Since the __declspec is part of the function signature
1885         on windows, we need it at all friend declerations too.
1886
1887         * wtf/MediaTime.h:
1888
1889 2012-07-28  Patrick Gansterer  <paroga@webkit.org>
1890
1891         [CMake] Add missing MediaTime files after r123878.
1892
1893         * wtf/CMakeLists.txt:
1894
1895 2012-07-28  Patrick Gansterer  <paroga@webkit.org>
1896
1897         Remove obsolete functions from WTF::Unicode
1898         https://bugs.webkit.org/show_bug.cgi?id=92571
1899
1900         Reviewed by Kentaro Hara.
1901
1902         Remove hasLineBreakingPropertyComplexContextOrIdeographic() and digitValue(),
1903         since they are never used and defined for a few Unicode backends only.
1904
1905         * wtf/unicode/glib/UnicodeGLib.h:
1906         * wtf/unicode/icu/UnicodeIcu.h:
1907
1908 2012-07-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1909
1910         Unreviewed, rolling out r123679.
1911         http://trac.webkit.org/changeset/123679
1912         https://bugs.webkit.org/show_bug.cgi?id=92565
1913
1914         Slowed down HTML parsing by 3.6% (Requested by abarth on
1915         #webkit).
1916
1917         * wtf/text/WTFString.h:
1918
1919 2012-07-27  Arnaud Renevier  <a.renevier@sisa.samsung.com>
1920
1921         use createUninitialized when creating TypedArray from another array
1922         https://bugs.webkit.org/show_bug.cgi?id=92518
1923
1924         Reviewed by Kenneth Russell.
1925
1926         Expose a createUninitialized static method on TypedArray classes.
1927
1928         * wtf/Float32Array.h:
1929         (Float32Array):
1930         (WTF::Float32Array::createUninitialized):
1931         (WTF):
1932         * wtf/Float64Array.h:
1933         (Float64Array):
1934         (WTF::Float64Array::createUninitialized):
1935         (WTF):
1936         * wtf/Int16Array.h:
1937         (Int16Array):
1938         (WTF::Int16Array::createUninitialized):
1939         (WTF):
1940         * wtf/Int32Array.h:
1941         (Int32Array):
1942         (WTF::Int32Array::createUninitialized):
1943         (WTF):
1944         * wtf/Int8Array.h:
1945         (Int8Array):
1946         (WTF::Int8Array::createUninitialized):
1947         (WTF):
1948         * wtf/Uint16Array.h:
1949         (Uint16Array):
1950         (WTF::Uint16Array::createUninitialized):
1951         (WTF):
1952         * wtf/Uint32Array.h:
1953         (Uint32Array):
1954         (WTF::Uint32Array::createUninitialized):
1955         (WTF):
1956         * wtf/Uint8Array.h:
1957         (Uint8Array):
1958         (WTF::Uint8Array::createUninitialized):
1959         (WTF):
1960         * wtf/Uint8ClampedArray.h:
1961         (Uint8ClampedArray):
1962
1963 2012-07-27  Patrick Gansterer  <paroga@webkit.org>
1964
1965         [WINCE] Use macros from ICU instead of defining the same functionality again
1966         https://bugs.webkit.org/show_bug.cgi?id=92530
1967
1968         Reviewed by Ryosuke Niwa.
1969
1970         Replace isHighSurrogate() with U16_IS_LEAD(), isLowSurrogate() with
1971         U16_IS_TRAIL() and surrogateToUcs4() with U16_GET_SUPPLEMENTARY().
1972
1973         * wtf/unicode/wince/UnicodeWinCE.h:
1974
1975 2012-07-27  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
1976
1977         [Qt] Fix build after r123917
1978         https://bugs.webkit.org/show_bug.cgi?id=92555
1979
1980         Unreviewed.
1981
1982         * wtf/GregorianDateTime.h: Needs string.h for memset().
1983
1984 2012-07-27  Paweł Forysiuk  <tuxator@o2.pl>
1985
1986         MinGW build fails because of missing header in GregorianDateTime.h
1987         https://bugs.webkit.org/show_bug.cgi?id=92531
1988
1989         * wtf/GregorianDateTime.h: Include time.h
1990
1991 2012-07-27  Jer Noble  <jer.noble@apple.com>
1992
1993         Unreviewed build fix.
1994
1995         Use MathExtras.h and the non std:: versions of isnan and signbit.
1996
1997         * wtf/MediaTime.cpp:
1998         (WTF::MediaTime::createWithFloat):
1999         (WTF::MediaTime::createWithDouble):
2000
2001 2012-07-27  Jer Noble  <jer.noble@apple.com>
2002
2003         Support a rational time class for use by media elements.
2004         https://bugs.webkit.org/show_bug.cgi?id=88787
2005
2006         Reviewed by Eric Carlson.
2007
2008         Add a new MediaTime class which implements rational math operations.
2009
2010         Add common constructors and assignment operators:
2011         * wtf/MediaTime.cpp: Added.
2012         (WTF::MediaTime::MediaTime):
2013         (WTF::MediaTime::~MediaTime):
2014         (WTF::MediaTime::operator=):
2015
2016         Add common math operators:
2017         * wtf/MediaTime.cpp:
2018         (WTF::MediaTime::operator+):
2019         (WTF::MediaTime::operator-):
2020         (WTF::MediaTime::operator<):
2021         (WTF::MediaTime::operator>):
2022         (WTF::MediaTime::operator==):
2023         (WTF::MediaTime::operator>=):
2024         (WTF::MediaTime::operator<=):
2025
2026         Add functions to check the MeiaTime time type flags:
2027         * wtf/MediaTime.h:
2028         (WTF::MediaTime::isValid):
2029         (WTF::MediaTime::isInvalid):
2030         (WTF::MediaTime::hasBeenRounde):
2031         (WTF::MediaTime::isPositiveInfinite):
2032         (WTF::MediaTime::isNegativeInfinite):
2033         (WTF::MediaTime::isIndefinite):
2034
2035         Add constants for commonly used MediaTime values:
2036         (WTF::MediaTime::zeroTime):
2037         (WTF::MediaTime::invalidTime):
2038         (WTF::MediaTime::positiveInfiniteTime):
2039         (WTF::MediaTime::negativeInfiniteTime):
2040         (WTF::MediaTime::indefiniteTime):
2041
2042         Add explicit conversion functions to convert to and from floating point values.
2043         * wtf/MediaTime.cpp:
2044         (WTF::MediaTime::createWithFloat):
2045         (WTF::MediaTime::createWithDouble):
2046         (WTF::MediaTime::toFloat):
2047         (WTF::MediaTime::toDouble):
2048
2049         Add some useful exported functions:
2050         * wtf/MediaTime.cpp:
2051         (WTF::MediaTime::compare): Master function for the comparison operators above.
2052         (WTF::MediaTime::setTimeScale): Rescale the time value to a new time scale.
2053         (WTF::abs): Return an absolute value for the current MediaTime.
2054
2055         Static utility functions to implement the above:
2056         * wtf/MediaTime.cpp:
2057         (WTF::greatestCommonDivisor):
2058         (WTF::leastCommonMultiple):
2059         (WTF::signum):
2060
2061         Windows-only implementations of isinf and signbit:
2062         * wtf/MediaTime.cpp:
2063         (std::isinf):
2064         (std::signbit):
2065
2066         Add the new class to platform build files:
2067         * GNUmakefile.list.am:
2068         * WTF.gypi:
2069         * WTF.pro:
2070         * WTF.vcproj/WTF.vcproj:
2071         * WTF.xcodeproj/project.pbxproj:
2072
2073 2012-07-27  Wei James  <james.wei@intel.com>
2074
2075         set WTF_USE_LOCKFREE_THREADSAFEREFCOUNTED for chromium android
2076         https://bugs.webkit.org/show_bug.cgi?id=91746
2077
2078         Reviewed by Adam Barth.
2079
2080         This patch is part of efforts to enable web audio for chromium android.
2081         Web audio component needs to use atomicIncrement and atomicDecrement,
2082         which are enabled by this MACRO.
2083
2084         As mentioned in https://bugs.webkit.org/show_bug.cgi?id=89428#c19, make
2085         this patch standalone.
2086
2087         * wtf/Atomics.h:
2088         (WTF):
2089
2090 2012-07-27  Wei James  <james.wei@intel.com>
2091
2092         set WTF_USE_LOCKFREE_THREADSAFEREFCOUNTED for chromium android
2093         https://bugs.webkit.org/show_bug.cgi?id=91746
2094
2095         Reviewed by Adam Barth.
2096
2097         This patch is part of efforts to enable web audio for chromium android.
2098         Web audio component needs to use atomicIncrement and atomicDecrement,
2099         which are enabled by this MACRO.
2100
2101         As mentioned in https://bugs.webkit.org/show_bug.cgi?id=89428#c19, make
2102         this patch standalone.
2103
2104         * wtf/Atomics.h:
2105         (WTF):
2106
2107 2012-07-26  Arnaud Renevier  <a.renevier@sisa.samsung.com>
2108
2109         constructing TypedArray from another TypedArray is slow
2110         https://bugs.webkit.org/show_bug.cgi?id=90838
2111
2112         Reviewed by Kenneth Russell.
2113
2114         Introduce virtual method getType on ArrayBufferView. It returns the actual
2115         type of the view. This method replaces previous is<Type>Array() methods.
2116
2117         * wtf/ArrayBufferView.h:
2118         * wtf/Float32Array.h:
2119         (WTF::Float32Array::getType):
2120         (Float32Array):
2121         * wtf/Float64Array.h:
2122         (WTF::Float64Array::getType):
2123         (Float64Array):
2124         * wtf/Int16Array.h:
2125         (WTF::Int16Array::getType):
2126         (Int16Array):
2127         * wtf/Int32Array.h:
2128         (WTF::Int32Array::getType):
2129         (Int32Array):
2130         * wtf/Int8Array.h:
2131         (WTF::Int8Array::getType):
2132         (Int8Array):
2133         * wtf/IntegralTypedArrayBase.h:
2134         * wtf/TypedArrayBase.h:
2135         (TypedArrayBase):
2136         (WTF::TypedArrayBase::item):
2137         * wtf/Uint16Array.h:
2138         (WTF::Uint16Array::getType):
2139         (Uint16Array):
2140         * wtf/Uint32Array.h:
2141         (WTF::Uint32Array::getType):
2142         (Uint32Array):
2143         * wtf/Uint8Array.h:
2144         (WTF::Uint8Array::getType):
2145         (Uint8Array):
2146         * wtf/Uint8ClampedArray.h:
2147         (WTF::Uint8ClampedArray::getType):
2148         (Uint8ClampedArray):
2149
2150 2012-07-26  Zeno Albisser  <zeno@webkit.org>
2151
2152         [Qt] requestAnimationFrame should only trigger when a new frame can be displayed.
2153         https://bugs.webkit.org/show_bug.cgi?id=88638
2154
2155         Disable REQUEST_ANIMATION_FRAME_TIMER for the Qt port and tie
2156         the servicing of scripted animations to layer syncing for WK2.
2157         For WK1 we rely on the RefreshAnimation that is based on QAbstractAnimation.
2158
2159         Reviewed by Jocelyn Turcotte.
2160
2161         * wtf/Platform.h:
2162
2163 2012-07-26  Yury Semikhatsky  <yurys@chromium.org>
2164
2165         Unreviewed. Revert r123740 as it breaks AppleMac compilation.
2166
2167         * wtf/text/StringImpl.cpp:
2168         * wtf/text/StringImpl.h:
2169
2170 2012-07-26  Yury Semikhatsky  <yurys@chromium.org>
2171
2172         Web Inspector: move StringImpl size calculation to StringImpl
2173         https://bugs.webkit.org/show_bug.cgi?id=92359
2174
2175         Reviewed by Pavel Feldman.
2176
2177         Moved stringSize(StringImpl*) implementation from InspectorMemoryAgent to
2178         StringImpl::sizeInBytes();
2179
2180         * wtf/text/StringImpl.cpp:
2181         (WTF::StringImpl::sizeInBytes):
2182         (WTF):
2183         * wtf/text/StringImpl.h:
2184         (StringImpl):
2185
2186 2012-07-25  Benjamin Poulain  <bpoulain@apple.com>
2187
2188         Initialize QualifiedName's strings from the read only data segment
2189         https://bugs.webkit.org/show_bug.cgi?id=92226
2190
2191         Reviewed by Anders Carlsson.
2192
2193         Add constructors for StringImpl and AtomicString to be able to create
2194         the strings from the literal in read only memory.
2195
2196         * wtf/text/AtomicString.cpp:
2197         (HashTranslatorCharBuffer):
2198         (WTF::LCharBufferFromLiteralDataTranslator::hash):
2199         (LCharBufferFromLiteralDataTranslator):
2200         (WTF::LCharBufferFromLiteralDataTranslator::equal):
2201         (WTF::LCharBufferFromLiteralDataTranslator::translate):
2202         (WTF::AtomicString::addFromLiteralData):
2203         * wtf/text/AtomicString.h:
2204         (WTF::AtomicString::AtomicString):
2205         (AtomicString):
2206         * wtf/text/StringImpl.cpp:
2207         (WTF::StringImpl::createFromLiteral):
2208         * wtf/text/StringImpl.h:
2209         (WTF):
2210         (StringImpl):
2211         (WTF::StringImpl::createFromLiteral):
2212
2213 2012-07-25  Michael Saboff  <msaboff@apple.com>
2214
2215         Convert HTML parser to handle 8-bit resources without converting to UChar*
2216         https://bugs.webkit.org/show_bug.cgi?id=90321
2217
2218         Reviewed by Geoffrey Garen.
2219
2220         * wtf/text/WTFString.h:
2221         (WTF::String::dataSize): New method to return the number of bytes 
2222         the string requires.  This replaces a harcoded calculation based on
2223         length and sizeof(UChar).
2224
2225 2012-07-25  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2226
2227         Create a specialized pair for use in HashMap iterators
2228         https://bugs.webkit.org/show_bug.cgi?id=92137
2229
2230         Reviewed by Ryosuke Niwa.
2231
2232         The type used for internal storage in HashMap is exposed in its interface as iterator
2233         "contents". Currently HashMap uses std::pair<>, which this patch replaces with
2234         KeyValuePair.
2235
2236         Having this specialized structure will allow us to customize the members to be called
2237         key/value, improving readability in code using HashMap iterators. They are still called
2238         first/second to separate this change from the mechanical change of updating callsites.
2239
2240         * wtf/HashIterators.h:
2241         (HashTableConstKeysIterator):
2242         (HashTableConstValuesIterator):
2243         (HashTableKeysIterator):
2244         (HashTableValuesIterator):
2245         Use KeyValuePair instead of std::pair when defining the iterators.
2246
2247         * wtf/HashMap.h:
2248         (WTF):
2249         (WTF::KeyValuePairKeyExtractor::extract):
2250         (HashMap):
2251         Remove PairFirstExtractor. Add and use the KeyValuePair corresponding extractor.
2252
2253         (WTF::HashMapValueTraits::isEmptyValue): Use KeyValuePairHashTraits for HashMaps.
2254         (WTF::HashMapTranslator::translate):
2255         (WTF::HashMapTranslatorAdapter::translate):
2256         The traits of the mapped value is now called ValueTraits instead of SecondTraits.
2257
2258         * wtf/HashTable.h:
2259         (WTF::hashTableSwap): Add specialization for swapping KeyValuePairs.
2260         (WTF): Remove now unneeded specialization for std::pairs.
2261
2262         * wtf/HashTraits.h:
2263         (KeyValuePair):
2264         (WTF::KeyValuePair::KeyValuePair):
2265         (WTF):
2266         Specialized pair. In the future difference from pair should be the member names.
2267
2268         (KeyValuePairHashTraits):
2269         (WTF::KeyValuePairHashTraits::emptyValue):
2270         (WTF::KeyValuePairHashTraits::constructDeletedValue):
2271         (WTF::KeyValuePairHashTraits::isDeletedValue):
2272         These traits are analogous to PairHashTraits but for KeyValuePair.
2273
2274         * wtf/RefPtrHashMap.h: Use KeyValuePairHashTraits.
2275
2276 2012-07-25  Andrew Wilson  <atwilson@chromium.org>
2277
2278         Unreviewed, rolling out r123560.
2279         http://trac.webkit.org/changeset/123560
2280         https://bugs.webkit.org/show_bug.cgi?id=90321
2281
2282         Breaks chromium valgrind tests.
2283
2284         * wtf/text/WTFString.h:
2285
2286 2012-07-25  Csaba Osztrogonác  <ossy@webkit.org>
2287
2288         [Qt] There are parallel GC related crashes regularly
2289         https://bugs.webkit.org/show_bug.cgi?id=90957
2290
2291         Rubber-stamped by Zoltan Herczeg.
2292
2293         * wtf/Platform.h: Disable parallel GC temporarily on Qt until proper fix.
2294
2295 2012-07-24  Benjamin Poulain  <bpoulain@apple.com> && Joseph Pecoraro  <pecoraro@apple.com>
2296
2297         QualifiedName's HashSet should be big enough to hold at least all the static names
2298         https://bugs.webkit.org/show_bug.cgi?id=91891
2299
2300         Reviewed by Darin Adler.
2301
2302         Add a static struct to compute the HashTable capacity for any given size at compile time.
2303         This allow us to create HashTraits giving the minimumSize without hardcoding the values.
2304
2305         * wtf/HashTable.h:
2306         (OneifyLowBits):
2307         (UpperPowerOfTwoBound):
2308         (HashTableCapacityForSize): Compute the HashTable capacity at compile time.
2309
2310 2012-07-24  Michael Saboff  <msaboff@apple.com>
2311
2312         Convert HTML parser to handle 8-bit resources without converting to UChar*
2313         https://bugs.webkit.org/show_bug.cgi?id=90321
2314
2315         Reviewed by Geoffrey Garen.
2316
2317         * wtf/text/WTFString.h:
2318         (WTF::String::dataSize): New method to return the number of bytes 
2319         the string requires.  This replaces a harcoded calculation based on
2320         length and sizeof(UChar).
2321
2322 2012-07-24  Sam Weinig  <sam@webkit.org>
2323
2324         Add per-HashTable stats
2325         https://bugs.webkit.org/show_bug.cgi?id=92185
2326
2327         Reviewed by Anders Carlsson.
2328
2329         Add per-HashTable stats, so we can look at the effectiveness of an individual HashTable.
2330
2331         * wtf/HashTable.h:
2332         (WTF::HashTable::Stats::Stats):
2333         Add a HashTable::Stats to hold the stats.
2334
2335         (WTF::HashTable::Stats::recordCollisionAtCount):
2336         (WTF::HashTable::Stats::dumpStats):
2337         Add versions of recordCollisionAtCount and dumpStats for per-HashTable version.
2338
2339         (WTF::HashTable):
2340         Keep the stats, if enabled, in an OwnPtr, to not blow JSCell max size restrictions.
2341
2342         (WTF::lookup):
2343         (WTF::lookupForWriting):
2344         (WTF::fullLookupForWriting):
2345         (WTF::add):
2346         (WTF::reinsert):
2347         (WTF::remove):
2348         (WTF::rehash):
2349         Keep track of the stats as the table is used.
2350
2351 2012-07-24  Patrick Gansterer  <paroga@webkit.org>
2352
2353         Store the full year in GregorianDateTime
2354         https://bugs.webkit.org/show_bug.cgi?id=92067
2355
2356         Reviewed by Geoffrey Garen.
2357
2358         Use the full year instead of the offset from year 1900 
2359         for the year member variable of GregorianDateTime.
2360
2361         * wtf/GregorianDateTime.h:
2362         (WTF::GregorianDateTime::operator tm):
2363
2364 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
2365
2366         Move GregorianDateTime from JSC to WTF namespace
2367         https://bugs.webkit.org/show_bug.cgi?id=91948
2368
2369         Reviewed by Geoffrey Garen.
2370
2371         Moving GregorianDateTime into the WTF namespace allows us to us to
2372         use it in WebCore too. The new class has the same behaviour as the
2373         old struct. Only the unused timeZone member has been removed.
2374
2375         * GNUmakefile.list.am:
2376         * WTF.gypi:
2377         * WTF.pro:
2378         * WTF.vcproj/WTF.vcproj:
2379         * WTF.xcodeproj/project.pbxproj:
2380         * wtf/CMakeLists.txt:
2381         * wtf/GregorianDateTime.h: Added.
2382         (GregorianDateTime):
2383
2384 2012-07-23  Rob Buis  <rbuis@rim.com>
2385
2386         [BlackBerry] Merge createThreadInternal implementations
2387         https://bugs.webkit.org/show_bug.cgi?id=91899
2388
2389         Reviewed by Yong Li.
2390
2391         PR 111675
2392
2393         Remove our implementation since the default thread stack size on QNX is fine.
2394
2395         * wtf/ThreadingPthreads.cpp:
2396         (WTF::createThreadInternal):
2397         (WTF::initializeCurrentThreadInternal): make sure we set the thread name.
2398
2399 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
2400
2401         [WINCE] Define NOMINMAX in the build system instead of Platform.h
2402         https://bugs.webkit.org/show_bug.cgi?id=91938
2403
2404         Reviewed by Ryosuke Niwa.
2405
2406         * wtf/Platform.h:
2407
2408 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
2409
2410         Build fix for Windows after r123317.
2411
2412         * wtf/DateMath.cpp: Added missing header include.
2413
2414 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
2415
2416         [WIN] Use GetTimeZoneInformation() for calculateUTCOffset()
2417         https://bugs.webkit.org/show_bug.cgi?id=91935
2418
2419         Reviewed by Ryosuke Niwa.
2420
2421         GetTimeZoneInformation() returns the offset directly. Using it
2422         avoids unnecessary calculations and remove dependencies on
2423         other time related function, which do not exist on WinCE.
2424
2425         * wtf/DateMath.cpp:
2426         (WTF::calculateUTCOffset):
2427
2428 2012-07-20  Han Shen  <shenhan@google.com>
2429
2430         [Chromium] Compilation fails under gcc 4.7
2431         https://bugs.webkit.org/show_bug.cgi?id=90227
2432
2433         Reviewed by Tony Chang.
2434
2435         Disable warnings about c++0x compatibility in gcc newer than 4.6.
2436
2437         * WTF.gyp/WTF.gyp:
2438
2439 2012-07-19  Dan Bernstein  <mitz@apple.com>
2440
2441         The ATSUI-based complex text code is unused
2442         https://bugs.webkit.org/show_bug.cgi?id=91816
2443
2444         Reviewed by Sam Weinig.
2445
2446         Removed definitions of WTF_USE_ATSUI and WTF_USE_CORE_TEXT.
2447
2448         * wtf/Platform.h:
2449
2450 2012-07-19  Wei James  <james.wei@intel.com>
2451
2452         enable Web Audio for chromium android port
2453         https://bugs.webkit.org/show_bug.cgi?id=89428
2454
2455         Reviewed by Kenneth Russell.
2456
2457         * wtf/MathExtras.h:
2458         (log2):
2459         (log2f):
2460
2461 2012-07-19  Scott Graham  <scottmg@chromium.org>
2462
2463         [Chromium] disable warning on Windows from gcc-only pragma in Assertions.cpp"
2464         https://bugs.webkit.org/show_bug.cgi?id=91776
2465
2466         Reviewed by Ryosuke Niwa.
2467
2468         Avoids:
2469             ...\source\wtf\wtf\assertions.cpp(31) : warning C4068: unknown pragma
2470
2471         * WTF.gyp/WTF.gyp:
2472
2473 2012-07-19  Robert Sesek  <rsesek@chromium.org>
2474
2475         [chromium][Mac] Switch the MACOSX_DEPLOYMENT_TARGET to 10.6
2476         https://bugs.webkit.org/show_bug.cgi?id=91752
2477
2478         Reviewed by Eric Seidel.
2479
2480         When building CHROMIUM && DARWIN, do not enable ATSUI support.
2481
2482         * wtf/Platform.h:
2483
2484 2012-07-18  Yong Li  <yoli@rim.com>
2485
2486         [BlackBerry] Implement currentTime() and monotonicallyIncreasingTime() for OS(QNX)
2487         https://bugs.webkit.org/show_bug.cgi?id=91659
2488
2489         Reviewed by Rob Buis.
2490
2491         Implement currentTime() and monotonicallyIncreasingTime() for OS(QNX) with clock_gettime().
2492
2493         * wtf/CurrentTime.cpp:
2494         (WTF):
2495         (WTF::currentTime):
2496         (WTF::monotonicallyIncreasingTime):
2497
2498 2012-07-18  Tom Sepez  <tsepez@chromium.org>
2499
2500         OOB read of stack buffer below DoubleToStringConverter::CreateExponentialRepresentation() in debug builds
2501         https://bugs.webkit.org/show_bug.cgi?id=91642
2502
2503         Reviewed by Abhishek Arya.
2504
2505         * wtf/dtoa/double-conversion.cc:
2506         (DoubleToStringConverter::CreateExponentialRepresentation): NUL-terminate string buffer before passing it to StringBuilder::AddSubstring()
2507         
2508 2012-07-18  Michael Saboff  <msaboff@apple.com>
2509
2510         Make TextCodecLatin1 handle 8 bit data without converting to UChar's
2511         https://bugs.webkit.org/show_bug.cgi?id=90319
2512
2513         Reviewed by Oliver Hunt.
2514
2515         * wtf/text/StringImpl.h:
2516         (StringImpl): Exported LChar variant of adopt().
2517         * wtf/text/WTFString.h:
2518         (WTF::String::createUninitialized): Exported LChar variant.
2519
2520 2012-07-18  Rob Buis  <rbuis@rim.com>
2521
2522         Alignment crash in MIMESniffer
2523         https://bugs.webkit.org/show_bug.cgi?id=89787
2524
2525         Reviewed by Yong Li.
2526
2527         PR 169064
2528
2529         Change isPointerTypeAlignmentOkay so calling it does not require ifdefs.
2530
2531         * wtf/StdLibExtras.h:
2532         (isPointerTypeAlignmentOkay):
2533
2534 2012-07-17  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
2535
2536         [Qt][V8] Remove the V8 related codepaths and configuration
2537         https://bugs.webkit.org/show_bug.cgi?id=90863
2538
2539         Reviewed by Simon Hausmann.
2540
2541         * WTF.pri:
2542
2543 2012-07-17  Sheriff Bot  <webkit.review.bot@gmail.com>
2544
2545         Unreviewed, rolling out r122834.
2546         http://trac.webkit.org/changeset/122834
2547         https://bugs.webkit.org/show_bug.cgi?id=91492
2548
2549         it broke the chromium (Requested by kkristof on #webkit).
2550
2551         * WTF.pri:
2552
2553 2012-07-17  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
2554
2555         [Qt][V8] Remove the V8 related codepaths and configuration
2556         https://bugs.webkit.org/show_bug.cgi?id=90863
2557
2558         Reviewed by Simon Hausmann.
2559
2560         * WTF.pri:
2561
2562 2012-07-16  Hajime Morrita  <morrita@chromium.org>
2563
2564         WebCore needs WEBCORE_TESTING macro to mark methods being exported for testing.
2565         https://bugs.webkit.org/show_bug.cgi?id=90764
2566
2567         Reviewed by Adam Barth.
2568
2569         Added USE(EXPORT_MACROS_FOR_TESTING) and enabled it on GTK and Windows.
2570
2571         * wtf/ExportMacros.h:
2572         * wtf/Platform.h:
2573
2574 2012-07-16  Filip Pizlo  <fpizlo@apple.com>
2575
2576         Unreviewed build fix.
2577
2578         * wtf/FastMalloc.cpp:
2579         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2580
2581 2012-07-16  Adam Treat  <atreat@rim.com>
2582
2583         [BlackBerry] Use newer version of platform API to implement callOnMainThread
2584         https://bugs.webkit.org/show_bug.cgi?id=91404
2585
2586         Reviewed by Yong Li.
2587
2588         Right now we're using an outdated API that involves a virtual function call for no reason.
2589         Use the new API that is much more direct and to the point.
2590
2591         * wtf/blackberry/MainThreadBlackBerry.cpp:
2592         (WTF::scheduleDispatchFunctionsOnMainThread):
2593
2594 2012-07-14  Filip Pizlo  <fpizlo@apple.com>
2595
2596         Unreviewed, build fix.
2597
2598         * wtf/Assertions.cpp:
2599         * wtf/Platform.h:
2600         * wtf/unicode/icu/CollatorICU.cpp:
2601         (WTF::Collator::userDefault):
2602
2603 2012-07-13  Xianzhu Wang  <wangxianzhu@chromium.org>
2604
2605         Move WebCore/platform/text/Base64 to WTF/wtf/text
2606         https://bugs.webkit.org/show_bug.cgi?id=91162
2607
2608         Reviewed by Adam Barth.
2609
2610         * GNUmakefile.list.am:
2611         * WTF.gypi:
2612         * WTF.pro:
2613         * WTF.vcproj/WTF.vcproj:
2614         * WTF.xcodeproj/project.pbxproj:
2615         * wtf/CMakeLists.txt:
2616         * wtf/text/Base64.cpp: Renamed from Source/WebCore/platform/text/Base64.cpp.
2617         (WTF):
2618         (WTF::base64Encode):
2619         (WTF::base64Decode):
2620         (WTF::base64DecodeInternal):
2621         * wtf/text/Base64.h: Renamed from Source/WebCore/platform/text/Base64.h.
2622         (WTF):
2623         (WTF::base64Encode):
2624
2625 2012-07-12  Carlos Garcia Campos  <cgarcia@igalia.com>
2626
2627         [GTK] Add API to get HTTPS status to WebKit2 GTK+
2628         https://bugs.webkit.org/show_bug.cgi?id=91100
2629
2630         Reviewed by Martin Robinson.
2631
2632         Add support for GByteArray.
2633
2634         * wtf/gobject/GRefPtr.cpp:
2635         (WTF::refGPtr):
2636         (WTF):
2637         (WTF::derefGPtr):
2638         * wtf/gobject/GRefPtr.h:
2639         (WTF):
2640         * wtf/gobject/GTypedefs.h:
2641
2642 2012-07-12  Maciej Stachowiak  <mjs@apple.com>
2643
2644         Document ListHashSet iteration guarantees
2645         https://bugs.webkit.org/show_bug.cgi?id=91106
2646
2647         Reviewed by Eric Seidel.
2648
2649         * wtf/ListHashSet.h:
2650         (WTF): Expand class comment to document this.
2651
2652 2012-07-11  Mark Rowe  <mrowe@apple.com>
2653
2654         <http://webkit.org/b/91024> Build against the latest SDK when targeting older OS X versions.
2655
2656         Reviewed by Dan Bernstein.
2657
2658         The deployment target is already set to the version that we're targeting, and it's that setting
2659         which determines which functionality from the SDK is available to us.
2660
2661         * Configurations/Base.xcconfig:
2662
2663 2012-07-11  Mark Rowe  <mrowe@apple.com>
2664
2665         Replace definitions of BUILDING_ON / TARGETING macros with macros that will error when used.
2666
2667         Part of <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros.
2668
2669         Reviewed by Anders Carlsson.
2670
2671         * wtf/Platform.h:
2672
2673 2012-07-11  Mark Rowe  <mrowe@apple.com>
2674
2675         Switch a few cases that care about the SDK over to checking __MAC_OS_X_VERSION_MAX_ALLOWED so that things build.
2676
2677         Part of <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros
2678
2679         Reviewed by Filip Pizlo.
2680
2681         * wtf/FastMalloc.cpp:
2682         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary): The SDK we're building against determines how many elements
2683         the structure is declared as having.
2684
2685 2012-07-11  Mark Rowe  <mrowe@apple.com>
2686
2687         <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros
2688
2689         This removal was handled by a script that translates the relevant macros in to the equivalent checks
2690         using the system availability macros.
2691
2692         Reviewed by Filip Pizlo.
2693
2694         * wtf/Assertions.cpp:
2695         * wtf/FastMalloc.cpp:
2696         * wtf/Platform.h:
2697         * wtf/ThreadingPthreads.cpp:
2698         * wtf/unicode/icu/CollatorICU.cpp:
2699
2700 2012-07-11  Anders Carlsson  <andersca@apple.com>
2701
2702         Add -Wtautological-compare and -Wsign-compare warning flags
2703         https://bugs.webkit.org/show_bug.cgi?id=90994
2704
2705         Reviewed by Mark Rowe.
2706
2707         * Configurations/Base.xcconfig:
2708
2709 2012-07-10  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2710
2711         Re-enable __declspec(dl{import,export}) for MinGW when using EXPORT_MACROS
2712         https://bugs.webkit.org/show_bug.cgi?id=90612
2713
2714         Reviewed by Csaba Osztrogonác.
2715
2716         MinGW was switched to use auto import/export of symbols on r44184.
2717         From my understanding of the documentation, MinGW will not auto-export symbols
2718         unless there are no explicit __declspec(dlexport) in the DLL already.
2719
2720         The issues that originally made us rely on the auto-import feature of MinGW
2721         should now be resolved with the EXPORT_MACROS work. This patch re-enables them.
2722
2723         It also removes the GCC check for internal symbols hiding as the visibility should
2724         already be hidden by default for both MSVC and GCC on Windows anyway.
2725
2726         * wtf/ExportMacros.h:
2727
2728 2012-07-09  No'am Rosenthal  <noam.rosenthal@nokia.com>
2729
2730         Shared code that is guarded with ENABLE(WEBGL) should be guarded with USE()
2731         https://bugs.webkit.org/show_bug.cgi?id=90506
2732
2733         Reviewed by Martin Robinson.
2734
2735         Made USE(3D_GRAPHICS) default to true when ENABLE(WEBGL) is true.
2736         Also updated the Qt default to always use TEXTURE_MAPPER, and to use TEXTURE_MAPPER_GL when
2737         3D_GRAPHICS is used.
2738
2739         * wtf/Platform.h:
2740
2741 2012-07-08  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
2742
2743         Introduce a build flag for low quality JPEG images
2744         https://bugs.webkit.org/show_bug.cgi?id=90748
2745
2746         Reviewed by Adam Barth.
2747
2748         Turn on the newly introduced flags for android.
2749
2750         * wtf/Platform.h:
2751
2752 2012-07-05  Filip Pizlo  <fpizlo@apple.com>
2753
2754         INLINE_ARM_FUNCTION(thingy) should make thingy be thumb2 if we're using thumb2
2755         https://bugs.webkit.org/show_bug.cgi?id=90644
2756
2757         Reviewed by Mark Hahnenberg.
2758         
2759         Fix breakage introduced in http://trac.webkit.org/changeset/121885
2760
2761         * wtf/InlineASM.h:
2762
2763 2012-07-05  Zoltan Herczeg  <zherczeg@webkit.org>
2764
2765         Port DFG JIT to traditional ARM
2766         https://bugs.webkit.org/show_bug.cgi?id=90198
2767
2768         Reviewed by Filip Pizlo.
2769
2770         Enabling DFG JIT on ARM systems with 32 bit instruction set.
2771
2772         * wtf/InlineASM.h:
2773         * wtf/Platform.h:
2774
2775 2012-07-04  Andy Wingo  <wingo@igalia.com>
2776
2777         [GTK] Enable parallel GC
2778         https://bugs.webkit.org/show_bug.cgi?id=90568
2779
2780         Reviewed by Martin Robinson.
2781
2782         * wtf/Platform.h: Add GTK to the ENABLE_PARALLEL_GC party.
2783
2784 2012-07-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2785
2786         [Qt] Get rid of un-needed QT += declarative for Qt 5
2787
2788         The declarative module has been renamed to quick1 in Qt 5, and the
2789         engine-only module for Qt 5 is named 'qml'. For many of the instances
2790         we could just remove 'declarative', since the project file was only
2791         used for Qt5/WebKit2 builds. In the other cases the module was wrapped
2792         in a haveQt(4) scope.
2793
2794         Reviewed by Csaba Osztrogonác.
2795
2796         * WTF.pri:
2797
2798 2012-07-03  Yong Li  <yoli@rim.com>
2799
2800         [BlackBerry] Turn on DFGJIT in Platform.h
2801         https://bugs.webkit.org/show_bug.cgi?id=90482
2802
2803         Set ENABLE_DFG_JIT for PLATFORM(BLACKBERRY).
2804
2805         Reviewed by Rob Buis.
2806
2807         * wtf/Platform.h:
2808
2809 2012-07-03  Tony Chang  <tony@chromium.org>
2810
2811         [chromium] Unreviewed, update .gitignore to handle VS2010 files.
2812
2813         * WTF.gyp/.gitignore:
2814
2815 2012-07-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2816
2817         [Qt] Make use of .qmake.cache for caching features
2818
2819         Instead of loading() features from the files that need them (and re-running
2820         a bunch of checks), we now run feature detection as part of configure.pro,
2821         and have build-webkit write the computed feature-defines and CONFIG to
2822         .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
2823         when building WebKit.pro.
2824
2825         At some point we'll be able to selectivly prevent running of config tests
2826         in configure.pro, which means we don't need a separate code-path for
2827         the build-webkit --help case.
2828
2829         We should also move the code in build-webkit that now uses .webkit.config
2830         to detect clean builds, to use .qmake.cache, since we now store the same
2831         thing there.
2832
2833         Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2834
2835         Reviewed by Tor Arne Vestbø.
2836
2837         * WTF.pri:
2838
2839 2012-07-03  Sheriff Bot  <webkit.review.bot@gmail.com>
2840
2841         Unreviewed, rolling out r121766.
2842         http://trac.webkit.org/changeset/121766
2843         https://bugs.webkit.org/show_bug.cgi?id=90465
2844
2845         It caused flakey build errors on the bots (Requested by Ossy
2846         on #webkit).
2847
2848         * WTF.pri:
2849
2850 2012-07-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2851
2852         [Qt] Make use of .qmake.cache for caching features
2853
2854         Instead of loading() features from the files that need them (and re-running
2855         a bunch of checks), we now run feature detection as part of configure.pro,
2856         and have build-webkit write the computed feature-defines and CONFIG to
2857         .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
2858         when building WebKit.pro.
2859
2860         At some point we'll be able to selectivly prevent running of config tests
2861         in configure.pro, which means we don't need a separate code-path for
2862         the build-webkit --help case.
2863
2864         We should also move the code in build-webkit that now uses .webkit.config
2865         to detect clean builds, to use .qmake.cache, since we now store the same
2866         thing there.
2867
2868         Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2869
2870         Reviewed by Tor Arne Vestbø.
2871
2872         * WTF.pri:
2873
2874 2012-07-03  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>  Joel Dillon <joel.dillon@codethink.co.uk>
2875
2876         [Qt][Win] Fix broken QtWebKit5.lib linking
2877         https://bugs.webkit.org/show_bug.cgi?id=88321
2878
2879         Reviewed by Kenneth Rohde Christiansen.
2880
2881         Instead of letting a module's headers know which other modules depend on them,
2882         have depending modules define explicitely that they want its symbols exported too.
2883
2884         JavaScriptCore should then be compiled with both BUILDING_JavaScriptCore and
2885         STATICALLY_LINKED_WITH_WTF.
2886
2887         * wtf/ExportMacros.h:
2888
2889 2012-06-29  Tony Chang  <tony@chromium.org>
2890
2891         Unreviewed, rolling out r121572.
2892         http://trac.webkit.org/changeset/121572
2893         https://bugs.webkit.org/show_bug.cgi?id=90249
2894
2895         Breaks Mac build since it depends on r121547, which was rolled
2896         out
2897
2898         * wtf/ThreadingPthreads.cpp:
2899         (WTF::initializeCurrentThreadInternal):
2900
2901 2012-06-29  Eric Seidel  <eric@webkit.org>
2902
2903         Remove BUILDING_ON_LEOPARD now that no ports build on Leopard
2904         https://bugs.webkit.org/show_bug.cgi?id=90249
2905
2906         Reviewed by Ryosuke Niwa.
2907
2908         * wtf/ThreadingPthreads.cpp:
2909         (WTF::initializeCurrentThreadInternal):
2910
2911 2012-06-29  Sheriff Bot  <webkit.review.bot@gmail.com>
2912
2913         Unreviewed, rolling out r121529.
2914         http://trac.webkit.org/changeset/121529
2915         https://bugs.webkit.org/show_bug.cgi?id=90260
2916
2917         Failed to compile on Chromium WebKitMacBuilder (Requested by
2918         keishi on #webkit).
2919
2920         * wtf/FastMalloc.cpp:
2921         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2922         * wtf/unicode/icu/CollatorICU.cpp:
2923         (WTF::Collator::userDefault):
2924
2925 2012-06-29  Eric Seidel  <eric@webkit.org>
2926
2927         Remove more BUILDING_ON_LEOPARD branches now that no port builds on Leopard
2928         https://bugs.webkit.org/show_bug.cgi?id=90252
2929
2930         Reviewed by Ryosuke Niwa.
2931
2932         * wtf/FastMalloc.cpp:
2933         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2934         * wtf/unicode/icu/CollatorICU.cpp:
2935         (WTF::Collator::userDefault):
2936
2937 2012-06-29  Eric Seidel  <eric@webkit.org>
2938
2939         Remove more BUILDING_ON_LEOPARD usage in PLATFORM(MAC) code
2940         https://bugs.webkit.org/show_bug.cgi?id=85846
2941
2942         Reviewed by Adam Barth.
2943
2944         PLATFORM(MAC) has not supported Leopard for several months now.
2945         This change removes about 1/3 of the remaining BUILDING_ON_LEOPARD
2946         uses in the PLATFORM(MAC) codepaths.  PLATFORM(CHROMIUM) still
2947         supports BUILDING_ON_LEOPARD for now.
2948
2949         * wtf/Platform.h:
2950
2951 2012-06-28  Kalev Lember  <kalevlember@gmail.com>
2952
2953         ThreadingWin: Silence GCC compiler warnings
2954         https://bugs.webkit.org/show_bug.cgi?id=89491
2955
2956         Reviewed by Adam Roben.
2957
2958         * wtf/ThreadingWin.cpp:
2959         (WTF::createThreadInternal):
2960         (WTF::PlatformCondition::timedWait):
2961         (WTF::PlatformCondition::signal): Fix unused-but-set-variable
2962         warnings.
2963
2964 2012-06-26  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2965
2966         [Qt] Add missing heades to HEADERS
2967
2968         For JavaScriptCore there aren't any Qt specific files, so we include all
2969         headers for easy editing in Qt Creator.
2970
2971         Reviewed by Simon Hausmann.
2972
2973         * WTF.pro:
2974
2975 2012-06-25  Kent Tamura  <tkent@chromium.org>
2976
2977         Unreviewed, rolling out r121145.
2978         http://trac.webkit.org/changeset/121145
2979         https://bugs.webkit.org/show_bug.cgi?id=89847
2980
2981         Had an objection for the change.
2982
2983         * wtf/text/StringBuilder.h:
2984
2985 2012-06-25  Yong Li  <yoli@rim.com>
2986
2987         [BlackBerry] Add JSC statistics into about:memory
2988         https://bugs.webkit.org/show_bug.cgi?id=89779
2989
2990         Reviewed by Rob Buis.
2991
2992         Turn on WTF_USE_EXPORT_MACROS for BlackBerry port.
2993         This will make macros like JS_EXPORT_PRIVATE work without
2994         extra porting.
2995
2996         * wtf/Platform.h:
2997
2998 2012-06-25  Adam Barth  <abarth@webkit.org>
2999
3000         Use InterpolationLow on chromium-android
3001         https://bugs.webkit.org/show_bug.cgi?id=89849
3002
3003         Reviewed by Daniel Bates.
3004
3005         Introduce a USE macro to control image interpolation quality.
3006
3007         * wtf/Platform.h:
3008
3009 2012-06-25  Kent Tamura  <tkent@chromium.org>
3010
3011         Change the serialization format of form control state to make the code simple
3012         https://bugs.webkit.org/show_bug.cgi?id=89847
3013
3014         Reviewed by Hajime Morita.
3015
3016         * wtf/text/StringBuilder.h:
3017         (WTF::StringBuilder::appendEscaped): Added. This function adds the
3018         escaped form of the input string. e.g. if stiring="foo,bar" escape='\'
3019         special=',', the appended string is foo\,bar.
3020
3021 2012-06-24  Adam Barth  <abarth@webkit.org>
3022
3023         Remove USE(CHROMIUM_NET) because it is unused
3024         https://bugs.webkit.org/show_bug.cgi?id=89850
3025
3026         Reviewed by Eric Seidel.
3027
3028         I didn't see any mentions of CHROMIUM_NET when I grepped the Source
3029         directory. Also, this USE macro isn't defined on OS(DARWIN) or
3030         OS(ANDROID), which seems a bit odd given that Chromium uses the same
3031         network stack on all platforms.
3032
3033         * wtf/Platform.h:
3034
3035 2012-06-22  Peter Beverloo  <peter@chromium.org>
3036
3037         [Chromium] Disable c++0x compatibility warnings in JavaScriptCore.gyp when building for Android
3038         https://bugs.webkit.org/show_bug.cgi?id=88853
3039
3040         Reviewed by Steve Block.
3041
3042         The Android exclusions were necessary to fix a gyp generation error, as
3043         the gcc_version variable wasn't being defined for Android. Remove these
3044         exceptions when Chromium is able to define the gcc_version variable.
3045
3046         * WTF.gyp/WTF.gyp:
3047
3048 2012-06-18  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
3049
3050         Causes crashes in LLVMPipe
3051         https://bugs.webkit.org/show_bug.cgi?id=89358
3052
3053         Reviewed by Martin Robinson.
3054
3055         Change suggested by Dave Airlie and Xan Lopez.
3056
3057         * wtf/Platform.h: disable global fastMalloc for GTK+
3058
3059 2012-06-22  Mario Sanchez Prada  <msanchez@igalia.com>
3060
3061         Memory corruption on HashTable.h
3062         https://bugs.webkit.org/show_bug.cgi?id=88419
3063
3064         Reviewed by Martin Robinson.
3065
3066         Simplify definition of WTF_USE_PTHREADS and HAVE_PTHREAD_RWLOCK
3067         for the GTK platform using OS(LINUX) instead of HAVE(PTHREAD_H).
3068
3069         * wtf/Platform.h:
3070
3071 2012-06-21  Parth Patel  <parpatel@rim.com>
3072
3073         [Blackberry] BlackBerry::Platform::Settings::get() rename to BlackBerry::Platform::Settings::instance() to make it consistent with our other singletons
3074         https://bugs.webkit.org/show_bug.cgi?id=89684
3075
3076         Reviewed by Yong Li.
3077         
3078         Update setting instance access to use instance() instead of get().
3079
3080         * wtf/ThreadingPthreads.cpp:
3081         (WTF::createThreadInternal):
3082
3083 2012-06-21  Kalev Lember  <kalevlember@gmail.com>
3084
3085         [GTK] Fix NPAPI plugins on Windows
3086         https://bugs.webkit.org/show_bug.cgi?id=54531
3087
3088         Reviewed by Martin Robinson.
3089
3090         Define ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH for the GTK+ port, and
3091         include OwnPtrWin.cpp in the list of files built on Windows.
3092
3093         * GNUmakefile.am:
3094         * GNUmakefile.list.am:
3095         * wtf/Platform.h:
3096
3097 2012-06-21  Balazs Kelemen  <kbalazs@webkit.org>
3098
3099         Compile error: 'bool std::isinf(float)' is not 'constexpr' with GCC 4.6 in C++11 mode
3100         https://bugs.webkit.org/show_bug.cgi?id=88721
3101
3102         Reviewed by Csaba Osztrogonác.
3103
3104         Don't define these as consexpr because with gcc 4.6
3105         they call non constexpr functions.
3106         * wtf/MathExtras.h:
3107         (std::wtf_isinf):
3108         (std::wtf_isnan):
3109
3110 2012-06-17  Filip Pizlo  <fpizlo@apple.com>
3111
3112         It should be possible to look at disassembly
3113         https://bugs.webkit.org/show_bug.cgi?id=89319
3114
3115         Reviewed by Sam Weinig.
3116         
3117         Made changes to Assertions.h to make it friendly to C code again.
3118         
3119         Added ENABLE(DISASSEMBLER) and USE(UDIS86) logic to Platform.h.
3120
3121         * wtf/Assertions.h:
3122         * wtf/Platform.h:
3123
3124 2012-06-19  Jon Honeycutt  <jhoneycutt@apple.com>
3125
3126         REGRESSION(r120552): Many tests timing out on Windows
3127         https://bugs.webkit.org/show_bug.cgi?id=89433
3128
3129         Reviewed by Andy Estes.
3130
3131         * wtf/CurrentTime.cpp:
3132         (WTF::lowResUTCTime):
3133         It looks like there were two bugs:
3134         1) the function was converting from 100ths of nanoseconds to seconds
3135            rather than 100s of nanoseconds to seconds by dividing by
3136            (nsPerSecond * 100) rather than (nsPerSecond / 100)
3137         2) the function should've been returning milliseconds, not seconds
3138
3139 2012-06-18  Tony Payne  <tpayne@chromium.org>
3140
3141         [chromium] Add iccjpeg and qcms to chromium port.
3142         https://bugs.webkit.org/show_bug.cgi?id=81974
3143
3144         * wtf/Platform.h: Add Chromium USE defines for ICCJPEG and QCMSLIB
3145         to each Chromium platform, excluding Android.
3146
3147         Reviewed by Adam Barth.
3148
3149 2012-06-18  Sheriff Bot  <webkit.review.bot@gmail.com>
3150
3151         Unreviewed, rolling out r120485 and r120582.
3152         http://trac.webkit.org/changeset/120485
3153         http://trac.webkit.org/changeset/120582
3154         https://bugs.webkit.org/show_bug.cgi?id=89345
3155
3156         chromeos tree breakage (Requested by morrita on #webkit).
3157
3158         * wtf/Platform.h:
3159
3160 2012-06-17  Patrick Gansterer  <paroga@webkit.org>
3161
3162         [WIN] Simplify implementation of currentTime()
3163         https://bugs.webkit.org/show_bug.cgi?id=83156
3164
3165         Reviewed by Brent Fulgham.
3166
3167         Use GetSystemTimeAsFileTime() instead of ftime().
3168         This avoids an unneeded call to the MS CRT and
3169         brings the Win/WinCE code closer together.
3170
3171         * wtf/CurrentTime.cpp:
3172         (WTF::lowResUTCTime):
3173         (WTF::currentTime):
3174
3175 2012-06-15  Tony Payne  <tpayne@chromium.org>
3176
3177         [chromium] Add iccjpeg and qcms to chromium port.
3178         https://bugs.webkit.org/show_bug.cgi?id=81974
3179
3180         * wtf/Platform.h: Add Chromium USE defines for ICCJPEG and QCMSLIB
3181         to each Chromium platform, excluding Android.
3182
3183         Reviewed by Adam Barth.
3184
3185 2012-06-14  Sheriff Bot  <webkit.review.bot@gmail.com>
3186
3187         Unreviewed, rolling out r120393.
3188         http://trac.webkit.org/changeset/120393
3189         https://bugs.webkit.org/show_bug.cgi?id=89163
3190
3191         breaks cr-mac build (Requested by morrita on #webkit).
3192
3193         * wtf/Platform.h:
3194
3195 2012-06-14  Tony Payne  <tpayne@chromium.org>
3196
3197         [chromium] Add iccjpeg and qcms to chromium port.
3198         https://bugs.webkit.org/show_bug.cgi?id=81974
3199
3200         * wtf/Platform.h: Add Chromium USE defines for ICCJPEG and QCMSLIB
3201         to each Chromium platform, excluding Android.
3202
3203         Reviewed by Adam Barth.
3204
3205 2012-06-14  Yong Li  <yoli@rim.com>
3206
3207         [BlackBerry] Implement computeRAMSize for QNX
3208         https://bugs.webkit.org/show_bug.cgi?id=89110
3209
3210         Reviewed by Rob Buis.
3211
3212         * wtf/RAMSize.cpp:
3213         (WTF::computeRAMSize):
3214
3215 2012-06-14  Geoffrey Garen  <ggaren@apple.com>
3216
3217         ARMv7 should support spinlocks
3218         https://bugs.webkit.org/show_bug.cgi?id=88957
3219
3220         Reviewed by Darin Adler.
3221
3222         More info @ http://infocenter.arm.com/help/topic/
3223         com.arm.doc.genc007826/Barrier_Litmus_Tests_and_Cookbook_A08.pdf
3224
3225         * wtf/Atomics.h:
3226         (WTF::memoryBarrierAfterLock):
3227         (WTF::memoryBarrierBeforeUnlock): Added memory barrier primitives since
3228         ARMv7 has a weakly ordered memory model.
3229
3230         * wtf/Platform.h: Enabled compare-and-swap on Windows so our spinlock
3231         implementation would continue working on Windows.
3232
3233         * wtf/TCSpinLock.h:
3234         (TCMalloc_SpinLock::Lock):
3235         (TCMalloc_SpinLock::Unlock):
3236         (TCMalloc_SpinLock): Use our compare-and-swap helper function to avoid
3237         rewriting it in assembly here.
3238
3239         Added memory barriers since ARMv7 needs them.
3240
3241         Removed PPC support because our helper function doesn't support PPC.
3242
3243 2012-06-13  Arnaud Renevier  <arno@renevier.net>
3244
3245         make sure headers are included only once per file
3246         https://bugs.webkit.org/show_bug.cgi?id=88929
3247
3248         Reviewed by Kentaro Hara.
3249
3250         * wtf/FastMalloc.cpp:
3251         * wtf/MathExtras.h:
3252         * wtf/OSAllocator.h:
3253
3254 2012-06-13  Benjamin Poulain  <benjamin@webkit.org>
3255
3256         Implement the simple constructors WTFURL's KURL
3257         https://bugs.webkit.org/show_bug.cgi?id=85724
3258
3259         Reviewed by Adam Barth.
3260
3261         This patch extends WTFURL with:
3262         -support basic debugging using print() methods
3263         -parsing in the incomming string character set (8bits or 16bits)
3264         -add a function for parsing of relative URL (but no implementation yet)
3265
3266         * WTF.xcodeproj/project.pbxproj:
3267         * wtf/text/WTFString.h:
3268         (String):
3269         * wtf/url/api/ParsedURL.cpp:
3270         (WTF::ParsedURL::ParsedURL):
3271         (WTF):
3272         (WTF::ParsedURL::hasFragment): Add this method to query the framgent availability without
3273         allocating a new String.
3274         (WTF::ParsedURL::withoutFragment): This method is added to implement KURL::removeFragmentIdentifier() and
3275         the parsing of empty relative URL (where we return the base without fragment).
3276         (WTF::ParsedURL::print):
3277         * wtf/url/api/ParsedURL.h:
3278         (ParsedURL):
3279         (WTF::ParsedURL::spec):
3280         * wtf/url/api/URLString.h:
3281         (URLString):
3282         * wtf/url/src/URLParser.h:
3283         (WTF):
3284         (URLParser):
3285         (WTF::URLParser::parseURLWithBase):
3286         * wtf/url/src/URLSegments.cpp:
3287         (WTF::URLSegments::length):
3288         (WTF::URLSegments::charactersBefore):
3289         * wtf/url/src/URLSegments.h:
3290         (URLSegments):
3291         Change the boolean argument includeDelimiter in favor of an enum to improve readability.
3292
3293 2012-06-13  Filip Pizlo  <fpizlo@apple.com>
3294
3295         DFG should be able to set watchpoints on global variables
3296         https://bugs.webkit.org/show_bug.cgi?id=88692
3297
3298         Reviewed by Geoffrey Garen.
3299         
3300         Added ability to set the inline capacity of segmented vectors.
3301         
3302         Also added the ability ot ASSERT_NOT_REACHED() without having to
3303         propagate NO_RETURN macros, which would be a show-stopper for code
3304         that is conditionally unreachable.
3305
3306         * wtf/Assertions.h:
3307         (UNREACHABLE_FOR_PLATFORM):
3308         * wtf/SegmentedVector.h:
3309         (WTF):
3310         (SegmentedVectorIterator):
3311         (WTF::SegmentedVectorIterator::operator=):
3312         (WTF::SegmentedVectorIterator::SegmentedVectorIterator):
3313         (SegmentedVector):
3314
3315 2012-06-13  Sheriff Bot  <webkit.review.bot@gmail.com>
3316
3317         Unreviewed, rolling out r120172.
3318         http://trac.webkit.org/changeset/120172
3319         https://bugs.webkit.org/show_bug.cgi?id=88976
3320
3321         The patch causes compilation failures on Gtk, Qt and Apple Win
3322         bots (Requested by zdobersek on #webkit).
3323
3324         * wtf/SegmentedVector.h:
3325         (WTF):
3326         (SegmentedVectorIterator):
3327         (WTF::SegmentedVectorIterator::operator=):
3328         (WTF::SegmentedVectorIterator::SegmentedVectorIterator):
3329         (SegmentedVector):
3330
3331 2012-06-10  Filip Pizlo  <fpizlo@apple.com>
3332
3333         DFG should be able to set watchpoints on global variables
3334         https://bugs.webkit.org/show_bug.cgi?id=88692
3335
3336         Reviewed by Geoffrey Garen.
3337         
3338         Added ability to set the inline capacity of segmented vectors.
3339
3340         * wtf/SegmentedVector.h:
3341         (WTF):
3342         (SegmentedVectorIterator):
3343         (WTF::SegmentedVectorIterator::operator=):
3344         (WTF::SegmentedVectorIterator::SegmentedVectorIterator):
3345         (SegmentedVector):
3346
3347 2012-06-12  Geoffrey Garen  <ggaren@apple.com>
3348
3349         Try to fix the build.
3350
3351         Maybe don't export inlined functions.
3352
3353         * wtf/ThreadingPrimitives.h:
3354         (WTF::MutexTryLocker::MutexTryLocker):
3355         (WTF::MutexTryLocker::~MutexTryLocker):
3356         (WTF::MutexTryLocker::locked):
3357
3358 2012-06-11  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3359
3360         Using extrernal ICU library on case unsensitive drives will not work
3361         https://bugs.webkit.org/show_bug.cgi?id=70913
3362
3363         Reviewed by Csaba Osztrogonác.
3364
3365         Properly set the include path for the WTF module and for modules using it.
3366         The path should include Source/WTF/wtf only when building WTF itself. Other
3367         modules are expected to include the headers as #include <wtf/Header.h>, so
3368         only add Source/WTF to their include path.
3369
3370         "unicode/utf8.h" should now then always reference to ICU in the include path
3371         and "wtf/unicode/UTF8.h" reference to the WTF version.
3372         This will work as long as WTF object files don't depend on ICU themselves.
3373
3374         Removed gobject, qt and unicode from the include path as those directories
3375         don't exist anymore.
3376
3377         * WTF.pri:
3378         * WTF.pro:
3379
3380 2012-06-11  Carlos Garcia Campos  <cgarcia@igalia.com>
3381
3382         Unreviewed. Fix make distcheck issues.
3383
3384         * GNUmakefile.list.am: Add missing header file.
3385
3386 2012-06-09  Dominic Cooney  <dominicc@chromium.org>
3387
3388         [Chromium] Remove JavaScriptCore dependencies from gyp
3389         https://bugs.webkit.org/show_bug.cgi?id=88510
3390
3391         Reviewed by Adam Barth.
3392
3393         Chromium doesn't support JSC any more and there doesn't seem to be
3394         a strong interest in using GYP as the common build system in other
3395         ports.
3396
3397         * WTF.gyp/WTF.gyp:
3398
3399 2012-06-08  Andy Wingo  <wingo@igalia.com>
3400
3401         Explictly mark stubs called by JIT as being internal
3402         https://bugs.webkit.org/show_bug.cgi?id=88552
3403
3404         Reviewed by Filip Pizlo.
3405
3406         * wtf/ExportMacros.h (WTF_INTERNAL, HAVE_INTERNAL_VISIBILITY): New
3407         defines.  Regardless of what the port does about visibility in
3408         general, for code referenced only from assembly it is useful to
3409         give it internal visibility.
3410         * wtf/InlineASM.h: Split SYMBOL_STRING_RELOCATION into
3411         LOCAL_REFERENCE and GLOBAL_REFERENCE; the former will try to avoid
3412         indirection if HAVE(INTERNAL_VISIBILITY).
3413
3414 2012-06-07  Csaba Osztrogonác  <ossy@webkit.org>
3415
3416         [Qt][Win] Fix linking WTF with ICU
3417         https://bugs.webkit.org/show_bug.cgi?id=88302
3418
3419         Reviewed by Simon Hausmann.
3420
3421         * WTF.pri: Use proper library names on win32 platforms.
3422
3423 2012-06-06  Michael Saboff  <msaboff@apple.com>
3424
3425         ENH: Add Logging to GC Marking Phase
3426         https://bugs.webkit.org/show_bug.cgi?id=88364
3427
3428         Reviewed by Filip Pizlo.
3429
3430         * wtf/DataLog.cpp:
3431         (WTF::dataLogString): Additional method to support GC Mark logging.
3432         * wtf/DataLog.h:
3433         * wtf/Platform.h: New ENABLE_OBJECT_MARK_LOGGING flag macro.
3434
3435 2012-06-06  Andy Wingo  <wingo@igalia.com>
3436
3437         [GTK] Enable the LLInt
3438         https://bugs.webkit.org/show_bug.cgi?id=88315
3439
3440         Reviewed by Filip Pizlo.
3441
3442         * wtf/InlineASM.h: Add an implementation of LOCAL_LABEL_STRING for
3443         OS(LINUX).
3444         * wtf/Platform.h: Add OS(LINUX) to the set of operating systems
3445         for ENABLE_LLINT.  Add a specific check for PLATFORM(MAC) or
3446         PLATFORM(IOS), and add to that a check for PLATFORM(GTK).
3447
3448 2012-06-05  Roland Takacs  <takacs.roland@stud.u-szeged.hu>
3449
3450         [Qt] Use GraphicsContext3DOpenGLES.cpp when using OpenGL ES
3451         https://bugs.webkit.org/show_bug.cgi?id=78720
3452
3453         Reviewed by Noam Rosenthal.
3454
3455         Defined a global Opengl ES macro to check OpenGL ES on every platforms.
3456
3457         * wtf/Platform.h:
3458
3459 2012-06-04  Takashi Toyoshima  <toyoshim@chromium.org>
3460
3461         [WebSocket] Send requires super linear time against data size
3462         https://bugs.webkit.org/show_bug.cgi?id=87383
3463
3464         Reviewed by Kent Tamura.
3465
3466         * wtf/StreamBuffer.h: Added.
3467         (WTF):
3468         (StreamBuffer):
3469         (WTF::StreamBuffer::StreamBuffer):
3470         (WTF::StreamBuffer::~StreamBuffer):
3471         (WTF::StreamBuffer::isEmpty):
3472         (WTF::StreamBuffer::append):
3473         (WTF::StreamBuffer::consume):
3474         (WTF::StreamBuffer::size):
3475         (WTF::StreamBuffer::firstBlockData):
3476         (WTF::StreamBuffer::firstBlockSize):
3477
3478 2012-06-04  Patrick Gansterer  <paroga@webkit.org>
3479
3480         Port RAMSize to WinCE
3481         https://bugs.webkit.org/show_bug.cgi?id=87854
3482
3483         Reviewed by Geoffrey Garen.
3484
3485         WinCE has no GlobalMemoryStatusEx() function. Use GlobalMemoryStatus() instead.
3486
3487         * wtf/RAMSize.cpp:
3488         (WTF::computeRAMSize):
3489
3490 2012-06-01  Xianzhu Wang  <wangxianzhu@chromium.org>
3491
3492         Remove dependency from ImageDiff to WTF
3493         https://bugs.webkit.org/show_bug.cgi?id=88147
3494
3495         Reviewed by Adam Barth.
3496
3497         * WTF.gyp/WTF.gyp:
3498
3499 2012-06-01  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
3500
3501         [Qt] Save one copy when going from 8-bit WTF::String to QString
3502
3503         Asking for characters() of an 8-bit string will make a 16-bit copy internally
3504         in WTF::String. Since we're going to copy the data to QStringData anyways, which
3505         is 16-bit, we can do the conversion ourselves and save one copy.
3506
3507         Reviewed by Simon Hausmann.
3508
3509         * wtf/qt/StringQt.cpp:
3510         (WTF::String::operator QString):
3511
3512 2012-05-30  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
3513
3514         [Qt] Make conversion from QString to WTF::String (and back again) ~free
3515
3516         https://bugs.webkit.org/show_bug.cgi?id=87847
3517
3518         Instead of copying the QString data when converting to a WTF::String we
3519         make the WTF::String adopt the QString data by introducing a new buffer
3520         ownership type, and pointing the internal WTF::StringImpl 16-bit data
3521         member to the string data managed by QStringData.
3522
3523         We make sure to reference the QStringData when adopting, so that the
3524         data will stay alive, and then dereference it when the WTF::StringImpl
3525         is deleted, which will free the QStringData (either straight away, if
3526         we're the only one holding a reference still, or later, when the ref
3527         count goes to 0).
3528
3529         In the case of going back from a WTF::String to a QString we can cheat
3530         a bit (avoid a copy), if we know that the WTF::String was adopted from
3531         a QString, since it's then just a matter of having the QString adopt
3532         the existing QStringData (just like a regular QString copy).
3533
3534         If the WTF::String buffer is not owned by QStringData, eg a regular
3535         8-bit or 16-bit string/substring, we have to fall back to copying,
3536         as before (though there are potential optimization tricks we can
3537         apply here later on).
3538
3539         Reviewed by Gavin Barraclough.
3540
3541         * wtf/qt/StringQt.cpp:
3542         * wtf/text/StringImpl.cpp:
3543         * wtf/text/StringImpl.h:
3544
3545 2012-06-01  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
3546
3547         [EFL] Implement PlatformStrategies
3548         https://bugs.webkit.org/show_bug.cgi?id=86946
3549
3550         Reviewed by Carlos Garcia Campos.
3551
3552         * wtf/Platform.h: Enable PLATFORM_STRATEGIES for EFL platform.
3553
3554 2012-05-31  Anders Carlsson  <andersca@apple.com>
3555
3556         Enable support for rvalue references when building with a version of clang that supports them
3557         https://bugs.webkit.org/show_bug.cgi?id=88018
3558
3559         Re-enable support for rvalue references when building with a version of Xcode newer than 4.2.
3560
3561         * wtf/Compiler.h:
3562
3563 2012-05-31  Filip Pizlo  <fpizlo@apple.com>
3564
3565         DataLog should be usable outside of JSC
3566         https://bugs.webkit.org/show_bug.cgi?id=88015
3567
3568         Reviewed by Oliver Hunt.
3569
3570         * wtf/DataLog.h:
3571         (WTF):
3572
3573 2012-05-31  Anders Carlsson  <andersca@apple.com>
3574
3575         Disable support for rvalue references until I figure out why this is breaking the Xcode 4.2 build.
3576
3577         * wtf/Compiler.h:
3578
3579 2012-05-31  Anders Carlsson  <andersca@apple.com>
3580
3581         Vector should have a move constructor and move assignment operator
3582         https://bugs.webkit.org/show_bug.cgi?id=87997
3583
3584         Reviewed by Andreas Kling.
3585
3586         * wtf/Compiler.h:
3587         Use __has_extension so we can use move semantics and other C++11 features even when building as C++98.
3588
3589         * wtf/Vector.h:
3590         Add a move constructor and a move assignment operator to Vector.
3591
3592 2012-05-31  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
3593
3594         [Qt] Simplify QT_VERSION_CHECKS for Qt5 by introducing HAVE(QT5)
3595         https://bugs.webkit.org/show_bug.cgi?id=87955
3596
3597         Reviewed by Simon Hausmann.
3598
3599         * wtf/qt/UtilsQt.h:
3600
3601 2012-05-30  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
3602
3603         HashTable.h has using directives for std::pair and std::make_pair
3604         https://bugs.webkit.org/show_bug.cgi?id=29919
3605
3606         Reviewed by Darin Adler.
3607
3608         * wtf/HashTraits.h:
3609         (WTF): Remove the directives.
3610
3611 2012-05-30  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
3612
3613         HashTable.h has using directives for std::pair and std::make_pair
3614         https://bugs.webkit.org/show_bug.cgi?id=29919
3615
3616         Reviewed by Darin Adler.
3617
3618         Change code to use std::pair and std::make_pair. Later patch will remove the
3619         'using' directives.
3620
3621         * wtf/HashTable.h:
3622         (WTF::hashTableSwap):
3623         (HashTable):
3624         * wtf/HashTraits.h:
3625         (PairHashTraits):
3626         (WTF::PairHashTraits::emptyValue):
3627
3628 2012-05-30  Patrick Gansterer  <paroga@webkit.org>
3629
3630         Build fix for WinCE after r118603.
3631
3632         * wtf/Atomics.h:
3633         (WTF::weakCompareAndSwap):
3634
3635 2012-05-29  Anders Carlsson  <andersca@apple.com>
3636
3637         String should be move enabled/optimized
3638         https://bugs.webkit.org/show_bug.cgi?id=87596
3639
3640         Reviewed by Andreas Kling.
3641
3642         Add move constructors and move assignment operators to String and AtomicString when building with
3643         compilers that support rvalue references. This gets rid of ref-churn when the source of the 
3644         constructor or assignment is a temporary object.
3645
3646         * wtf/text/AtomicString.h:
3647         (AtomicString):
3648         (WTF::AtomicString::AtomicString):
3649         (WTF::AtomicString::operator=):
3650         * wtf/text/WTFString.h:
3651         (String):
3652         (WTF::String::String):
3653         (WTF::String::operator=):
3654
3655 2012-05-29  Alexandre Elias  <aelias@google.com>
3656
3657         Support WebKit log messages on Android
3658         https://bugs.webkit.org/show_bug.cgi?id=87773
3659
3660         Reviewed by Darin Adler.
3661