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