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