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