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