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