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