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