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