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