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