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