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