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