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