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