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