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