Fix Windows build.
[WebKit-https.git] / Source / WTF / ChangeLog
1 2013-10-07  Anders Carlsson  <andersca@apple.com>
2
3         Fix Windows build.
4
5         * wtf/StdLibExtras.h:
6         (std::make_unique):
7
8 2013-10-07  Roger Fong  <roger_fong@apple.com>
9
10         Modify WTF makefile for x64 build.
11         https://bugs.webkit.org/show_bug.cgi?id=122467.
12         <rdar://problem/15169174>.
13
14         Reviewed by Brent Fulgham.
15
16         * WTF.vcxproj/WTF.make:
17
18 2013-10-07  Anders Carlsson  <andersca@apple.com>
19
20         Remove passIn and passOut from HashTraits
21         https://bugs.webkit.org/show_bug.cgi?id=122452
22
23         Reviewed by Sam Weinig.
24
25         Change RefPtrHashMap to not use passOut (just like the regular HashMap) and get rid of the
26         passIn and passOut functions and related typedefs.
27
28         * wtf/HashTraits.h:
29         * wtf/RefPtrHashMap.h:
30
31 2013-10-06  Anders Carlsson  <andersca@apple.com>
32
33         Add OVERRIDE and virtual where appropriate
34         https://bugs.webkit.org/show_bug.cgi?id=122439
35
36         Reviewed by Antti Koivisto.
37
38         * wtf/Compiler.h:
39         * wtf/FilePrintStream.h:
40         * wtf/StringPrintStream.h:
41
42 2013-10-06  Andreas Kling  <akling@apple.com>
43
44         Range constructors should take a Document&.
45         <https://webkit.org/b/122435>
46
47         Reviewed by Sam Weinig.
48
49         Give Ref an assignment operator.
50
51 2013-10-05  Anders Carlsson  <andersca@apple.com>
52
53         Clean up MessageQueue.h
54         https://bugs.webkit.org/show_bug.cgi?id=122392
55
56         Reviewed by Andreas Kling.
57
58         Make MessageQueue use std::unique_ptr and change findIf and removeIf to take const references.
59
60         * wtf/Deque.h:
61         Change findIf to take an rvalue reference.
62
63         * wtf/MessageQueue.h:
64         (WTF::::append):
65         (WTF::::appendAndKill):
66         (WTF::::appendAndCheckEmpty):
67         (WTF::::prepend):
68         (WTF::::removeIf):
69
70 2013-10-05  Anders Carlsson  <andersca@apple.com>
71
72         Try to #define final to sealed when building with MSVC
73         https://bugs.webkit.org/show_bug.cgi?id=122386
74
75         Reviewed by Darin Adler.
76
77         * wtf/Compiler.h:
78
79 2013-10-05  Anders Carlsson  <andersca@apple.com>
80
81         Remove createOwned
82         https://bugs.webkit.org/show_bug.cgi?id=122388
83
84         Reviewed by Darin Adler.
85
86         Since we're going with std::unique_ptr instead of OwnPtr, there's no need for makeOwned to exist.
87         Get rid of it and replace it with calls to std::make_unique.
88
89         * wtf/FilePrintStream.cpp:
90         (WTF::FilePrintStream::open):
91         * wtf/FilePrintStream.h:
92         * wtf/HashTable.h:
93         (WTF::::HashTable):
94         * wtf/ListHashSet.h:
95         (WTF::::ListHashSet):
96         * wtf/OwnPtr.h:
97         * wtf/Threading.cpp:
98         (WTF::compatEntryPoint):
99         (WTF::createThread):
100         * wtf/ThreadingPthreads.cpp:
101         (WTF::wtfThreadEntryPoint):
102         (WTF::createThreadInternal):
103         * wtf/unicode/Collator.h:
104         * wtf/unicode/CollatorDefault.cpp:
105         (WTF::Collator::userDefault):
106         * wtf/unicode/icu/CollatorICU.cpp:
107         (WTF::Collator::userDefault):
108
109 2013-10-05  Darin Adler  <darin@apple.com>
110
111         Remove COMPILER_SUPPORTS(CXX_RVALUE_REFERENCES) since it's required now
112         https://bugs.webkit.org/show_bug.cgi?id=122387
113
114         Reviewed by Anders Carlsson.
115
116         * wtf/RefPtr.h:
117         * wtf/RetainPtr.h:
118         * wtf/Vector.h:
119         * wtf/text/AtomicString.h:
120         * wtf/text/WTFString.h:
121         Take out conditionals.
122
123 2013-10-05  Darin Adler  <darin@apple.com>
124
125         Add AtomicString::number and use it
126         https://bugs.webkit.org/show_bug.cgi?id=122384
127
128         Reviewed by Anders Carlsson.
129
130         * wtf/text/AtomicString.cpp:
131         (WTF::AtomicString::number): Added.
132         * wtf/text/AtomicString.h: Ditto.
133
134         * wtf/text/IntegerToStringConversion.h: Simplify includes, renamed ConversionTrait to
135         IntegerToStringConversionTrait. Changed String version to use String since we no longer
136         need to use PassRefPtr to efficiently handle return values. Replaced UnsignedIntegerTrait
137         with std::make_unsigned. Added AtomicString support. Use nullptr instead of 0.
138
139 2013-10-05  Darin Adler  <darin@apple.com>
140
141         Cut down on use of String::number
142         https://bugs.webkit.org/show_bug.cgi?id=122382
143
144         Reviewed by Anders Carlsson.
145
146         * wtf/DateMath.cpp:
147         (WTF::appendTwoDigitNumber): Added. Replaces twoDigitStringFromNumber, which returned a
148         String and also allocated a temporary string for any number 10 or higher.
149         (WTF::makeRFC2822DateString): Updated to use the new function.
150
151 2013-10-05  Anders Carlsson  <andersca@apple.com>
152
153         Test the waters and begin using lambdas
154         https://bugs.webkit.org/show_bug.cgi?id=121809
155
156         Reviewed by Andreas Kling.
157
158         * wtf/ListDump.h:
159         (WTF::sortedListDump):
160         Use std::less instead of a custom lessThan function.
161
162 2013-10-04  Darin Adler  <darin@apple.com>
163
164         text-transform: lowercase is not lang-dependent (Turkish languages : tr,az)
165         https://bugs.webkit.org/show_bug.cgi?id=21312
166
167         Reviewed by Ryosuke Niwa.
168
169         * wtf/text/StringImpl.cpp:
170         (WTF::StringImpl::upper): Removed an extra call that would unnecessarily reallocate
171         a StringImpl in the general non-ASCII case. Added an overload that takes a locale identifier.
172         (WTF::StringImpl::lower): Ditto.
173         * wtf/text/StringImpl.h: Ditto.
174         * wtf/text/WTFString.cpp:
175         (WTF::String::lower): Ditto.
176         (WTF::String::upper): Ditto.
177         * wtf/text/WTFString.h: Ditto. Also deleted the makeLower and makeUpper functions since they
178         offer no advantages over the lower and upper functions. Also added a constructor that takes
179         a RefPtr<StringImpl> with move construction to help.
180
181 2013-10-04  Brent Fulgham  <bfulgham@apple.com>
182
183         Remove Qt definitions from Platform.h
184         https://bugs.webkit.org/show_bug.cgi?id=122349
185
186         Reviewed by Anders Carlsson.
187
188         * wtf/Platform.h: Remove unused PLATFORM(QT) stanzas from file.
189
190 2013-10-04  Brent Fulgham  <bfulgham@apple.com>
191
192         [Win] Turn off FastMalloc on Windows
193         https://bugs.webkit.org/show_bug.cgi?id=122352
194
195         Reviewed by Darin Adler.
196
197         * wtf/Platform.h: Enable USE_SYSTEM_MALLOC when building on
198         Windows to stick to the MSVCRT allocator/deallocator.
199
200 2013-10-04  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
201
202         Remove WTF smart pointers 'const_pointer_cast'
203         https://bugs.webkit.org/show_bug.cgi?id=122325
204
205         Reviewed by Darin Adler.
206
207         Removed WTF smart pointers 'const_pointer_cast' functions as:
208         - they were not used
209         - their implementation was wrong as they tried to cast to a different pointer type
210
211         * wtf/PassOwnPtr.h:
212         * wtf/PassRefPtr.h:
213         * wtf/RefPtr.h:
214
215 2013-10-04  Oliver Hunt  <oliver@apple.com>
216
217         Support for-of syntax
218         https://bugs.webkit.org/show_bug.cgi?id=122339
219
220         Reviewed by Geoffrey Garen.
221
222         Update assertions and add a helper function to StringImpl
223         to save repeated unique or identifier calls.
224
225         * wtf/text/StringImpl.h:
226         (WTF::StringImpl::isIdentifierOrUnique):
227         (WTF::StringImpl::setIsIdentifier):
228         (WTF::StringImpl::setIsAtomic):
229
230 2013-10-02  Brent Fulgham  <bfulgham@apple.com>
231
232         [Win] Update solutions and projects to support 64-bit build.
233         https://bugs.webkit.org/show_bug.cgi?id=122225
234
235         Reviewed by Anders Carlsson.
236
237         * WTF.vcxproj/WTF.submit.sln: Add x64 architecture targets.
238         * WTF.vcxproj/WTF.vcxproj: Correct path to config.h file.
239         * WTF.vcxproj/WTF.vcxproj.filters: Correct path to config.h file.
240
241
242 2013-10-02  Nadav Rotem  <nrotem@apple.com>
243
244         Eliminate a branch in FastBitVector setAndCheck, make it vectorizable.
245         https://bugs.webkit.org/show_bug.cgi?id=122229
246
247         Reviewed by Geoffrey Garen.
248
249         The CPU is unlikely to predict the branch in setAndCheck. I changed the code to use conditional instructions.
250
251         * wtf/FastBitVector.h:
252         (WTF::FastBitVector::setAndCheck):
253
254 2013-10-02  Anders Carlsson  <andersca@apple.com>
255
256         Remove Qt code from WTF
257         https://bugs.webkit.org/show_bug.cgi?id=122221
258
259         Reviewed by Antti Koivisto.
260
261         I'm keeping the PLATFORM(QT) defines in Platform.h for now so we can assess if there are any
262         Qt only features that we can remove later.
263
264         * WTF.pri: Removed.
265         * WTF.pro: Removed.
266         * wtf/Assertions.cpp:
267         * wtf/CurrentTime.cpp:
268         * wtf/DisallowCType.h:
269         * wtf/FastMalloc.cpp:
270         * wtf/FeatureDefines.h:
271         * wtf/qt/MainThreadQt.cpp: Removed.
272         * wtf/qt/StringQt.cpp: Removed.
273         * wtf/text/AtomicString.h:
274         * wtf/text/StringImpl.cpp:
275         (WTF::StringImpl::~StringImpl):
276         * wtf/text/StringImpl.h:
277         * wtf/text/WTFString.cpp:
278         (WTF::String::format):
279         * wtf/text/WTFString.h:
280
281 2013-09-30  Sam Weinig  <sam@webkit.org>
282
283         Remove support for DOMFileSystem
284         https://bugs.webkit.org/show_bug.cgi?id=122137
285
286         Reviewed by Anders Carlsson.
287
288         * wtf/FeatureDefines.h:
289
290 2013-09-30  Benjamin Poulain  <benjamin@webkit.org>
291
292         Remove the code guarded by STYLE_SCOPED
293         https://bugs.webkit.org/show_bug.cgi?id=122123
294
295         Reviewed by Anders Carlsson.
296
297         * wtf/FeatureDefines.h:
298
299 2013-09-28  Mark Rowe  <mrowe@apple.com>
300
301         Take Xcode's advice and enable some extra warnings.
302
303         Reviewed by Sam Weinig.
304
305         * Configurations/Base.xcconfig:
306         * WTF.xcodeproj/project.pbxproj:
307
308 2013-09-28  Mark Rowe  <mrowe@apple.com>
309
310         <rdar://problem/15079224> WTF fails to build with newer versions of clang.
311
312         Reviewed by Sam Weinig.
313
314         * wtf/DateMath.cpp: Remove some unused constants.
315         * wtf/FastMalloc.cpp: #if some constants and functions that are unused in some configurations.
316         Remove a function that's unused on all platforms.
317         * wtf/TCSystemAlloc.cpp: Remove some unused constants.
318         (TCMalloc_SystemRelease): Remove an if whose body is never executed.
319         * wtf/dtoa.cpp: #if things such that storeInc is only defined when USE_LONG_LONG is undefined.
320         Remove an unused constant.
321
322 2013-09-27  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>
323
324         [Nix] Updating Nix trunk files
325         https://bugs.webkit.org/show_bug.cgi?id=121752
326
327         Reviewed by Benjamin Poulain.
328
329         * wtf/nix/FeatureDefinesNix.h:
330
331 2013-09-06  Jer Noble  <jer.noble@apple.com>
332
333         [Mac] Implement the media controls in JavaScript.
334         https://bugs.webkit.org/show_bug.cgi?id=120895
335
336         Reviewed by Dean Jackson.
337
338         Define and turn on ENABLE_MEDIA_CONTROLS_SCRIPT.
339
340         * wtf/FeatureDefines.h:
341
342 2013-09-27  Gustavo Noronha Silva  <gns@gnome.org>
343
344         [GCC] Fix build with gcc < 4.8.1, which does not have is_trivially_destructible
345         https://bugs.webkit.org/show_bug.cgi?id=121999
346
347         Reviewed by Benjamin Poulain.
348
349         * wtf/StdLibExtras.h:
350
351 2013-09-26  Anders Carlsson  <andersca@apple.com>
352
353         "Build fix".
354
355         We can't use std::move. Explicitly destroy the old value and then construct the new in place.
356
357         * wtf/HashTable.h:
358
359 2013-09-26  Anders Carlsson  <andersca@apple.com>
360
361         Use the move assignment operator when reinserting values in the hash map
362         https://bugs.webkit.org/show_bug.cgi?id=122003
363
364         Reviewed by Alexey Proskuryakov.
365
366         Using the move assignment operator ensures that the existing values will be destroyed correctly.
367
368         * wtf/HashTable.h:
369
370 2013-09-26  Brent Fulgham  <bfulgham@apple.com>
371
372         [Windows] Work around missing C++11 features of MSVC by providing an implementation for
373         std::is_trivially_destructible based on the existing std::has_trivial_destructor.
374
375         Rubber-stamped by Anders Carlsson.
376
377         * wtf/StdLibExtras.h: Add implementation for is_trivially_destructable for MSVC 2010 and prior.
378
379 2013-09-26  Anders Carlsson  <andersca@apple.com>
380
381         Remove needsDestruction from vector and hash traits
382         https://bugs.webkit.org/show_bug.cgi?id=121983
383
384         Reviewed by Sam Weinig.
385
386         For Vector, use std::is_trivially_destructible to determine whether to call the destructor.
387         For HashTable, always call the destructor; if it is trivial then no code will be generated for it and the loops will be folded away. 
388
389         Removing this does break the ability to store objects with non-trivial destructors in vectors and hash maps
390         and have their destructors not be called when removed, but we've never used this feature in WebKit so the extra
391         code complexity is not worth it.
392
393         * wtf/HashTable.h:
394         (WTF::::deallocateTable):
395         * wtf/HashTraits.h:
396         * wtf/Vector.h:
397         (WTF::VectorTypeOperations::destruct):
398         * wtf/VectorTraits.h:
399
400 2013-09-26  Anders Carlsson  <andersca@apple.com>
401
402         Build fixes.
403
404         Fix a paste-o.
405
406         * wtf/StdLibExtras.h:
407         (std::make_unique):
408
409 2013-09-26  Anders Carlsson  <andersca@apple.com>
410
411         Remove the hash table mover
412         https://bugs.webkit.org/show_bug.cgi?id=121980
413
414         Reviewed by Andreas Kling.
415
416         Use std::move instead.
417
418         * wtf/HashTable.h:
419
420 2013-09-26  Anders Carlsson  <andersca@apple.com>
421
422         Change a couple of HashMap value types from OwnPtr to std::unique_ptr
423         https://bugs.webkit.org/show_bug.cgi?id=121973
424
425         Reviewed by Andreas Kling.
426
427         * wtf/RefPtrHashMap.h:
428         Add a missing std::forward.
429
430         * wtf/StdLibExtras.h:
431         (std::make_unique):
432         Add more overloads.
433
434 2013-09-26  Julien Brianceau  <jbriance@cisco.com>
435
436         [Qt] Remove PassTraits.h from WTF.pro.
437         https://bugs.webkit.org/show_bug.cgi?id=121946
438
439         Reviewed by Andreas Kling.
440
441         * WTF.pro: Remove PassTraits.h as this file disappeared in r156298.
442
443 2013-09-25  Patrick Gansterer  <paroga@webkit.org>
444
445         Fix compilation with new MSVC compiler for Windows CE
446         https://bugs.webkit.org/show_bug.cgi?id=121914
447
448         Reviewed by Darin Adler.
449
450         Remove code to support older Windows CE versions, since those old
451         versions do not support C+11, which is required in the meantime.
452
453         * wtf/Atomics.h:
454         * wtf/Platform.h:
455
456 2013-09-25  Anders Carlsson  <andersca@apple.com>
457
458         Move KeyValuePairTraits inside HashMap
459         https://bugs.webkit.org/show_bug.cgi?id=121931
460
461         Reviewed by Sam Weinig.
462
463         Also rename the ValueType typedef to KeyValuePairType since it's always a key value pair.
464
465         * wtf/HashMap.h:
466         (WTF::HashMap::KeyValuePairTraits::isEmptyValue):
467         (WTF::HashMap::find):
468         (WTF::HashMap::contains):
469
470 2013-09-25  Anders Carlsson  <andersca@apple.com>
471
472         Un-indent HashMap.h.
473
474         Rubber-stamped by Andreas Kling.
475
476         * wtf/HashMap.h:
477
478 2013-09-25  Anders Carlsson  <andersca@apple.com>
479
480         Un-indent HashTraits.h.
481
482         Rubber-stamped by Andreas Kling.
483
484         * wtf/HashTraits.h:
485
486 2013-09-25  Patrick Gansterer  <paroga@webkit.org>
487
488         Fix template deduction for CollatorDefault
489
490         * wtf/unicode/CollatorDefault.cpp:
491         (WTF::Collator::userDefault): Use nullptr instead of 0.
492
493 2013-09-24  Anders Carlsson  <andersca@apple.com>
494
495         Remove encoder create functions
496         https://bugs.webkit.org/show_bug.cgi?id=121853
497
498         Reviewed by Sam Weinig.
499
500         Add a variadic version of createOwned.
501
502         * wtf/OwnPtr.h:
503         (WTF::createOwned):
504
505 2013-09-24  Mark Rowe  <mrowe@apple.com>
506
507         <rdar://problem/14971518> WebKit should build against the Xcode default toolchain when targeting OS X 10.8
508
509         Reviewed by Dan Bernstein.
510
511         * Configurations/Base.xcconfig:
512
513 2013-09-23  Anders Carlsson  <andersca@apple.com>
514
515         Remove WTF_USE_SCROLLBAR_PAINTER #define
516         https://bugs.webkit.org/show_bug.cgi?id=121819
517
518         Reviewed by Sam Weinig.
519
520         All our supported systems use the scrollbar painter now, so get rid of the #ifdef.
521
522         * wtf/Platform.h:
523
524 2013-09-23  Commit Queue  <commit-queue@webkit.org>
525
526         Unreviewed, rolling out r156307.
527         http://trac.webkit.org/changeset/156307
528         https://bugs.webkit.org/show_bug.cgi?id=121817
529
530         Broke the build, and crashes the compiler (Requested by ap on
531         #webkit).
532
533         * wtf/ListDump.h:
534         (WTF::lessThan):
535         (WTF::sortedListDump):
536
537 2013-09-23  Anders Carlsson  <andersca@apple.com>
538
539         Test the waters and begin using lambdas
540         https://bugs.webkit.org/show_bug.cgi?id=121809
541
542         Reviewed by Andreas Kling.
543
544         * wtf/ListDump.h:
545         (WTF::sortedListDump):
546         Use std::less instead of a custom lessThan function.
547
548 2013-09-23  Anders Carlsson  <andersca@apple.com>
549
550         ListHashSet::removeLast should only remove one element.
551         
552         * wtf/ListHashSet.h:
553         (WTF::ListHashSet::removeLast):
554
555 2013-09-23  Anders Carlsson  <andersca@apple.com>
556
557         Add hash traits for std::unique_ptr
558         https://bugs.webkit.org/show_bug.cgi?id=121807
559
560         Reviewed by Antti Koivisto.
561
562         Also, convert the thread map over to using std::unique_ptr instead of OwnPtr.
563
564         * wtf/HashMap.h:
565         Remove unnecessary typedefs and add missing calls to std::forward.
566
567         * wtf/HashTraits.h:
568         Add hash trait for std::unique_ptr.
569         
570         * wtf/RefPtrHashMap.h:
571         Use std::add_lvalue_reference.
572
573         * wtf/ThreadingPthreads.cpp:
574         (WTF::establishIdentifierForPthreadHandle):
575         Change ThreadMap to be a hash map from ThreadIdentifier to std::unique_ptr<PthreadState>.
576
577 2013-09-23  Patrick Gansterer  <paroga@webkit.org>
578
579         use NOMINMAX instead of #define min min
580         https://bugs.webkit.org/show_bug.cgi?id=73563
581
582         Reviewed by Brent Fulgham.
583
584         Use NOMINMAX instead of #define min/max as a cleaner
585         way of ensuring that Windows system header files don't
586         define min/max as macro in the first place.
587
588         * config.h:
589
590 2013-09-23  Anders Carlsson  <andersca@apple.com>
591
592         Remove PassTraits.h
593         https://bugs.webkit.org/show_bug.cgi?id=121805
594
595         Reviewed by Andreas Kling.
596
597         We no longer need PassTraits.h, get rid of it.
598
599         * GNUmakefile.list.am:
600         * WTF.vcxproj/WTF.vcxproj:
601         * WTF.vcxproj/WTF.vcxproj.filters:
602         * WTF.xcodeproj/project.pbxproj:
603         * wtf/CMakeLists.txt:
604         * wtf/PassTraits.h: Removed.
605
606 2013-09-23  Anders Carlsson  <andersca@apple.com>
607
608         ListHashSet should work with move-only types
609         https://bugs.webkit.org/show_bug.cgi?id=121802
610
611         Reviewed by Andreas Kling.
612
613         Add rvalue reference overloads and calls to std::forward and std::move where appropriate.
614
615         * wtf/ListHashSet.h:
616         (WTF::::removeFirst):
617         Implement this in terms of takeFirst.
618
619         (WTF::::takeFirst):
620         Look up the iterator before we move out the value so we won't break the hash invariant.
621         
622         (WTF::::removeLast):
623         Implement this in terms of takeLast.
624
625         (WTF::::takeLast):
626         Look up the iterator before we move out the value so we won't break the hash invariant.
627
628 2013-09-23  Anders Carlsson  <andersca@apple.com>
629
630         Clean up ListHashSet
631         https://bugs.webkit.org/show_bug.cgi?id=121797
632
633         Reviewed by Antti Koivisto.
634
635         * wtf/ListHashSet.h:
636
637 2013-09-23  Anders Carlsson  <andersca@apple.com>
638
639         ListHashSet should use std::reverse_iterator for reverse iterators
640         https://bugs.webkit.org/show_bug.cgi?id=121795
641
642         Reviewed by Antti Koivisto.
643
644         Get rid of the custom reverse iterators and just use std::reverse_iterator instead.
645
646         * wtf/ListHashSet.h:
647
648 2013-09-23  Anders Carlsson  <andersca@apple.com>
649
650         De-indent ListHashSet in preparation of more changes.
651
652         Rubber-stamped by Sam Weinig.
653
654         * wtf/ListHashSet.h:
655
656 2013-09-23  Patrick Gansterer  <paroga@webkit.org>
657
658         Cleanup CMake files in WTF
659         https://bugs.webkit.org/show_bug.cgi?id=121761
660
661         Reviewed by Gyuyoung Kim.
662
663         Sort files and unify the style.
664
665         * wtf/CMakeLists.txt:
666         * wtf/PlatformEfl.cmake:
667         * wtf/PlatformGTK.cmake:
668
669 2013-09-22  Andreas Kling  <akling@apple.com>
670
671         Give purity hints to compiler to avoid penalizing repeated calls to some functions.
672         <https://webkit.org/b/121744>
673
674         Reviewed by Darin Adler.
675
676         Added a PURE_FUNCTION macro. This is supported on GCC and Clang for now.
677         Marking a function pure means that the compiler's CSE pass is free to coalesce
678         multiple calls to this function because it has no globally observable side
679         effects beyond the first call.
680
681 2013-09-20  Anders Carlsson  <andersca@apple.com>
682
683         Add an implementation of std::index_sequence from C++14
684         https://bugs.webkit.org/show_bug.cgi?id=121718
685
686         Reviewed by Ryosuke Niwa.
687
688         This will make it easier to do things like pack expansion of tuple elements.
689
690         * wtf/StdLibExtras.h:
691
692 2013-09-20  Allan Sandfeld Jensen  <allan.jensen@digia.com>
693
694         Atomics.h does not build on MinGW
695         https://bugs.webkit.org/show_bug.cgi?id=121663
696
697         Reviewed by Darin Adler.
698
699         MinGW does not have _ReadWriteBarrier() intrinsic, but does have GCC
700         inline assembler, so use the GCC definitions instead of MSVC ones.
701
702         * wtf/Atomics.h:
703         (WTF::compilerFence):
704
705 2013-09-20  Patrick Gansterer  <paroga@webkit.org>
706
707         [CMake] Use COMPILE_DEFINITIONS target property for setting BUILDING_* defines
708         https://bugs.webkit.org/show_bug.cgi?id=121672
709
710         Reviewed by Gyuyoung Kim.
711
712         Since the scope of add_definitions() is always a whole file, we need to use
713         target properties instead to set definitions only for specific targets.
714
715         * wtf/CMakeLists.txt:
716
717 2013-09-20  Patrick Gansterer  <paroga@webkit.org>
718
719         Remove duplicated secondsPerDay variables
720         https://bugs.webkit.org/show_bug.cgi?id=121601
721
722         Reviewed by Andreas Kling.
723
724         Move secondsPerDay from the source into the header file
725         to make it accessible by other code too.
726
727         * wtf/DateMath.cpp:
728         * wtf/DateMath.h:
729
730 2013-09-19  Joseph Pecoraro  <pecoraro@apple.com>
731
732         ASSERTs in isMainThread after USE(WEB_THREAD) MainThread changes
733         https://bugs.webkit.org/show_bug.cgi?id=121650
734
735         Reviewed by Benjamin Poulain.
736
737         * wtf/mac/MainThreadMac.mm:
738         (WTF::initializeMainThreadPlatform):
739
740 2013-09-19  Daniel Bates  <dabates@apple.com>
741
742         [iOS] Define mainThreadEstablishedAsPthreadMain to be true in WTF::initializeMainThreadPlatform()
743
744         Reviewed by Joseph Pecoraro.
745
746         This change was inadvertently left out of <http://trac.webkit.org/changeset/155926>.
747
748         * wtf/mac/MainThreadMac.mm:
749         (WTF::initializeMainThreadPlatform):
750
751 2013-09-19  Sam Weinig  <sam@webkit.org>
752
753         Remove OwnArrayPtr
754         https://bugs.webkit.org/show_bug.cgi?id=121612
755
756         Reviewed by Anders Carlsson.
757
758         * GNUmakefile.list.am:
759         * WTF.pro:
760         * WTF.vcxproj/WTF.vcxproj:
761         * WTF.vcxproj/WTF.vcxproj.filters:
762         * WTF.xcodeproj/project.pbxproj:
763         * wtf/Assertions.cpp:
764         * wtf/CMakeLists.txt:
765         * wtf/DateMath.h:
766         * wtf/FastBitVector.h:
767         * wtf/Forward.h:
768         * wtf/OwnArrayPtr.h: Removed.
769         * wtf/VectorTraits.h:
770
771 2013-09-19  Daniel Bates  <dabates@apple.com>
772
773         Substitute return type void for bool in function declaration for WTF::initializeWebThread()
774
775         Reviewed by Joseph Pecoraro.
776
777         Make the declaration of WTF::initializeWebThread() match the function prototype
778         of its definition.
779
780         * wtf/MainThread.h:
781
782 2013-09-19  Andreas Kling  <akling@apple.com>
783
784         Assume allocator success in Vector unless using try* functions.
785         <https://webkit.org/b/121629>
786
787         Reviewed by Anders Carlsson.
788
789         Turn some Vector::begin() null checking into assertions instead.
790
791         We have try* style functions for when an allocation request is so
792         large that it might actually fail. fastMalloc() will never return
793         null (it will just CRASH() instead.)
794
795 2013-09-18  Brent Fulgham  <bfulgham@apple.com>
796
797         [Windows] Unreviewed build correction.
798
799         * WTF.vcxproj/WTFGeneratedCommon.props: Export PLATFORMARCHITECTURE macro for use in
800         Makefiles and shell scripts.
801         * WTF.vcxproj/build-generated-files.sh: Output header search path to identify when the build
802         is confused about build architecture.
803
804 2013-09-18  Anders Carlsson  <andersca@apple.com>
805
806         RefPtrHashMap should work with move only types
807         https://bugs.webkit.org/show_bug.cgi?id=121564
808
809         Reviewed by Andreas Kling.
810
811         Add the same rvalue references and std::forward calls that already exist in HashMap.
812
813         * wtf/RefPtrHashMap.h:
814
815 2013-09-18  Filip Pizlo  <fpizlo@apple.com>
816
817         DFG should support Int52 for local variables
818         https://bugs.webkit.org/show_bug.cgi?id=121064
819
820         Reviewed by Oliver Hunt.
821
822         * wtf/PrintStream.h:
823         (WTF::ValueIgnoringContext::ValueIgnoringContext):
824         (WTF::ValueIgnoringContext::dump):
825         (WTF::ignoringContext):
826
827 2013-09-18  Andreas Kling  <akling@apple.com>
828
829         Put constant CachedPower table in read-only memory.
830         <https://webkit.org/b/121546>
831
832         Reviewed by Anders Carlsson.
833
834         * wtf/dtoa/cached-powers.cc:
835
836 2013-09-18  Commit Queue  <commit-queue@webkit.org>
837
838         Unreviewed, rolling out r156019 and r156020.
839         http://trac.webkit.org/changeset/156019
840         http://trac.webkit.org/changeset/156020
841         https://bugs.webkit.org/show_bug.cgi?id=121540
842
843         Broke tests (Requested by ap on #webkit).
844
845         * wtf/PrintStream.h:
846
847 2013-09-16  Filip Pizlo  <fpizlo@apple.com>
848
849         DFG should support Int52 for local variables
850         https://bugs.webkit.org/show_bug.cgi?id=121064
851
852         Reviewed by Oliver Hunt.
853
854         * wtf/PrintStream.h:
855         (WTF::ValueIgnoringContext::ValueIgnoringContext):
856         (WTF::ValueIgnoringContext::dump):
857         (WTF::ignoringContext):
858
859 2013-09-17  Anders Carlsson  <andersca@apple.com>
860
861         Stop explicitly using PassOwnPtr in WebCore/html
862         https://bugs.webkit.org/show_bug.cgi?id=121511
863
864         Reviewed by Andreas Kling.
865
866         Make operator= work work for different types of OwnPtrs.
867
868         * wtf/OwnPtr.h:
869
870 2013-09-17  Sam Weinig  <sam@webkit.org>
871
872         Add make_unique and start using it
873         https://bugs.webkit.org/show_bug.cgi?id=121523
874
875         Reviewed by Anders Carlsson.
876
877         * wtf/StdLibExtras.h:
878         (std::make_unique):
879         Add temporary implementation of std::make_unique that we can use until our standard
880         libraries have support for it.
881
882 2013-09-17  Darin Adler  <darin@apple.com>
883
884         Make SVGTransform::valueAsString use StringBuilder
885         https://bugs.webkit.org/show_bug.cgi?id=121498
886
887         Reviewed by Andreas Kling.
888
889         * wtf/text/StringBuilder.cpp: Added appendNumber functions corresponding to all remaining
890         String::number functions. If we find we don't need all of these we can delete them later,
891         but I don't want to give clients a reason to prefer less-efficient API to StringBuilder.
892         * wtf/text/StringBuilder.h: Ditto.
893
894 2013-09-16  Anders Carlsson  <andersca@apple.com>
895
896         HashMap should work with move-only keys
897         https://bugs.webkit.org/show_bug.cgi?id=121310
898
899         Reviewed by Darin Adler.
900
901         Add extra overloads for add and set where the key is an rvalue reference, but not a
902         template parameter rvalue reference. This way we'll coerce the key parameter to have the expected
903         type instead of the passed in type, causing map.add(StringImpl::create("Hello"), 123) work when the
904         type of map is HashMap<String, unsigned>.
905
906         Also, sprinkle && and std::forward where appropriate.
907
908         * wtf/HashMap.h:
909         * wtf/HashTable.h:
910
911 2013-09-17  Sergio Martins  <sergio.martins@kdab.com>
912
913         Fix Windows CE build on ARM.
914         https://bugs.webkit.org/show_bug.cgi?id=121490
915
916         Reviewed by Darin Adler.
917
918         * wtf/dtoa/utils.h:
919
920 2013-09-17  Mihnea Ovidenie  <mihnea@adobe.com>
921
922         REGRESSION(r155910): WebKit nightly builds don't load any page
923         https://bugs.webkit.org/show_bug.cgi?id=121482
924
925         Reviewed by Andreas Kling.
926
927         Replaced C++ style comments with C style comments.
928
929         * wtf/Platform.h:
930
931 2013-09-16  Joseph Pecoraro  <pecoraro@apple.com>
932
933         USE(WEB_THREAD): More explicit WebThread initialization
934         https://bugs.webkit.org/show_bug.cgi?id=121454
935
936         Reviewed by Benjamin Poulain.
937
938         Be more explicit when initializing WebThread only data.
939
940         * wtf/MainThread.h:
941         * wtf/MainThread.cpp:
942         (WTF::initializeWebThreadOnce):
943         (WTF::initializeWebThread):
944         Ensure one time initialization.
945
946         * wtf/mac/MainThreadMac.mm:
947         (WTF::initializeMainThreadPlatform):
948         (WTF::initializeWebThreadPlatform):
949         Move WebThread value initialization to its own function.
950
951         (WTF::isMainThread):
952         Remove no longer invalid assert if WebThread was not initialized.
953
954 2013-09-16  Benjamin Poulain  <benjamin@webkit.org>
955
956         Fix WebKit1 build after r155910
957
958         Reviewed by Anders Carlsson.
959
960         * wtf/Platform.h: Some files in WebKit include system headers before
961         WTF headers, causing the macro to be defined twice. #undef the macro
962         to support that case.
963
964 2013-09-16  Benjamin Poulain  <benjamin@webkit.org>
965
966         Disable OS X's unprefixed debug macro
967         https://bugs.webkit.org/show_bug.cgi?id=121460
968
969         Reviewed by Anders Carlsson.
970
971         * wtf/Platform.h: OS X defines a series of platform macros for debugging.
972         Some of them are really annoying because they use common names (e.g. check()).
973
974         Disable those macros so that we are not limited in how we name methods and functions.
975
976 2013-09-16  Anders Carlsson  <andersca@apple.com>
977
978         MessageQueue should use a Deque of OwnPtrs
979         https://bugs.webkit.org/show_bug.cgi?id=121450
980
981         Reviewed by Andreas Kling.
982
983         * wtf/MessageQueue.h:
984
985 2013-09-16  Anders Carlsson  <andersca@apple.com>
986
987         WTF::Deque should work with move only types
988         https://bugs.webkit.org/show_bug.cgi?id=121446
989
990         Reviewed by Andreas Kling.
991
992         * wtf/Deque.h:
993         Use std::move and std::forward where appropriate and get rid of the PassTraits include.
994
995 2013-09-16  Anders Carlsson  <andersca@apple.com>
996
997         Change a couple of COMPILE_ASSERTs to static_assert
998         https://bugs.webkit.org/show_bug.cgi?id=121441
999
1000         Reviewed by Andreas Kling.
1001
1002         * wtf/BloomFilter.h:
1003         * wtf/PackedIntVector.h:
1004         (WTF::PackedIntVector::PackedIntVector):
1005         * wtf/StdLibExtras.h:
1006         (WTF::bitwise_cast):
1007         (WTF::safeCast):
1008         (WTF::roundUpToMultipleOf):
1009         * wtf/StringHasher.h:
1010         (WTF::StringHasher::hashMemory):
1011         * wtf/Vector.h:
1012         * wtf/text/AtomicString.cpp:
1013         * wtf/unicode/Unicode.h:
1014
1015 2013-09-15  Gustavo Noronha Silva  <gns@gnome.org>
1016
1017         Unreviewed make distcheck fix.
1018
1019         * GNUmakefile.list.am:
1020
1021 2013-09-15  Patrick Gansterer  <paroga@webkit.org>
1022
1023         Fix build with Visual Studio 2012 after r153764.
1024         https://bugs.webkit.org/show_bug.cgi?id=121406
1025
1026         Reviewed by Brent Fulgham.
1027
1028         * wtf/MathExtras.h:
1029
1030 2013-09-15  Alberto Garcia  <berto@igalia.com>
1031
1032         Unreviewed GTK gardening.
1033
1034         * GNUmakefile.list.am: remove FastAllocBase.h, this file disappeared
1035         in r155251.
1036
1037 2013-09-15  Patrick Gansterer  <paroga@webkit.org>
1038
1039         [WIN] Fix build without precompiled header after r155454.
1040
1041         * wtf/win/GDIObject.h: Added missing windows.h include.
1042
1043 2013-09-15  Andreas Kling  <akling@apple.com>
1044
1045         Remove Ref(const T&) constructor.
1046         <https://webkit.org/b/121384>
1047
1048         Reviewed by Anders Carlsson.
1049
1050         This constructor was added as a stopgap measure until we got better support
1051         for move semantics in Vector.
1052
1053         * wtf/Ref.h:
1054
1055 2013-09-15  Andreas Kling  <akling@apple.com>
1056
1057         Unreviewed, fix ridiculous bug in WeakPtr.
1058
1059         I made operator!() null check the pointer to the WeakReference. :|
1060
1061         Caught by plugins/destroy-on-setwindow.html on bots.
1062
1063         * wtf/WeakPtr.h:
1064         (WTF::WeakPtr::operator!):
1065
1066 2013-09-14  Andreas Kling  <akling@apple.com>
1067
1068         Get rid of ref-counting on RenderWidget.
1069         <https://webkit.org/b/121357>
1070
1071         Reviewed by Darin Adler.
1072
1073         * wtf/WeakPtr.h:
1074         (WTF::WeakPtr::operator!):
1075
1076             Add operator! to WeakPtr.
1077
1078 2013-09-14  Darin Adler  <darin@apple.com>
1079
1080         Add NeverDestroyed::get
1081         https://bugs.webkit.org/show_bug.cgi?id=121358
1082
1083         Reviewed by Anders Carlsson.
1084
1085         * wtf/NeverDestroyed.h: Removed code to make this non-copyable, since we also
1086         use a macro to accomplish that.
1087         (WTF::NeverDestroyed::get): Added. Useful in conjuction with auto to avoid
1088         having to repeat the type when we want to put one of these into a reference.
1089
1090 2013-09-13  Anders Carlsson  <andersca@apple.com>
1091
1092         Pick the correct overload when a const reference is passed to appendSlowCase.
1093         https://bugs.webkit.org/show_bug.cgi?id=121326
1094
1095         Reviewed by Darin Adler.
1096
1097         * wtf/Vector.h:
1098         (WTF::Vector::appendSlowCase):
1099         Make sure that the pointer to the element isn't const so we'll pick the right expandCapacity overload.
1100
1101 2013-09-13  Anders Carlsson  <andersca@apple.com>
1102
1103         Avoid a couple of zero-sized fastMalloc calls
1104         https://bugs.webkit.org/show_bug.cgi?id=121333
1105
1106         Reviewed by Geoffrey Garen.
1107
1108         * wtf/text/StringBuffer.h:
1109         (WTF::StringBuffer::StringBuffer):
1110         Initialize m_data to null if m_length is null, and use Checked<size_t> to check for
1111         overflow when multiplying m_length with the character size.
1112
1113 2013-09-13  Brent Fulgham  <bfulgham@apple.com>
1114
1115         [Windows] Activate FastMalloc hardening
1116         https://bugs.webkit.org/show_bug.cgi?id=121307
1117
1118         Reviewed by Oliver Hunt.
1119
1120         * wtf/FastMalloc.cpp: 
1121         (WTF::SLL_Next): Add workaround for MSVC compiler bug.
1122
1123 2013-09-13  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
1124
1125         OwnArrayPtr: Never allow implicit pointer conversion
1126         https://bugs.webkit.org/show_bug.cgi?id=121291
1127
1128         Reviewed by Anders Carlsson.
1129
1130         We should never allow implicit pointer conversion in OwnArrayPtr 
1131         and remove its template copy constructor & template assignment operator, as:
1132         - these methods are never used
1133         - these methods are inappropriate to have in OwnArrayPtr as arrays do not
1134           interact well with polymorphism.
1135
1136         * wtf/OwnArrayPtr.h:
1137
1138 2013-09-13  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1139
1140         Remove support for QXmlStream as the XML parser.
1141         https://bugs.webkit.org/show_bug.cgi?id=121229
1142
1143         Reviewed by Andreas Kling.
1144
1145         Removed USE flags.
1146
1147         * wtf/Platform.h:
1148
1149 2013-09-12  Mark Hahnenberg  <mhahnenberg@apple.com>
1150
1151         Bitmap's WordType should be a template parameter
1152         https://bugs.webkit.org/show_bug.cgi?id=121238
1153
1154         Reviewed by Darin Adler.
1155
1156         The code is written as if it already is. We just need to lift it out of the class.
1157         This simplifies code that wants to load, for example, a single byte rather than an 
1158         entire 32-bit word. 
1159
1160         * wtf/Bitmap.h:
1161         (WTF::Bitmap::Bitmap):
1162         (WTF::Bitmap::get):
1163         (WTF::Bitmap::set):
1164         (WTF::Bitmap::testAndSet):
1165         (WTF::Bitmap::testAndClear):
1166         (WTF::Bitmap::concurrentTestAndSet):
1167         (WTF::Bitmap::concurrentTestAndClear):
1168         (WTF::Bitmap::clear):
1169         (WTF::Bitmap::clearAll):
1170         (WTF::Bitmap::nextPossiblyUnset):
1171         (WTF::Bitmap::findRunOfZeros):
1172         (WTF::Bitmap::count):
1173         (WTF::Bitmap::isEmpty):
1174         (WTF::Bitmap::isFull):
1175
1176 2013-09-12  Anders Carlsson  <andersca@apple.com>
1177
1178         Add rudimentary support for move-only types as values in HashMap
1179         https://bugs.webkit.org/show_bug.cgi?id=121226
1180
1181         Reviewed by Andreas Kling.
1182
1183         * wtf/HashMap.h:
1184         Change a bunch of functions to so they can take both rvalue and lvalue references and use std::forward.
1185
1186         * wtf/HashTraits.h:
1187         (WTF::KeyValuePair::KeyValuePair):
1188         Change constructors to accept both lvalues and rvalues.
1189
1190 2013-09-12  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
1191
1192         Remove home-brewed nullptr
1193         https://bugs.webkit.org/show_bug.cgi?id=119624
1194
1195         Reviewed by Anders Carlsson.
1196
1197         The standard C++11 nullptr and std::nullptr_t type should be used now.
1198
1199         * GNUmakefile.list.am:
1200         * WTF.pro:
1201         * WTF.vcxproj/WTF.vcxproj:
1202         * WTF.vcxproj/WTF.vcxproj.filters:
1203         * WTF.xcodeproj/project.pbxproj:
1204         * wtf/CMakeLists.txt:
1205         * wtf/NullPtr.cpp: Removed.
1206         * wtf/NullPtr.h: Removed.
1207         * wtf/OwnArrayPtr.h:
1208         * wtf/OwnPtr.h:
1209         * wtf/PassOwnPtr.h:
1210         * wtf/PassRefPtr.h:
1211         * wtf/RetainPtr.h:
1212         * wtf/win/GDIObject.h:
1213
1214 2013-09-11  Anders Carlsson  <andersca@apple.com>
1215
1216         Use the new C++11 function declaration syntax throughout our hash collection classes
1217         https://bugs.webkit.org/show_bug.cgi?id=121195
1218
1219         Reviewed by Andreas Kling.
1220
1221         * wtf/HashMap.h:
1222         * wtf/HashSet.h:
1223         * wtf/HashTable.h:
1224
1225 2013-09-11  Anders Carlsson  <andersca@apple.com>
1226
1227         Add HashSet::take
1228         https://bugs.webkit.org/show_bug.cgi?id=121192
1229
1230         Reviewed by Darin Adler.
1231
1232         This is mostly done to see if we can use the new C++11 function declaration syntax,
1233         and for parity with HashMap::take. 
1234
1235         * wtf/HashMap.h:
1236         * wtf/HashSet.h:
1237
1238 2013-09-11  Anders Carlsson  <andersca@apple.com>
1239
1240         HashSet should work with move only types
1241         https://bugs.webkit.org/show_bug.cgi?id=121188
1242
1243         Reviewed by Geoffrey Garen.
1244
1245         * wtf/HashSet.h:
1246         (WTF::HashSet::add):
1247         Add a new rvalue reference overload and use std::move when calling HashTable::add.
1248
1249         * wtf/HashTable.h:
1250         (WTF::IdentityHashTranslator::translate):
1251         Change this to take an rvalue reference for the value so we can invoke the move assignment operator.
1252
1253         (WTF::HashTable::add):
1254         Call the add member function template, using std::move to move the value.
1255
1256         (WTF::HashTable::add):
1257         Add std::forward so we'll potentially move extra.
1258
1259 2013-09-11  Anders Carlsson  <andersca@apple.com>
1260
1261         Avoid copying a hash table bucket when inserting causes a rehash
1262         https://bugs.webkit.org/show_bug.cgi?id=121185
1263
1264         Reviewed by Darin Adler.
1265
1266         Allow rehashing to track a hash bucket and return the new pointer to it, thus avoiding
1267         having to do a copy of a hash table bucket as well as an extra hash lookup.
1268
1269         * wtf/HashTable.h:
1270
1271 2013-09-11  Brent Fulgham  <bfulgham@apple.com>
1272
1273         [Windows] Unreviewed build fix.
1274
1275         * wtf/win/GDIObject.h:
1276         (WTF::GDIObject::GDIObject): I forgot to check in as part of
1277         r155557 by using webkit-patch land in a sub-directory!
1278
1279 2013-09-11  Oliver Hunt  <oliver@apple.com>
1280
1281         Partial Information Leakage in Hash Table implementations (PrivateName)
1282         https://bugs.webkit.org/show_bug.cgi?id=120663
1283
1284         Reviewed by Michael Saboff.
1285
1286         Unique strings now just generate a completely random value as their
1287         hash, rather than using their this pointer.
1288
1289         * wtf/text/StringImpl.h:
1290         (WTF::StringImpl::StringImpl):
1291
1292 2013-09-11  Brent Fulgham  <bfulgham@apple.com>
1293
1294         Unreviewed build correction.
1295
1296         * WTF.vcxproj/copy-files.cmd: Touch file to force WTFGenerated
1297         build to copy updated GDIObject.h header file on build machines.
1298
1299 2013-09-11  Anders Carlsson  <andersca@apple.com>
1300
1301         Vector::append doesn't work if element type has overloaded operator&
1302         https://bugs.webkit.org/show_bug.cgi?id=121175
1303
1304         Reviewed by Brent Fulgham.
1305
1306         Use std::addressof to get the address of the given object.
1307
1308         * wtf/Vector.h:
1309         (WTF::::appendSlowCase):
1310         (WTF::::uncheckedAppend):
1311
1312 2013-09-11  Anders Carlsson  <andersca@apple.com>
1313
1314         Vector::append doesn't work if element type has overloaded operator&
1315         https://bugs.webkit.org/show_bug.cgi?id=121175
1316
1317         Reviewed by Brent Fulgham.
1318
1319         Use std::addressof to get the address of the given object.
1320
1321         * wtf/Vector.h:
1322         (WTF::::appendSlowCase):
1323         (WTF::::uncheckedAppend):
1324
1325 2013-09-11  Anders Carlsson  <andersca@apple.com>
1326
1327         VectorBuffer::swap doesn't need to use std::swap_ranges
1328         https://bugs.webkit.org/show_bug.cgi?id=121164
1329
1330         Reviewed by Darin Adler.
1331
1332         There's a std::swap overload for swapping arrays, just use it instead.
1333
1334         * wtf/Vector.h:
1335         (WTF::VectorBuffer::swap):
1336
1337 2013-09-11  Anders Carlsson  <andersca@apple.com>
1338
1339         Implement Vector::append for move-only types
1340         https://bugs.webkit.org/show_bug.cgi?id=120805
1341
1342         Reviewed by Andreas Kling.
1343
1344         * wtf/Vector.h:
1345         (WTF::::expandCapacity):
1346         Remove const from the pointer passed to expandCapacity, it can be non-const if we're moving.
1347
1348         (WTF::::append):
1349         Change append to take U&& and use std::forward when constructing the element and when passing
1350         the element along to appendSlowCase if that's necessary.
1351         
1352         (WTF::::appendSlowCase):
1353         Use std::forward.
1354
1355         (WTF::::uncheckedAppend):
1356         Rename val to value.
1357
1358 2013-09-11  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
1359
1360         WTF::OwnPtr should behave similarly with the rest of WTF smart pointers
1361         https://bugs.webkit.org/show_bug.cgi?id=120773
1362
1363         Reviewed by Anders Carlsson.
1364
1365         Before the change OwnPtr could take either the pointer type or the pointed-to type, which was bad
1366         for the following reasons:
1367         - It distinguished OwnPtr behaviour from other WTF smart pointer classes behaviour (so it was confusing for the Client).
1368         - It was potential error-prone as it actually modified the type given by the Client in opaque way.
1369
1370         * wtf/OwnPtr.h:
1371         * wtf/PassOwnPtr.h:
1372
1373 2013-09-11  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
1374
1375         OwnPtr: Use copy/move-and-swap for assignment operators
1376         https://bugs.webkit.org/show_bug.cgi?id=121154
1377
1378         Reviewed by Anders Carlsson.
1379
1380         Rationals:
1381         - decrease of repeated code
1382         - consistency with RefPtr
1383
1384         * wtf/OwnPtr.h:
1385         (WTF::=):
1386
1387 2013-09-11  Patrick Gansterer  <paroga@webkit.org>
1388
1389         [CMake] Split out generic Windows files into its own file
1390         https://bugs.webkit.org/show_bug.cgi?id=119514
1391
1392         Reviewed by Gyuyoung Kim.
1393
1394         This allows us to add smaller CMakeLists.txt files when
1395         adding additional Windows ports.
1396
1397         * wtf/PlatformWin.cmake: Renamed from Source/WTF/wtf/PlatformWinCE.cmake.
1398
1399 2013-09-10  Daniel Bates  <dabates@apple.com>
1400
1401         [iOS] Upstream text autosizing
1402         https://bugs.webkit.org/show_bug.cgi?id=121111
1403
1404         Reviewed by Andy Estes and Sam Weinig.
1405
1406         Define iOS text autosizing to be enabled on iOS unless otherwise defined.
1407
1408         * wtf/FeatureDefines.h:
1409
1410 2013-09-10  Anders Carlsson  <andersca@apple.com>
1411
1412         Remove wtf/Alignment.h
1413         https://bugs.webkit.org/show_bug.cgi?id=121077
1414
1415         Reviewed by Andreas Kling.
1416
1417         * GNUmakefile.list.am:
1418         * WTF.pro:
1419         * WTF.vcxproj/WTF.vcxproj:
1420         * WTF.vcxproj/WTF.vcxproj.filters:
1421         * WTF.xcodeproj/project.pbxproj:
1422         * wtf/Alignment.h: Removed.
1423         * wtf/CMakeLists.txt:
1424         * wtf/text/ASCIIFastPath.h:
1425
1426 2013-09-10  Anders Carlsson  <andersca@apple.com>
1427
1428         More WTF/Alignment.h removal
1429         https://bugs.webkit.org/show_bug.cgi?id=121125
1430
1431         Reviewed by Andreas Kling.
1432
1433         * wtf/Alignment.h:
1434         * wtf/Vector.h:
1435         (WTF::VectorBuffer::swap):
1436         (WTF::VectorBuffer::inlineBuffer):
1437         * wtf/text/ASCIIFastPath.h:
1438         (WTF::isAlignedTo):
1439         (WTF::isAlignedToMachineWord):
1440
1441 2013-09-10  Brent Fulgham  <bfulgham@apple.com>
1442
1443         Unreviewed build fix after r155476.
1444
1445         * GNUmakefile.list.am: Remove reference to deleted OwnPtrWin.cpp file.
1446         * WTF.pro: Ditto.
1447         * wtf/CMakeLists.txt: Ditto.
1448
1449 2013-09-10  Brent Fulgham  <bfulgham@apple.com>
1450
1451         [Windows] Create SharedGDIObject Class Template
1452         https://bugs.webkit.org/show_bug.cgi?id=121037
1453
1454         Reviewed by Anders Carlsson.
1455
1456         Now that the SharedGDIObject class exists we can get rid of
1457         the Windows-specific code in OwnPtr.
1458
1459         * WTF.vcxproj/WTF.vcxproj: Remove OwnPtrWin.cpp.
1460         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
1461         * wtf/OwnPtrCommon.h: 
1462         (WTF::deleteOwnedPtr): Remove Windows declarations that
1463         are no longer needed.
1464         * wtf/win/GDIObject.h:
1465         (WTF::GDIObject::get): Change to 'const' to match
1466         signature (and use cases) elsewhere in the code base for
1467         our smart pointer classes.
1468         * wtf/win/OwnPtrWin.cpp: Removed.
1469
1470 2013-09-10  Anders Carlsson  <andersca@apple.com>
1471
1472         Remove more uses of WTF::AlignedBuffer
1473         https://bugs.webkit.org/show_bug.cgi?id=121119
1474
1475         Reviewed by Andreas Kling.
1476
1477         * wtf/HashTable.h:
1478         * wtf/SizeLimits.cpp:
1479
1480 2013-09-10  Anders Carlsson  <andersca@apple.com>
1481
1482         Clean up wtf/Noncopyable.h
1483         https://bugs.webkit.org/show_bug.cgi?id=121115
1484
1485         Reviewed by Darin Adler.
1486
1487         Use std::aligned_storage instead of WTF::AlignedBuffer.
1488
1489         * wtf/NeverDestroyed.h:
1490         (WTF::NeverDestroyed::NeverDestroyed):
1491
1492 2013-09-09  Brent Fulgham  <bfulgham@apple.com>
1493
1494         [Windows] Change from using OwnPtr<GDI Stuff> to new GDIObject template.
1495         https://bugs.webkit.org/show_bug.cgi?id=120778
1496
1497         Reviewed by Anders Carlsson.
1498
1499         * WTF.vcxproj/WTF.vcxproj: Add new GDIObject header file.
1500         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
1501         * WTF.vcxproj/copy-files.cmd: Copy new header file.
1502         * wtf/OwnPtrCommon.h: Remove some GDI specializations.
1503         * wtf/win/GDIObject.h: Added.
1504         (WTF::GDIObject::GDIObject):
1505         (WTF::GDIObject::~GDIObject):
1506         (WTF::GDIObject::get):
1507         (WTF::GDIObject::operator!):
1508         (WTF::GDIObject::operator UnspecifiedBoolType):
1509         (WTF::GDIObject::operator=):
1510         (WTF::GDIObject::swap):
1511         (WTF::::clear):
1512         (WTF::::leak):
1513         (WTF::::GDIObject):
1514         (WTF::=):
1515         (WTF::adoptGDIObject):
1516         (WTF::swap):
1517         (WTF::T):
1518         (WTF::HDC):
1519         * wtf/win/OwnPtrWin.cpp:
1520         (WTF::deleteOwnedPtr): Remove some GDI specializations.
1521
1522 2013-09-09  Anders Carlsson  <andersca@apple.com>
1523
1524         Introduce WTF::createOwned
1525         https://bugs.webkit.org/show_bug.cgi?id=121059
1526
1527         Reviewed by Andreas Kling.
1528
1529         WTF::createOwned is a function template that does adoptPtr + new in a single function call,
1530         with all the arguments being perfectly forwarded thanks to C++11.
1531         
1532         Being forward-looking, createOwned returns an OwnPtr rather than a PassOwnPtr since the plan is 
1533         to get rid of PassOwnPtr and just use std::move instead.
1534
1535         * wtf/FilePrintStream.cpp:
1536         * wtf/FilePrintStream.h:
1537         * wtf/HashTable.h:
1538         * wtf/ListHashSet.h:
1539         * wtf/OwnPtr.h:
1540         (WTF::OwnPtr::OwnPtr):
1541         (WTF::createOwned):
1542         (WTF::createThread):
1543         (WTF::establishIdentifierForPthreadHandle):
1544         (WTF::createThreadInternal):
1545         (WTF::Collator::userDefault):
1546         (WTF::Collator::userDefault):
1547
1548 2013-09-09  Anders Carlsson  <andersca@apple.com>
1549
1550         Remove wtf/TypeTraits.h
1551         https://bugs.webkit.org/show_bug.cgi?id=121047
1552
1553         Reviewed by Darin Adler.
1554
1555         * GNUmakefile.list.am:
1556         * WTF.pro:
1557         * WTF.vcxproj/WTF.vcxproj:
1558         * WTF.vcxproj/WTF.vcxproj.filters:
1559         * WTF.xcodeproj/project.pbxproj:
1560         * wtf/CMakeLists.txt:
1561         * wtf/TypeTraits.cpp: Removed.
1562         * wtf/TypeTraits.h: Removed.
1563         * wtf/VectorTraits.h:
1564
1565 2013-09-09  Luciano Wolf  <luciano.wolf@openbossa.org>
1566
1567         Nix upstreaming - Adding stubs and Nix specific platform files
1568         https://bugs.webkit.org/show_bug.cgi?id=118358
1569
1570         Reviewed by Benjamin Poulain.
1571
1572         Basically adding all files that have "Nix" in their names and
1573         are related to WebCore module.
1574
1575         * wtf/nix/FeatureDefinesNix.h: Added.
1576         * wtf/nix/PlatformNix.h: Added.
1577
1578 2013-09-08  Anders Carlsson  <andersca@apple.com>
1579
1580         Begin moving off of TypeTraits.h
1581         https://bugs.webkit.org/show_bug.cgi?id=121006
1582
1583         Reviewed by Darin Adler.
1584
1585         The C++11 has its own type traits implementation that is more complete and handles corner cases better
1586         since it ties into the compiler. Begin switching uses of WTF type traits to STL type traits.
1587
1588         * wtf/CheckedArithmetic.h:
1589         * wtf/HashTraits.h:
1590         * wtf/NeverDestroyed.h:
1591         * wtf/OwnPtr.h:
1592         * wtf/PassOwnPtr.h:
1593         (WTF::adoptPtr):
1594         * wtf/RetainPtr.h:
1595
1596 2013-09-09  Julien Brianceau  <jbriance@cisco.com>
1597
1598         [Qt] Remove FastAllocBase.h from WTF.pro.
1599         https://bugs.webkit.org/show_bug.cgi?id=121024
1600
1601         Reviewed by Jocelyn Turcotte.
1602
1603         * WTF.pro: Remove FastAllocBase.h as this file disappeared in r155251.
1604
1605 2013-09-08  Darin Adler  <darin@apple.com>
1606
1607         Deprecate AdoptCF and AdoptNS (on all platforms except iOS for now)
1608         https://bugs.webkit.org/show_bug.cgi?id=121017
1609
1610         Reviewed by Andreas Kling.
1611
1612         * wtf/RetainPtr.h: Use the preprocessor to rename AdoptCF and AdoptNS
1613         to DeprecatedAdoptCF and DeprecatedAdoptNS on all platforms except
1614         for iOS. Also removed an unneeded explicit conversion in the retainPtr
1615         function. Also re-sorted the using lines at the end of the file.
1616
1617 2013-09-08  Anders Carlsson  <andersca@apple.com>
1618
1619         Move WTF::notFound to Vector.h and delete NotFound.h
1620         https://bugs.webkit.org/show_bug.cgi?id=120990
1621
1622         Reviewed by Sam Weinig.
1623
1624         * GNUmakefile.list.am:
1625         * WTF.pro:
1626         * WTF.vcxproj/WTF.vcxproj:
1627         * WTF.vcxproj/WTF.vcxproj.filters:
1628         * WTF.xcodeproj/project.pbxproj:
1629         * wtf/CMakeLists.txt:
1630         * wtf/NotFound.h: Removed.
1631         * wtf/Vector.h:
1632
1633 2013-09-07  David Kilzer  <ddkilzer@apple.com>
1634
1635         gtest fails to build due to integer type mismatch in WTF::insertIntoBoundedVector()
1636         <http://webkit.org/b/120983>
1637
1638         Reviewed by Dan Bernstein.
1639
1640         Fixes the following build failure:
1641
1642             WebKitBuild/Debug/usr/local/include/wtf/StdLibExtras.h:266:23: error: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Werror,-Wshorten-64-to-32]
1643             for (unsigned i = size; i-- > index + 1;)
1644                           ~   ^~~~
1645
1646         * wtf/StdLibExtras.h:
1647         (WTF::insertIntoBoundedVector): Use size_t instead of unsigned
1648         as for loop index variable.
1649
1650 2013-09-07  Anders Carlsson  <andersca@apple.com>
1651
1652         Remove NonCopyableSort.h from WTF
1653         https://bugs.webkit.org/show_bug.cgi?id=120984
1654
1655         Reviewed by Andreas Kling.
1656
1657         std::sort as defined by C++11 moves elements when possible, so there's no need for nonCopyableSort anymore.
1658
1659         * GNUmakefile.list.am:
1660         * WTF.pro:
1661         * WTF.vcxproj/WTF.vcxproj:
1662         * WTF.vcxproj/WTF.vcxproj.filters:
1663         * WTF.xcodeproj/project.pbxproj:
1664         * wtf/NonCopyingSort.h: Removed.
1665
1666 2013-09-07  Anders Carlsson  <andersca@apple.com>
1667
1668         Get rid of PassOwnArrayPtr
1669         https://bugs.webkit.org/show_bug.cgi?id=120964
1670
1671         Reviewed by Andreas Kling.
1672
1673         Make OwnArrayPtr a proper move-only type and get rid of PassOwnArrayPtr.
1674         
1675         Ultimately I'd like to get rid of OwnArrayPtr as well and just have it be a specialization
1676         of OwnPtr<T[]>, but this is a step in the right direction.
1677
1678         * GNUmakefile.list.am:
1679         * WTF.pro:
1680         * WTF.vcxproj/WTF.vcxproj:
1681         * WTF.vcxproj/WTF.vcxproj.filters:
1682         * WTF.xcodeproj/project.pbxproj:
1683         * wtf/Assertions.cpp:
1684         * wtf/CMakeLists.txt:
1685         * wtf/DateMath.h:
1686         * wtf/FastBitVector.h:
1687         * wtf/Forward.h:
1688         * wtf/OwnArrayPtr.h:
1689         * wtf/PassOwnArrayPtr.h: Removed.
1690
1691 2013-09-07  Anders Carlsson  <andersca@apple.com>
1692
1693         VectorMover should use std::move
1694         https://bugs.webkit.org/show_bug.cgi?id=120959
1695
1696         Reviewed by Geoffrey Garen.
1697
1698         This lets the compiler use move constructors when moving data, which can be a performance improvement.
1699         If the vector element type isn't movable it will be copied instead.
1700
1701         * wtf/Vector.h:
1702         (WTF::VectorTypeOperations::move):
1703         (WTF::VectorTypeOperations::moveOverlapping):
1704
1705 2013-09-07  Anders Carlsson  <andersca@apple.com>
1706
1707         Get rid of FastAllocBase.h
1708         https://bugs.webkit.org/show_bug.cgi?id=120952
1709
1710         Reviewed by Antti Koivisto.
1711
1712         FastAllocBase.h now only contains the WTF_MAKE_FAST_ALLOCATED macro. 
1713         Move that macro to FastMalloc.h instead and remove FastAllocBase.h.
1714
1715         * WTF.vcxproj/WTF.vcxproj:
1716         * WTF.vcxproj/WTF.vcxproj.filters:
1717         * WTF.xcodeproj/project.pbxproj:
1718         * wtf/DeferrableRefCounted.h:
1719         * wtf/FastAllocBase.h: Removed.
1720         * wtf/FastMalloc.h:
1721         * wtf/HashSet.h:
1722         * wtf/MediaTime.h:
1723         * wtf/PrintStream.h:
1724         * wtf/RefCounted.h:
1725         * wtf/RefPtr.h:
1726         * wtf/ThreadingPrimitives.h:
1727         * wtf/Vector.h:
1728         * wtf/gobject/GMutexLocker.h:
1729         * wtf/unicode/Collator.h:
1730
1731 2013-09-06  Anders Carlsson  <andersca@apple.com>
1732
1733         Add a new smart pointer type for fastMalloc'ed memory
1734         https://bugs.webkit.org/show_bug.cgi?id=120911
1735
1736         Reviewed by Andreas Kling.
1737
1738         Due to an oversight on my part, Vector::releaseBuffer() currently returns an OwnPtr
1739         which means that its data will be freed with operator delete instead of fastFree.
1740         
1741         Fix this by introducing a new MllocPtr smart pointer class and change Vector::releaseBuffer() to return it instead.
1742
1743         * WTF.pro:
1744         * WTF.vcxproj/WTF.vcxproj:
1745         * WTF.vcxproj/WTF.vcxproj.filters:
1746         * WTF.xcodeproj/project.pbxproj:
1747         * wtf/CMakeLists.txt:
1748         * wtf/FastAllocBase.h:
1749         * wtf/MallocPtr.h: Added.
1750         * wtf/Vector.h:
1751         * wtf/text/StringBuffer.h:
1752         * wtf/text/StringImpl.h:
1753
1754 2013-09-06  Andreas Kling  <akling@apple.com>
1755
1756         Remove old workaround for Nokia's Harmattan GCC on Qt/ARM.
1757         <https://webkit.org/b/37253>
1758
1759         Reviewed by Anders Carlsson.
1760
1761         Apparently this was a workaround for GCC getting stuck in an infinite loop
1762         when building for ARM in a Nokia SDK over 2 years ago.
1763
1764         I think it's safe to remove this now, but if I'm wrong, and you're reading
1765         this ChangeLog wondering why I did this to you, feel free to put it back in.
1766
1767         * wtf/PassRefPtr.h:
1768         (WTF::refIfNotNull):
1769         (WTF::derefIfNotNull):
1770
1771 2013-09-06  Andreas Kling  <akling@apple.com>
1772
1773         Remove unused RefPtr(PlacementNewAdopt) constructor.
1774         <https://webkit.org/b/120914>
1775
1776         Reviewed by Anders Carlsson.
1777
1778         * wtf/RefPtr.h:
1779
1780 2013-09-06  David Kilzer  <ddkilzer@apple.com>
1781
1782         BUILD FIX (r155171): INSTALL_PATH_PREFIX should no longer be used beneath BUILT_PRODUCTS_DIR in HEADER_SEARCH_PATHS for iOS
1783
1784         * Configurations/Base.xcconfig:
1785         (HEADER_SEARCH_PATHS): Change
1786         $(BUILT_PRODUCTS_DIR)/$(INSTALL_PATH_PREFIX)/usr/local/include to
1787         $(BUILT_PRODUCTS_DIR)/usr/local/include.
1788
1789 2013-09-06  Anders Carlsson  <andersca@apple.com>
1790
1791         Remove fastNew/fastDelete
1792         https://bugs.webkit.org/show_bug.cgi?id=120904
1793
1794         Reviewed by Andreas Kling.
1795
1796         Remove the various variants of fastNew and fastDelete.
1797
1798         * wtf/FastAllocBase.h:
1799
1800 2013-09-06  Alberto Garcia  <berto@igalia.com>
1801
1802         [GTK] GlibUtilities: getCurrentExecutablePath() does not compile on GNU/Hurd
1803         https://bugs.webkit.org/show_bug.cgi?id=120793
1804
1805         Reviewed by Gustavo Noronha Silva.
1806
1807         Original patch by Svante Signell <svante.signell@telia.com>.
1808
1809         PATH_MAX is not defined in GNU/Hurd, this patch adds a dummy
1810         implementation to make it compile.
1811
1812         * wtf/gobject/GlibUtilities.cpp:
1813         (getCurrentExecutablePath):
1814
1815 2013-09-05  Dan Bernstein  <mitz@apple.com>
1816
1817         INSTALL_PATH_PREFIX is used even when not installing
1818         https://bugs.webkit.org/show_bug.cgi?id=120810
1819
1820         Reviewed by Andy Estes.
1821
1822         * Configurations/CopyWTFHeaders.xcconfig: Removed INSTALL_PATH_PREFIX from
1823         the definition of PRIVATE_HEADERS_FOLDER_PATH. Also removed the leading
1824         slash, because the Xcode definition of this build setting is relative.
1825         * WTF.xcodeproj/project.pbxproj: Prepend INSTALL_PATH_PREFIX here when installing.
1826
1827 2013-09-05  Anders Carlsson  <andersca@apple.com>
1828
1829         Fix build with older versions of clang from Xcode.
1830
1831         * wtf/Compiler.h:
1832
1833 2013-09-05  Anders Carlsson  <andersca@apple.com>
1834
1835         Make Vector::uncheckedAppend work with move-only types
1836         https://bugs.webkit.org/show_bug.cgi?id=120799
1837
1838         Reviewed by Andreas Kling.
1839
1840         * wtf/Vector.h:
1841         (WTF::::uncheckedAppend):
1842         Use std::forward to invoke the move constructor when possible.
1843
1844 2013-09-05  Anders Carlsson  <andersca@apple.com>
1845
1846         Add COMPILER_SUPPORTS(CXX_AUTO_TYPE) and #error if it's 0
1847         https://bugs.webkit.org/show_bug.cgi?id=120794
1848
1849         Reviewed by Andreas Kling.
1850
1851         People have already begun using C++11 auto in WebCore, so let's make it a prerequisite.
1852
1853         * wtf/Compiler.h:
1854
1855 2013-09-05  Anders Carlsson  <andersca@apple.com>
1856
1857         Clean up wtf/Compiler.h
1858         https://bugs.webkit.org/show_bug.cgi?id=120790
1859
1860         Reviewed by Andreas Kling.
1861
1862         - Get rid of the CLANG_PRAGMA define, it's not used anywhere.
1863         - Remove a workaround for a bug in the version of clang that came with Xcode 4.2.
1864         - Replace WTF_COMPILER_SUPPORTS_CXX_FINAL_CONTROL with a compiler quirk for versions of clang
1865           that have a buggy final implementation and fix a bug in the macro where final would be disabled
1866           for versions of clang where __clang_minor__ is less than 2, regardless of the major version.
1867         - Fail if someone tries to compile the WebKit stack with a compiler that doesn't support rvalue
1868           references or static_assert.
1869
1870         * wtf/Compiler.h:
1871
1872 2013-09-05  Anders Carlsson  <andersca@apple.com>
1873
1874         Change StringBuffer back to not use an OwnPtr in an attempt to fix ports.
1875         
1876         * wtf/text/StringBuffer.h:
1877
1878 2013-09-04  Anders Carlsson  <andersca@apple.com>
1879
1880         Vector::releaseBuffer should return an OwnPtr
1881         https://bugs.webkit.org/show_bug.cgi?id=120718
1882
1883         Reviewed by Andreas Kling.
1884
1885         Change Vector::releaseBuffer() to return an OwnPtr. I intentionally chose
1886         to use an OwnPtr over a PassOwnPtr since we're trying to move away from PassOwnPtr objects.
1887         
1888         Fix fallout from this change by adopting OwnPtr/PassOwnPtr in StringBuffer and the two StringImpl
1889         constructors that adopt the passed in pointer.
1890
1891         * wtf/Vector.h:
1892         * wtf/text/StringBuffer.h:
1893         * wtf/text/StringImpl.h:
1894
1895 2013-09-05  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
1896
1897         Remove String(RefPtr<StringImpl>) constructor
1898         https://bugs.webkit.org/show_bug.cgi?id=120767
1899
1900         Reviewed by Anders Carlsson.
1901
1902         The String(RefPtr<StringImpl>) constructor should be removed for the following reasons:
1903         - It almost does not have clients, so it is unneeded.
1904         - RefPtr should never be passed by value
1905
1906         * wtf/text/StringBuilder.cpp:
1907         (WTF::StringBuilder::shrinkToFit):
1908         * wtf/text/WTFString.h:
1909
1910 2013-09-05  Jaehun Lim  <ljaehun.lim@samsung.com>
1911
1912         Unreviewed. Fix build after r155083
1913
1914         Source/WTF/wtf/Vector.h:1210:48: error: ‘>>’ should be ‘> >’ within a nested template argument list
1915
1916         * wtf/Vector.h: Add missing space.
1917
1918 2013-09-04  Mark Rowe  <mrowe@apple.com>
1919
1920         Fix AutodrainedPool.h to compile without errors under ARC.
1921
1922         Rubber-stamped by Anders Carlsson.
1923
1924         * wtf/AutodrainedPool.h: Some versions of Clang complain about any use of NSAutoreleasePool under ARC.
1925         Change the type of the member variable to id to work around this. Since the implementation file is compiled
1926         under manual reference counting, everything will work fine.
1927
1928 2013-09-04  Anders Carlsson  <andersca@apple.com>
1929
1930         De-indent Vector.h.
1931
1932         Rubber-stamped by Andreas Kling.
1933         
1934         I'm cleaning up Vector and making it work with move-only objects, and the namespace WTF
1935         indentation is driving me crazy.
1936
1937         * wtf/Vector.h:
1938
1939 2013-09-03  Filip Pizlo  <fpizlo@apple.com>
1940
1941         CodeBlock memory cost reporting should be rationalized
1942         https://bugs.webkit.org/show_bug.cgi?id=120615
1943
1944         Reviewed by Darin Adler.
1945
1946         * wtf/RefCountedArray.h:
1947         (WTF::RefCountedArray::refCount):
1948
1949 2013-09-03  Enrica Casucci  <enrica@apple.com>
1950
1951         Follow up to http://trac.webkit.org/changeset/155014
1952
1953         Reviewed by Alexey Proskuryakov.
1954
1955         In the r155014 I renamed hasLineBreakingPropertyComplexContext
1956         to requiresComplexContextForWordBreaking but forgot to
1957         make the same change in UnicodeWchar.h.
1958
1959         * wtf/unicode/wchar/UnicodeWchar.cpp:
1960         (WTF::Unicode::requiresComplexContextForWordBreaking):
1961         * wtf/unicode/wchar/UnicodeWchar.h:
1962
1963 2013-09-03  Enrica Casucci  <enrica@apple.com>
1964
1965         Can't select Katakana word by double-clicking.
1966         <rdar://problem/14654926>
1967
1968         Reviewed by Alexey Proskuryakov and Ryosuke Niwa.
1969
1970         For some languages, like Japanese we need
1971         to use more context for word breaking.
1972         I've renamed the function to better reflect its use
1973         and remove the unused hasLineBreakingPropertyComplexContextOrIdeographic.
1974
1975         * wtf/unicode/icu/UnicodeIcu.h:
1976         (WTF::Unicode::requiresComplexContextForWordBreaking):
1977
1978 2013-09-03  Andreas Kling  <akling@apple.com>
1979
1980         Support Vector<Ref<T>>.
1981         <https://webkit.org/b/120637>
1982
1983         Reviewed by Antti Koivisto.
1984
1985         Add a Ref(const T&) constructor to enable Vector<Ref<T>>. This looks a bit awkward
1986         but is necessary for Vector::append(const T&) to find a constructor.
1987
1988         An alternative would be to add something like std::vector::emplace_back, but I can't
1989         think of a good name for that, and it'd be nice if append() would "just work."
1990
1991         Also add operator->(). I initially excluded this because I felt it made for
1992         unsafe-looking code. Things quickly got out of hand with .get() everywhere though.
1993
1994         IMO -> looks OK as long as it's only used on the first link in a dereference chain,
1995         as that variable and its type will be "in context."
1996
1997         * wtf/Ref.h:
1998         (WTF::Ref::Ref):
1999         (WTF::Ref::~Ref):
2000         (WTF::Ref::operator->):
2001         (WTF::Ref::get):
2002         * wtf/VectorTraits.h:
2003
2004             Add simple traits for Ref<T> so it can be moved around freely by Vector.
2005
2006 2013-09-03  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2007
2008         Check WTF::VectorFiller template argument type size in compile time
2009         https://bugs.webkit.org/show_bug.cgi?id=120631
2010
2011         Reviewed by Darin Adler.
2012
2013         The template argument's type size in WTF::VectorFiller 'memset' specialization
2014         should be checked during compilation rather than in runtime.
2015
2016         * wtf/Vector.h:
2017
2018 2013-09-02  Darin Adler  <darin@apple.com>
2019
2020         Cut down on double hashing and code needlessly using hash table iterators
2021         https://bugs.webkit.org/show_bug.cgi?id=120611
2022
2023         Reviewed by Andreas Kling.
2024
2025         Double hashing is common in code that needs to combine a remove with some
2026         action to only be done if the code is removed. The only way to avoid it is
2027         to write code using find and a hash table iterator. To help with this, add
2028         a boolean return value to remove functions to indicate if anything was removed.
2029
2030         Double hashing also happens in code that does a get followed by a remove.
2031         The take function is helpful in this case. To help with this, add a takeFirst
2032         funciton to ListHashSet.
2033
2034         * wtf/HashCountedSet.h:
2035         (WTF::HashCountedSet::removeAll): Added a boolean return value, analogous to the one
2036         that the HashCountedSet::remove function already has.
2037
2038         * wtf/HashMap.h:
2039         (WTF::HashMap::remove): Added a boolean return value, true if something was removed.
2040         * wtf/HashSet.h:
2041         (WTF::HashSet::remove): Ditto.
2042         * wtf/RefPtrHashMap.h:
2043         (WTF::RefPtrHashMap::remove): Ditto.
2044
2045         * wtf/ListHashSet.h:
2046         (WTF::ListHashSet::takeFirst): Added.
2047         (WTF::ListHashSet::takeLast): Added.
2048         (WTF::ListHashSet::remove): Added a boolean return value, true if something was removed.
2049
2050         * wtf/WTFThreadData.h:
2051         (JSC::IdentifierTable::remove): Use the new remove return value to get rid of most of
2052         the code in this function.
2053
2054 2013-09-02  David Kilzer  <ddkilzer@apple.com>
2055
2056         Remove duplicate entries found by Xcode in WTF project
2057
2058         Platform.h was duplicated in r111778 after being added in
2059         r111504.
2060
2061         A dangling reference to Ref.h was added in r154962.
2062
2063         * WTF.xcodeproj/project.pbxproj: Remove duplicate entries for
2064         Platform.h and Ref.h.
2065
2066 2013-09-02  Andreas Kling  <akling@apple.com>
2067
2068         Actually add Ref.h
2069
2070 2013-09-02  Darin Adler  <darin@apple.com>
2071
2072         [Mac] No need for HardAutorelease, which is same as CFBridgingRelease
2073         https://bugs.webkit.org/show_bug.cgi?id=120569
2074
2075         Reviewed by Andy Estes.
2076
2077         * wtf/ObjcRuntimeExtras.h: Added a FIXME about miscapitalization of ObjC.
2078         Deleted HardAutorelease.
2079         (wtfObjcMsgSend): Dropped the use of abbreviations in local class and argument names.
2080         (wtfCallIMP): Ditto.
2081
2082 2013-09-01  Andreas Kling  <akling@apple.com>
2083
2084         Ref: A smart pointer for the reference age.
2085         <https://webkit.org/b/120570>
2086
2087         Reviewed by Antti Koivisto.
2088
2089         Add a very simple simple Ref<T> smart pointer class that is never null.
2090         It's initialized by passing a T& to the constructor and cannot be assigned to.
2091
2092         operator-> is not overloaded, to prevent unsafe-looking code.
2093         The value is extracted by "T& get()", since C++ does not let you override operator.()
2094
2095         * wtf/Ref.h:
2096
2097 2013-08-30  Oliver Hunt  <oliver@apple.com>
2098
2099         Make JSValue bool conversion less dangerous
2100         https://bugs.webkit.org/show_bug.cgi?id=120505
2101
2102         Reviewed by Darin Adler.
2103
2104         Make LIKELY and UNLIKELY macros coerce to bool before
2105         passing to expect.
2106
2107         * wtf/Compiler.h:
2108
2109 2013-08-30  Antti Koivisto  <antti@apple.com>
2110
2111         Remove code behind ENABLE(DIALOG_ELEMENT)
2112         https://bugs.webkit.org/show_bug.cgi?id=120467
2113
2114         Reviewed by Darin Adler.
2115
2116         * wtf/FeatureDefines.h:
2117
2118 2013-08-29  Sam Weinig  <sam@webkit.org>
2119
2120         Add ENABLE guards for Promises
2121         https://bugs.webkit.org/show_bug.cgi?id=120488
2122
2123         Reviewed by Andreas Kling.
2124
2125         * wtf/FeatureDefines.h:
2126
2127 2013-08-28  Zan Dobersek  <zdobersek@igalia.com>
2128
2129         [GTK] Add support for building JSC with FTL JIT enabled
2130         https://bugs.webkit.org/show_bug.cgi?id=120270
2131
2132         Reviewed by Filip Pizlo.
2133
2134         * wtf/Platform.h: Define ENABLE_FTL_JIT to the value of 1 for the GTK port if building for the x86-64
2135         architecture with LLVM present and the define not being previously defined. This is applicable when
2136         configuring the Automake build with '--enable-ftl-jit=auto'.
2137
2138 2013-08-27  Arunprasad Rajkumar  <arurajku@cisco.com>
2139
2140         Replace currentTime() with monotonicallyIncreasingTime() in WebCore
2141         https://bugs.webkit.org/show_bug.cgi?id=119958
2142
2143         Reviewed by Alexey Proskuryakov.
2144
2145         WTF::currentTime() is prone to NTP and manual adjustments, so use
2146         WTF::monotonicallyIncreasingTime() to measure elapsed time.
2147
2148         It is a continuation of r154201.
2149
2150         * wtf/CurrentTime.h: Edited comment.
2151
2152 2013-08-27  Andre Moreira Magalhaes   <andre.magalhaes@collabora.co.uk>
2153
2154         [gstreamer] Make sure gstreamer source element is thread-safe
2155         https://bugs.webkit.org/show_bug.cgi?id=115352
2156
2157         Reviewed by Philippe Normand.
2158
2159         Add convenience class that simplifies locking and unlocking a GMutex.
2160
2161         * GNUmakefile.list.am:
2162         * wtf/gobject/GMutexLocker.h: Added.
2163         (WebCore::GMutexLocker::GMutexLocker):
2164         (WebCore::GMutexLocker::~GMutexLocker):
2165         (WebCore::GMutexLocker::lock):
2166         (WebCore::GMutexLocker::unlock):
2167         (WebCore::GMutexLocker::mutex):
2168
2169 2013-08-26  Andy Estes  <aestes@apple.com>
2170
2171         Don't leak objects in HardAutorelease when OBJC_NO_GC is undefined but
2172         Objective-C GC is disabled at runtime.
2173         
2174         Reviewed by Darin Adler.
2175
2176         * wtf/ObjcRuntimeExtras.h:
2177         (HardAutorelease):
2178
2179 2013-08-23  Andy Estes  <aestes@apple.com>
2180
2181         Fix issues found by the Clang Static Analyzer
2182         https://bugs.webkit.org/show_bug.cgi?id=120230
2183
2184         Reviewed by Darin Adler.
2185
2186         * wtf/ObjcRuntimeExtras.h:
2187         (HardAutorelease): Added a canonical implementation of HardAutorelease.
2188
2189 2013-08-26  Zan Dobersek  <zdobersek@igalia.com>
2190
2191         Undefine __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS before redefining them
2192         https://bugs.webkit.org/show_bug.cgi?id=120313
2193
2194         Reviewed by Darin Adler.
2195
2196         * wtf/LLVMHeaders.h: Undefine the two macros before they are defined again.
2197         This way we avoid the compilation-time warnings about the macros being invalidly redefined.
2198
2199 2013-08-26  Oliver Hunt  <oliver@apple.com>
2200
2201         Building is so overrated.
2202
2203         * wtf/Compression.cpp:
2204         (WTF::GenericCompressedData::decompress):
2205
2206 2013-08-26  Oliver Hunt  <oliver@apple.com>
2207
2208         Disable compression under MSVC for now as we're getting
2209         weird release-only failures.
2210
2211         * wtf/Compression.cpp:
2212
2213 2013-08-24  Benjamin Poulain  <benjamin@webkit.org>
2214
2215         Save three bytes per CStringBuffer object
2216         https://bugs.webkit.org/show_bug.cgi?id=120040
2217
2218         Reviewed by Darin Adler.
2219
2220         Merge https://chromium.googlesource.com/chromium/blink/+/894ae8eafdb64912aefd8f9c809f4ccda84f3b89
2221
2222         sizeof(CStringBuffer) was rounded up to 8 on account of struct size and
2223         alignment rules. This is clearly not what was intended.
2224
2225         * wtf/text/CString.cpp:
2226         (WTF::CStringBuffer::createUninitialized):
2227         * wtf/text/CString.h:
2228         (WTF::CStringBuffer::data):
2229         (WTF::CStringBuffer::mutableData):
2230
2231 2013-08-24  Darin Adler  <darin@apple.com>
2232
2233         RetainPtr lacks move constructor for case when argument is a RetainPtr of a different type
2234         https://bugs.webkit.org/show_bug.cgi?id=120255
2235
2236         Reviewed by Andreas Kling.
2237
2238         * wtf/RetainPtr.h: Added missing move constructor, modeled on the other move constructor,
2239         and the one from RetPtr.
2240
2241 2013-08-24  Oliver Hunt  <oliver@apple.com>
2242
2243         Make the world build.
2244
2245         * wtf/Compression.h:
2246
2247 2013-08-24  Oliver Hunt  <oliver@apple.com>
2248
2249         REGRESSION(r154498): Crashes on EFL, GTK, Qt on release configurations
2250         https://bugs.webkit.org/show_bug.cgi?id=120246
2251
2252         Reviewed by Antti Koivisto.
2253
2254         Undestroy all the platforms that don't use the global new overload
2255
2256         * wtf/Compression.h:
2257
2258 2013-08-21  Mark Rowe  <mrowe@apple.com>
2259
2260         <https://webkit.org/b/120141> Make RetainPtr work with ARC.
2261
2262         Have RetainPtr store the object its managing as a CFTypeRef and manage its lifetime with
2263         CFRetain / CFRelease. This is necessary to have explicit control over the lifetime of
2264         Objective-C objects when automatic reference counting is in use. Two helper methods are
2265         introduced to convert between the pointer type that the RetainPtr manages and the CFTypeRef
2266         that the pointer is stored as. For CF types and Objective-C types with ARC disabled,
2267         these methods are simply casts. For Objective-C types under ARC they need to use the
2268         special bridging casts to keep the compiler happy.
2269
2270         Reviewed by Anders Carlsson.
2271
2272         * wtf/RetainPtr.h:
2273         (WTF::RetainPtr::RetainPtr): Use the helper methods to convert to and from the storage
2274         types when necessary.
2275         (WTF::RetainPtr::~RetainPtr): Ditto.
2276         (WTF::RetainPtr::get): Ditto.
2277         (WTF::RetainPtr::operator->): Ditto.
2278         (WTF::RetainPtr::operator PtrType): Ditto.
2279         (WTF::::RetainPtr): Ditto.
2280         (WTF::::clear): Ditto.
2281         (WTF::::leakRef): Ditto.
2282         (WTF::=): Ditto.
2283
2284         (WTF::RetainPtr::fromStorageTypeHelper): Use crazy template magic to determine whether to use
2285         a bridging cast or not depending on the desired return type.
2286         (WTF::RetainPtr::fromStorageType):
2287         (WTF::RetainPtr::toStorageType): Overloading is sufficient here.
2288
2289 2013-08-21  Mark Rowe  <mrowe@apple.com>
2290
2291         Revert r153637.
2292
2293         It didn't work with ARC like it said it would. We'll need to take a slightly different approach.
2294
2295         Rubber-stamped by Anders Carlsson.
2296
2297         * wtf/RetainPtr.h:
2298         (WTF::RetainPtr::RetainPtr):
2299         (WTF::RetainPtr::~RetainPtr):
2300         (WTF::RetainPtr::operator UnspecifiedBoolType):
2301         (WTF::::RetainPtr):
2302         (WTF::::clear):
2303         (WTF::=):
2304         (WTF::adoptCF):
2305         (WTF::adoptNS):
2306
2307 2013-08-23  Brent Fulgham  <bfulgham@apple.com>
2308
2309         [Windows] Unreviewed build correction after r154513.
2310
2311         * WTF.vcxproj/build-generated-files.sh: Variable was missing '$' character.
2312
2313 2013-08-23  Darin Adler  <darin@apple.com>
2314
2315         Cut down repeated code in RefPtr and RetainPtr by using copy/move-and-swap for assignment operators
2316         https://bugs.webkit.org/show_bug.cgi?id=120223
2317
2318         Reviewed by Anders Carlsson.
2319
2320         * wtf/RefPtr.h: Switch to copy-and-swap in the assignment operators. The move ones already were done
2321         that way.
2322         * wtf/RetainPtr.h: Ditto, except for the move ones too.
2323
2324 2013-08-23  Oliver Hunt  <oliver@apple.com>
2325
2326         Add more validation logic to CompressibleVector
2327         https://bugs.webkit.org/show_bug.cgi?id=120227
2328
2329         Reviewed by Brent Fulgham.
2330
2331         Add a pile of assertions to try on catch whatever is going wrong
2332         in the windows environment or other platforms.
2333
2334         * wtf/Compression.cpp:
2335         (WTF::GenericCompressedData::create):
2336         (WTF::GenericCompressedData::decompress):
2337         * wtf/Compression.h:
2338         (WTF::CompressedVector::decompress):
2339
2340 2013-08-23  Alex Christensen  <achristensen@apple.com>
2341
2342         Re-separating Win32 and Win64 builds.
2343         https://bugs.webkit.org/show_bug.cgi?id=120178
2344
2345         Reviewed by Brent Fulgham.
2346
2347         * WTF.vcxproj/WTFGenerated.make:
2348         Pass PlatformArchitecture as a command line parameter to bash scripts.
2349         * WTF.vcxproj/build-generated-files.sh:
2350         Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64).
2351
2352 2013-08-22  Filip Pizlo  <fpizlo@apple.com>
2353
2354         build-jsc --ftl-jit should work
2355         https://bugs.webkit.org/show_bug.cgi?id=120194
2356
2357         Reviewed by Oliver Hunt.
2358
2359         * wtf/LLVMHeaders.h: I don't know what went wrong here. If HAVE(LLVM), then we need those headers!
2360
2361 2013-08-23  Brent Fulgham  <bfulgham@apple.com>
2362
2363         [Windows] Unreviewed build correction after r154498.
2364
2365         * WTF.vcxproj/WTF.vcxproj.filters: Adjust files so they show up
2366         in the proper folders.
2367         * WTF.vcxproj/WTFCommon.props: Add search path for zlib header and
2368         include link directive.
2369
2370 2013-08-23  Oliver Hunt  <oliver@apple.com>
2371
2372         Attempt to appease windows bot.
2373
2374         * wtf/Compression.h:
2375
2376 2013-08-23  Oliver Hunt  <oliver@apple.com>
2377
2378         Re-sort xcode project file
2379
2380         * WTF.xcodeproj/project.pbxproj:
2381
2382 2013-08-23  Oliver Hunt  <oliver@apple.com>
2383
2384         Support in memory compression of rarely used data
2385         https://bugs.webkit.org/show_bug.cgi?id=120143
2386
2387         Reviewed by Gavin Barraclough.
2388
2389         Adds a set of utility functions to wrap the use of zlib over a generic
2390         type or a Vector<> as well as adding CompressibleVector that wraps
2391         either a Vector<> or compressed data.
2392
2393         * GNUmakefile.list.am:
2394         * WTF.pro:
2395         * WTF.vcxproj/WTF.vcxproj:
2396         * WTF.xcodeproj/project.pbxproj:
2397         * wtf/CMakeLists.txt:
2398         * wtf/CheckedArithmetic.h:
2399         * wtf/Compression.cpp: Added.
2400         (WTF::zAlloc):
2401         (WTF::zFree):
2402         (WTF::GenericCompressedData::create):
2403         (WTF::GenericCompressedData::decompress):
2404         * wtf/Compression.h: Added.
2405         (WTF::GenericCompressedData::compressedSize):
2406         (WTF::GenericCompressedData::originalSize):
2407         (WTF::GenericCompressedData::GenericCompressedData):
2408         (WTF::CompressedVector::create):
2409         (WTF::CompressedVector::decompress):
2410         (WTF::CompressedVector::size):
2411         (WTF::CompressibleVector::CompressibleVector):
2412         (WTF::CompressibleVector::shrinkToFit):
2413         (WTF::CompressibleVector::size):
2414         (WTF::CompressibleVector::operator[]):
2415         (WTF::CompressibleVector::at):
2416         (WTF::CompressibleVector::begin):
2417         (WTF::CompressibleVector::end):
2418         (WTF::CompressibleVector::data):
2419         (WTF::CompressibleVector::decompressIfNecessary):
2420
2421 2013-08-21  Commit Queue  <commit-queue@webkit.org>
2422
2423         Unreviewed, rolling out r154416.
2424         http://trac.webkit.org/changeset/154416
2425         https://bugs.webkit.org/show_bug.cgi?id=120147
2426
2427         Broke Windows builds (Requested by rniwa on #webkit).
2428
2429         * WTF.vcxproj/WTFGenerated.make:
2430         * WTF.vcxproj/build-generated-files.sh:
2431
2432 2013-08-21  Alex Christensen  <achristensen@apple.com>
2433
2434         <https://webkit.org/b/120137> Separating Win32 and Win64 builds.
2435
2436         Reviewed by Brent Fulgham.
2437
2438         * WTF.vcxproj/WTFGenerated.make:
2439         Pass PlatformArchitecture as a command line parameter to bash scripts.
2440         * WTF.vcxproj/build-generated-files.sh:
2441         Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64).
2442
2443 2013-08-21  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2444
2445         Disable maybe-uninitialized warning in GCC 4.8
2446         https://bugs.webkit.org/show_bug.cgi?id=119835
2447
2448         Reviewed by Anders Carlsson.
2449
2450         Disable the maybe-uninitialized warning.
2451
2452         * wtf/Compiler.h:
2453
2454 2013-08-20  Alex Christensen  <achristensen@apple.com>
2455
2456         Use PlatformArchitecture to distinguish between 32-bit and 64-bit builds on Windows.
2457         https://bugs.webkit.org/show_bug.cgi?id=119512
2458
2459         Reviewed by Brent Fulgham.
2460
2461         * WTF.vcxproj/WTFGeneratedCommon.props:
2462         Replaced obj32, bin32, and lib32 with macros for 64-bit build.
2463
2464 2013-08-20  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
2465
2466         <https://webkit.org/b/120056> [GTK][ARM] enable DFG_JIT
2467
2468         Reviewed by Martin Robinson.
2469
2470         Enable DFG_JIT in GTK+ platform for ARM/Thumb architecture
2471
2472         * wtf/Platform.h:
2473
2474 2013-08-19  Ryosuke Niwa  <rniwa@webkit.org>
2475
2476         <https://webkit.org/b/120049> Delete code for Snow Leopard
2477
2478         Reviewed by Benjamin Poulain.
2479
2480         * wtf/FastMalloc.cpp:
2481         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2482         * wtf/FeatureDefines.h:
2483         * wtf/Platform.h:
2484
2485 2013-08-19  Joseph Pecoraro  <pecoraro@apple.com>
2486
2487         <https://webkit.org/b/120036> [iOS] Upstream Source/WTF Xcode project for iOS
2488
2489         Reviewed by David Kilzer.
2490
2491         Include iOS only WebCoreThread.* files in an ios group, and clean up
2492         the included files a bit.
2493
2494         * WTF.xcodeproj/project.pbxproj:
2495         * wtf/ios/WebCoreThread.cpp:
2496         * wtf/ios/WebCoreThread.h:
2497
2498 2013-08-19  Joseph Pecoraro  <pecoraro@apple.com>
2499
2500         <https://webkit.org/b/119905> [iOS] Upstream Source/WTF
2501
2502         Reviewed by Benjamin Poulain.
2503
2504         Upstream iOS WebKit Source/WTF.
2505
2506         * Configurations/Base.xcconfig:
2507         JavaScriptCore.framework is a public framework.
2508
2509         * wtf/Assertions.h:
2510         Define an export macro for iOS projects just including <wtf/Assertions.h>.
2511
2512         * wtf/Platform.h:
2513         * wtf/FeatureDefines.h:
2514         iOS ENABLE and USE defines.
2515
2516         * wtf/MainThread.h:
2517         * wtf/mac/MainThreadMac.mm:
2518         (WTF::initializeApplicationUIThreadIdentifier):
2519         (WTF::initializeWebThreadIdentifier):
2520         (WTF::canAccessThreadLocalDataForThread):
2521         * wtf/WeakPtr.h:
2522         (WTF::WeakReference::get):
2523         (WTF::WeakReference::clear):
2524         Shared WebThread and MainThread access to thread local data.
2525
2526         * wtf/WTFThreadData.cpp:
2527         (WTF::WTFThreadData::WTFThreadData):
2528         Shared WebThread and MainThread identifier tables.
2529
2530         * wtf/ThreadSpecific.h:
2531         (WTF::::replace):
2532         Used later on so that WebThread can share the MainThread's thread global data.
2533
2534         * wtf/text/StringStatics.cpp:
2535         (WTF::AtomicString::init):
2536         When USE(WEB_THREAD) assert AtomicString::init is initialized on the realMainThread.
2537
2538         * wtf/unicode/CharacterNames.h:
2539         * wtf/unicode/icu/UnicodeIcu.h:
2540         (WTF::Unicode::hasLineBreakingPropertyComplexContextOrIdeographic):
2541         Minor iOS constants and functions used later by WebCore.
2542
2543 2013-08-16  Arunprasad Rajkumar  <arurajku@cisco.com>
2544
2545         <https://webkit.org/b/119785> Replace currentTime() with monotonicallyIncreasingTime() in WebCore
2546
2547         Reviewed by Alexey Proskuryakov.
2548
2549         WTF::currentTime() is prone to DST changes and NTP adjustments, so use
2550         WTF::monotonicallyIncreasingTime() to measure elapsed time.
2551
2552         * wtf/CurrentTime.h:
2553         (WTF::monotonicallyIncreasingTimeMS): Added mille second version of monotonic time API.
2554
2555 2013-08-15  Filip Pizlo  <fpizlo@apple.com>
2556
2557         refCount() of a StringImpl could be zero if it's static; in that case we shouldn't report extra memory cost
2558         https://bugs.webkit.org/show_bug.cgi?id=119870
2559
2560         Reviewed by Mark Hahnenberg.
2561
2562         * wtf/text/StringImpl.h:
2563         (WTF::StringImpl::costDuringGC):
2564         (WTF::StringImpl::isStatic):
2565         (WTF::StringImpl::bufferOwnership):
2566
2567 2013-08-14  Filip Pizlo  <fpizlo@apple.com>
2568
2569         Typed arrays should be rewritten
2570         https://bugs.webkit.org/show_bug.cgi?id=119064
2571
2572         Reviewed by Oliver Hunt.
2573         
2574         - Added the notion of a reference counted object that can be marked Deferred,
2575           which is like a special-purpose upref.
2576         
2577         - Added a common byte flipper.
2578
2579         Automake work courtesy of Zan Dobersek <zdobersek@igalia.com>.
2580
2581         * GNUmakefile.list.am:
2582         * WTF.xcodeproj/project.pbxproj:
2583         * wtf/DeferrableRefCounted.h: Added.
2584         (WTF::DeferrableRefCountedBase::ref):
2585         (WTF::DeferrableRefCountedBase::hasOneRef):
2586         (WTF::DeferrableRefCountedBase::refCount):
2587         (WTF::DeferrableRefCountedBase::isDeferred):
2588         (WTF::DeferrableRefCountedBase::DeferrableRefCountedBase):
2589         (WTF::DeferrableRefCountedBase::~DeferrableRefCountedBase):
2590         (WTF::DeferrableRefCountedBase::derefBase):
2591         (WTF::DeferrableRefCountedBase::setIsDeferredBase):
2592         (WTF::DeferrableRefCounted::deref):
2593         (WTF::DeferrableRefCounted::setIsDeferred):
2594         (WTF::DeferrableRefCounted::DeferrableRefCounted):
2595         (WTF::DeferrableRefCounted::~DeferrableRefCounted):
2596         * wtf/FlipBytes.h: Added.
2597         (WTF::needToFlipBytesIfLittleEndian):
2598         (WTF::flipBytes):
2599         (WTF::flipBytesIfLittleEndian):
2600
2601 2013-08-14  Julien Brianceau  <jbrianceau@nds.com>
2602
2603         DFG_JIT implementation for sh4 architecture.
2604         https://bugs.webkit.org/show_bug.cgi?id=119737
2605
2606         Reviewed by Oliver Hunt.
2607
2608         * wtf/Platform.h:
2609
2610 2013-08-13  Arunprasad Rajkumar  <arurajku@cisco.com>
2611
2612         [WTF] [JSC] Replace currentTime() with monotonicallyIncreasingTime() in all possible places
2613         https://bugs.webkit.org/show_bug.cgi?id=119762
2614
2615         Reviewed by Geoffrey Garen.
2616
2617         * wtf/MainThread.cpp:
2618         (WTF::dispatchFunctionsFromMainThread):
2619
2620 2013-08-12  Ragner Magalhaes  <ranger.n@samsung.com>
2621
2622         Broken build with build-webkit --no-webgl
2623         https://bugs.webkit.org/show_bug.cgi?id=119272
2624
2625         Reviewed by Alexandru Chiculita.
2626
2627         CSS_SHADERS requires WEBGL enabled.
2628         Add error message to dependency failure.
2629
2630         * wtf/FeatureDefines.h:
2631
2632 2013-08-12  Joseph Pecoraro  <pecoraro@apple.com>
2633
2634         [iOS] isMainThread implementation with USE(WEB_THREAD)
2635         https://bugs.webkit.org/show_bug.cgi?id=119644
2636
2637         Reviewed by Benjamin Poulain.
2638
2639         On iOS isMainThread() means that the current thread is either the
2640         MainThread or WebThread and the current thread has the WebThreadLock.
2641
2642         * wtf/ios/WebCoreThread.cpp: Added.
2643         * wtf/ios/WebCoreThread.h: Added.
2644         * wtf/mac/MainThreadMac.mm:
2645         (WTF::isMainThread):
2646
2647 2013-08-11  Carlos Garcia Campos  <cgarcia@igalia.com>
2648
2649         Unreviewed. Fix make distcheck.
2650
2651         * GNUmakefile.list.am: Add missing header file.
2652
2653 2013-08-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2654
2655         Make atob() throw an InvalidCharacterError on excess padding characters
2656         https://bugs.webkit.org/show_bug.cgi?id=118898
2657
2658         Reviewed by Darin Adler.
2659
2660         Add a Base64FailOnInvalidCharacterOrExcessPadding value to the Base64DecodePolicy
2661         enumeration so that the caller can request strict padding validation in addition
2662         to strict character validation. This is needed so that we can use
2663         WTF::base64Decode() for window.atob().
2664
2665         * wtf/text/Base64.cpp:
2666         (WTF::base64DecodeInternal):
2667         * wtf/text/Base64.h:
2668
2669 2013-08-07  Alex Christensen  <achristensen@apple.com>
2670
2671         Fixed wrong definition for AppleWin port's WebGL after r153768.
2672
2673         Rubberstamped by Benjamin Poulain.
2674
2675         * wtf/Platform.h: Replaced WTF_USE_SURFACE with WTF_USE_GRAPHICS_SURFACE.
2676
2677 2013-08-04  Sam Weinig  <sam@webkit.org>
2678
2679         Remove support for HTML5 MicroData
2680         https://bugs.webkit.org/show_bug.cgi?id=119480
2681
2682         Reviewed by Anders Carlsson.
2683
2684         * wtf/FeatureDefines.h:
2685
2686 2013-08-06  Alex Christensen  <achristensen@apple.com>
2687
2688         Enabled WebGL on WinCairo port.
2689         https://bugs.webkit.org/show_bug.cgi?id=119502
2690
2691         Reviewed by Benjamin Poulain.
2692
2693         * wtf/FeatureDefines.h: Enabled WebGL.
2694         * wtf/Platform.h: Added definitions required for WebGL on Windows.
2695
2696 2013-08-05  Mark Rowe  <mrowe@apple.com>
2697
2698         <rdar://problem/5927399> FastMalloc should support MallocStackLogging
2699
2700         Call the malloc stack logging function from within the various entry points to FastMalloc
2701         when stack logging is enabled.
2702
2703         Reviewed by Oliver Hunt and Geoff Garen.
2704
2705         * wtf/FastMalloc.cpp:
2706         Call in to MallocHook::InvokeNewHook / MallocHook::InvokeDeleteHook at the appropriate entry
2707         points to FastMalloc. The naming comes from TCMalloc's existing, unused concept of malloc hooks.
2708         (WTF::MallocHook::record): Call the stack logging function with appropriate argument types.
2709         (WTF::MallocHook::recordAllocation): Out-of-line slow path for when stack logging is enabled
2710         that calls record with the values in the right arguments.
2711         (WTF::MallocHook::recordDeallocation): Ditto.
2712         (WTF::MallocHook::init): Stack logging is enabled if the system allocator has enabled stack logging.
2713         (WTF::MallocHook::InvokeNewHook): Call recordAllocation in the unlikely event that stack logging is
2714         enabled.
2715         (WTF::MallocHook::InvokeDeleteHook): Ditto for recordDeallocation.
2716         (WTF::TCMalloc_ThreadCache::InitModule): Initialize the malloc hook.
2717
2718 2013-08-06  Brent Fulgham  <bfulgham@apple.com>
2719
2720         [Windows] Unreviewed build correction after r153754 and r153757.
2721
2722         * wtf/MathExtras.h:
2723         (remainder): Provide implementation of C99 remainder for VS2010 (and earlier).
2724
2725 2013-07-23  David Farler  <dfarler@apple.com> 
2726         Provide optional OTHER_CFLAGS, OTHER_CPPFLAGS, OTHER_LDFLAGS additions for building with ASAN
2727         https://bugs.webkit.org/show_bug.cgi?id=117762
2728
2729         Reviewed by Mark Rowe.
2730
2731         * Configurations/DebugRelease.xcconfig:
2732         Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS.
2733
2734 2013-08-05  Mark Rowe  <mrowe@apple.com>
2735
2736         Build fix for Qt Windows.
2737
2738         * wtf/Assertions.cpp: Include StringExtras.h rather than StdLibExtras.h, since the former is where
2739         strncasecmp is declared.
2740
2741 2013-07-26  Mark Rowe  <mrowe@apple.com>
2742
2743         Logging should be configurable using human-readable channel names rather than crazy bitmasks
2744         <http://webkit.org/b/119031>
2745
2746         Implement shared logic for initializing logging channels based on human-readable channel names in WTF,
2747         and rework the WebCore, WebKit and WebKit2 logging initialization on top of it.
2748
2749         Logging channels may now be enabled by providing a comma-separated list of channel names, with the special
2750         "all" name enabling all channels. Channel names prefixed with a leading "-" will result in the named channel
2751         being disabled. For instance, specifying "all,-history,-loading" will result in all logging channels except
2752         for history and loading being enabled.
2753
2754         For OS X developers, this also changes the name of the user defaults used to enable logging. This is done to allow
2755         the old user defaults to remain set for those people that need to switch between version of WebKit before and
2756         after this change. Where the old user default keys were WebCoreLogLevel, WebKitLogLevel and WebKit2LogLevel,
2757         the new user default keys are WebCoreLogging, WebKitLogging and WebKit2Logging.
2758
2759         For GTK developers, this changes the separator used in the WEBKIT_DEBUG environment variable to a comma for
2760         consistency with the other platforms and to enable more code sharing.
2761
2762         While doing this work I've also taken the opportunity to eliminate the need to touch multiple files when
2763         adding a new logging channel. Now only the header in the relevant project needs to be updated.
2764
2765         Reviewed by Sam Weinig.
2766
2767         * wtf/Assertions.cpp:
2768         (WTFLogChannelByName): Iterate over the provided array of log channels, returning the first whose name
2769         matches case-insensitively.
2770         (setStateOfAllChannels): Helper function to set the state of all channels to a single value.
2771         (WTFInitializeLogChannelStatesFromString): Parse a string containing a case-insensitive, comma-separated list
2772         of channel names to enable or disable, with the latter being prefixed by a "-".
2773         * wtf/Assertions.h: Update the layout of WTFLogChannel to include only the state of the channel and its name.
2774         Declare WTFLogChannelByName and WTFInitializeLogChannelStatesFromString.
2775         * wtf/RefCountedLeakCounter.cpp: Update to the new format of WTFLogChannel.
2776
2777 2013-08-05  Benjamin Poulain  <bpoulain@apple.com>
2778
2779         Disable <meter> by default on iOS, it is enabled through the xconfig files
2780         https://bugs.webkit.org/show_bug.cgi?id=119503
2781
2782         Reviewed by Alexey Proskuryakov.
2783
2784         * wtf/FeatureDefines.h:
2785
2786 2013-08-05  Oliver Hunt  <oliver@apple.com>
2787
2788         Move TypedArray implementation into JSC
2789         https://bugs.webkit.org/show_bug.cgi?id=119489
2790
2791         Reviewed by Filip Pizlo.
2792
2793         Remove TypedArray implementation from WTF
2794
2795         * GNUmakefile.list.am:
2796         * WTF.xcodeproj/project.pbxproj:
2797         * wtf/Forward.h:
2798
2799 2013-08-02  Benjamin Poulain  <benjamin@webkit.org>
2800
2801         Remove a bunch of redundant checks for empty string in StringImpl
2802         https://bugs.webkit.org/show_bug.cgi?id=118768
2803
2804         Reviewed by Ryosuke Niwa.
2805
2806         The first thing done by createUninitialized() is check if the length passed
2807         is zero. Internally, there are many cases for which we know the check will never succeed.
2808
2809         Clang is usually really smart for those kind of things, but there are a few cases where
2810         the condition to avoid returning empty() is not simply a check for the length.
2811         This patch adds an internal initializer to deal with that.
2812
2813         * wtf/text/StringImpl.cpp:
2814         (WTF::StringImpl::createUninitializedInternal):
2815         (WTF::StringImpl::createUninitializedInternalNonEmpty):
2816         (WTF::StringImpl::createInternal): Create internal has a special case for null pointer
2817         for the characters. The test also check length, the second check for length cannot fail.
2818         (WTF::StringImpl::create8BitIfPossible): ditto.
2819         (WTF::StringImpl::lower): 3 of the calls cannot be reached for empty length. On an empty length,
2820         the test for (noUpper && !(ored & ~0x7F)) would have caused the function to return "this".
2821
2822         For the last createUninitialized(), there is no guarantee the realLength is not zero.
2823
2824         (WTF::StringImpl::replace): The first thing we do in replace(UChar,UChar) is check if there is anything
2825         to replace. The check for length will never succeed as there must be a character to replace at that point.
2826         * wtf/text/StringImpl.h:
2827
2828 2013-08-02  Mark Lam  <mark.lam@apple.com>
2829
2830         Gardening: Touched a line in Platform.h to get all bots to do a clean build.
2831
2832         Not reviewed.
2833
2834         * wtf/Platform.h:
2835
2836 2013-08-02  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2837
2838         Check WTF::Vector size with '0' inline capacity
2839         https://bugs.webkit.org/show_bug.cgi?id=119397
2840
2841         Reviewed by Andreas Kling.
2842
2843         Putting in place the compile assertion that had been removed with r153514.
2844
2845         * wtf/SizeLimits.cpp:
2846
2847 2013-07-26  Mark Rowe  <mrowe@apple.com>
2848
2849         <http://webkit.org/b/119169> RetainPtr should support ARC for Objective-C objects.
2850
2851         While RetainPtr is not necessary under ARC, having it available makes it easier to transition
2852         existing code from manual retain / release to ARC.
2853
2854         Under ARC, the object member of RetainPtr is treated as a strong reference by the compiler.
2855         This means that merely assigning to the member variable is sufficient to retain the object,
2856         and clearing the member variable is sufficient to release it. We still need to explicitly
2857         CFRetain / CFRelease CoreFoundation types so the explicit calls to these functions are
2858         moved in to helper functions and overloading is used to have the Objective-C object versions
2859         of them be no-ops under ARC.
2860
2861         Reviewed by Anders Carlsson.
2862
2863         * wtf/RetainPtr.h:
2864         (WTF::retain): Continue to always CFRetain / CFRelease CoreFoundation objects. Only CFRetain / CFRelease
2865         Objective-C objects when using manual retain / release.
2866         (WTF::release): Ditto.
2867         (WTF::adoptNSReference): Adopting references will be handled automatically by the compiler
2868         when possible under ARC by eliminating redundant retain / release pairs.
2869         (WTF::RetainPtr::ImplicitConversionToBoolIsNotAllowed): A new method that exists only to be used by the
2870         conversion to the unspecified bool type.
2871         (WTF::RetainPtr::operator UnspecifiedBoolType): Switch to using a pointer to a member function as the
2872         unspecified bool type to avoid warnings from the compiler when casting Objective-C object types under ARC.
2873
2874         (WTF::RetainPtr::RetainPtr): Switch to our retain / release helper functions.
2875         (WTF::RetainPtr::~RetainPtr): Ditto.
2876         (WTF::::RetainPtr): Ditto.
2877         (WTF::::clear): Ditto.
2878         (WTF::=): Ditto.
2879         (WTF::adoptCF): Annotate the argument with CF_RELEASES_ARGUMENT on both the declaration and the definition.
2880         (WTF::adoptNS): Ditto for NS_RELEASES_ARGUMENT.
2881
2882 2013-08-01  Mark Rowe  <mrowe@apple.com>
2883
2884         <rdar://problem/14235491> FastMalloc zone enumerator responding to MALLOC_PTR_REGION_RANGE_TYPE with individual allocations
2885
2886         Teach PageMapMemoryUsageRecorder::recordPendingRegions to only record data of the type that it's asked for.
2887         This also fixes the vmmap output to associate some regions with the FastMalloc malloc zone that were previously
2888         associated with it only via the VM tag, meaning they were incorrectly being omitted from the malloc statistics
2889         section of the report.
2890
2891         Reviewed by Dan Bernstein.
2892
2893         * wtf/FastMalloc.cpp:
2894         (WTF::PageMapMemoryUsageRecorder::recordPendingRegions): Report the individual allocations only when requested. Add
2895         the ability to report the regions containing pointers separately from the allocations.
2896
2897 2013-08-01  Mark Rowe  <mrowe@apple.com>
2898
2899         <rdar://problem/14528244> False-positive leaks from FastMalloc.
2900
2901         A logic error in the page map enumeration code within FastMalloc could result in a subset of the memory regions
2902         owned by FastMalloc being skipped by the malloc zone enumeration code used by leaks and other performance tools.
2903         If the only reference to an allocated object lived within one of the skipped memory regions, leaks would believe
2904         it had been leaked since it would not find any references to the object.
2905
2906         The logic error manifested when a FastMalloc span owned a region of memory that crossed a 16MB address space boundary,
2907         and when there was one or more other spans immediately after it in the address space. Crossing the 16MB address space
2908         boundary means that the start and end points of the span are in different leaf nodes of the page map trie, and the
2909         code within the page map's visitValues method didn't correctly account this case when skipping to the end of the span
2910         after visiting it. It would resume iterating from the start of the next leaf node rather than continuing to skip values
2911         until the end of the span was passed. The value representing the end of the span would then be processed as if it were
2912         the start of a new span, and more values would be skipped even though they may contain actual spans.
2913
2914         The solution is to rework the algorithm used in visitValues so that it will skip the correct number of values even when
2915         some of the values are in different leaf nodes. This is a more involved change than it may seem since it's also necessary
2916         to deal with the case where a memory region spans two separate root nodes, which can happen if the region happens to cross
2917         a 64GB boundary in the address space.
2918
2919         Reviewed by Geoff Garen.
2920
2921         * wtf/TCPageMap.h:
2922         (TCMalloc_PageMap3::visitValues): Use a single loop to iterate, with the loop index being the key in to the page map in the
2923         same form as used by get and set. This allows us to correctly deal with the index being skipped to a different intermediate or
2924         root node as a result of visiting a span that crosses a 16MB boundary in memory.
2925         (TCMalloc_PageMap2::visitValues): Ditto, but without having to deal with intermediate nodes.
2926
2927 2013-08-01  Ruth Fong  <ruth_fong@apple.com>
2928
2929         [Forms: color] <input type='color'> popover color well implementation
2930         <rdar://problem/14411008> and https://bugs.webkit.org/show_bug.cgi?id=119356
2931
2932         Reviewed by Benjamin Poulain.
2933
2934         * wtf/FeatureDefines.h: Added and enabled INPUT_TYPE_COLOR_POPOVER.
2935
2936 2013-08-01  Simon Fraser  <simon.fraser@apple.com>
2937
2938         REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being copied into the wrong location
2939         https://bugs.webkit.org/show_bug.cgi?id=112833
2940
2941         Reviewed by Sam Weinig.
2942         
2943         AutodrainedPool.h and SchedulePair.h should just be project headers, not
2944         private headers, so they get copied into <build dir>/usr/local/include/wtf
2945         not <build dir>/usr/local/include
2946
2947         * WTF.xcodeproj/project.pbxproj:
2948
2949 2013-07-31  Ruth Fong  <ruth_fong@apple.com>
2950
2951         <input type=color> Mac UI behaviour
2952         <rdar://problem/10269922> and https://bugs.webkit.org/show_bug.cgi?id=61276
2953
2954         Reviewed by Brady Eidson.
2955
2956         * wtf/FeatureDefines.h: Enabled INPUT_TYPE_COLOR on Mac port.
2957
2958 2013-07-31  Andreas Kling  <akling@apple.com>
2959
2960         Shrink Vectors with inline capacity.
2961         <http://webkit.org/b/119295>
2962         <rdar://problem/14598360>
2963
2964         Reviewed by Anders Carlsson.
2965
2966         Pack Vector::m_size next to VectorBufferBase::m_capacity so there's no space wasted
2967         on padding when sizeof(T) >= 8. Since m_size is not conceptually part of the buffer,
2968         I just using'ed it into Vector.
2969
2970         * wtf/SizeLimits.cpp:
2971         * wtf/Vector.h:
2972         (WTF::VectorBufferBase::VectorBufferBase):
2973         (WTF::VectorBuffer::VectorBuffer):
2974         (WTF::Vector::Vector):
2975         (WTF::::Vector):
2976
2977 2013-07-30  Patrick Gansterer  <paroga@webkit.org>
2978
2979         Move WindowsExtras.h from WebCore to WTF
2980         https://bugs.webkit.org/show_bug.cgi?id=118125
2981
2982         Reviewed by Anders Carlsson.
2983
2984         Move it to WTF to be able to use the functions in WTF too.
2985
2986         * wtf/WindowsExtras.h: Renamed from Source/WebCore/platform/win/WindowsExtras.h.
2987         (WTF::getRegistryValue):
2988         (WTF::getWindowPointer):
2989         (WTF::setWindowPointer):
2990         * wtf/win/MainThreadWin.cpp:
2991         (WTF::initializeMainThreadPlatform):
2992
2993 2013-07-29  Carlos Garcia Campos  <cgarcia@igalia.com>
2994
2995         Unreviewed. Fix make distcheck.
2996
2997         * GNUmakefile.list.am: Add missing files to compilation.
2998
2999 2013-07-29  Mark Rowe  <mrowe@apple.com>
3000
3001         <rdar://problem/14528244> Tons of FastMalloc leaks reported by leaks of objects that have already been deallocated
3002
3003         Reviewed by Sam Weinig.
3004
3005         * wtf/FastMalloc.cpp:
3006         (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects): Mark objects in the transfer cache as being free.
3007
3008 2013-07-29  Zan Dobersek  <zdobersek@igalia.com>
3009
3010         Reintroduce convenience CheckedInt*, CheckedUint* types
3011         https://bugs.webkit.org/show_bug.cgi?id=119213
3012
3013         Reviewed by Oliver Hunt.
3014
3015         Reintroduce CheckedInt* and CheckedUint* types that were previously provided for convenience
3016         through the CheckedInt header that was removed in r153095. The types are now based on the
3017         Checked class, using the RecordOverflow class as the overflow handler.
3018
3019         * wtf/CheckedArithmetic.h:
3020
3021 2013-07-27  Ryosuke Niwa  <rniwa@webkit.org>
3022
3023         REGRESSION(r153380): Can't open messages on Gmail
3024         https://bugs.webkit.org/show_bug.cgi?id=119165
3025
3026         Reviewed by Andreas Kling.
3027
3028         This bug was caused by r153380. The bug doesn't reproduce as long as WebKit is built by clang 4.2 and later
3029         or final is disabled (it could be clang 4.1 and later but we don't have information about that).
3030
3031         Fix the bug by disabling final on earlier versions of clang. Unfortunately we can only check versions of
3032         Apple clang since __clang_major__ and __clang_minor__ are vendor dependent.
3033
3034         * wtf/Compiler.h:
3035
3036 2013-07-26  Oliver Hunt <oliver@apple.com>
3037
3038         ASSERT failure in wtf/CheckedBoolean.h line 43 on Windows
3039         https://bugs.webkit.org/show_bug.cgi?id=119170
3040
3041         Reviewed by Michael Saboff.
3042
3043         Added a copy constructor to CheckedBoolean.
3044
3045         * wtf/CheckedBoolean.h:
3046         (CheckedBoolean::CheckedBoolean):
3047
3048 2013-07-25  Brent Fulgham  <bfulgham@apple.com>
3049
3050         [Windows] Unreviewed build fix.
3051
3052         * WTF.vcxproj/WTF.vcxproj: Add missing SixCharacterHash.h,.cpp files.
3053         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
3054         * wtf/NumberOfCores.h: Add export macro to numberOfProcessorCores.
3055         * wtf/PrintStream.h: Add export macro to dumpCharacter.
3056         * wtf/SixCharacterHash.h: Add export macro to sixCharacterHashStringToInteger
3057         and integerToSixCharacterHashString.
3058         * wtf/text/CString.h: Add export macro to hash and equal methods.
3059         (WTF::CStringHash::hash): Add export macro.
3060
3061 2013-07-25  peavo@outlook.com  <peavo@outlook.com>
3062
3063         [Windows] Provide ASM implemenation of 8-bit compare-and-swap
3064         https://bugs.webkit.org/show_bug.cgi?id=119084
3065
3066         Reviewed by Brent Fulgham.
3067
3068         * wtf/Atomics.h:
3069         (WTF::weakCompareAndSwap): Add a 32-bit X86 Assembly path for
3070         Windows build.
3071
3072 2013-07-25  Brent Fulgham  <bfulgham@apple.com>
3073
3074         [Windows] Unreviewed build fix.
3075
3076         * WTF.vcxproj/WTF.vcxproj: Add missing CompilationThread.h,.cpp
3077         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
3078
3079 2013-07-25  Michael Brüning  <michael.bruning@digia.com>
3080
3081         Fix Windows build after r153134.
3082         https://bugs.webkit.org/show_bug.cgi?id=119090
3083
3084         Reviewed by Oliver Hunt.
3085
3086         Add USE(PTHREADS) guards around pthread specific code
3087         for now. This will cause isCompilationThread to always
3088         return false on non pthread platforms such as Windows.
3089
3090         We might be able to use the Windows one-time initialization
3091         for this, but this is only available from Windows Vista on.
3092
3093         * wtf/CompilationThread.cpp:
3094         (WTF::initializeCompilationThreads):
3095
3096 2013-07-25  Allan Sandfeld Jensen  <allan.jensen@digia.com>
3097
3098         Fix windows build after FTL upstream
3099
3100         Unreviewed build fix.
3101
3102         * wtf/Atomics.h:
3103         (WTF::weakCompareAndSwap):
3104
3105 2013-07-25  Ryuan Choi  <ryuan.choi@samsung.com>
3106
3107         Unreviewed, build fix on the EFL port.
3108
3109         * wtf/CMakeLists.txt: Added SixCharacterHash.cpp
3110
3111 2013-07-25  Gabor Rapcsanyi  <rgabor@webkit.org>
3112
3113         Unreviewed, build fix on the Qt port.
3114
3115         * WTF.pro: Add additional build files for the FTL.
3116
3117 2013-07-25  Zan Dobersek  <zdobersek@igalia.com>
3118
3119         Unreviewed, further GTK build fixing.
3120
3121         * GNUmakefile.am: Make libWTF.la depend on any changes made to the build targets list.
3122         * GNUmakefile.list.am: Add SixCharacterHash source files to the build.
3123
3124 2013-07-25  Csaba Osztrogonác  <ossy@webkit.org>
3125
3126         [GTK] Similar fix to r153304.
3127
3128         * GNUmakefile.list.am:
3129
3130 2013-07-25  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
3131
3132         Build break in debug after r153134: StringImpl.h:640: undefined reference to `WTF::isCompilationThread()
3133         https://bugs.webkit.org/show_bug.cgi?id=119077
3134
3135         Reviewed by Christophe Dumez.
3136
3137         * wtf/CMakeLists.txt:
3138         Added CompilationThread.{h/cpp}.
3139
3140 2013-07-24  Filip Pizlo  <fpizlo@apple.com>
3141
3142         fourthTier: DFG IR dumps should be easier to read
3143         https://bugs.webkit.org/show_bug.cgi?id=119050
3144
3145         Reviewed by Mark Hahnenberg.
3146         
3147         Added support for dumping values within a context. By default, if you say
3148         print(inContext(value, context)) it calls value.dumpInContext(out, context)
3149         instead of value.dump(out).
3150         
3151         Hoisted the support for six-character hashes out of JSC::CodeBlockHash into
3152         WTF, in the form of SixCharacterHash.h.
3153         
3154         Added a helper for creating dump contexts where the inContext() dump will
3155         just use a short string hash to "name" the object being dumped, and then
3156         will print out the full dumps in an endnote to your dump.
3157         
3158         Added support for using CString as a hashtable key.
3159
3160         * WTF.xcodeproj/project.pbxproj:
3161         * wtf/PrintStream.h:
3162         (WTF):
3163         (ValueInContext):
3164         (WTF::ValueInContext::ValueInContext):
3165         (WTF::ValueInContext::dump):
3166         (WTF::inContext):
3167         * wtf/SixCharacterHash.cpp: Added.
3168         (WTF):
3169         (WTF::sixCharacterHashStringToInteger):
3170         (WTF::integerToSixCharacterHashString):
3171         * wtf/SixCharacterHash.h: Added.
3172         (WTF):
3173         * wtf/StringHashDumpContext.h: Added.
3174         (WTF):
3175         (StringHashDumpContext):
3176         (WTF::StringHashDumpContext::StringHashDumpContext):
3177         (WTF::StringHashDumpContext::getID):
3178         (WTF::StringHashDumpContext::dumpBrief):
3179         (WTF::StringHashDumpContext::brief):
3180         (WTF::StringHashDumpContext::isEmpty):
3181         (WTF::StringHashDumpContext::dump):
3182         * wtf/text/CString.cpp:
3183         (WTF::CString::hash):
3184         (WTF):
3185         (WTF::operator<):
3186         (WTF::CStringHash::equal):
3187         * wtf/text/CString.h:
3188         (WTF::CString::CString):
3189         (CString):
3190         (WTF::CString::isHashTableDeletedValue):
3191         (WTF):
3192         (WTF::CStringHash::hash):
3193         (CStringHash):
3194
3195 2013-07-21  Filip Pizlo  <fpizlo@apple.com>
3196
3197         fourthTier: DFG Nodes should be able to abstractly tell you what they read and what they write
3198         https://bugs.webkit.org/show_bug.cgi?id=118910
3199
3200         Reviewed by Sam Weinig.
3201         
3202         Fix compile goof in sortedListDump().
3203
3204         * wtf/ListDump.h:
3205         (WTF::sortedListDump):
3206
3207 2013-07-16  Filip Pizlo  <fpizlo@apple.com>
3208
3209         fourthTier: NaturalLoops should be able to quickly answer questions like "what loops own this basic block"
3210         https://bugs.webkit.org/show_bug.cgi?id=118750
3211
3212         Reviewed by Mark Hahnenberg.
3213         
3214         Add a utility function for inserting an element into a vector that has bounded size,
3215         and where the insertion causes things to drop off the end.
3216
3217         * wtf/StdLibExtras.h:
3218         (WTF):
3219         (WTF::insertIntoBoundedVector):
3220
3221 2013-07-12  Filip Pizlo  <fpizlo@apple.com>
3222
3223         fourthTier: DFG should have an SSA form for use by FTL
3224         https://bugs.webkit.org/show_bug.cgi?id=118338
3225
3226         Reviewed by Mark Hahnenberg.
3227         
3228         - Extend variadicity of PrintStream and dataLog.
3229         
3230         - Give HashSet the ability to add a span of things.
3231         
3232         - Give HashSet the ability to == another HashSet.
3233         
3234         - Note FIXME's in HashTable concerning copying performance, that affects
3235           the way that the DFG now uses HashSets and HashMaps.
3236         
3237         - Factor out the bulk-insertion logic of JSC::DFG::InsertionSet into
3238           WTF::Insertion, so that it can be used in more places.
3239         
3240         - Create a dumper for lists and maps.
3241
3242         * WTF.xcodeproj/project.pbxproj:
3243         * wtf/DataLog.h:
3244         (WTF):
3245         (WTF::dataLog):
3246         * wtf/HashSet.h:
3247         (HashSet):
3248         (WTF):
3249         (WTF::::add):
3250         (WTF::=):
3251         * wtf/HashTable.h:
3252         (WTF::::HashTable):
3253         (WTF::=):
3254         * wtf/Insertion.h: Added.
3255         (WTF):
3256         (Insertion):
3257         (WTF::Insertion::Insertion):
3258         (WTF::Insertion::index):
3259         (WTF::Insertion::element):
3260         (WTF::Insertion::operator<):
3261         (WTF::executeInsertions):
3262         * wtf/ListDump.h: Added.
3263         (WTF):
3264         (ListDump):
3265         (WTF::ListDump::ListDump):
3266         (WTF::ListDump::dump):
3267         (MapDump):
3268         (WTF::MapDump::MapDump):
3269         (WTF::MapDump::dump):
3270         (WTF::listDump):
3271         (WTF::sortedListDump):
3272         (WTF::lessThan):
3273         (WTF::mapDump):
3274         (WTF::sortedMapDump):
3275         * wtf/PrintStream.h:
3276         (PrintStream):
3277         (WTF::PrintStream::print):
3278
3279 2013-07-02  Filip Pizlo  <fpizlo@apple.com>
3280
3281         Unreviewed, fix 32-bit build.
3282
3283         * wtf/Platform.h:
3284
3285 2013-07-02  Filip Pizlo  <fpizlo@apple.com>
3286
3287         fourthTier: FTL should use the equivalent of llvm opt -O2 by default
3288         https://bugs.webkit.org/show_bug.cgi?id=118311
3289
3290         Reviewed by Mark Hahnenberg.
3291         
3292         * wtf/LLVMHeaders.h:
3293
3294 2013-06-27  Filip Pizlo  <fpizlo@apple.com>
3295
3296         fourthTier: JSC's disassembly infrastructure should be able to disassemble the code that LLVM generates
3297         https://bugs.webkit.org/show_bug.cgi?id=118148
3298
3299         Reviewed by Anders Carlsson.
3300         
3301         We now use LLVM for two things: disassembler and FTL. Separate out the question
3302         of whether we have LLVM (HAVE(LLVM)) from whether we want to use the LLVM
3303         disassembler (USE(LLVM_DISASSEMBLER)) and whether we enable the FTL
3304         (ENABLE(FTL_JIT)).
3305         
3306         Also move the cruft for including LLVM headers into WTF since now we use it in
3307         a bunch of places, not all related to FTL. There's no obvious place to put that
3308         file in JSC so I put it in WTF.
3309
3310         * WTF.xcodeproj/project.pbxproj:
3311         * wtf/LLVMHeaders.h: Copied from Source/JavaScriptCore/ftl/FTLLLVMHeaders.h.
3312         * wtf/Platform.h:
3313
3314 2013-06-25  Filip Pizlo  <fpizlo@apple.com>
3315
3316         fourthTier: DFG should support switch_string
3317         https://bugs.webkit.org/show_bug.cgi?id=117967
3318
3319         Reviewed by Sam Weinig.
3320         
3321         Make it possible to compare a RefPtr<StringImpl> and a StringImpl* without
3322         having to ref the StringImpl.
3323
3324         * wtf/text/StringHash.h:
3325         (WTF::StringHash::equal):
3326
3327 2013-06-24  Filip Pizlo  <fpizlo@apple.com>
3328
3329         fourthTier: Count external memory usage towards heap footprint
3330         https://bugs.webkit.org/show_bug.cgi?id=117948
3331
3332         Reviewed by Geoffrey Garen.
3333
3334         Expose some functionality needed for properly measuring StringImpl footprint.
3335
3336         * wtf/Atomics.h:
3337         (WTF::weakCompareAndSwapSize):
3338         (WTF):
3339         * wtf/MathExtras.h:
3340         (divideRoundedUp):
3341         * wtf/text/StringImpl.h:
3342         (WTF::StringImpl::cost):
3343         (StringImpl):
3344         (WTF::StringImpl::costDuringGC):
3345         (WTF::StringImpl::refCount):
3346
3347 2013-06-23  Filip Pizlo  <fpizlo@apple.com>
3348
3349         fourthTier: DFG should optimize identifier string equality
3350         https://bugs.webkit.org/show_bug.cgi?id=117920
3351
3352         Reviewed by Sam Weinig.
3353
3354         Note that this ChangeLog was supposed to be committed in r151890.
3355         
3356         Expose the IsIdentifier bit to the JIT.
3357         
3358         * wtf/text/StringImpl.h:
3359         (WTF::StringImpl::flagIsIdentifier):
3360
3361 2013-06-18  Filip Pizlo  <fpizlo@apple.com>
3362
3363         fourthTier: DFG should have switch_char
3364         https://bugs.webkit.org/show_bug.cgi?id=117710
3365
3366         Reviewed by Michael Saboff.
3367         
3368         I wanted to be able to say stringImpl->at(index), and now I can!
3369
3370         Also made it possible to convert a UChar to a utf8 CString without
3371         allocating a StringImpl.
3372
3373         * wtf/text/StringImpl.cpp:
3374         (WTF::StringImpl::utf8Impl):
3375         (WTF):
3376         (WTF::StringImpl::utf8ForCharacters):
3377         (WTF::StringImpl::utf8ForRange):
3378         * wtf/text/StringImpl.h:
3379         (StringImpl):
3380         (WTF::StringImpl::at):
3381         (WTF::StringImpl::operator[]):
3382
3383 2013-06-15  Filip Pizlo  <fpizlo@apple.com>
3384
3385         fourthTier: Add CFG simplification for Switch
3386         https://bugs.webkit.org/show_bug.cgi?id=117677
3387
3388         Reviewed by Mark Hahnenberg.
3389
3390         * wtf/TriState.h:
3391         * wtf/text/StringImpl.h:
3392
3393 2013-06-15  Filip Pizlo  <fpizlo@apple.com>
3394
3395         Printing a StringImpl* should really guard against NULL
3396         https://bugs.webkit.org/show_bug.cgi?id=117675
3397
3398         Reviewed by Mark Hahnenberg.
3399
3400         * wtf/PrintStream.cpp:
3401         (WTF::printInternal):
3402
3403 2013-06-11  Filip Pizlo  <fpizlo@apple.com>
3404
3405         fourthTier: DFG should support op_in and it should use patching to make it fast
3406         https://bugs.webkit.org/show_bug.cgi?id=117385
3407
3408         Reviewed by Geoffrey Garen.
3409         
3410         Now if you pass a null StringImpl* then something will still get printed instead
3411         of crashing. I figure that this is broadly useful for debug code, and I make use
3412         of it in the JSC portion of this patch.
3413
3414         * wtf/PrintStream.cpp:
3415         (WTF::printInternal):
3416
3417 2013-06-09  Filip Pizlo  <fpizlo@apple.com>
3418
3419         Unreviewed, fix build. On some compilers the automatic coercion from WTF::String to NSString*
3420         causes operator[] to appear ambiguous. One way around this is to make WTF::String behave like
3421         most of our other classes: at(unsigned) is always a valid synonym for operator[](unsigned).
3422
3423         * wtf/text/WTFString.h:
3424         (WTF::String::at):
3425         (WTF::String::operator[]):
3426
3427 2013-06-08  Filip Pizlo  <fpizlo@apple.com>
3428
3429         fourthTier: Recursive deadlock in DFG::ByteCodeParser
3430         https://bugs.webkit.org/show_bug.cgi?id=117376
3431
3432         Reviewed by Mark Hahnenberg.
3433         
3434         I've often wanted to leave a lock early. Now I have that power!
3435
3436         * wtf/Locker.h:
3437         (WTF::Locker::Locker):
3438         (WTF::Locker::~Locker):
3439         (Locker):
3440         (WTF::Locker::unlockEarly):
3441         (WTF::Locker::lock):
3442
3443 2013-05-27  Filip Pizlo  <fpizlo@apple.com>
3444
3445         It should be possible to record heap operations (both FastMalloc and JSC GC)
3446         https://bugs.webkit.org/show_bug.cgi?id=116848
3447
3448         Reviewed by Mark Hahnenberg.
3449
3450         * WTF.xcodeproj/project.pbxproj:
3451         * wtf/DataLog.cpp:
3452         (WTF):
3453         (WTF::initializeLogFileOnce):
3454         * wtf/FastMalloc.cpp:
3455         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
3456         * wtf/Platform.h:
3457
3458 2013-05-21  Filip Pizlo  <fpizlo@apple.com>
3459
3460         fourthTier: DFG should be able to run on a separate thread
3461         https://bugs.webkit.org/show_bug.cgi?id=112839
3462
3463         Reviewed by Geoffrey Garen.
3464         
3465         * wtf/ByteSpinLock.h:
3466         Make it non-copyable. We previously had bugs where we used ByteSpinLock as a locker.
3467         Clearly that's bad.
3468
3469         * wtf/MetaAllocatorHandle.h:
3470         Make it thread-safe ref-counted, since we may now be passing them between the
3471         concurrent JIT thread and the main thread.
3472
3473         * wtf/Vector.h:
3474         (WTF::Vector::takeLast):
3475         I've wanted this method for ages, and now I finally added.
3476
3477 2013-04-30  Filip Pizlo  <fpizlo@apple.com>
3478
3479         fourthTier: DFG tries to ref/deref StringImpls in a ton of places
3480         https://bugs.webkit.org/show_bug.cgi?id=115300
3481
3482         Reviewed by Geoffrey Garen.
3483         
3484         Make it possible to do more things directly to StringImpl*'s, including being
3485         able to directly do utf8 conversion on a substring without creating the
3486         substring first.
3487         
3488         Add assertions to StringImpl that it isn't being ref/deref'd from the
3489         compilation thread.
3490
3491         * wtf/PrintStream.cpp:
3492         (WTF::printInternal):
3493         (WTF):
3494         * wtf/PrintStream.h:
3495         (WTF):
3496         (WTF::printInternal):
3497         * wtf/StringPrintStream.h:
3498         (WTF):
3499         (WTF::toCString):
3500         * wtf/text/StringImpl.cpp:
3501         (WTF::StringImpl::utf8ForRange):
3502         (WTF::StringImpl::utf8):
3503         (WTF):
3504         * wtf/text/StringImpl.h:
3505         (StringImpl):
3506         (WTF::StringImpl::hasAtLeastOneRef):
3507         (WTF::StringImpl::ref):
3508         (WTF::StringImpl::deref):
3509
3510 2013-04-29  Filip Pizlo  <fpizlo@apple.com>
3511
3512         fourthTier: String::utf8() should also be available as StringImpl::utf8() so that you don't have to ref() a StringImpl just to get its utf8()
3513         https://bugs.webkit.org/show_bug.cgi?id=115393
3514
3515         Reviewed by Geoffrey Garen.
3516
3517         * WTF.xcodeproj/project.pbxproj:
3518         * wtf/text/ConversionMode.h: Added.
3519         (WTF):
3520         * wtf/text/StringImpl.cpp:
3521         (WTF):
3522         (WTF::putUTF8Triple):
3523         (WTF::StringImpl::utf8):
3524         * wtf/text/StringImpl.h:
3525         (StringImpl):
3526         * wtf/text/WTFString.cpp:
3527         (WTF):
3528         (WTF::String::utf8):
3529         * wtf/text/WTFString.h:
3530         (String):
3531
3532 2013-07-16  Oliver Hunt <oliver@apple.com>
3533
3534         Merge dfgFourthTier r149301
3535
3536     2013-04-28  Filip Pizlo  <fpizlo@apple.com>
3537
3538         fourthTier: ASSERT that commonly used not-thread-safe methods in the runtime are not being called during compilation
3539         https://bugs.webkit.org/show_bug.cgi?id=115297
3540
3541         Reviewed by Geoffrey Garen.
3542         
3543         Taught WTF the notion of compilation threads. This allows all parts of our stack
3544         to assert that we're not being called from a JSC compilation thread. This is in
3545         WTF because it will probably end up being used in StringImpl and WTFString.
3546
3547         * WTF.xcodeproj/project.pbxproj:
3548         * wtf/CompilationThread.cpp: Added.
3549         (WTF):
3550         (WTF::initializeCompilationThreadsOnce):
3551         (WTF::initializeCompilationThreads):
3552         (WTF::isCompilationThread):
3553         (WTF::exchangeIsCompilationThread):
3554         * wtf/CompilationThread.h: Added.
3555         (WTF):
3556         (CompilationScope):
3557         (WTF::CompilationScope::CompilationScope):
3558         (WTF::CompilationScope::~CompilationScope):
3559         (WTF::CompilationScope::leaveEarly):
3560
3561 2013-07-16  Oliver Hunt <oliver@apple.com>
3562
3563         Merge dfgFourthTier r148836
3564
3565     2013-04-21  Filip Pizlo  <fpizlo@apple.com>
3566
3567         fourthTier: It should be possible to query WatchpointSets, and add Watchpoints, even if the compiler is running in another thread
3568         https://bugs.webkit.org/show_bug.cgi?id=114909
3569
3570         Reviewed by Oliver Hunt.
3571         
3572         Harden our notions of memory fences, now that we're doing racy algorithms.
3573
3574         * wtf/Atomics.h:
3575         (WTF):
3576         (WTF::compilerFence):
3577         (WTF::armV7_dmb):
3578         (WTF::armV7_dmb_st):
3579         (WTF::loadLoadFence):
3580         (WTF::loadStoreFence):
3581         (WTF::storeLoadFence):
3582         (WTF::storeStoreFence):
3583         (WTF::memoryBarrierAfterLock):
3584         (WTF::memoryBarrierBeforeUnlock):
3585         (WTF::x86_mfence):
3586
3587 2013-07-16  Oliver Hunt <oliver@apple.com>
3588
3589         Merge dfgFourthTier r148804
3590
3591     2013-04-20  Filip Pizlo  <fpizlo@apple.com>
3592
3593         fourthTier: value profiles and array profiles should be thread-safe enough to be accessible in a concurrent compilation thread
3594         https://bugs.webkit.org/show_bug.cgi?id=114906
3595
3596         Reviewed by Oliver Hunt.
3597         
3598         Add ability to abstract whether or not the CodeBlock requires locking at all,
3599         since some platforms may not support the byte spin-locking and/or may not want
3600         to, if they turn off concurrent JIT.
3601
3602         * WTF.xcodeproj/project.pbxproj:
3603         * wtf/ByteSpinLock.h:
3604         * wtf/NoLock.h: Added.
3605         (WTF):
3606         (NoLock):
3607         (WTF::NoLock::lock):
3608         (WTF::NoLock::unlock):
3609         (WTF::NoLock::isHeld):
3610         * wtf/Platform.h:
3611
3612 2013-04-17  Filip Pizlo  <fpizlo@apple.com>
3613
3614         fourthTier: all inline caches should thread-safe enough to allow a concurrent compilation thread to read them safely
3615         https://bugs.webkit.org/show_bug.cgi?id=114762
3616
3617         Reviewed by Mark Hahnenberg.
3618         
3619         Implemented a new spinlock that is optimized for compactness, by using just a byte.
3620         This will be useful as we start using fine-grained locking on a bunch of places.
3621         
3622         At some point I'll make these byte-sized spinlocks into adaptive mutexes, but for
3623         now I think it's fine to do the evil thing and use spinning particularly since we
3624         only use them for short critical sections.
3625
3626         * WTF.xcodeproj/project.pbxproj:
3627         * wtf/Atomics.h:
3628         (WTF):
3629         (WTF::weakCompareAndSwap):
3630         * wtf/ByteSpinLock.h: Added.
3631         (WTF):
3632         (ByteSpinLock):
3633         (WTF::ByteSpinLock::ByteSpinLock):
3634         (WTF::ByteSpinLock::lock):
3635         (WTF::ByteSpinLock::unlock):
3636         (WTF::ByteSpinLock::isHeld):
3637         * wtf/ThreadingPrimitives.h:
3638         (WTF::pauseBriefly):
3639         (WTF):
3640
3641 2013-04-12  Filip Pizlo  <fpizlo@apple.com>
3642
3643         fourthTier: FTL should have OSR exit
3644         https://bugs.webkit.org/show_bug.cgi?id=113623
3645
3646         Reviewed by Oliver Hunt.
3647         
3648         Finally make toCString() somewhat variadic.
3649
3650         * wtf/StringPrintStream.h:
3651         (WTF):
3652         (WTF::toCString):
3653
3654 2013-03-31  Filip Pizlo  <fpizlo@apple.com>
3655
3656         https://bugs.webkit.org/show_bug.cgi?id=113656
3657         Fix Sam's nits.
3658
3659         Unreviewed.
3660         
3661         Forgot to land these as part of http://trac.webkit.org/changeset/147299.
3662
3663         * wtf/MathExtras.h:
3664         (isGreaterThanNonZeroPowerOfTwo):
3665
3666 2013-03-29  Filip Pizlo  <fpizlo@apple.com>
3667
3668         fourthTier: FTL JIT should be able run some simple function
3669         https://bugs.webkit.org/show_bug.cgi?id=113481
3670
3671         Reviewed by Geoffrey Garen.
3672
3673         * wtf/Platform.h:
3674
3675 2013-07-22  Benjamin Poulain  <benjamin@webkit.org>
3676
3677         String::lower() - Skip to slow path on the first failure
3678         https://bugs.webkit.org/show_bug.cgi?id=118885
3679
3680         Reviewed by Andreas Kling.
3681
3682         In the 8 bits case, we don't need to know the state of the full string before changing characters
3683         to their lowercase variant.
3684         Just fail immediately and start transforming characters from the point of failure.
3685
3686         This avoid reading the string twice when the uppercase character is not at the end of the string.
3687
3688         * wtf/text/StringImpl.cpp:
3689         (WTF::StringImpl::lower):
3690
3691 2013-07-22  Brent Fulgham  <bfulgham@apple.com>
3692
3693         [Windows] Unreviewed build fix.
3694
3695         * WTF.vcxproj/WTFGenerated.make: Stop triggering a "Build All" when things have not changed.
3696
3697 2013-07-19  Alex Christensen  <achristensen@apple.com>
3698
3699         Added x64 configuration to Visual Studio build.
3700         https://bugs.webkit.org/show_bug.cgi?id=118888
3701
3702         Reviewed by Brent Fulgham.
3703
3704         * WTF.vcxproj/WTF.vcxproj:
3705         * WTF.vcxproj/WTF.vcxproj.filters:
3706         * WTF.vcxproj/WTFGenerated.vcxproj:
3707
3708 2013-07-18  Benjamin Poulain  <benjamin@webkit.org>
3709
3710         Fix the build after r152881
3711
3712         * wtf/text/StringImpl.cpp:
3713         (WTF::StringImpl::lower):
3714
3715 2013-07-18  Benjamin Poulain  <benjamin@webkit.org>
3716
3717         Little cleaning of StringImpl::lower() and StringImpl::upper() for ARM
3718         https://bugs.webkit.org/show_bug.cgi?id=118831
3719
3720         Reviewed by Gavin Barraclough.
3721
3722         Clean lower() and upper() before trying some optimizations:
3723         -Prefix the code with the empty() case. Otherwise, each descending loop starts with
3724          a check for length == 0.
3725         -Change ored to a 32 bits registers. ARM only has 32 bits registers and access to full word.
3726          To keep the value a UChar, the compiler is adding a bunch of useless value & 0xffff in the loops.
3727         -Change the pointer based loops for index based loops. The compiler does a mighty job at optimizing
3728          those for each architecture. No need to make the code more complex.
3729         -Don't perform the check for int32 unless we need to. The only code limited to int is Unicode::toLower.
3730
3731         * wtf/text/StringImpl.cpp:
3732         (WTF::StringImpl::lower):
3733         (WTF::StringImpl::upper):
3734
3735 2013-07-18  Andreas Kling  <akling@apple.com>
3736
3737         CodeBlock::m_argumentValueProfiles wastes a lot of memory.
3738         <http://webkit.org/b/118852>
3739         <rdar://problem/14481659>
3740
3741         Reviewed by Anders Carlsson.
3742
3743         Add Vector::resizeToFit(size), like resize() but without growth padding.
3744
3745         * wtf/Vector.h:
3746         (WTF::::resizeToFit):
3747
3748 2013-07-17  Benjamin Poulain  <benjamin@webkit.org>
3749
3750         Add a thread safety assertion when creating an AtomicString from a StringImpl
3751         https://bugs.webkit.org/show_bug.cgi?id=118637
3752
3753         Reviewed by Sam Weinig.
3754
3755         The goal is to prevent this kind of use:
3756         -Someone create a String from a StringImpl.
3757         -At some point, the string becomes atomic.
3758         -Later, when the string only has one ref, its ownership is 'passed' to an other thread
3759          without checking String::isSafeToSendToAnotherThread().
3760         -In the thread B, an AtomicString is created from the String.
3761         ->The AtomicString's StringImpl returned is not in the current thread string table.
3762
3763         * wtf/text/AtomicString.cpp:
3764         (WTF::AtomicString::isInAtomicStringTable):
3765         * wtf/text/AtomicString.h:
3766         (WTF::AtomicString::add):
3767
3768 2013-07-17  Benjamin Poulain  <benjamin@webkit.org>
3769
3770         Simplify AtomicString::lower()
3771         https://bugs.webkit.org/show_bug.cgi?id=118719
3772         <rdar://problem/14452883>
3773
3774         Reviewed by Gavin Barraclough.
3775
3776         * wtf/text/AtomicString.cpp:
3777         (WTF::AtomicString::lower): Previously, the code was using a copy constructor for two path
3778         and one regular construction in another path.
3779         Just put the StringImpl where it needs to be instead.
3780
3781 2013-07-15  Benjamin Poulain  <benjamin@webkit.org>
3782
3783         Add a threading assertion to AtomicString::remove
3784         https://bugs.webkit.org/show_bug.cgi?id=118695
3785
3786         Reviewed by Sam Weinig.
3787
3788         * wtf/text/AtomicString.cpp:
3789         (WTF::AtomicString::remove): The destructor of StringImpl remove
3790         the string from the string table if it is atomic. This needs to be done
3791         on the same thread as the one on which the string was added (otherwise the original
3792         table would keep a dangling pointer to a dead string).
3793
3794 2013-07-15  Benjamin Poulain  <benjamin@webkit.org>
3795
3796         Minor cleaning of AtomicString::addSlowCase
3797         https://bugs.webkit.org/show_bug.cgi?id=118615
3798
3799         Reviewed by Geoffrey Garen.
3800
3801         Give the variable a proper name.
3802         Add assertions to clarify the in and out states.
3803
3804         * wtf/text/AtomicString.cpp:
3805         (WTF::AtomicString::addSlowCase):
3806
3807 2013-07-12  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3808
3809         Improve StringImpl::constructInternal() method
3810         https://bugs.webkit.org/show_bug.cgi?id=118503
3811
3812         Reviewed by Benjamin Poulain.
3813
3814         StringImpl::constructInternal used 'if ()' statement to decide which constructor
3815         to invoke hence compiler had to compile both branches even though optimizer would
3816         have then removed one of those, and as the function is inline it could affect
3817         slightly the compilation time.
3818
3819         The problem is solved via template specialization.
3820
3821         * wtf/text/StringImpl.h:
3822         (WTF::LChar):
3823         (WTF::UChar):
3824
3825 2013-07-11  Patrick Gansterer  <paroga@webkit.org>
3826
3827         Remove unused Windows CE files
3828         https://bugs.webkit.org/show_bug.cgi?id=118557
3829
3830         Reviewed by Andreas Kling.
3831
3832         * wtf/wince/FastMallocWinCE.h: Removed.
3833         * wtf/wince/MemoryManager.cpp: Removed.
3834         * wtf/wince/MemoryManager.h: Removed.
3835
3836 2013-07-10  Michael Brüning  <michael.bruning@digia.com>
3837
3838         Workaround for x86 optimizer bug in MSVC 2012.
3839         https://bugs.webkit.org/show_bug.cgi?id=118478
3840
3841         Reviewed by Benjamin Poulain.
3842
3843         This is a workaround for a bug in the x86 MSVC 2012 optimizer.
3844
3845         The problem is that the range comparison gets optimized out when
3846         the templated inline function toASCIIUpper. Copying the methods 
3847         content fixes the problem. 
3848
3849         This is unfortunately not the nicest fix, but the alternative would
3850         be to turn off optimization for StringImpl::upper on the x86 MSVC 2012
3851         build, which might impact overall performance negatively.
3852
3853         * wtf/text/StringImpl.cpp:
3854         (WTF::StringImpl::upper):
3855
3856 2013-07-08  Carlos Garcia Campos  <cgarcia@igalia.com>
3857
3858         Unreviewed. Fix make distcheck.
3859
3860         * GNUmakefile.list.am: Add missing header files.
3861
3862 2013-07-08  Antti Koivisto  <antti@apple.com>
3863
3864         Add Deque::removeLast
3865         https://bugs.webkit.org/show_bug.cgi?id=118466
3866
3867         Reviewed by Andreas Kling.
3868         
3869         Deque can remove both the first and the last element efficiently.
3870         
3871         Test: TestWebKitAPI/Tests/WTF/Deque.cpp
3872
3873         * wtf/Deque.h:
3874         (WTF::::takeLast):
3875         (WTF::::removeLast):
3876
3877 2013-07-08  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
3878
3879         [Qt][Windows] Buildfix after r152426.
3880
3881         Reviewed by Csaba Osztrogonác.
3882
3883         * wtf/Platform.h: Do not include WTFHeaderDetection.h on Qt build.
3884
3885 2013-07-06  Benjamin Poulain  <benjamin@webkit.org>
3886
3887         Fix the performance regressions introduced by r152418
3888         https://bugs.webkit.org/show_bug.cgi?id=118438
3889
3890         Reviewed by Sam Weinig.
3891
3892         * wtf/text/StringImpl.h:
3893         (WTF::equal):
3894         Looping between two arbitrary pointers prevents important loop
3895         optimizations.
3896
3897 2013-07-05  Brent Fulgham  <bfulgham@apple.com>
3898
3899         [Windows] Unreviewed build correction.
3900
3901         * WTF.vcxproj/WTFGenerated.make: Avoid syntax error in generated
3902         file in cases where Legible Output support is not present.
3903
3904 2013-07-05  Brent Fulgham  <bfulgham@apple.com>
3905
3906         [Windows] Unreviewed build correction.
3907
3908         * WTF.vcxproj/WTFGenerated.make: Use space (rather than double
3909         quotes) when handling the no-Legible-Output case.
3910
3911 2013-07-05  Brent Fulgham  <bfulgham@apple.com>
3912
3913         [Windows] Identify OS-level at build-time.
3914         https://bugs.webkit.org/show_bug.cgi?id=118428
3915
3916         Reviewed by Anders Carlsson.
3917
3918         * WTF.vcxproj/WTFGenerated.make: Check for Legible Output featurs
3919         and set build environment as appropriate.
3920         * wtf/Platform.h: Activate Legible Output features if present.
3921
3922 2013-07-05  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3923
3924         A lot of code duplication within StringImpl 'equal' functions
3925         https://bugs.webkit.org/show_bug.cgi?id=118415
3926
3927         Reviewed by Anders Carlsson.
3928
3929         There has been a lot of code duplication within StringImpl 'equal' functions:
3930         the whole logic was copied to every overloaded 'equal' function.
3931         Fixed now using templates and std::equal.
3932
3933         * wtf/text/StringImpl.cpp:
3934         (WTF::equalInternal):
3935         (WTF::equal):
3936         * wtf/text/StringImpl.h:
3937         (WTF::arraysEqual):
3938         (WTF::equal):
3939
3940 2013-07-05  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3941
3942         Remove code duplication from StringImpl create()/reallocate() methods
3943         https://bugs.webkit.org/show_bug.cgi?id=118355
3944
3945         Reviewed by Andreas Kling.
3946
3947         StringImpl create()/reallocate() methods accepting LChar and UChar used to have
3948         duplicated code. The code duplication is removed now via used templates.
3949
3950         * wtf/text/StringImpl.cpp:
3951         (WTF::StringImpl::constructInternal):
3952         (WTF::LChar):
3953         (WTF::StringImpl::createUninitializedInternal):
3954         (WTF::StringImpl::createUninitialized):
3955         (WTF::StringImpl::reallocateInternal):
3956         (WTF::StringImpl::reallocate):
3957         (WTF::StringImpl::createInternal):
3958         (WTF::StringImpl::create):
3959         * wtf/text/StringImpl.h:
3960
3961 2013-07-03  Brent Fulgham  <bfulgham@apple.com>
3962
3963         [Windows] Unreviewed build correction.
3964
3965         * WTF.vcxproj/copy-files.cmd: Limit path (for this file) to DOS-only to avoid
3966         the Cygwin variant of rmdir from being used.
3967
3968 2013-07-03  Commit Queue  <commit-queue@webkit.org>
3969
3970         Unreviewed, rolling out r152356.
3971         http://trac.webkit.org/changeset/152356
3972         https://bugs.webkit.org/show_bug.cgi?id=118361
3973
3974         Broke JSCore tests (Requested by andersca on #webkit).
3975
3976         * wtf/text/StringImpl.cpp:
3977         (WTF::StringImpl::createUninitialized):
3978         (WTF::StringImpl::reallocate):
3979         (WTF::StringImpl::create):
3980         * wtf/text/StringImpl.h:
3981
3982 2013-07-03  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3983
3984         Remove code duplication from StringImpl create()/reallocate() methods
3985         https://bugs.webkit.org/show_bug.cgi?id=118355
3986
3987         Reviewed by Anders Carlsson.
3988
3989         StringImpl create()/reallocate() methods accepting LChar and UChar used to have
3990         duplicated code. The code duplication is removed now via used templates.
3991
3992         * wtf/text/StringImpl.cpp:
3993         (WTF::StringImpl::constructInternal):
3994         (WTF::LChar):
3995         (WTF::StringImpl::createUninitializedInternal):
3996         (WTF::StringImpl::createUninitialized):
3997         (WTF::StringImpl::reallocateInternal):
3998         (WTF::StringImpl::reallocate):
3999         (WTF::StringImpl::createInternal):
4000         (WTF::StringImpl::create):
4001         * wtf/text/StringImpl.h:
4002
4003 2013-07-03  Csaba Osztrogonác  <ossy@webkit.org>
4004
4005         Fix cast-align warnings in FastMalloc.cpp
4006         https://bugs.webkit.org/show_bug.cgi?id=117991
4007
4008         Reviewed by Mark Hahnenberg.
4009
4010         * wtf/FastMalloc.cpp:
4011
4012 2013-07-02  Geoffrey Garen  <ggaren@apple.com>
4013
4014         plainText() is O(N^2)
4015         https://bugs.webkit.org/show_bug.cgi?id=118282
4016         <rdar://problem/14284360>
4017
4018         Reviewed by Alexey Proskuryakov.
4019
4020         * wtf/text/StringBuilder.cpp:
4021         (WTF::expandCapacity): Factored out this helper function to simplify
4022         some code that was duplicated in four places.
4023
4024         (WTF::StringBuilder::appendUninitializedSlow):
4025         (WTF::StringBuilder::append): Use expandCapacity(). One of the cases
4026         was not doing anything special, and so was O(N^2).
4027
4028         Also, always call expandCapacity() it in a standard way, calling
4029         capacity() first, so it's easy to tell at a glance that you got it right.
4030
4031 2013-07-02  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
4032
4033         Avoid code duplication inside String::append()
4034         https://bugs.webkit.org/show_bug.cgi?id=118290
4035
4036         Reviewed by Anders Carlsson.
4037
4038         The implementation of 'append(UChar)' had been repeated inside 'append(LChar)',
4039         this duplication is obviated now.
4040
4041         * wtf/text/WTFString.cpp:
4042         (WTF::String::appendInternal):
4043         (WTF::String::append):
4044         * wtf/text/WTFString.h:
4045
4046 2013-06-28  Anders Carlsson  <andersca@apple.com>
4047
4048         Remove String::deprecatedCharactersWithNullTermination() and related code
4049         https://bugs.webkit.org/show_bug.cgi?id=118211
4050
4051         Reviewed by Benjamin Poulain.
4052
4053         Remove String::deprecatedCharactersWithNullTermination, StringImpl::createWithTerminatingNullCharacter
4054         and the s_hashFlagHasTerminatingNullCharacter flag. We no longer care about whether strings have a
4055         terminating null character.
4056
4057         * wtf/text/StringImpl.cpp:
4058         (WTF::StringImpl::createFromLiteral):
4059         (WTF::StringImpl::createWithoutCopying):
4060         (WTF::StringImpl::getData16SlowCase):
4061         (WTF::StringImpl::sizeInBytes):
4062         * wtf/text/StringImpl.h:
4063         (WTF::StringImpl::StringImpl):
4064         (WTF::StringImpl::createFromLiteral):
4065         (WTF::StringImpl::isolatedCopy):
4066         * wtf/text/WTFString.cpp:
4067         * wtf/text/WTFString.h:
4068
4069 2013-06-27  Anders Carlsson  <andersca@apple.com>
4070
4071         Add a new String::charactersWithNullTermination() function that returns a vector
4072         https://bugs.webkit.org/show_bug.cgi?id=118155
4073
4074         Reviewed by Andreas Kling.
4075
4076         This new String::charactersWithNullTermination() function returns a new Vector<UChar>
4077         and does not modify the underlying string data.
4078
4079         * wtf/text/WTFString.cpp:
4080         (WTF::String::charactersWithNullTermination):
4081         * wtf/text/WTFString.h:
4082
4083 2013-06-26  Anders Carlsson  <andersca@apple.com>
4084
4085         Deprecate StringImpl::charactersWithNullTermination
4086         https://bugs.webkit.org/show_bug.cgi?id=118108
4087
4088         Reviewed by Beth Dakin.
4089
4090         The optimization in String and StringImpl to keep track of whether a string
4091         has a null terminator isn't worth it; in most cases we call charactersWithNullTermination() on
4092         temporary strings which ends up copying strings anyway.
4093         
4094         A better solution is to have a charactersWithNullTermination() function that returns a Vector<UChar>,
4095         which is similar to what we have for String::utf8() and String::ascii(). This will be done in a follow-up patch.
4096
4097         * wtf/text/WTFString.cpp:
4098         (WTF::String::deprecatedCharactersWithNullTermination):
4099         * wtf/text/WTFString.h:
4100
4101 2013-06-26  Anders Carlsson  <andersca@apple.com>
4102
4103         Add JSStringCreateWithCharactersNoCopy SPI
4104         https://bugs.webkit.org/show_bug.cgi?id=118074
4105         <rdar://problem/14279905>
4106
4107         Reviewed by Geoffrey Garen.
4108
4109         * wtf/text/StringImpl.cpp:
4110         (WTF::StringImpl::createFromLiteral):
4111         Use the new ConstructWithoutCopying constructor, passing DoesHaveTerminatingNullCharacter to it.
4112         Change the other createFromLiteral overload to just call the first.
4113
4114         (WTF::StringImpl::createWithoutCopying):
4115         Add helper functions for creating strings that shouldn't copy their underlying data.
4116
4117         * wtf/text/StringImpl.h:
4118         (WTF::StringImpl::StringImpl):
4119         Rename the ConstructFromLiteralTag constructor enum to ConstructWithoutCopyingTag. Change the constructor
4120         to take an enum that states whether the string has a terminating null character or not.
4121
4122         (WTF::StringImpl::createFromLiteral):
4123         Call createWithoutCopying.
4124
4125         (WTF::StringImpl::requiresCopy):
4126         Rename this from isASCIILiteral() and make it more generic so it can handle 16-bit strings as well.
4127
4128         (WTF::StringImpl::isolatedCopy):
4129         If this string doesn't have to be copied, just create a new StringImpl object that references the current data.
4130
4131 2013-06-26  Jer Noble  <jer.noble@apple.com>
4132
4133         Potential use-after-free after neutering AudioBuffer's underlying ArrayBuffer.
4134         https://bugs.webkit.org/show_bug.cgi?id=118040
4135
4136         Reviewed by Filip Pizlo.
4137
4138         Add support for 'unneuterable' ArrayBufferViews. Views marked as such will have their underlying
4139         ArrayBuffer objects copied rather than transferred to a new view.
4140
4141         * wtf/ArrayBuffer.cpp:
4142         (WTF::ArrayBuffer::transfer): Check whether the associated views are neuterable, and if not
4143                 clone the ArrayBuffer rather than transferring it.
4144         * wtf/ArrayBuffer.h:
4145         (WTF::ArrayBufferContents::copyTo): Added. Utility function.
4146         * wtf/ArrayBufferView.cpp:
4147         (WTF::ArrayBufferView::ArrayBufferView):
4148         (WTF::ArrayBufferView::neuter):
4149         * wtf/ArrayBufferView.h:
4150         (WTF::ArrayBufferView::setNeuterable):
4151         (WTF::ArrayBufferView::isNeuterable):
4152
4153 2013-06-26  Brent Fulgham  <bfulgham@apple.com>
4154
4155         [Windows] Enable CaptionUserPreferenceMediaAF on Windows.
4156         https://bugs.webkit.org/show_bug.cgi?id=118076
4157
4158         Reviewed by Eric Carlson.
4159
4160         * wtf/Platform.h: Enable Media Accessibility Framework in Windows build environments
4161           that support it.
4162
4163 2013-06-24  Roger Fong  <roger_fong@apple.com>
4164
4165         Unreviewed. AppleWin build fix, followup to r151915.
4166
4167         * WTF.vcxproj/WTFProduction.props:
4168
4169 2013-06-24  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
4170
4171         HashMap: reverse the order of the template arguments at alternate 'find', 'contains' and 'add' methods
4172         https://bugs.webkit.org/show_bug.cgi?id=117911
4173
4174         Reviewed by Anders Carlsson.
4175
4176         The order of the template arguments at HashMap alternate 'find', 'contains' and
4177         'add' methods is reversed so that callers can just pass the translator
4178         and let the compiler deduce input argument type.
4179
4180         Another rational is consistency with HashSet class.
4181
4182         * wtf/HashMap.h:
4183
4184 2013-06-24  peavo@outlook.com  <peavo@outlook.com>
4185
4186         [WinCairo] WTF.dll is linking with CoreFoundation.lib in VS2010.
4187         https://bugs.webkit.org/show_bug.cgi?id=117294
4188
4189         Reviewed by Brent Fulgham.
4190
4191         WinCairo build should not use CoreFoundation.
4192
4193         * WTF.vcxproj/WTFCFLite.props: Added.
4194         * WTF.vcxproj/WTFCommon.props: Remove CoreFoundation.lib from depencency list.
4195         * WTF.vcxproj/WTFCoreFoundation.props: Added.
4196         * WTF.vcxproj/WTFDebug.props: Import WTFCoreFoundation.props for WinApple.
4197         * WTF.vcxproj/WTFDebugWinCairo.props: Import WTFCFLite.props for WinCairo.
4198         * WTF.vcxproj/WTFRelease.props: Import WTFCoreFoundation.props for WinApple.
4199         * WTF.vcxproj/WTFReleaseWinCairo.props: Import WTFCFLite.props for WinCairo.
4200
4201 2013-06-17  Darin Adler  <darin@apple.com>
4202
4203         Sort all the Xcode project files
4204         https://bugs.webkit.org/show_bug.cgi?id=117696
4205
4206         Reviewed by Anders Carlsson.
4207
4208         * WTF.xcodeproj/project.pbxproj: Ran the sort-Xcode-project-file script.
4209
4210 2013-06-20  Sergio Correia  <sergio.correia@openbossa.org>
4211
4212         [WK2] Looping for EINTR on close() is incorrect for Linux, at least
4213         https://bugs.webkit.org/show_bug.cgi?id=117266
4214
4215         Reviewed by Darin Adler.
4216
4217         Added file UniStdExtras with a closeWithRetry() function that works around
4218         the EINTR behavior on Linux during a close() call: it closes the descriptor
4219         unconditionally even when the call is interrupted.
4220
4221         * wtf/UniStdExtras.h: Added.
4222         (WTF::closeWithRetry): Wrapper around POSIX close() that handles EINTR
4223         correctly.
4224
4225 2013-06-20  Mark Lam  <mark.lam@apple.com>
4226
4227         Refine the StackBounds computation for Windows.
4228         https://bugs.webkit.org/show_bug.cgi?id=117854.
4229
4230         Reviewed by Brent Fulgham.
4231
4232         * wtf/StackBounds.cpp:
4233         (WTF::StackBounds::initialize):
4234
4235 2013-06-20  Mark Lam  <mark.lam@apple.com>
4236
4237         [Windows] Undoing r150621 to roll r150600 back in as the jsc test
4238         failures have been fixed in r151808.
4239         https://bugs.webkit.org/show_bug.cgi?id=116661.
4240
4241         Reviewed by Brent Fulgham.
4242
4243         * wtf/StackBounds.cpp:
4244         (WTF::StackBounds::initialize):
4245
4246 2013-06-20  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
4247
4248         HashSet: reverse the order of the template arguments at alternate 'find', 'contains' and 'add' methods
4249         https://bugs.webkit.org/show_bug.cgi?id=117830
4250
4251         Reviewed by Anders Carlsson.
4252
4253         The order of the template arguments at HashSet alternate 'find', 'contains' and
4254         'add' methods is reversed so that callers can just pass the translator
4255         and let the compiler deduce input argument type.
4256
4257         * wtf/HashSet.h:
4258         * wtf/text/AtomicString.cpp:
4259         (WTF::addToStringTable):
4260         (WTF::findString):
4261
4262 2013-06-20  Roger Fong  <roger_fong@apple.com>
4263
4264         Make Windows makefile copy build output to a different folder.
4265         <rdar://problem/14219184>.
4266
4267         * WTF.vcxproj/WTF.make:
4268
4269 2013-06-19  Geoffrey Garen  <ggaren@apple.com>
4270
4271         Remove the SegmentedVector inline segment to shrink CodeBlock by 6X
4272         https://bugs.webkit.org/show_bug.cgi?id=117808
4273
4274         Reviewed by Oliver Hunt.
4275
4276         SegmentedVector allocation isn't super hot, but we do tend to have many
4277         live SegmentedVectors at runtime, particularly in CodeBlocks, so the
4278         right tradeoff is to allocate segments out-of-line as needed.
4279
4280         This reduces startup memory usage @ google.com by about 6MB.
4281
4282         No regression on SunSpider.
4283
4284         * wtf/SegmentedVector.h:
4285         (WTF::SegmentedVector::SegmentedVector):
4286         (WTF::SegmentedVector::at):
4287         (WTF::SegmentedVector::append):
4288         (WTF::SegmentedVector::removeLast):
4289         (WTF::SegmentedVector::clear):
4290         (WTF::SegmentedVector::deleteAllSegments): No more inline segment.
4291
4292         (WTF::SegmentedVector::ensureSegmentsFor): This code used to assume
4293         that there was always a 0 segment, so the math would underflow if there
4294         were no 0 segment. I udpated the math to account for having no segments.
4295
4296 2013-06-19  David Kilzer  <ddkilzer@apple.com>
4297
4298         BUILD FIX (r151663): Fix build for iOS WebKit
4299
4300         * wtf/text/AtomicStringTable.cpp: Include MainThread.h.
4301         (WTF::AtomicStringTable::create): Use AtomicStringTable::destroy
4302         instead of non-existent destroyAtomicStringTable function.
4303
4304 2013-06-18  Roger Fong  <roger_fong@apple.com>
4305
4306         Replace tools32 folder with tools and update WebKit Windows solution accordingly.
4307         <rdar://problem/14118143>.
4308
4309         Rubberstamped by Brent Fulgham.
4310
4311         * WTF.vcxproj/WTF.vcxproj:
4312         * WTF.vcxproj/WTFDebug.props:
4313         * WTF.vcxproj/WTFDebugWinCairo.props:
4314         * WTF.vcxproj/WTFGenerated.vcxproj:
4315         * WTF.vcxproj/WTFGeneratedDebug.props:
4316         * WTF.vcxproj/WTFGeneratedProduction.props:
4317         * WTF.vcxproj/WTFGeneratedRelease.props:
4318         * WTF.vcxproj/WTFProduction.props:
4319         * WTF.vcxproj/WTFRelease.props:
4320         * WTF.vcxproj/WTFReleaseWinCairo.props:
4321         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
4322         (react_to_vsprops_changes):
4323
4324 2013-06-18  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
4325
4326         PackedIntVector: check template arguments at compile time
4327         https://bugs.webkit.org/show_bug.cgi?id=117737
4328
4329         Use 'COMPILE_ASSERT' instead of 'ASSERT' in PackedIntVector class
4330         constructor.
4331
4332         Reviewed by Sam Weinig.
4333