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