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