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