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