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