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