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