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