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