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