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