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