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