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