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