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