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