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