[CMake] Ignore warnings in system headers
[WebKit-https.git] / Source / WTF / ChangeLog
1 2015-05-18  Michael Catanzaro  <mcatanzaro@igalia.com>
2
3         [CMake] Ignore warnings in system headers
4         https://bugs.webkit.org/show_bug.cgi?id=144747
5
6         Reviewed by Darin Adler.
7
8         Separate include directories into WebKit project includes and system includes. Suppress all
9         warnings from headers in system include directories using the SYSTEM argument to
10         the include_directories command.
11
12         * wtf/CMakeLists.txt:
13         * wtf/PlatformEfl.cmake:
14         * wtf/PlatformGTK.cmake:
15
16 2015-05-18  Myles C. Maxfield  <mmaxfield@apple.com>
17
18         Addressing post-review comments on r184353
19         https://bugs.webkit.org/show_bug.cgi?id=145146
20
21         Reviewed by Benjamin Poulain.
22
23         Create an overload for equalIgnoringASCIICase() for AtomicString and string literals.
24
25         * wtf/text/AtomicString.h:
26         (WTF::equalIgnoringASCIICase):
27
28 2015-05-18  Skachkov Alexandr  <gskachkov@gmail.com>
29
30         [ES6] Arrow function syntax. Feature flag for arrow function
31         https://bugs.webkit.org/show_bug.cgi?id=145108
32
33         Reviewed by Ryosuke Niwa.
34
35         Added feature flag ENABLE_ES6_ARROWFUNCTION_SYNTAX for arrow function
36
37         * wtf/FeatureDefines.h:
38
39 2015-05-17  Benjamin Poulain  <benjamin@webkit.org>
40
41         Do not use fastMallocGoodSize anywhere
42         https://bugs.webkit.org/show_bug.cgi?id=145103
43
44         Reviewed by Michael Saboff.
45
46         It is silly we see fastMallocGoodSize in profiles, it does absolutely nothing.
47
48         This patch keeps fastMallocGoodSize() around for older code linking
49         with newer WebKit, but remove any use of it inside WebKit.
50
51         * wtf/FastMalloc.cpp:
52         (WTF::fastMallocGoodSize):
53         * wtf/FastMalloc.h:
54         * wtf/Vector.h:
55         (WTF::VectorBufferBase::allocateBuffer):
56         (WTF::VectorBufferBase::tryAllocateBuffer):
57         (WTF::VectorBufferBase::reallocateBuffer):
58
59 2015-05-15  Dan Bernstein  <mitz@apple.com>
60
61         Build fix for some versions of clang.
62
63         * wtf/SaturatedArithmetic.h:
64         (signedAddOverflows):
65         (signedSubtractOverflows):
66
67 2015-05-14  Dan Bernstein  <mitz@apple.com>
68
69         Reverted r177753, now that <rdar://problem/19347133> is fixed.
70
71         Rubber-stamped by Benjamin Poulain.
72
73         * wtf/SaturatedArithmetic.h:
74         (signedAddOverflows):
75         (signedSubtractOverflows):
76
77 2015-05-14  Myles C. Maxfield  <mmaxfield@apple.com>
78
79         Add String literal overloads to equalIgnoringASCIICase()
80         https://bugs.webkit.org/show_bug.cgi?id=145008
81
82         Reviewed by Benjamin Poulain.
83
84         Create an overload for equalIgnoringASCIICase for string literals.
85
86         * wtf/text/StringImpl.h:
87         (WTF::equalIgnoringASCIICase): Use a non-templated helper function.
88         * wtf/text/StringImpl.cpp:
89         (WTF::equalIgnoringASCIICase): Implement it.
90         * wtf/text/StringView.h:
91         (WTF::equalIgnoringASCIICase): Use a non-templated helper function.
92         * wtf/text/StringView.cpp:
93         (WTF::equalIgnoringASCIICase): Implement it.
94         * wtf/text/WTFString.h:
95         (WTF::equalIgnoringASCIICase): Delegate to StringImpl's implementation.
96
97 2015-05-14  Žan Doberšek  <zdobersek@igalia.com>
98
99         [GTK] RunLoop constructor should properly retrieve or establish the thread-default GMainContext
100         https://bugs.webkit.org/show_bug.cgi?id=144732
101
102         Reviewed by Carlos Garcia Campos.
103
104         RunLoop constructor in the GTK implementation should use the
105         existing thread-default context, create a new one if not on
106         the main thread, or use the global-default one if on the main
107         thread.
108
109         In RunLoop::run(), the GMainContext should then be pushed as
110         the thread-default before calling g_main_loop_run(), and popped
111         off when the main loop stops.
112
113         * wtf/gtk/RunLoopGtk.cpp:
114         (WTF::RunLoop::RunLoop):
115         (WTF::RunLoop::run):
116
117 2015-05-13  Oliver Hunt  <oliver@apple.com>
118        Ensure that all the smart pointer types in WTF clear their pointer before deref
119        https://bugs.webkit.org/show_bug.cgi?id=143789
120
121        Reviewed by Ryosuke Niwa.
122
123        In order to prevent use after free bugs caused by destructors
124        that end up trying to access the smart pointer itself, we should
125        make sure we always clear the m_ptr field before calling deref.
126
127        Essentially the UaF path is:
128        struct Foo : RefCounted<Foo> {
129          Wibble* m_wibble;
130          void doSomething();
131          ~Foo() { m_wibble->doSomethingLikeCleanup(); }
132        };
133
134        struct Wibble {
135          void doSomethingLikeCleanup()
136          {
137            if (m_foo) {
138                /* if this branch is not here we get a null deref */
139                m_foo->doSomething();
140            }
141          }
142          void replaceFoo(Foo* foo) { m_foo = foo; }
143          RefPtr<Foo> m_foo;
144        };
145
146        Wibble* someWibble = /* a Wibble with m_foo->m_refCount == 1 */;
147                             /* and m_foo points to someWibble       */;
148
149        someWibble->replaceFoo(someOtherFoo);
150        + someWibble->m_foo->m_ptr->deref();
151          + someWibble->m_foo->m_ptr->~Foo()
152            + someWibble->m_foo->m_ptr->m_wibble->doSomethingLikeCleanup()
153              + someWibble->m_foo->m_ptr->m_wibble /* someWibble */ ->m_foo->m_ptr /*logically dead*/ ->doSomething()
154
155        By clearing m_ptr first we either force a null pointer deref or
156        we force our code down a path that does not use the dead smart
157        pointer.
158
159        * wtf/PassRefPtr.h:
160        (WTF::PassRefPtr::~PassRefPtr):
161        * wtf/Ref.h:
162        (WTF::Ref::~Ref):
163        (WTF::Ref::operator=):
164        * wtf/RefPtr.h:
165        (WTF::RefPtr::~RefPtr):
166        * wtf/RetainPtr.h:
167        (WTF::RetainPtr::~RetainPtr):
168        (WTF::RetainPtr<T>::clear):
169
170 2015-05-12  Michael Saboff  <msaboff@apple.com>
171
172         If JSC cannot get executable memory, it shouldn't call madvise
173         https://bugs.webkit.org/show_bug.cgi?id=144931
174
175         Reviewed by Mark Lam.
176
177         Made calling madvise conditional on really getting mmapped memory.
178
179         * wtf/OSAllocatorPosix.cpp:
180         (WTF::OSAllocator::reserveUncommitted):
181
182 2015-05-11  Brent Fulgham  <bfulgham@apple.com>
183
184         [Win] Move Windows build target to Windows 7 (or newer)
185         https://bugs.webkit.org/show_bug.cgi?id=144890
186         <rdar://problem/20707307>
187
188         Reviewed by Anders Carlsson.
189
190         Update linked SDK and minimal Windows level to be compatible with
191         Windows 7 or newer.
192
193         * WTF.vcxproj/WTF.vcxproj:
194         * WTF.vcxproj/WTFGenerated.vcxproj:
195         * config.h:
196
197 2015-05-11  Carlos Garcia Campos  <cgarcia@igalia.com>
198
199         [GTK] WorkQueue objects are not released
200         https://bugs.webkit.org/show_bug.cgi?id=144824
201
202         Reviewed by Žan Doberšek.
203
204         Do not keep a reference of the WorkQueue for the entire life of
205         its worker thread, since every task scheduled on the WorkQueue
206         already takes a reference. Instead, take a reference of the main
207         loop to make sure that when the worker thread starts, the main
208         loop hasn't been released to avoid runtime warnings (see
209         webkit.org/b/140998). Also removed the g_main_context_pop_thread_default()
210         from the thread body, since the thread-specific context queue will
211         be freed anyway when the thread exits.
212         If the WorkQueue is released early, before the thread has started,
213         schedule a main loop quit in the context, to make sure it will
214         be the first thing run by the main loop and the thread will exit.
215
216         * wtf/WorkQueue.h: Remove unused event loop mutex.
217         * wtf/gtk/WorkQueueGtk.cpp:
218         (WTF::WorkQueue::platformInitialize):
219         (WTF::WorkQueue::platformInvalidate):
220
221 2015-05-09  Yoav Weiss  <yoav@yoav.ws>
222
223         Remove the PICTURE_SIZES build flag
224         https://bugs.webkit.org/show_bug.cgi?id=144679
225
226         Reviewed by Benjamin Poulain.
227
228         Removed the PICTURE_SIZES build time flag.
229
230         * wtf/FeatureDefines.h:
231
232 2015-05-08  Myles C. Maxfield  <mmaxfield@apple.com>
233
234         Remove convenience constructors for TextRun
235         https://bugs.webkit.org/show_bug.cgi?id=144752
236
237         Reviewed by Anders Carlsson.
238
239         No reason why StringView shouldn't have a StringImpl* constructor.
240
241         Test: StringView8Bit in TestWebKitAPI
242
243         * wtf/text/StringView.h: Add the constructor.
244
245 2015-05-08  Commit Queue  <commit-queue@webkit.org>
246
247         Unreviewed, rolling out r183996.
248         https://bugs.webkit.org/show_bug.cgi?id=144806
249
250         ASan detected use-after free (Requested by ap on #webkit).
251
252         Reverted changeset:
253
254         "Remove convenience constructors for TextRun"
255         https://bugs.webkit.org/show_bug.cgi?id=144752
256         http://trac.webkit.org/changeset/183996
257
258 2015-05-08  Myles C. Maxfield  <mmaxfield@apple.com>
259
260         Remove convenience constructors for TextRun
261         https://bugs.webkit.org/show_bug.cgi?id=144752
262
263         Reviewed by Anders Carlsson.
264
265         No reason why StringView shouldn't have a StringImpl* constructor.
266
267         Test: StringView8Bit in TestWebKitAPI
268
269         * wtf/text/StringView.h: Add the constructor.
270
271 2015-05-08  Andreas Kling  <akling@apple.com>
272
273         Optimize serialization of quoted JSON strings.
274         <https://webkit.org/b/144754>
275
276         Reviewed by Darin Adler.
277
278         Add a StringBuilder API for appending a quoted JSON string. This is used by
279         JSON.stringify() to implement efficient appending of strings while escaping
280         quotes, control characters and \uNNNN-style characters.
281
282         The main benefit comes from only doing a single buffer expansion up front,
283         instead of doing it every time we append something. The fudge factor is pretty
284         large, since the maximum number of output characters per input character is 6.
285
286         The first landing of this patch had two bugs in it:
287
288         - Made \uNNNN escapes uppercase hexadecimal instead of lowercase.
289         - Didn't preallocate enough space for 8-bit input strings.
290
291         Both were caught by existing tests on our bots, and both were due to last-minute
292         changes before landing. :/
293
294         * wtf/text/StringBuilder.cpp:
295         (WTF::appendQuotedJSONStringInternal):
296         (WTF::StringBuilder::appendQuotedJSONString):
297         * wtf/text/StringBuilder.h:
298
299 2015-05-07  Commit Queue  <commit-queue@webkit.org>
300
301         Unreviewed, rolling out r183961.
302         https://bugs.webkit.org/show_bug.cgi?id=144784
303
304         Broke js/dom/JSON-stringify.html (Requested by kling on
305         #webkit).
306
307         Reverted changeset:
308
309         "Optimize serialization of quoted JSON strings."
310         https://bugs.webkit.org/show_bug.cgi?id=144754
311         http://trac.webkit.org/changeset/183961
312
313 2015-05-07  Andreas Kling  <akling@apple.com>
314
315         Optimize serialization of quoted JSON strings.
316         <https://webkit.org/b/144754>
317
318         Reviewed by Darin Adler.
319
320         Add a StringBuilder API for appending a quoted JSON string. This is used by
321         JSON.stringify() to implement efficient appending of strings while escaping
322         quotes, control characters and \uNNNN-style characters.
323
324         The main benefit comes from only doing a single buffer expansion up front,
325         instead of doing it every time we append something. The fudge factor is pretty
326         large for 16-bit strings, since the maximum number of output characters per
327         input character is 6.
328
329         * wtf/text/StringBuilder.cpp:
330         (WTF::appendQuotedJSONStringInternal):
331         (WTF::StringBuilder::appendQuotedJSONString):
332         * wtf/text/StringBuilder.h:
333
334 2015-05-07  Martin Robinson  <mrobinson@igalia.com>
335
336         [GTK] All spell checking layout tests fail
337         https://bugs.webkit.org/show_bug.cgi?id=144648
338
339         Reviewed by Carlos Garcia Campos.
340
341         * wtf/Platform.h: Activate UNIFIED_TEXT_CHECKING for GTK+.
342
343 2015-05-07  Dan Bernstein  <mitz@apple.com>
344
345         <rdar://problem/19317140> [Xcode] Remove usage of AspenFamily.xcconfig in Source/
346         https://bugs.webkit.org/show_bug.cgi?id=144727
347
348         Reviewed by Darin Adler.
349
350         * Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define
351         INSTALL_PATH_PREFIX and LD_DYLIB_INSTALL_NAME for the iOS 8.x Simulator.
352
353 2015-05-07  Žan Doberšek  <zdobersek@igalia.com>
354
355         [GTK] Clean up RunLoop implementation
356         https://bugs.webkit.org/show_bug.cgi?id=144729
357
358         Reviewed by Carlos Garcia Campos.
359
360         Clean up the RunLoop implementation for the GTK port,
361         removing unnecessary methods and using simpler variable names.
362
363         Nested GMainLoops in RunLoop::run() are now created for the
364         RunLoop's GMainContext, and not for the default context (enforced
365         through the null argument to g_main_loop_new()).
366
367         * wtf/RunLoop.h:
368         * wtf/gtk/RunLoopGtk.cpp:
369         (WTF::RunLoop::RunLoop):
370         (WTF::RunLoop::~RunLoop):
371         (WTF::RunLoop::run):
372         (WTF::RunLoop::stop):
373         (WTF::RunLoop::wakeUp):
374         (WTF::RunLoop::TimerBase::start):
375         (WTF::RunLoop::innermostLoop): Deleted.
376         (WTF::RunLoop::pushNestedMainLoop): Deleted.
377         (WTF::RunLoop::popNestedMainLoop): Deleted.
378
379 2015-05-05  Carlos Garcia Campos  <cgarcia@igalia.com>
380
381         [GTK] Async operations running in the WorkQueue thread should schedule their sources to the WorkQueue main lopp
382         https://bugs.webkit.org/show_bug.cgi?id=144541
383
384         Reviewed by Žan Doberšek.
385
386         They are currently sent to the main thread run loop, because we
387         are not setting the WorkQueue main context as the default one in
388         the worker thread.
389
390         * wtf/gtk/WorkQueueGtk.cpp:
391         (WTF::WorkQueue::platformInitialize): Call
392         g_main_context_push_thread_default() to set the WorkQueue main
393         context as the default of the thread before running the main loop,
394         and g_main_context_pop_thread_default() when the main loop quits.
395
396 2015-05-04  Commit Queue  <commit-queue@webkit.org>
397
398         Unreviewed, rolling out r183661.
399         https://bugs.webkit.org/show_bug.cgi?id=144594
400
401         Caused ~3.5MB regression on membuster(!) (Requested by kling_
402         on #webkit).
403
404         Reverted changeset:
405
406         "Decrease minimum Vector size."
407         https://bugs.webkit.org/show_bug.cgi?id=144453
408         http://trac.webkit.org/changeset/183661
409
410 2015-05-04  Zan Dobersek  <zdobersek@igalia.com>
411
412         [WTF] Remove Functional.h inclusions
413         https://bugs.webkit.org/show_bug.cgi?id=144400
414
415         Reviewed by Darin Adler.
416
417         Remove most of the Functional.h header inclusions. The header is preserved
418         since it's still used by older versions of Safari, and for the callOnMainThread()
419         stub in DeprecatedSymbolsUsedBySafari.mm.
420
421         * wtf/MainThread.cpp:
422         * wtf/RunLoop.h:
423         * wtf/WorkQueue.cpp:
424         * wtf/WorkQueue.h:
425         * wtf/efl/DispatchQueueEfl.h:
426         * wtf/efl/DispatchQueueWorkItemEfl.h:
427
428 2015-05-02  Commit Queue  <commit-queue@webkit.org>
429
430         Unreviewed, rolling out r183722.
431         https://bugs.webkit.org/show_bug.cgi?id=144534
432
433         Made all the tests assert (Requested by ap on #webkit).
434
435         Reverted changeset:
436
437         "Generated static StringImpls should have static flag set."
438         https://bugs.webkit.org/show_bug.cgi?id=144516
439         http://trac.webkit.org/changeset/183722
440
441 2015-05-02  Andreas Kling  <akling@apple.com>
442
443         Generated static StringImpls should have static flag set.
444         <https://webkit.org/b/144516>
445
446         Reviewed by Darin Adler.
447
448         Discovered this while tracking down a string ref leak. Turns out that the strings
449         generated by StaticString.pm were not getting the static flag set on them.
450
451         The only practical difference from this AFAICT is that now the garbage collector
452         will correctly see that these strings have no extra memory cost to worry about.
453
454         * wtf/text/StringImpl.h:
455
456 2015-05-01  Martin Robinson  <mrobinson@igalia.com>
457
458         USE(...) macro should expect unprefixed variables
459         https://bugs.webkit.org/show_bug.cgi?id=144454
460
461         Reviewed by Daniel Bates.
462
463         * wtf/Assertions.cpp: Replace all occurrences WTF_USE with USE.
464         * wtf/Platform.h: Replace all occurrences WTF_USE with USE. Modify the USE
465         macro to look for unprefixed variables.
466         * wtf/WTFThreadData.h: Replace all occurrences WTF_USE with USE.
467
468 2015-05-01  Joseph Pecoraro  <pecoraro@apple.com>
469
470         Enable ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX by default on all ports (Windows was missed)
471         https://bugs.webkit.org/show_bug.cgi?id=144495
472
473         Reviewed by Csaba Osztrogonác.
474
475         * wtf/FeatureDefines.h:
476         This covers all ports that haven't defined the flag otherwise.
477
478 2015-04-30  Alex Christensen  <achristensen@webkit.org>
479
480         Decrease minimum Vector size.
481         https://bugs.webkit.org/show_bug.cgi?id=144453
482
483         Reviewed by Andreas Kling.
484
485         * wtf/Vector.h:
486         Make the default min size 4 to save memory on small Vectors.
487
488 2015-04-30  Yusuke Suzuki  <utatane.tea@gmail.com>
489
490         Use the default hash value for Symbolized StringImpl
491         https://bugs.webkit.org/show_bug.cgi?id=144347
492
493         Reviewed by Darin Adler.
494
495         Use a default hash value calculation for symbolized StringImpl.
496
497         * wtf/text/StringImpl.cpp:
498         (WTF::StringImpl::createSymbol):
499         * wtf/text/StringImpl.h:
500         (WTF::StringImpl::StringImpl):
501         (WTF::StringImpl::symbolAwareHash):
502         (WTF::StringImpl::existingSymbolAwareHash):
503         (WTF::StringImpl::hashForSymbol):
504         * wtf/text/StringStatics.cpp:
505         (WTF::StringImpl::nextHashForSymbol):
506         (WTF::StringImpl::hashAndFlagsForSymbol): Deleted.
507
508 2015-04-29  Alexey Proskuryakov  <ap@apple.com>
509
510         LazyNeverDestroyed is not thread safe in debug builds, causing assertions
511         https://bugs.webkit.org/show_bug.cgi?id=144378
512
513         Reviewed by Darin Adler.
514
515         * wtf/NeverDestroyed.h:
516
517 2015-04-28  Geoffrey Garen  <ggaren@apple.com>
518
519         It shouldn't take 1846 lines of code and 5 FIXMEs to sort an array.
520         https://bugs.webkit.org/show_bug.cgi?id=144013
521
522         Reviewed by Mark Lam.
523
524         Remove this custom tree implementation because it is unused. (It was
525         previously used to achieve a stable array sort in certain cases.)
526
527         * WTF.vcxproj/WTF.vcxproj:
528         * WTF.vcxproj/WTF.vcxproj.filters:
529         * WTF.xcodeproj/project.pbxproj:
530         * wtf/AVLTree.h: Removed.
531         * wtf/CMakeLists.txt:
532
533 2015-04-29  Myles C. Maxfield  <mmaxfield@apple.com>
534
535         [OS X] Use CTFontCreateForCSS instead of doing font search ourselves
536         https://bugs.webkit.org/show_bug.cgi?id=132159
537
538         Reviewed by Darin Adler.
539
540         * wtf/Platform.h:
541
542         Opt-in using ENABLE(PLATFORM_FONT_LOOKUP)
543
544 2015-04-29  Yusuke Suzuki  <utatane.tea@gmail.com>
545
546         REGRESSION (r183373): ASSERT failed in wtf/SHA1.h
547         https://bugs.webkit.org/show_bug.cgi?id=144257
548
549         Reviewed by Darin Adler.
550
551         * wtf/SHA1.h:
552         (WTF::SHA1::addBytes):
553
554 2015-04-29  Martin Robinson  <mrobinson@igalia.com>
555
556         [CMake] [GTK] Organize and clean up unused CMake variables
557         https://bugs.webkit.org/show_bug.cgi?id=144364
558
559         Reviewed by Gyuyoung Kim.
560
561         * wtf/PlatformGTK.cmake: Add variables specific to this project.
562
563 2015-04-28  Michael Catanzaro  <mcatanzaro@igalia.com>
564
565         Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT
566         https://bugs.webkit.org/show_bug.cgi?id=144304
567
568         Reviewed by Geoffrey Garen.
569
570         No longer check ENABLE_LLINT_C_LOOP to determine the value of ENABLE_JIT.
571
572         * wtf/Platform.h:
573
574 2015-04-28  Commit Queue  <commit-queue@webkit.org>
575
576         Unreviewed, rolling out r183514.
577         https://bugs.webkit.org/show_bug.cgi?id=144359
578
579         It broke cloop test bots (Requested by mcatanzaro on #webkit).
580
581         Reverted changeset:
582
583         "Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT"
584         https://bugs.webkit.org/show_bug.cgi?id=144304
585         http://trac.webkit.org/changeset/183514
586
587 2015-04-28  Michael Catanzaro  <mcatanzaro@igalia.com>
588
589         Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT
590         https://bugs.webkit.org/show_bug.cgi?id=144304
591
592         Reviewed by Geoffrey Garen.
593
594         No longer check ENABLE_LLINT_C_LOOP to determine the value of ENABLE_JIT.
595
596         * wtf/Platform.h:
597
598 2015-04-28  Alex Christensen  <achristensen@webkit.org>
599
600         Properly reset deleted count when clearing HashTables.
601         https://bugs.webkit.org/show_bug.cgi?id=144343
602
603         Reviewed by Andreas Kling.
604
605         * wtf/HashTable.h:
606         (WTF::KeyTraits>::clear):
607         Reset m_deletedCount, which appears to have been forgotten.
608
609 2015-04-28  Alex Christensen  <achristensen@webkit.org>
610
611         [Content Extensions] Use less memory for CombinedURLFilters.
612         https://bugs.webkit.org/show_bug.cgi?id=144290
613
614         Reviewed by Andreas Kling.
615
616         * wtf/Forward.h:
617         * wtf/Vector.h:
618         Added a minCapacity template parameter to allow changing the minimum size of an 
619         allocated buffer. The default minCapacity is kept at 16 unless otherwise specified 
620         to have no change on existing code, but this could be changed later. A smaller 
621         default minCapacity would use less memory with small Vectors but spend more time 
622         copying when expanding to large Vectors.
623
624 2015-04-27  Brent Fulgham  <bfulgham@apple.com>
625
626         [Win] Deactivate WebGL until Windows tests work properly
627         https://bugs.webkit.org/show_bug.cgi?id=144291
628         <rdar://problem/20707307>
629
630         Reviewed by Zalan Bujtas.
631
632         * wtf/FeatureDefines.h: Force WebGL off for Windows builds.
633
634 2015-04-27  Michael Catanzaro  <mcatanzaro@igalia.com>
635
636         Rename WTF_USE_3D_GRAPHICS to ENABLE_GRAPHICS_CONTEXT_3D
637         https://bugs.webkit.org/show_bug.cgi?id=144193
638
639         Reviewed by Darin Adler.
640
641         * wtf/FeatureDefines.h:
642         * wtf/Platform.h:
643
644 2015-04-22  Martin Robinson  <mrobinson@igalia.com>
645
646         [CMake] Autogenerate cmakeconfig.h.cmake
647         https://bugs.webkit.org/show_bug.cgi?id=143997
648
649         Reviewed by Csaba Osztrogonác.
650
651         * wtf/Platform.h: Move a GTK-specific setting from cmakeconfig.h to here.
652
653 2015-04-25  Martin Robinson  <mrobinson@igalia.com>
654
655         Rename ENABLE_3D_RENDERING to ENABLE_3D_TRANSFORMS
656         https://bugs.webkit.org/show_bug.cgi?id=144182
657
658         Reviewed by Simon Fraser.
659
660         * wtf/FeatureDefines.h: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS.
661
662 2015-04-24  Commit Queue  <commit-queue@webkit.org>
663
664         Unreviewed, rolling out r183288.
665         https://bugs.webkit.org/show_bug.cgi?id=144189
666
667         Made js/sort-with-side-effecting-comparisons.html time out in
668         debug builds (Requested by ap on #webkit).
669
670         Reverted changeset:
671
672         "It shouldn't take 1846 lines of code and 5 FIXMEs to sort an
673         array."
674         https://bugs.webkit.org/show_bug.cgi?id=144013
675         http://trac.webkit.org/changeset/183288
676
677 2015-04-21  Geoffrey Garen  <ggaren@apple.com>
678
679         It shouldn't take 1846 lines of code and 5 FIXMEs to sort an array.
680         https://bugs.webkit.org/show_bug.cgi?id=144013
681
682         Reviewed by Mark Lam.
683
684         Remove this custom tree implementation because it is unused. (It was
685         previously used to achieve a stable array sort in certain cases.)
686
687         * WTF.vcxproj/WTF.vcxproj:
688         * WTF.vcxproj/WTF.vcxproj.filters:
689         * WTF.xcodeproj/project.pbxproj:
690         * wtf/AVLTree.h: Removed.
691         * wtf/CMakeLists.txt:
692
693 2015-04-24  Darin Adler  <darin@apple.com>
694
695         Convert OwnPtr and PassOwnPtr uses to std::unique_ptr
696         https://bugs.webkit.org/show_bug.cgi?id=128007
697
698         Reviewed by Anders Carlsson.
699
700         * WTF.vcxproj/WTF.vcxproj: Removed OwnPtr source files.
701         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
702         * WTF.xcodeproj/project.pbxproj: Ditto.
703         * wtf/CMakeLists.txt: Ditto.
704
705         * wtf/Forward.h: Removed OwnPtr and PassOwnPtr.
706         * wtf/HashTraits.h: Ditto.
707
708         * wtf/OwnPtr.h: Removed.
709         * wtf/OwnPtrCommon.h: Removed.
710         * wtf/PassOwnPtr.h: Removed.
711
712         * wtf/SizeLimits.cpp: Removed OwnPtr.
713         * wtf/VectorTraits.h: Removed OwnPtr specialization.
714
715 2015-04-23  Jer Noble  <jer.noble@apple.com>
716
717         Disable HAVE_AVKIT on AppleTV
718         https://bugs.webkit.org/show_bug.cgi?id=144142
719
720         Reviewed by Dan Bernstein.
721
722         * wtf/Platform.h:
723
724 2015-04-23  Alexey Proskuryakov  <ap@apple.com>
725
726         [iOS] WebKit services should inherit environment variables for home
727         https://bugs.webkit.org/show_bug.cgi?id=144078
728         rdar://problem/20571678
729
730         Reviewed by Dan Bernstein.
731
732         * wtf/spi/darwin/XPCSPI.h: Added xpc_copy_bootstrap and xpc_dictionary_apply.
733
734 2015-04-23  Alexey Proskuryakov  <ap@apple.com>
735
736         Undo the WTF part of the previous build fix, we don't use private headers in WTF.
737
738         * WTF.xcodeproj/project.pbxproj:
739
740 2015-04-23  Alexey Proskuryakov  <ap@apple.com>
741
742         Build fix.
743
744         * WTF.xcodeproj/project.pbxproj: Make RAMSize.h a private header, now that it's used
745         from outside WTF.
746
747 2015-04-23  Andreas Kling  <akling@apple.com>
748
749         There should only be one way to get the system memory size.
750         <https://webkit.org/b/144081>
751
752         Reviewed by Antti Koivisto.
753
754         Merge all the logic from other RAM size fetcher helpers into WTF's.
755
756         Darwin ports now use host_info() instead of sysctl(), since that was the more common way
757         of doing this.
758
759         Also bumped the fallback answer from 128 MB to 512 MB to bring it closer to today's hardware.
760
761         Finally, the number is rounded up to the next multiple of 128 MB, to avoid misunderstandings
762         on some systems where the number returned by the kernel is slightly lower than the marketing
763         number. Removed the "fudging" that was used in some places, since this fixes that cleanly.
764
765         * wtf/RAMSize.cpp:
766         (WTF::computeRAMSize):
767
768 2015-04-22  Darin Adler  <darin@apple.com>
769
770         Eliminate remaining uses of OwnPtr and PassOwnPtr in WebCore outside the editing and platform directories
771         https://bugs.webkit.org/show_bug.cgi?id=143949
772
773         Reviewed by Andreas Kling.
774
775         * wtf/MathExtras.h:
776         (wtf_ceil): Deleted. This was a workaround for a bug that was introduced in Leopard and
777         fixed in Snow Leopard <rdar://problem/6286405>, so we don't need the workaround any more.
778
779 2015-04-22  Alexey Proskuryakov  <ap@apple.com>
780
781         [Mac] In nightlies and local builds, WebKit services can get terminated under memory pressure
782         https://bugs.webkit.org/show_bug.cgi?id=144052
783         rdar://problem/19754404
784
785         Build fix. Landing a forward declaration that should have been part of the original patch.
786
787         * wtf/spi/darwin/XPCSPI.h:
788
789 2015-04-21  Chris Dumez  <cdumez@apple.com>
790
791         Make Vector(const Vector<T, otherCapacity, otherOverflowBehaviour>&) constructor explicit
792         https://bugs.webkit.org/show_bug.cgi?id=143970
793
794         Reviewed by Darin Adler.
795
796         Make Vector(const Vector<T, otherCapacity, otherOverflowBehaviour>&)
797         constructor explicit as it copies the vector and it is easy to call it
798         by mistake.
799
800         * wtf/RefCountedArray.h:
801         (WTF::RefCountedArray::RefCountedArray):
802         * wtf/Vector.h:
803
804 2015-04-21  Darin Adler  <darin@apple.com>
805
806         Remove some stray uses of OwnPtr and PassOwnPtr in WTF (outside of the template definitions and traits)
807         https://bugs.webkit.org/show_bug.cgi?id=143944
808
809         Reviewed by Andreas Kling.
810
811         * wtf/FilePrintStream.h: Removed unneeded include.
812         * wtf/HashTable.h: Fixed class template name in comment.
813         * wtf/HashTraits.h: Removed unneeded forward declaration.
814         * wtf/ListHashSet.h: Removed unneeded includes.
815         * wtf/ThreadingWin.cpp: Removed unneeded includes.
816         (WTF::wtfThreadEntryPoint): Changed code to use unique_ptr.
817         (WTF::createThreadInternal): Changed code to use make_unique and release.
818         * wtf/efl/RunLoopEfl.cpp: Removed unneeded includes.
819
820 2015-04-19  Darin Adler  <darin@apple.com>
821
822         Update RefPtr documentation and deprecation
823         https://bugs.webkit.org/show_bug.cgi?id=143936
824
825         Reviewed by Andreas Kling.
826
827         * WTF.vcxproj/WTF.vcxproj: Removed PassRef.h
828         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
829         * WTF.xcodeproj/project.pbxproj: Ditto.
830         * wtf/CMakeLists.txt: Ditto.
831
832 2015-04-17  Alexey Proskuryakov  <ap@apple.com>
833
834         Use ASan poisoning to taint moved-out-of Refs
835         https://bugs.webkit.org/show_bug.cgi?id=143894
836         rdar://problem/19443723
837
838         Reviewed by Darin Adler.
839
840         * wtf/Ref.h: (WTF::Ref::~Ref):
841
842 2015-04-17  Alexey Proskuryakov  <ap@apple.com>
843
844         Remove unused BoundsCheckedPointer
845         https://bugs.webkit.org/show_bug.cgi?id=143896
846
847         Reviewed by Geoffrey Garen.
848
849         * WTF.vcxproj/WTF.vcxproj:
850         * WTF.vcxproj/WTF.vcxproj.filters:
851         * WTF.xcodeproj/project.pbxproj:
852         * wtf/BoundsCheckedPointer.h: Removed.
853         * wtf/CMakeLists.txt:
854
855 2015-04-16  Yusuke Suzuki  <utatane.tea@gmail.com>
856
857         [ES6] Implement Symbol.for and Symbol.keyFor
858         https://bugs.webkit.org/show_bug.cgi?id=143404
859
860         Reviewed by Geoffrey Garen.
861
862         When we register symbolized StringImpl* into SymbolRegistry, symbolized StringImpl* is aware of that.
863         And when destructing it, it removes its reference from SymbolRegistry as if atomic StringImpl do so with AtomicStringTable.
864         While AtomicStringTable (in WebCore case) exists in thread local storage,
865         SymbolRegistry exists per VM and StringImpl* has a reference to the registered SymbolRegistry.
866
867         Since StringImpl has isSymbol etc. members, it's class is aware of Symbol use cases.
868         So introduce SymbolRegistry in WTF layers as if AtomicStringTable.
869
870         * WTF.vcxproj/WTF.vcxproj:
871         * WTF.vcxproj/WTF.vcxproj.filters:
872         * WTF.xcodeproj/project.pbxproj:
873         * wtf/CMakeLists.txt:
874         * wtf/text/AtomicString.cpp:
875         (WTF::AtomicString::addSlowCase):
876         (WTF::AtomicString::findSlowCase):
877         (WTF::AtomicString::findInternal):
878         (WTF::AtomicString::find): Deleted.
879         * wtf/text/AtomicString.h:
880         (WTF::AtomicString::find):
881         * wtf/text/StringImpl.cpp:
882         (WTF::StringImpl::~StringImpl):
883         (WTF::StringImpl::createSymbol):
884         (WTF::StringImpl::createSymbolEmpty):
885         * wtf/text/StringImpl.h:
886         (WTF::StringImpl::StringImpl):
887         (WTF::StringImpl::extractFoldedStringInSymbol):
888         (WTF::StringImpl::symbolRegistry):
889         (WTF::StringImpl::createSymbolEmpty): Deleted.
890         * wtf/text/SymbolRegistry.cpp: Copied from Source/JavaScriptCore/runtime/SymbolConstructor.h.
891         (WTF::SymbolRegistry::~SymbolRegistry):
892         (WTF::SymbolRegistry::symbolForKey):
893         (WTF::SymbolRegistry::keyForSymbol):
894         (WTF::SymbolRegistry::remove):
895         * wtf/text/SymbolRegistry.h: Added.
896         (WTF::SymbolRegistryKey::hash):
897         (WTF::SymbolRegistryKey::impl):
898         (WTF::SymbolRegistryKey::isHashTableDeletedValue):
899         (WTF::SymbolRegistryKey::hashTableDeletedValue):
900         (WTF::DefaultHash<SymbolRegistryKey>::Hash::hash):
901         (WTF::DefaultHash<SymbolRegistryKey>::Hash::equal):
902         (WTF::HashTraits<SymbolRegistryKey>::isEmptyValue):
903         (WTF::SymbolRegistryKey::SymbolRegistryKey):
904
905 2015-04-16  Antti Koivisto  <antti@apple.com>
906
907         Use CommonCrypto for SHA1 and MD5
908         https://bugs.webkit.org/show_bug.cgi?id=143826
909
910         Reviewed by Anders Carlsson.
911
912         CommonCrypto SHA1 implementation is ~4x faster than the naive WTF one. Use it when available.
913
914         These are covered by existing API tests.
915
916         * wtf/MD5.cpp:
917         (WTF::MD5::MD5):
918         (WTF::MD5::addBytes):
919         (WTF::MD5::checksum):
920         * wtf/MD5.h:
921         * wtf/SHA1.cpp:
922         (WTF::SHA1::SHA1):
923         (WTF::SHA1::addBytes):
924         (WTF::SHA1::computeHash):
925
926             Remove the side effect where computeHash resets the state. No one relies on it.
927
928         (WTF::SHA1::hexDigest):
929         (WTF::SHA1::computeHexDigest):
930         * wtf/SHA1.h:
931
932 2015-04-16  Csaba Osztrogonác  <ossy@webkit.org>
933
934         Remove the unnecessary WTF_CHANGES define
935         https://bugs.webkit.org/show_bug.cgi?id=143825
936
937         Reviewed by Andreas Kling.
938
939         * config.h:
940
941 2015-04-15  Руслан Ижбулатов  <lrn1986@gmail.com>
942
943         Harmonize binary semaphore ifdefs
944
945         They should be either OS(WINDOWS) (in which case we'd need
946         BinarySemaphoreWin.cpp, which is not shipped by WebKitGTK)
947         or PLATFORM(WIN) (in which case Mutex/ThreadCondition-based
948         implementation is used).
949
950         This fixes errors like:
951           CXX      Source/WTF/wtf/threads/libWTF_la-BinarySemaphore.lo
952         ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp: In constructor 'WTF::BinarySemaphore::BinarySemaphore()':
953         ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:34:7: error: class 'WTF::BinarySemaphore' does not have any field named 'm_isSet'
954              : m_isSet(false)
955                ^
956         ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp: In member function 'void WTF::BinarySemaphore::signal()':
957         ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:44:24: error: 'm_mutex' was not declared in this scope
958              MutexLocker locker(m_mutex);
959                                 ^
960         ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:46:5: error: 'm_isSet' was not declared in this scope
961              m_isSet = true;
962              ^
963         ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:47:5: error: 'm_condition' was not declared in this scope
964              m_condition.signal();
965              ^
966         ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp: In member function 'bool WTF::BinarySemaphore::wait(double)':
967         ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:52:24: error: 'm_mutex' was not declared in this scope
968              MutexLocker locker(m_mutex);
969                                 ^
970         ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:55:13: error: 'm_isSet' was not declared in this scope
971              while (!m_isSet) {
972                      ^
973         ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:56:21: error: 'm_condition' was not declared in this scope
974                  timedOut = !m_condition.timedWait(m_mutex, absoluteTime);
975                              ^
976         ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:62:5: error: 'm_isSet' was not declared in this scope
977              m_isSet = false;
978              ^
979         GNUmakefile:52762: recipe for target 'Source/WTF/wtf/threads/libWTF_la-BinarySemaphore.lo' failed
980
981         [W32] Inconsistent ifdefs in BinarySemaphore.h and BinarySemaphore.cpp
982         https://bugs.webkit.org/show_bug.cgi?id=143756
983
984         Reviewed by Darin Adler.
985
986         * wtf/threads/BinarySemaphore.h:
987
988 2015-04-12  Michael Catanzaro  <mcatanzaro@igalia.com>
989
990         Fix -Wparentheses warning with GCC 5 in SaturatedArithmetic.h
991         https://bugs.webkit.org/show_bug.cgi?id=143457
992
993         Reviewed by Benjamin Poulain.
994
995         Tested by WTF.SaturatedArithmeticAddition and WTF.SaturatedArithmeticSubtraction.
996
997         * wtf/SaturatedArithmetic.h:
998         (signedAddOverflows): Use && instead of & to avoid triggering -Wparentheses in newer
999         versions of GCC and Clang, and to improve the clarity of the function.
1000         (signedSubtractOverflows): Changed correspondingly, although there was no warning here.
1001
1002 2015-04-08  Sam Weinig  <sam@webkit.org>
1003
1004         Allow LaunchServices to handle URLs on link navigations
1005         <rdar://problem/19446826>
1006         https://bugs.webkit.org/show_bug.cgi?id=143544
1007
1008         Reviewed by Anders Carlsson.
1009
1010         * wtf/Platform.h:
1011         Add HAVE macro for this functionality.
1012
1013 2015-04-09  Andy Estes  <aestes@apple.com>
1014
1015         [Cocoa] Add a HAVE(AVKIT) and use it
1016         https://bugs.webkit.org/show_bug.cgi?id=143593
1017
1018         Reviewed by David Kilzer.
1019
1020         * wtf/Platform.h: Defined HAVE(AVKIT) to be true on all Cocoa platforms except Watch OS.
1021
1022 2015-04-09  Andy Estes  <aestes@apple.com>
1023
1024         [Content Filtering] Add a HAVE(PARENTAL_CONTROLS) and use it
1025         https://bugs.webkit.org/show_bug.cgi?id=143559
1026
1027         Reviewed by David Kilzer.
1028
1029         Added PLATFORM(WATCHOS). Used PLATFORM() since Watch OS is just a variant of OS(IOS).
1030         Defined HAVE(PARENTAL_CONTROLS) to be true on all Cocoa platforms except Watch OS.
1031
1032         * wtf/Platform.h:
1033
1034 2015-04-08  Alex Christensen  <achristensen@webkit.org> and Patrick Gansterer  <paroga@webkit.org>
1035
1036         Add CMake build system for WinCairo port.
1037         https://bugs.webkit.org/show_bug.cgi?id=115944
1038
1039         Reviewed by Chris Dumez.
1040
1041         * wtf/FeatureDefines.h:
1042         * wtf/PlatformWin.cmake:
1043
1044 2015-04-05  Antti Koivisto  <antti@apple.com>
1045
1046         Bloom filter should support longer hashes
1047         https://bugs.webkit.org/show_bug.cgi?id=143419
1048
1049         Reviewed by Dan Bernstein.
1050
1051         It currently supports 'unsigned' hash only which is inconvenient and doesn't have enough independent bits for larger filters.
1052
1053         Support arbitrarily sized hashes of type std::array<uint8_t, hashSize> (like SHA1::Digest and MD5::Digest).
1054
1055         * wtf/BloomFilter.h:
1056         (WTF::BloomFilter<keyBits>::keysFromHash):
1057         (WTF::BloomFilter<keyBits>::mayContain):
1058         (WTF::BloomFilter<keyBits>::add):
1059
1060 2015-04-03  Antti Koivisto  <antti@apple.com>
1061
1062         Add non-counting Bloom filter implementation
1063         https://bugs.webkit.org/show_bug.cgi?id=143366
1064
1065         Reviewed by Sam Weinig.
1066
1067         Add a traditional single-bit-per-bucket Bloom filter in addition to the existing counting implementation.
1068
1069         - rename BloomFilter -> CountingBloomFilter.
1070         - add a new basic BloomFilter type.
1071         - update some terminology to match http://en.wikipedia.org/wiki/Bloom_filter and modernize the code a bit.
1072         - add API tests.
1073
1074         * wtf/BloomFilter.h:
1075         (WTF::BloomFilter::BloomFilter):
1076         (WTF::BloomFilter::add):
1077
1078             Also support merging.
1079
1080         (WTF::BloomFilter::mayContain):
1081         (WTF::BloomFilter::arrayIndex):
1082         (WTF::BloomFilter::bitMask):
1083         (WTF::BloomFilter<keyBits>::mayContain):
1084         (WTF::BloomFilter<keyBits>::add):
1085         (WTF::BloomFilter<keyBits>::isBitSet):
1086         (WTF::BloomFilter<keyBits>::setBit):
1087         (WTF::BloomFilter<keyBits>::clear):
1088         (WTF::CountingBloomFilter::CountingBloomFilter):
1089         (WTF::CountingBloomFilter::mayContain):
1090         (WTF::CountingBloomFilter::firstBucket):
1091         (WTF::CountingBloomFilter::secondBucket):
1092         (WTF::CountingBloomFilter<keyBits>::add):
1093         (WTF::CountingBloomFilter<keyBits>::remove):
1094         (WTF::CountingBloomFilter<keyBits>::clear):
1095         (WTF::CountingBloomFilter<keyBits>::likelyEmpty):
1096         (WTF::CountingBloomFilter<keyBits>::isClear):
1097         (WTF::BloomFilter::maximumCount): Deleted.
1098         (WTF::BloomFilter::firstSlot): Deleted.
1099         (WTF::BloomFilter::secondSlot): Deleted.
1100         (WTF::BloomFilter<keyBits>::remove): Deleted.
1101         (WTF::BloomFilter<keyBits>::likelyEmpty): Deleted.
1102         (WTF::BloomFilter<keyBits>::isClear): Deleted.
1103
1104 015-04-01  Antti Koivisto  <antti@apple.com>
1105
1106         Value assignment operator of Optional should be stricter
1107         https://bugs.webkit.org/show_bug.cgi?id=143303
1108
1109         Reviewed by Andreas Kling.
1110
1111         struct Foo { mutable Optional<std::chrono::seconds> s; };
1112         Foo foo, foo2;
1113         foo = foo2;
1114
1115         doesn't build because it tries to use wrong operator=.
1116
1117         * wtf/Optional.h:
1118
1119             Add enable_if test similar to std::experimental::optional.
1120
1121 2015-04-01  Alex Christensen  <achristensen@webkit.org>
1122
1123         Progress towards CMake on Windows and Mac.
1124         https://bugs.webkit.org/show_bug.cgi?id=143293
1125
1126         Reviewed by Filip Pizlo.
1127
1128         * wtf/CMakeLists.txt:
1129         Don't use bmalloc on Windows yet.
1130         * wtf/FeatureDefines.h:
1131         Temporarily disabled WebGL on Windows CMake builds.
1132         * wtf/PlatformMac.cmake:
1133         Tell open source builders where to find unicode headers.
1134
1135 2015-03-31  Alexey Proskuryakov  <ap@apple.com>
1136
1137         Fix the build after <http://trac.webkit.org/changeset/182205>.
1138
1139         * wtf/text/StringImpl.h: (WTF::StringImpl::extractFoldedStringInSymbol):
1140         A function cannot be both exported and inline.
1141
1142 2015-03-31  Yusuke Suzuki  <utatane.tea@gmail.com>
1143
1144         Clean up Identifier factories to clarify the meaning of StringImpl*
1145         https://bugs.webkit.org/show_bug.cgi?id=143146
1146
1147         Reviewed by Filip Pizlo.
1148
1149         Introduce StringKind into `StringImpl`. There's 3 kinds
1150         1. StringNormal (non-atomic, non-symbol)
1151         2. StringAtomic (atomic, non-symbol)
1152         3. StringSymbol (non-atomic, symbol)
1153         They are mutually exclusive.
1154
1155         * wtf/text/AtomicString.cpp:
1156         (WTF::AtomicString::addSlowCase):
1157         (WTF::AtomicString::findSlowCase):
1158         When registering a string into AtomicStringTable,
1159         it should not be a symbol string
1160         because symbol and atomic types are mutually exclusive.
1161         When a symbol string comes, we extract an owner string
1162         from a symbol string by using `StringImpl::extractFoldedStringInSymbol()`.
1163         It always succeeds because a symbol (non empty) string
1164         is always BufferSubstring and has an owner string.
1165         Empty symbol string doesn't have an owner string.
1166         This case is filtered by `!string.length()` guard.
1167         * wtf/text/AtomicString.h:
1168         (WTF::AtomicString::add):
1169         (WTF::AtomicString::addWithStringTableProvider):
1170         * wtf/text/StringImpl.cpp:
1171         (WTF::StringImpl::~StringImpl):
1172         (WTF::StringImpl::createSymbol):
1173         (WTF::StringImpl::createUnique): Deleted.
1174         * wtf/text/StringImpl.h:
1175         (WTF::StringImpl::StringImpl):
1176         (WTF::StringImpl::createSymbolEmpty):
1177         (WTF::StringImpl::flagIsAtomic):
1178         (WTF::StringImpl::flagIsSymbol):
1179         (WTF::StringImpl::maskStringKind):
1180         (WTF::StringImpl::stringKind):
1181         (WTF::StringImpl::isSymbol):
1182         (WTF::StringImpl::isAtomic):
1183         (WTF::StringImpl::setIsAtomic):
1184         (WTF::StringImpl::extractFoldedStringInSymbol):
1185         (WTF::StringImpl::createUniqueEmpty): Deleted.
1186         (WTF::StringImpl::flagIsUnique): Deleted.
1187         (WTF::StringImpl::isUnique): Deleted.
1188         * wtf/text/StringStatics.cpp:
1189         (WTF::StringImpl::hashAndFlagsForSymbol):
1190         (WTF::StringImpl::hashAndFlagsForUnique): Deleted.
1191
1192 2015-03-30  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1193
1194         [CMake][EFL] Remove redundant library link and include path
1195         https://bugs.webkit.org/show_bug.cgi?id=143221
1196
1197         Reviewed by Csaba Osztrogonác.
1198
1199         * wtf/PlatformEfl.cmake: Remove unnecessary library link and include path.
1200
1201 2015-03-27  Myles C. Maxfield  <mmaxfield@apple.com>
1202
1203         Support building WTF on Windows without Cygwin
1204         https://bugs.webkit.org/show_bug.cgi?id=143084
1205
1206         Reviewed by Brent Fulgham.
1207
1208         Windows doesn't have "touch".
1209
1210         * WTF.vcxproj/WTFGenerated.make:
1211
1212 2015-03-26  Alex Christensen  <achristensen@webkit.org>
1213
1214         Progress towards CMake on Mac.
1215         https://bugs.webkit.org/show_bug.cgi?id=143112
1216
1217         Reviewed by Chris Dumez.
1218
1219         * wtf/PlatformMac.cmake:
1220
1221 2015-03-25  Filip Pizlo  <fpizlo@apple.com>
1222
1223         Unreviewed, we have edited this file in 2015.
1224
1225         * wtf/Platform.h:
1226
1227 2015-03-25  Filip Pizlo  <fpizlo@apple.com>
1228
1229         Heap variables shouldn't end up in the stack frame
1230         https://bugs.webkit.org/show_bug.cgi?id=141174
1231
1232         Reviewed by Geoffrey Garen.
1233
1234         * wtf/FastBitVector.h:
1235         (WTF::FastBitVector::resize): Small change: don't resize if you don't have to resize.
1236
1237 2015-03-25  Filip Pizlo  <fpizlo@apple.com>
1238
1239         Change Atomic methods from using the_wrong_naming_conventions to using theRightNamingConventions. Also make seq_cst the default.
1240
1241         Rubber stamped by Geoffrey Garen.
1242
1243         * wtf/Atomics.h:
1244         (WTF::Atomic::load):
1245         (WTF::Atomic::store):
1246         (WTF::Atomic::compareExchangeWeak):
1247         (WTF::Atomic::compareExchangeStrong):
1248         (WTF::Atomic::compare_exchange_weak): Deleted.
1249         (WTF::Atomic::compare_exchange_strong): Deleted.
1250         * wtf/ByteSpinLock.h:
1251         (WTF::ByteSpinLock::lock):
1252         * wtf/SpinLock.h:
1253         (WTF::SpinLockBase::lock):
1254
1255 2015-03-24  Beth Dakin  <bdakin@apple.com>
1256
1257         Add events related to force click gesture
1258         https://bugs.webkit.org/show_bug.cgi?id=142836
1259         -and corresponding-
1260         rdar://problem/20210239
1261
1262         Reviewed by Dean Jackson.
1263
1264         New enable flag for the events.
1265         * wtf/FeatureDefines.h:
1266
1267 2015-03-23  Filip Pizlo  <fpizlo@apple.com>
1268
1269         JSC should have a low-cost asynchronous disassembler
1270         https://bugs.webkit.org/show_bug.cgi?id=142997
1271
1272         Reviewed by Mark Lam.
1273
1274         * wtf/StringPrintStream.h:
1275
1276 2015-03-22  Benjamin Poulain  <benjamin@webkit.org>
1277
1278         CSS Selectors: fix attribute case-insensitive matching of Contain and List
1279         https://bugs.webkit.org/show_bug.cgi?id=142932
1280
1281         Reviewed by Darin Adler.
1282
1283         Add some utility functions to the string classes to find substrings
1284         using ASCII case-insensitive comparisons.
1285
1286         * wtf/text/AtomicString.h:
1287         (WTF::AtomicString::contains):
1288         Add the light version that only lock one register.
1289
1290         (WTF::AtomicString::containsIgnoringASCIICase):
1291         (WTF::AtomicString::findIgnoringASCIICase):
1292
1293         * wtf/text/StringCommon.h:
1294         (WTF::findIgnoringASCIICase):
1295         This is the common implementation used by StringView and StringImpl.
1296
1297         * wtf/text/StringImpl.cpp:
1298         (WTF::StringImpl::findIgnoringASCIICase):
1299         * wtf/text/StringImpl.h:
1300         * wtf/text/StringView.cpp:
1301         (WTF::StringView::containsIgnoringASCIICase):
1302         (WTF::StringView::findIgnoringASCIICase):
1303         * wtf/text/StringView.h:
1304         * wtf/text/WTFString.h:
1305         (WTF::String::findIgnoringASCIICase):
1306         (WTF::String::contains):
1307         (WTF::String::containsIgnoringASCIICase):
1308
1309 2015-03-19  Andreas Kling  <akling@apple.com>
1310
1311         DFGAllocator should use bmalloc's aligned allocator.
1312         <https://webkit.org/b/142871>
1313
1314         Reviewed by Geoffrey Garen.
1315
1316         Remove PageAllocationAligned since it has no more clients.
1317
1318         * WTF.vcxproj/WTF.vcxproj:
1319         * WTF.vcxproj/WTF.vcxproj.filters:
1320         * WTF.xcodeproj/project.pbxproj:
1321         * wtf/CMakeLists.txt:
1322         * wtf/PageAllocationAligned.cpp: Removed.
1323         * wtf/PageAllocationAligned.h: Removed.
1324
1325 2015-03-18  Dhi Aurrahman  <diorahman@rockybars.com>
1326
1327         Fix StringView misplaced implementations after r181525 and r181558
1328         https://bugs.webkit.org/show_bug.cgi?id=142772
1329
1330         Reviewed by Darin Adler.
1331
1332         Fix misplaced implementations in StringView::startsWithIgnoringASCIICase and 
1333         StringView::endsWith. 
1334
1335         Add some tests in [1] to cover the StringView::startsWith, 
1336         StringView::startsWithIgnoringASCIICase, StringView::endsWith and 
1337         StringView::endsWithIgnoringASCIICase implementations.
1338
1339         [1] Tools/TestWebKitAPI/Tests/WTF/StringView.cpp.
1340
1341         * wtf/text/StringView.cpp:
1342         (WTF::StringView::startsWithIgnoringASCIICase):
1343         (WTF::StringView::endsWith):
1344         (WTF::StringView::endsWithIgnoringASCIICase):
1345
1346 2015-03-17  Michael Saboff  <msaboff@apple.com>
1347
1348         Windows X86-64 should use the fixed executable allocator
1349         https://bugs.webkit.org/show_bug.cgi?id=142749
1350
1351         Reviewed by Filip Pizlo.
1352
1353         Set ENABLE_EXECUTABLE_ALLOCATOR_FIXED for Windows.
1354         Needed to export MetaAllocator::currentStatistics() for use in JavaScriptCore.
1355
1356         * wtf/MetaAllocator.h:
1357         * wtf/Platform.h:
1358
1359 2015-03-16  Ryosuke Niwa  <rniwa@webkit.org>
1360
1361         Enable ES6 classes by default
1362         https://bugs.webkit.org/show_bug.cgi?id=142774
1363
1364         Reviewed by Gavin Barraclough.
1365
1366         * wtf/FeatureDefines.h:
1367
1368 2015-03-16  Csaba Osztrogonác  <ossy@webkit.org>
1369
1370         [ARM] Enable generating idiv instructions if it is supported
1371         https://bugs.webkit.org/show_bug.cgi?id=142725
1372
1373         Reviewed by Michael Saboff.
1374
1375         * wtf/Platform.h: Set HAVE_ARM_IDIV_INSTRUCTIONS based on GCC macro too.
1376
1377 2015-03-16  Benjamin Poulain  <benjamin@webkit.org>
1378
1379         Fix StringView after r181525
1380         Unreviewed.
1381
1382         Fix 2 silly mistakes I made in r181525.
1383
1384         * wtf/text/StringView.cpp:
1385         (WTF::StringView::startsWith):
1386         (WTF::StringView::startsWithIgnoringASCIICase):
1387         (WTF::StringView::endsWith):
1388         (WTF::StringView::endsWithIgnoringASCIICase):
1389         The implementation was inside the #ifdef.
1390
1391         * wtf/text/StringView.h:
1392         The symbols were not exported.
1393
1394 2015-03-16  Max Stepin  <maxstepin@gmail.com>
1395
1396         Add APNG support
1397         https://bugs.webkit.org/show_bug.cgi?id=17022
1398
1399         Reviewed by Carlos Garcia Campos.
1400
1401         * wtf/FeatureDefines.h:
1402
1403 2015-03-15  Benjamin Poulain  <benjamin@webkit.org>
1404
1405         CSS: fix the case-insensitive matching of the attribute selectors Begin, End and Hyphen
1406         https://bugs.webkit.org/show_bug.cgi?id=142715
1407
1408         Reviewed by Brent Fulgham.
1409
1410         Add the necessary infrastructure to test startsWith() and endsWith() with
1411         ASCII case-insentive comparisons.
1412
1413         * wtf/text/AtomicString.h:
1414         (WTF::AtomicString::startsWith):
1415         (WTF::AtomicString::startsWithIgnoringASCIICase):
1416         (WTF::AtomicString::endsWith):
1417         (WTF::AtomicString::endsWithIgnoringASCIICase):
1418
1419         * wtf/text/StringCommon.h:
1420         (WTF::loadUnaligned):
1421         (WTF::equal):
1422         I moved the low level equal() code from StringImpl to StringCommon
1423         since it is used by both StringImpl and StringView.
1424
1425         (WTF::equalCommon):
1426         (WTF::equalIgnoringASCIICaseCommon):
1427         Ideally we should drop the "Common" part of the name but StringView
1428         wants this inline for some reason. I prefered keeping the current behavior
1429         since I don't know how StringView's matching performance was evaluated.
1430
1431         (WTF::startsWith):
1432         (WTF::startsWithIgnoringASCIICase):
1433         (WTF::endsWith):
1434         (WTF::endsWithIgnoringASCIICase):
1435         Make all that code shared between StringView and Stringimpl.
1436
1437         * wtf/text/StringImpl.cpp:
1438         (WTF::StringImpl::startsWith):
1439         (WTF::StringImpl::startsWithIgnoringASCIICase):
1440         (WTF::StringImpl::endsWith):
1441         (WTF::StringImpl::endsWithIgnoringASCIICase):
1442         (WTF::equal):
1443         (WTF::stringImplContentEqual): Deleted.
1444         * wtf/text/StringImpl.h:
1445         (WTF::loadUnaligned): Deleted.
1446         (WTF::equal): Deleted.
1447
1448         * wtf/text/StringView.cpp:
1449         (WTF::StringView::startsWith):
1450         (WTF::StringView::startsWithIgnoringASCIICase):
1451         (WTF::StringView::endsWith):
1452         (WTF::StringView::endsWithIgnoringASCIICase):
1453         * wtf/text/StringView.h:
1454         Since those are new, we can safely make them out-of-line and
1455         evaluate the inlining impact as needed.
1456
1457         * wtf/text/WTFString.h:
1458         (WTF::String::startsWithIgnoringASCIICase):
1459         (WTF::String::endsWith):
1460         (WTF::String::endsWithIgnoringASCIICase):
1461
1462 2015-03-15  Benjamin Poulain  <bpoulain@apple.com>
1463
1464         Change the exact attribute matching to be ASCII case-insensitive
1465         https://bugs.webkit.org/show_bug.cgi?id=142609
1466
1467         Reviewed by Darin Adler.
1468
1469         Add support for ASCII case insensitive comparisons to all the string
1470         classes.
1471
1472         The new file StringCommon.h has the common algorithm to avoid repeating
1473         the same code with different types.
1474
1475         * WTF.vcxproj/WTF.vcxproj:
1476         * WTF.vcxproj/WTF.vcxproj.filters:
1477         * wtf/ASCIICType.h:
1478         (WTF::toASCIILower):
1479         * wtf/CMakeLists.txt:
1480         * wtf/text/AtomicString.h:
1481         (WTF::equalIgnoringASCIICase):
1482         * wtf/text/StringCommon.h: Added.
1483         (WTF::equalIgnoringASCIICase):
1484         (WTF::equalIgnoringASCIICaseCommon):
1485         * wtf/text/StringImpl.cpp:
1486         (WTF::equalIgnoringASCIICase):
1487         (WTF::equalIgnoringASCIICaseNonNull):
1488         (WTF::StringImpl::utf8Impl):
1489         (WTF::StringImpl::defaultWritingDirection): Deleted.
1490         (WTF::StringImpl::adopt): Deleted.
1491         (WTF::StringImpl::sizeInBytes): Deleted.
1492         (WTF::putUTF8Triple): Deleted.
1493         (WTF::StringImpl::utf8): Deleted.
1494         * wtf/text/StringImpl.h:
1495         (WTF::StringImpl::isSubString): Deleted.
1496         (WTF::find): Deleted.
1497
1498 2015-03-14  Michael Saboff  <msaboff@apple.com>
1499
1500         Disable Yarr JIT for ARMv7k
1501         https://bugs.webkit.org/show_bug.cgi?id=142645
1502
1503         Rubber stamped by Geoffrey Garen.
1504
1505         Changed the setting of ENABLE_YARR_JIT to be predicated on ENABLED_JIT.
1506
1507         * wtf/Platform.h:
1508
1509 2015-03-14  Michael Saboff  <msaboff@apple.com>
1510
1511         ES6: Add binary and octal literal support
1512         https://bugs.webkit.org/show_bug.cgi?id=142681
1513
1514         Reviewed by Ryosuke Niwa.
1515
1516         * wtf/ASCIICType.h:
1517         (WTF::isASCIIBinaryDigit): New support function.
1518         (WTF::isASCIIOctalDigit): Updated to use logical and (&&) instead of binary and (&).
1519
1520 2015-03-13  Mark Lam  <mark.lam@apple.com>
1521
1522         Replace TCSpinLock with a new WTF::SpinLock based on WTF::Atomic.
1523         <https://webkit.org/b/142674>
1524
1525         Reviewed by Filip Pizlo.
1526
1527         We no longer use TCMalloc in our code, and we now have C++11.  This replaces the
1528         TCMalloc_SpinLock with a new WTF::SpinLock based on WTF::Atomic (which is a
1529         wrapper around std::atomic).
1530
1531         Note that there is a StaticSpinLock and a SpinLock:
1532
1533         1. StaticSpinLock is an alias for SpinLockBase, and its initialization relies on
1534            static / global std:atomic being automatically initialized to 0 at compile time.
1535            Hence, StaticSpinLock should only be used for statics / globals (including
1536            static members of classes / structs).
1537
1538         2. SpinLock is derived from SpinLockBase, and adds a default constructor to
1539            initialize its internal atomic value to 0.  Because SpinLock has a constructor,
1540            it cannot be used for statics / globals.  Objects that want to embed a spin
1541            lock as an instance field should use SpinLock so that it is initialized properly.
1542            std::atomic will not automatically initialize instance fields to 0.  Hence,
1543            StaticSpinLock will not work correctly as instance fields of a class / struct.
1544
1545         * WTF.vcxproj/WTF.vcxproj:
1546         * WTF.vcxproj/WTF.vcxproj.filters:
1547         * WTF.xcodeproj/project.pbxproj:
1548         * wtf/CMakeLists.txt:
1549         * wtf/MetaAllocator.cpp:
1550         (WTF::MetaAllocator::~MetaAllocator):
1551         (WTF::MetaAllocator::MetaAllocator):
1552         * wtf/MetaAllocator.h:
1553         * wtf/SpinLock.h: Added.
1554         (WTF::SpinLockBase::lock):
1555         (WTF::SpinLockBase::unlock):
1556         (WTF::SpinLockBase::isLocked):
1557         (WTF::SpinLockBase::slowLock):
1558         (WTF::SpinLock::SpinLock):
1559         * wtf/TCSpinLock.h: Removed.
1560         * wtf/text/AtomicString.cpp:
1561
1562 2015-03-13  Mark Lam  <mark.lam@apple.com>
1563
1564         Introduce WTF::Atomic to wrap std::atomic for a friendlier CAS.
1565         <https://webkit.org/b/142661>
1566
1567         Reviewed by Filip Pizlo.
1568
1569         The CAS functions provided by std::atomic takes a reference to the expected
1570         value and modifies it if the CAS fails.  However, in a lot of our CAS usage,
1571         we don't want the expected value to change.  The solution to this is to
1572         provide a WTF::Atomic struct that wraps std::atomic, and provide CAS
1573         methods that won't alter the expected value if the CAS fails.
1574
1575         The method names in WTF::Atomic are chosen to be identical to those
1576         in std::atomic so that WTF::Atomic can be a simple drop in replacement
1577         for std::atomic.
1578
1579         Also changed ByteSpinLock to use WTF::Atomic instead of std::atomic.
1580
1581         * wtf/Atomics.h:
1582         (WTF::Atomic::load):
1583         (WTF::Atomic::store):
1584         (WTF::Atomic::compare_exchange_weak):
1585         (WTF::Atomic::compare_exchange_strong):
1586         * wtf/ByteSpinLock.h:
1587         (WTF::ByteSpinLock::ByteSpinLock):
1588         (WTF::ByteSpinLock::lock):
1589
1590 2015-03-12  Filip Pizlo  <fpizlo@apple.com>
1591
1592         Bytecode liveness analysis should have more lambdas and fewer sets
1593         https://bugs.webkit.org/show_bug.cgi?id=142647
1594
1595         Reviewed by Mark Lam.
1596         
1597         Add a method for iterating each set bit in a FastBitVector. Uses a functor as a callback since
1598         this allows for a more efficient algorithm.
1599
1600         * wtf/FastBitVector.h:
1601         (WTF::FastBitVector::forEachSetBit):
1602
1603 2015-03-12  Michael Saboff  <msaboff@apple.com>
1604
1605         Disable Yarr JIT for ARMv7k
1606         https://bugs.webkit.org/show_bug.cgi?id=142645
1607
1608         Reviewed by Oliver Hunt.
1609
1610         Make the setting of ENABLE_YARR_JIT match ENABLE_JIT for ARMv7k.
1611
1612         * wtf/Platform.h:
1613
1614 2015-03-12  Mark Lam  <mark.lam@apple.com>
1615
1616         Change WTF::ByteSpinLock to use std::atomic.
1617         <https://webkit.org/b/142644>
1618
1619         Reviewed by Filip Pizlo.
1620
1621         * wtf/ByteSpinLock.h:
1622         (WTF::ByteSpinLock::ByteSpinLock):
1623         (WTF::ByteSpinLock::lock):
1624         (WTF::ByteSpinLock::unlock):
1625         (WTF::ByteSpinLock::isHeld):
1626
1627 2015-03-12  Csaba Osztrogonác  <ossy@webkit.org>
1628
1629         [ARM][Linux] GC sometimes stuck in an infinite loop if parallel GC is enabled
1630         https://bugs.webkit.org/show_bug.cgi?id=141290
1631
1632         Reviewed by Carlos Garcia Campos.
1633
1634         * wtf/Platform.h: Enable parallel GC after r181319.
1635
1636 2015-03-11  Myles C. Maxfield  <mmaxfield@apple.com>
1637
1638         Use out-of-band messaging for RenderBox::firstLineBaseline() and RenderBox::inlineBlockBaseline()
1639         https://bugs.webkit.org/show_bug.cgi?id=142569
1640
1641         Reviewed by David Hyatt.
1642
1643         Provide a callback to Optional::valueOrCompute() which is evaluated only if necessary.
1644
1645         * wtf/Optional.h:
1646         (WTF::Optional::valueOrCompute):
1647
1648 2015-03-10  Brent Fulgham  <bfulgham@apple.com>
1649
1650         [Win] 17 different JSC tests started to fail in DST
1651         https://bugs.webkit.org/show_bug.cgi?id=142531
1652
1653         Reviewed by Chris Dumez.
1654
1655         The stock 'GetTimeZoneInformation' call does not always match the actual Daylight
1656         Savings calendar. This results in a period of time when these tests fail.
1657
1658         If available, we should take advantage of the new 'GetTimeZoneInformationForYear',
1659         which accesses a dynamic calendar of DST dates, which is presumbably updated by
1660         Microsoft from year-to-year.
1661
1662         * wtf/DateMath.cpp:
1663         (WTF::timeZoneInformationForYearFunction): New function to conditionally access
1664         some Vista (and newer) functionality.
1665         (WTF::calculateUTCOffset): Call new function (if available) to calculate proper UTC
1666         time offset.
1667
1668 2015-03-10  Alex Christensen  <achristensen@webkit.org>
1669
1670         Use unsigned for HashSet size.
1671         https://bugs.webkit.org/show_bug.cgi?id=142518
1672
1673         Reviewed by Benjamin Poulain.
1674
1675         * wtf/HashCountedSet.h:
1676         (WTF::Traits>::size):
1677         (WTF::Traits>::capacity):
1678         * wtf/HashMap.h:
1679         (WTF::X>::size):
1680         (WTF::X>::capacity):
1681         * wtf/HashSet.h:
1682         (WTF::V>::size):
1683         (WTF::V>::capacity):
1684         * wtf/HashTable.h:
1685         (WTF::HashTable::Stats::recordCollisionAtCount):
1686         (WTF::HashTable::Stats::dumpStats):
1687         (WTF::HashTable::size):
1688         (WTF::HashTable::capacity):
1689         (WTF::KeyTraits>::deallocateTable):
1690         (WTF::KeyTraits>::checkTableConsistencyExceptSize):
1691         * wtf/HashTraits.h:
1692         * wtf/ListHashSet.h:
1693         (WTF::U>::size):
1694         (WTF::U>::capacity):
1695
1696 2015-03-10  Said Abou-Hallawa  <sabouhallawa@apple.com>
1697
1698         Remove PassRefPtr from svg/properties classes.
1699         https://bugs.webkit.org/show_bug.cgi?id=142063.
1700
1701         Reviewed by Darin Adler.
1702
1703         * wtf/Ref.h:
1704         (WTF::static_reference_cast): Add a stat_cast function to Ref<>.
1705
1706 2015-03-10  Mark Lam  <mark.lam@apple.com>
1707
1708         [Win] JSC Build Warnings Need to be Resolved.
1709         <https://webkit.org/b/142366>
1710
1711         Reviewed by Brent Fulgham.
1712
1713         * wtf/Compiler.h:
1714         - MSVC also does not have the CONSIDERS_UNREACHABLE_CODE quirk.
1715
1716 2015-03-10  Geoffrey Garen  <ggaren@apple.com>
1717
1718         bmalloc: tryFastMalloc shouldn't crash
1719         https://bugs.webkit.org/show_bug.cgi?id=142443
1720
1721         Reviewed by Sam Weinig.
1722
1723         Rolling back in r181307 with a check for whether bmalloc is enabled, to
1724         avoid crashes when running with ASan and GuardMalloc.
1725
1726         * wtf/FastMalloc.cpp:
1727         (WTF::fastMalloc):
1728         (WTF::fastRealloc):
1729         (WTF::fastAlignedMalloc):
1730         (WTF::tryFastMalloc):
1731         (WTF::tryFastRealloc): Deleted.
1732         * wtf/FastMalloc.h:
1733
1734 2015-03-10  Michael Catanzaro  <mcatanzaro@igalia.com>
1735
1736         GCC: CRASH() should be annotated with NORETURN
1737         https://bugs.webkit.org/show_bug.cgi?id=142524
1738
1739         Reviewed by Anders Carlsson.
1740
1741         Add COMPILER(GCC) to #ifdefs that already exist for Clang.
1742
1743         * wtf/Assertions.cpp:
1744         * wtf/Assertions.h:
1745
1746 2015-03-09  Commit Queue  <commit-queue@webkit.org>
1747
1748         Unreviewed, rolling out r181307.
1749         https://bugs.webkit.org/show_bug.cgi?id=142525
1750
1751         Broke ASan tests (Requested by ap on #webkit).
1752
1753         Reverted changeset:
1754
1755         "bmalloc: tryFastMalloc shouldn't crash"
1756         https://bugs.webkit.org/show_bug.cgi?id=142443
1757         http://trac.webkit.org/changeset/181307
1758
1759 2015-03-09  Geoffrey Garen  <ggaren@apple.com>
1760
1761         bmalloc: tryFastMalloc shouldn't crash
1762         https://bugs.webkit.org/show_bug.cgi?id=142443
1763
1764         Reviewed by Darin Adler.
1765
1766         * wtf/FastMalloc.cpp:
1767         (WTF::fastMalloc):
1768         (WTF::fastRealloc):
1769         (WTF::fastAlignedMalloc): Don't check for null. bmalloc automatically
1770         crashes on allocation failure, and we'd rather not pay for an extra check.
1771
1772         (WTF::tryFastMalloc): Added an opt-out API to return null rather than
1773         crashing, since some clients need this.
1774
1775         (WTF::tryFastRealloc): Deleted. Unused.
1776
1777         * wtf/FastMalloc.h:
1778
1779 2015-03-09  Mark Lam  <mark.lam@apple.com>
1780
1781         8-bit version of weakCompareAndSwap() can cause an infinite loop.
1782         https://webkit.org/b/142513>
1783
1784         Reviewed by Filip Pizlo.
1785
1786         Presently, Bitmap::concurrentTestAndSet() uses the 8-bit version of
1787         weakCompareAndSwap() (which compares and swaps an uint8_t value).
1788         Bitmap::concurrentTestAndSet() has a loop that checks if a bit in the
1789         byte of interest has been set.  If not, it will call the 8-bit CAS
1790         function to set the bit.
1791
1792         Under the covers, for ARM, the 8-bit CAS function actually works with a
1793         32-bit CAS.  The 8-bit CAS will first fetch the 32-bit value in memory
1794         that should contain the 8-bit value, and check if it contains the
1795         expected byte.  If the value in memory doesn't have the expected byte,
1796         it will return early to its caller.  The expectation is that the caller
1797         will reload the byte from memory and call the 8-bit CAS again.
1798
1799         Unfortunately, this code path that returns early does not have a
1800         compiler fence.  Without a compiler fence, the C++ compiler can
1801         optimize away the reloading of the expected byte value, leaving it
1802         unchanged.  As a result, we'll have a infinite loop here that checks a
1803         value that will never change, and the loop will not terminate until the
1804         value changes.
1805
1806         The fix is to eliminate the early return check in the 8-bit CAS, and
1807         have it always call down to the 32-bit CAS.  The 32-bit CAS has a
1808         compiler fence which will prevent this issue.
1809
1810         * wtf/Atomics.h:
1811         (WTF::weakCompareAndSwap):
1812
1813 2015-03-09  Martin Robinson  <mrobinson@igalia.com>
1814
1815         [EFL] Move DispatchQueue to WTF
1816         https://bugs.webkit.org/show_bug.cgi?id=142493
1817
1818         Reviewed by Csaba Osztrogonác.
1819
1820         * wtf/PlatformEfl.cmake: Add DispatchQueue to the source list.
1821         * wtf/efl/DispatchQueueEfl.cpp: Renamed from Source/WebKit2/Platform/efl/DispatchQueueEfl.cpp.
1822         * wtf/efl/DispatchQueueEfl.h: Renamed from Source/WebKit2/Platform/efl/DispatchQueueEfl.h.
1823         * wtf/efl/DispatchQueueWorkItemEfl.h: Renamed from Source/WebKit2/Platform/efl/DispatchQueueWorkItemEfl.h.
1824
1825 2015-03-08  Brent Fulgham  <bfulgham@apple.com>
1826
1827         [Win] WTF::WorkQueue does not balance ref/deref properly
1828         https://bugs.webkit.org/show_bug.cgi?id=142471
1829
1830         Reviewed by Antti Koivisto.
1831
1832         Make sure we deref the count when we execute a function in the
1833         WorkQueue.
1834
1835         * wtf/win/WorkQueueWin.cpp:
1836         (WTF::WorkQueue::performWorkOnRegisteredWorkThread):
1837
1838 2015-03-07  Brent Fulgham  <bfulgham@apple.com>
1839
1840         [Win] Revive WTF::WorkQueue on Windows
1841         https://bugs.webkit.org/show_bug.cgi?id=142432
1842
1843         Reviewed by Darin Adler.
1844
1845         Revive the Windows implementation of WTF::WorkQueue.
1846
1847         * WTF.vcxproj/WTF.vcxproj:
1848         * WTF.vcxproj/WTF.vcxproj.filters:
1849         * wtf/WorkQueue.h:
1850         * wtf/win/WorkItemWin.cpp: Added.
1851         * wtf/win/WorkItemWin.h: Added.
1852         * wtf/win/WorkQueueWin.cpp: Added.
1853
1854 2015-03-06  Geoffrey Garen  <ggaren@apple.com>
1855
1856         Fix crashes seen on the the Windows buildbots after my last patch.
1857
1858         Unreviewed.
1859
1860         * wtf/FastMalloc.cpp:
1861         (WTF::fastAlignedMalloc): Let's pass these arguments in the right order.
1862
1863 2015-03-06  Myles C. Maxfield  <mmaxfield@apple.com>
1864
1865         Crash in -[WebCascadeList objectAtIndex:] + 195
1866         https://bugs.webkit.org/show_bug.cgi?id=141274
1867
1868         Reviewed by David Kilzer.
1869
1870         * wtf/WeakPtr.h:
1871         (WTF::WeakPtrFactory::createWeakPtr): WebCascadeList uses a const FontCascade,
1872         and it calls createWeakPtr() on it. Therefore, createWeakPtr has to be marked
1873         const.
1874         (WTF::WeakPtrFactory::operator=): Removed because it was broken and had no
1875         callers
1876
1877 2015-03-06  Simon Fraser  <simon.fraser@apple.com>
1878
1879         Allow tree dumping functions to be used in release builds by switching a flag
1880         https://bugs.webkit.org/show_bug.cgi?id=142379
1881
1882         Reviewed by Zalan Bujtas.
1883
1884         There are various tree dumping functions that are useful for debugging, and sometimes
1885         you want to be able to use them in release builds. Currently they are surrounded by
1886         #ifndef NDEBUG. Change this to #if ENABLE(TREE_DEBUGGING), which is defined to 0 or 1
1887         in wtf/Platform.h
1888
1889         * wtf/Platform.h:
1890
1891 2015-03-05  Chris Dumez  <cdumez@apple.com>
1892
1893         Regression(r173761): ASSERTION FAILED: !is8Bit() in StringImpl::characters16()
1894         https://bugs.webkit.org/show_bug.cgi?id=142350
1895
1896         Reviewed by Michael Saboff and Benjamin Poulain.
1897
1898         Fix ASSERTION FAILED: !is8Bit() in StringImpl::characters16() from
1899         WTF::equalInner() after r173761. The code was incorrectly assuming that
1900         if stringImpl is 16-bit, then matchString is 16-bit too, which is not
1901         correct.
1902
1903         Also rename WTFString::startsWith() / endsWith() taking an offset to
1904         hasInfixStartingAt() / hasInfixEndingAt() for clarity. It seems odd
1905         to call it startsWith even though it won't technically *start* with
1906         the pattern if the input offset is greater than zero.
1907
1908         Also drop the caseSensitive argument as it is never used (always true
1909         at call sites.
1910
1911         * wtf/text/StringImpl.cpp:
1912         (WTF::equalInner):
1913         (WTF::StringImpl::hasInfixStartingAt):
1914         (WTF::StringImpl::hasInfixEndingAt):
1915         (WTF::StringImpl::startsWith): Deleted.
1916         (WTF::StringImpl::endsWith): Deleted.
1917         * wtf/text/StringImpl.h:
1918         * wtf/text/WTFString.h:
1919         (WTF::String::hasInfixStartingAt):
1920         (WTF::String::hasInfixEndingAt):
1921         (WTF::String::startsWith): Deleted.
1922         (WTF::String::endsWith): Deleted.
1923
1924 2015-03-05  Chris Dumez  <cdumez@apple.com>
1925
1926         NetworkCache efficacy logging is using too much CPU
1927         https://bugs.webkit.org/show_bug.cgi?id=142186
1928         <rdar://problem/19632080>
1929
1930         Reviewed by Antti Koivisto.
1931
1932         * wtf/HashMap.h:
1933         (WTF::copyToVector):
1934         Add copyToVector() utility function for HashMap that uses an std::pair<key, value>
1935         as element type.
1936
1937         * wtf/text/WTFString.h:
1938         (WTF::StringCapture::StringCapture):
1939         (WTF::StringCapture::operator=):
1940         Add default constructor and assignment operator to StringCapture so that
1941         it can be used in a Vector.
1942
1943 2015-03-05  Antti Koivisto  <antti@apple.com>
1944
1945         Support WorkQueue QOS classes on Mavericks
1946         https://bugs.webkit.org/show_bug.cgi?id=142328
1947
1948         Reviewed by Anders Carlsson.
1949
1950         "The priority of a dispatch queue is inherited from its target queue.  In order to
1951         change the priority of a queue created with dispatch_queue_create(), use the
1952         dispatch_get_global_queue() function to obtain a target queue of the desired prior-
1953         ity."
1954
1955         * wtf/cocoa/WorkQueueCocoa.cpp:
1956         (WTF::targetQueueForQOSClass):
1957         (WTF::WorkQueue::platformInitialize):
1958
1959 2015-03-03  Anders Carlsson  <andersca@apple.com>
1960
1961         Remove unused compression code
1962         https://bugs.webkit.org/show_bug.cgi?id=142237
1963
1964         Reviewed by Geoffrey Garen.
1965
1966         * WTF.vcxproj/WTF.vcxproj:
1967         * WTF.vcxproj/WTF.vcxproj.filters:
1968         * WTF.xcodeproj/project.pbxproj:
1969         * wtf/CMakeLists.txt:
1970         * wtf/Compression.cpp: Removed.
1971         * wtf/Compression.h: Removed.
1972
1973 2015-03-02  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1974
1975         [WK2] Remove unnecessary create() factory functions.
1976         https://bugs.webkit.org/show_bug.cgi?id=142161
1977
1978         Reviewed by Chris Dumez.
1979
1980         We can replace some create() factory functions with std::make_unique(). Because
1981         it just returns new instance. Even some of those functions have used std::unique_ptr<>
1982         instead of std::make_unique<>. Fixed all.
1983
1984         * wtf/efl/WorkQueueEfl.cpp:
1985         (WorkQueue::dispatch):
1986
1987 2015-03-02  Filip Pizlo  <fpizlo@apple.com>
1988
1989         DFG compile time measurements should really report milliseconds
1990         https://bugs.webkit.org/show_bug.cgi?id=142209
1991
1992         Reviewed by Benjamin Poulain.
1993         
1994         This bug was introduced because currentTimeMS() calls were converted to
1995         monotonicallyIncreasingTime() calls. Perhaps this bug would be less likely if there was a
1996         monotonicallyIncreasingTimeMS() function available, so this patch adds it.
1997
1998         * wtf/CurrentTime.h:
1999         (WTF::monotonicallyIncreasingTimeMS):
2000
2001 2015-02-27  Darin Adler  <darin@apple.com>
2002
2003         Remove unused PossiblyNull
2004         https://bugs.webkit.org/show_bug.cgi?id=142124
2005
2006         Reviewed by Andreas Kling.
2007
2008         * WTF.vcxproj/WTF.vcxproj: Removed the file.
2009         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
2010         * WTF.xcodeproj/project.pbxproj: Ditto.
2011         * wtf/CMakeLists.txt: Ditto.
2012         * wtf/PossiblyNull.h: Removed.
2013
2014         * wtf/FastMalloc.h: Moved everything to the left.
2015         Moved member functions out of the TryMallocReturnValue class definition.
2016         (WTF::TryMallocReturnValue::operator PossiblyNull<T>): Deleted.
2017         (WTF::TryMallocReturnValue::getValue): Marked inline, changed to work
2018         only with pointer types, not arbitrary non-pointer types.
2019
2020 2015-02-26  Brent Fulgham  <bfulgham@apple.com>
2021
2022         [Win] Make build logs more legible by reducing noise
2023         https://bugs.webkit.org/show_bug.cgi?id=142034
2024
2025         Reviewed by Alexey Proskuryakov.
2026
2027         Modify batch files, makefiles, and DOS commands to remove
2028         uninteresting/unhelpful output.
2029
2030         * WTF.vcxproj/WTFGenerated.make:
2031         * WTF.vcxproj/WTFPreBuild.cmd:
2032         * WTF.vcxproj/copy-files.cmd:
2033
2034 2015-02-26  Landry Breuil  <landry@openbsd.org>
2035
2036         Revert bug 19975, now that gcc 4.7 is required.
2037         https://bugs.webkit.org/show_bug.cgi?id=129927
2038
2039         Reviewed by Andreas Kling.
2040
2041         isfinite() and signbit() are provided by gcc's cmath header.
2042
2043         * wtf/MathExtras.h:
2044
2045 2015-02-26  Csaba Osztrogonác  <ossy@webkit.org>
2046
2047         UNREACHABLE_FOR_PLATFORM() should be release assert
2048         https://bugs.webkit.org/show_bug.cgi?id=141904
2049
2050         Reviewed by Darin Adler.
2051
2052         * wtf/Assertions.h:
2053         (UNREACHABLE_FOR_PLATFORM):
2054
2055 2015-02-25  Filip Pizlo  <fpizlo@apple.com>
2056
2057         Enable concurrent JIT on GTK
2058         https://bugs.webkit.org/show_bug.cgi?id=142007
2059
2060         Reviewed by Benjamin Poulain.
2061
2062         Seems weird that GTK keeps it off. No good reason for that as far as I can tell.
2063
2064         * wtf/Platform.h:
2065
2066 2015-02-23  Brent Fulgham  <bfulgham@apple.com>
2067
2068         WTF::WeakPtr should rename 'forgot' to 'clear' and support nullptr assignment
2069         https://bugs.webkit.org/show_bug.cgi?id=141935
2070
2071         Reviewed by Myles C. Maxfield.
2072
2073         * wtf/WeakPtr.h:
2074         (WTF::WeakPtr::operator=): Added 'nullptr_t' overload.
2075         (WTF::WeakPtr::clear): Renamed from 'forget'
2076         (WTF::WeakPtr::forget): Deleted.
2077
2078 2015-02-23  Brent Fulgham  <bfulgham@apple.com>
2079
2080         WTF::WeakPtr should have a 'forget' method
2081         https://bugs.webkit.org/show_bug.cgi?id=141923
2082
2083         Reviewed by Myles C. Maxfield.
2084
2085         * wtf/WeakPtr.h:
2086         (WTF::WeakPtr::forget): Added.
2087
2088 2015-02-20  Geoffrey Garen  <ggaren@apple.com>
2089
2090         Remove TCMalloc
2091         https://bugs.webkit.org/show_bug.cgi?id=141844
2092
2093         Reviewed by Andreas Kling.
2094
2095         It's unused.
2096
2097         * WTF.vcxproj/WTF.vcxproj:
2098         * WTF.vcxproj/WTF.vcxproj.filters:
2099         * WTF.xcodeproj/project.pbxproj:
2100         * wtf/CMakeLists.txt:
2101         * wtf/FastMalloc.cpp:
2102         (WTF::EntropySource<4>::value): Deleted.
2103         (WTF::EntropySource<8>::value): Deleted.
2104         (WTF::internalEntropyValue): Deleted.
2105         (WTF::freedObjectStartPoison): Deleted.
2106         (WTF::freedObjectEndPoison): Deleted.
2107         (WTF::ClassIndex): Deleted.
2108         (WTF::HardenedSLL::create): Deleted.
2109         (WTF::HardenedSLL::null): Deleted.
2110         (WTF::HardenedSLL::setValue): Deleted.
2111         (WTF::HardenedSLL::value): Deleted.
2112         (WTF::HardenedSLL::operator!): Deleted.
2113         (WTF::HardenedSLL::operator UnspecifiedBoolType): Deleted.
2114         (WTF::HardenedSLL::operator!=): Deleted.
2115         (WTF::HardenedSLL::operator==): Deleted.
2116         (WTF::LgFloor): Deleted.
2117         (WTF::SLL_Next): Deleted.
2118         (WTF::SLL_SetNext): Deleted.
2119         (WTF::SLL_Push): Deleted.
2120         (WTF::SLL_Pop): Deleted.
2121         (WTF::SLL_PopRange): Deleted.
2122         (WTF::SLL_PushRange): Deleted.
2123         (WTF::SizeClass): Deleted.
2124         (WTF::ByteSizeForClass): Deleted.
2125         (WTF::NumMoveSize): Deleted.
2126         (WTF::InitSizeClasses): Deleted.
2127         (WTF::MetaDataAlloc): Deleted.
2128         (WTF::PageHeapAllocator::Init): Deleted.
2129         (WTF::PageHeapAllocator::New): Deleted.
2130         (WTF::PageHeapAllocator::Delete): Deleted.
2131         (WTF::PageHeapAllocator::inuse): Deleted.
2132         (WTF::pages): Deleted.
2133         (WTF::AllocationSize): Deleted.
2134         (WTF::spanInitializerCookie): Deleted.
2135         (WTF::Span::next): Deleted.
2136         (WTF::Span::remoteNext): Deleted.
2137         (WTF::Span::prev): Deleted.
2138         (WTF::Span::setNext): Deleted.
2139         (WTF::Span::setPrev): Deleted.
2140         (WTF::Span::initCookie): Deleted.
2141         (WTF::Span::clearCookie): Deleted.
2142         (WTF::Span::isValid): Deleted.
2143         (WTF::Event): Deleted.
2144         (WTF::NewSpan): Deleted.
2145         (WTF::DeleteSpan): Deleted.
2146         (WTF::DLL_Init): Deleted.
2147         (WTF::DLL_Remove): Deleted.
2148         (WTF::DLL_IsEmpty): Deleted.
2149         (WTF::DLL_Length): Deleted.
2150         (WTF::DLL_Print): Deleted.
2151         (WTF::DLL_Prepend): Deleted.
2152         (WTF::TCMalloc_Central_FreeList::length): Deleted.
2153         (WTF::TCMalloc_Central_FreeList::tc_length): Deleted.
2154         (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects): Deleted.
2155         (WTF::TCMalloc_Central_FreeList::entropy): Deleted.
2156         (WTF::FastMallocZone::goodSize): Deleted.
2157         (WTF::FastMallocZone::check): Deleted.
2158         (WTF::FastMallocZone::print): Deleted.
2159         (WTF::FastMallocZone::log): Deleted.
2160         (WTF::FastMallocZone::forceLock): Deleted.
2161         (WTF::FastMallocZone::forceUnlock): Deleted.
2162         (WTF::FastMallocZone::statistics): Deleted.
2163         (WTF::FastMallocZone::zoneValloc): Deleted.
2164         (WTF::FastMallocZone::zoneDestroy): Deleted.
2165         (WTF::MallocHook::record): Deleted.
2166         (WTF::MallocHook::recordAllocation): Deleted.
2167         (WTF::MallocHook::recordDeallocation): Deleted.
2168         (WTF::MallocHook::init): Deleted.
2169         (WTF::MallocHook::InvokeNewHook): Deleted.
2170         (WTF::MallocHook::InvokeDeleteHook): Deleted.
2171         (WTF::KernelSupportsTLS): Deleted.
2172         (WTF::CheckIfKernelSupportsTLS): Deleted.
2173         (WTF::TCMalloc_PageHeap::GetDescriptor): Deleted.
2174         (WTF::TCMalloc_PageHeap::GetDescriptorEnsureSafe): Deleted.
2175         (WTF::TCMalloc_PageHeap::SystemBytes): Deleted.
2176         (WTF::TCMalloc_PageHeap::FreeBytes): Deleted.
2177         (WTF::TCMalloc_PageHeap::GetSizeClassIfCached): Deleted.
2178         (WTF::TCMalloc_PageHeap::CacheSizeClass): Deleted.
2179         (WTF::TCMalloc_PageHeap::RecordSpan): Deleted.
2180         (WTF::TCMalloc_PageHeap::init): Deleted.
2181         (WTF::TCMalloc_PageHeap::initializeScavenger): Deleted.
2182         (WTF::TCMalloc_PageHeap::isScavengerSuspended): Deleted.
2183         (WTF::TCMalloc_PageHeap::scheduleScavenger): Deleted.
2184         (WTF::TCMalloc_PageHeap::rescheduleScavenger): Deleted.
2185         (WTF::TCMalloc_PageHeap::suspendScavenger): Deleted.
2186         (WTF::TCMalloc_PageHeap::scavengerTimerFired): Deleted.
2187         (WTF::TCMalloc_PageHeap::runScavengerThread): Deleted.
2188         (WTF::TCMalloc_PageHeap::signalScavenger): Deleted.
2189         (WTF::TCMalloc_PageHeap::scavenge): Deleted.
2190         (WTF::TCMalloc_PageHeap::shouldScavenge): Deleted.
2191         (WTF::TCMalloc_PageHeap::New): Deleted.
2192         (WTF::TCMalloc_PageHeap::AllocLarge): Deleted.
2193         (WTF::TCMalloc_PageHeap::Split): Deleted.
2194         (WTF::TCMalloc_PageHeap::Carve): Deleted.
2195         (WTF::mergeDecommittedStates): Deleted.
2196         (WTF::TCMalloc_PageHeap::Delete): Deleted.
2197         (WTF::TCMalloc_PageHeap::IncrementalScavenge): Deleted.
2198         (WTF::TCMalloc_PageHeap::RegisterSizeClass): Deleted.
2199         (WTF::TCMalloc_PageHeap::ReturnedBytes): Deleted.
2200         (WTF::PagesToMB): Deleted.
2201         (WTF::TCMalloc_PageHeap::Dump): Deleted.
2202         (WTF::TCMalloc_PageHeap::GrowHeap): Deleted.
2203         (WTF::TCMalloc_PageHeap::Check): Deleted.
2204         (WTF::TCMalloc_PageHeap::CheckList): Deleted.
2205         (WTF::TCMalloc_PageHeap::ReleaseFreeList): Deleted.
2206         (WTF::TCMalloc_PageHeap::ReleaseFreePages): Deleted.
2207         (WTF::TCMalloc_ThreadCache_FreeList::Init): Deleted.
2208         (WTF::TCMalloc_ThreadCache_FreeList::length): Deleted.
2209         (WTF::TCMalloc_ThreadCache_FreeList::empty): Deleted.
2210         (WTF::TCMalloc_ThreadCache_FreeList::lowwatermark): Deleted.
2211         (WTF::TCMalloc_ThreadCache_FreeList::clear_lowwatermark): Deleted.
2212         (WTF::TCMalloc_ThreadCache_FreeList::Push): Deleted.
2213         (WTF::TCMalloc_ThreadCache_FreeList::PushRange): Deleted.
2214         (WTF::TCMalloc_ThreadCache_FreeList::PopRange): Deleted.
2215         (WTF::TCMalloc_ThreadCache_FreeList::Pop): Deleted.
2216         (WTF::TCMalloc_ThreadCache_FreeList::Validate): Deleted.
2217         (WTF::TCMalloc_ThreadCache_FreeList::enumerateFreeObjects): Deleted.
2218         (WTF::TCMalloc_ThreadCache::freelist_length): Deleted.
2219         (WTF::TCMalloc_ThreadCache::Size): Deleted.
2220         (WTF::TCMalloc_ThreadCache::enumerateFreeObjects): Deleted.
2221         (WTF::getPageHeap): Deleted.
2222         (WTF::fastMallocGoodSize): Deleted.
2223         (WTF::TCMalloc_PageHeap::periodicScavenge): Deleted.
2224         (WTF::TCMalloc_PageHeap::scavengerThread): Deleted.
2225         (WTF::setThreadHeap): Deleted.
2226         (WTF::TCMalloc_Central_FreeList::Init): Deleted.
2227         (WTF::TCMalloc_Central_FreeList::ReleaseListToSpans): Deleted.
2228         (WTF::TCMalloc_Central_FreeList::ReleaseToSpans): Deleted.
2229         (WTF::TCMalloc_Central_FreeList::EvictRandomSizeClass): Deleted.
2230         (WTF::TCMalloc_Central_FreeList::MakeCacheSpace): Deleted.
2231         (WTF::TCMalloc_Central_FreeList::ShrinkCache): Deleted.
2232         (WTF::TCMalloc_Central_FreeList::InsertRange): Deleted.
2233         (WTF::TCMalloc_Central_FreeList::RemoveRange): Deleted.
2234         (WTF::TCMalloc_Central_FreeList::FetchFromSpansSafe): Deleted.
2235         (WTF::TCMalloc_Central_FreeList::FetchFromSpans): Deleted.
2236         (WTF::TCMalloc_Central_FreeList::Populate): Deleted.
2237         (WTF::TCMalloc_ThreadCache::SampleAllocation): Deleted.
2238         (WTF::TCMalloc_ThreadCache::Init): Deleted.
2239         (WTF::TCMalloc_ThreadCache::Cleanup): Deleted.
2240         (WTF::TCMalloc_ThreadCache::Allocate): Deleted.
2241         (WTF::TCMalloc_ThreadCache::Deallocate): Deleted.
2242         (WTF::TCMalloc_ThreadCache::FetchFromCentralCache): Deleted.
2243         (WTF::TCMalloc_ThreadCache::ReleaseToCentralCache): Deleted.
2244         (WTF::TCMalloc_ThreadCache::Scavenge): Deleted.
2245         (WTF::TCMalloc_ThreadCache::PickNextSample): Deleted.
2246         (WTF::TCMalloc_ThreadCache::InitModule): Deleted.
2247         (WTF::TCMalloc_ThreadCache::NewHeap): Deleted.
2248         (WTF::TCMalloc_ThreadCache::GetThreadHeap): Deleted.
2249         (WTF::TCMalloc_ThreadCache::GetCache): Deleted.
2250         (WTF::TCMalloc_ThreadCache::GetCacheIfPresent): Deleted.
2251         (WTF::TCMalloc_ThreadCache::InitTSD): Deleted.
2252         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary): Deleted.
2253         * wtf/TCPackedCache.h: Removed.
2254         * wtf/TCPageMap.h: Removed.
2255         * wtf/TCSystemAlloc.cpp: Removed.
2256         * wtf/TCSystemAlloc.h: Removed.
2257
2258 2015-02-20  Alexey Proskuryakov  <ap@apple.com>
2259
2260         Remove svn:keywords property.
2261
2262         As far as I can tell, the property had no effect on any of these files, but also,
2263         when it has effect it's likely harmful.
2264
2265         * wtf/DecimalNumber.cpp: Removed property svn:keywords.
2266         * wtf/spi/darwin/XPCSPI.h: Removed property svn:keywords.
2267
2268 2015-02-20  Csaba Osztrogonác  <ossy@webkit.org>
2269
2270         EFL URTBF
2271
2272         * wtf/PlatformEfl.cmake:
2273
2274 2015-02-20  Simon Fraser  <simon.fraser@apple.com>
2275
2276         RunLoop::dispatch() should drop the mutex before calling wakeUp().
2277         https://bugs.webkit.org/show_bug.cgi?id=141820
2278
2279         Reviewed by Alexey Proskuryakov.
2280         
2281         RunLoop::wakeUp() calls into CoreFoundation which could take time,
2282         so scope the mutex just to protect m_functionQueue.
2283
2284         * wtf/RunLoop.cpp:
2285         (WTF::RunLoop::dispatch):
2286
2287 2015-02-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2288
2289         Unreviewed, EFL build fix since r180410.
2290
2291         * wtf/PlatformEfl.cmake: Add WEBKIT2/Platform/efl path in order to include DispatchQueueEfl.h.
2292
2293 2015-02-20  Antti Koivisto  <antti@apple.com>
2294
2295         Move WorkQueue from WK2 to WTF
2296         https://bugs.webkit.org/show_bug.cgi?id=141797
2297
2298         Reviewed by Anders Carlsson.
2299
2300         It may be useful in WebCore.
2301
2302         Windows implementation is still missing.
2303
2304         * WTF.xcodeproj/project.pbxproj:
2305         * wtf/CMakeLists.txt:
2306         * wtf/PlatformGTK.cmake:
2307         * wtf/WorkQueue.cpp: Copied from Source/WebKit2/Platform/WorkQueue.cpp.
2308         * wtf/WorkQueue.h: Copied from Source/WebKit2/Platform/WorkQueue.h.
2309         * wtf/cocoa: Added.
2310         * wtf/cocoa/WorkQueueCocoa.cpp: Copied from Source/WebKit2/Platform/mac/WorkQueueMac.cpp.
2311         * wtf/efl/WorkQueueEfl.cpp: Copied from Source/WebKit2/Platform/efl/WorkQueueEfl.cpp.
2312         * wtf/gtk/WorkQueueGtk.cpp: Copied from Source/WebKit2/Platform/gtk/WorkQueueGtk.cpp.
2313
2314 2015-02-13  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2315
2316         [EFL] Enable bmalloc for EFL port 
2317         https://bugs.webkit.org/show_bug.cgi?id=141459
2318
2319         Reviewed by Csaba Osztrogonác.
2320
2321         * wtf/CMakeLists.txt: Remove TCSystemAlloc.cpp/h.
2322         * wtf/FastMalloc.cpp: Enable BMALLOC for EFL port.
2323
2324 2015-02-13  Anders Carlsson  <andersca@apple.com>
2325
2326         Add a move constructor and move assignment operator to Deque
2327         https://bugs.webkit.org/show_bug.cgi?id=141571
2328
2329         Reviewed by Andreas Kling.
2330
2331         * wtf/Deque.h:
2332         (WTF::inlineCapacity>::Deque):
2333         (WTF::=): Deleted.
2334
2335 2015-02-13  Anders Carlsson  <andersca@apple.com>
2336
2337         Add an initializer list constructor to Deque
2338         https://bugs.webkit.org/show_bug.cgi?id=141565
2339
2340         Reviewed by Andreas Kling.
2341
2342         * wtf/Deque.h:
2343         (WTF::inlineCapacity>::Deque):
2344
2345 2015-02-13  Anders Carlsson  <andersca@apple.com>
2346
2347         Re-indent Deque.h
2348
2349         Rubber-stamped by Antti Koivisto.
2350
2351         * wtf/Deque.h:
2352
2353 2015-02-11  Brent Fulgham  <bfulgham@apple.com>
2354
2355         [Win] [64-bit] Work around MSVC2013 Runtime Bug
2356         https://bugs.webkit.org/show_bug.cgi?id=141498
2357         <rdar://problem/19803642>
2358
2359         Reviewed by Anders Carlsson.
2360
2361         Disable FMA3 instruction use in the MSVC math library to
2362         work around a VS2013 runtime crash. We can remove this
2363         workaround when we switch to VS2015.
2364
2365         * WTF.vcxproj/WTF.vcxproj: Add new files.
2366         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
2367         * wtf/win/WTFDLL.cpp: Added.
2368
2369 2015-02-11  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2370
2371         [EFL][GTK] Use bmalloc instead of tcmalloc
2372         https://bugs.webkit.org/show_bug.cgi?id=140162
2373
2374         Reviewed by Carlos Garcia Campos.
2375
2376         * wtf/CMakeLists.txt:
2377         * wtf/FastMalloc.cpp:
2378             Enable bmalloc on GTK ports, but EFL port will enable it when bmalloc supports
2379             memory statistics.
2380
2381 2015-02-10  Darin Adler  <darin@apple.com>
2382
2383         Add the crash-on-failure behavior to bmalloc-based fastMalloc
2384         https://bugs.webkit.org/show_bug.cgi?id=141434
2385
2386         Reviewed by Alexey Proskuryakov.
2387
2388         * wtf/FastMalloc.cpp: Removed unneeded includes.
2389         (WTF::fastMalloc): Added null check and CRASH.
2390         (WTF::fastCalloc): Added overflow checking, null check, and CRASH.
2391         (WTF::fastRealloc): Added null check and CRASH.
2392         (WTF::fastMallocSize): Added FIXME comment.
2393         (WTF::fastMallocGoodSize): Added FIXME comment.
2394         (WTF::fastAlignedMalloc): Added null check and CRASH.
2395         (WTF::tryFastMalloc): Changed to call bmalloc directly instead of
2396         calling fastMalloc, since fastMalloc will now crash on failure.
2397         (WTF::tryFastRealloc): Changed to call bmalloc directly instead of
2398         calling fastRealloc, since fastRealloc will now crash on failure.
2399         (WTF::tryFastCalloc): Added overflow checking.
2400         (WTF::fastMallocStatistics): Added FIXME comment.
2401
2402 2015-02-10  Carlos Garcia Campos  <cgarcia@igalia.com>
2403
2404         [GTK] GMutexLocker build issue
2405         https://bugs.webkit.org/show_bug.cgi?id=141381
2406
2407         Reviewed by Žan Doberšek.
2408
2409         Remove using WTF::GMutexLocker from the header, since newer glib
2410         versions have a GMutexLocker in the public API.
2411
2412         * wtf/gobject/GMutexLocker.h:
2413
2414 2015-02-09  Alexey Proskuryakov  <ap@apple.com>
2415
2416         REGRESSION: tryFastCalloc is no longer "try"
2417         https://bugs.webkit.org/show_bug.cgi?id=141406
2418
2419         Reviewed by Darin Adler.
2420
2421         This causes crashes on some WebKit regression test bots.
2422
2423         * wtf/FastMalloc.cpp: (WTF::tryFastCalloc): Fix what looks like a copy/paste mistake.
2424
2425 2015-02-07  Csaba Osztrogonác  <ossy@webkit.org>
2426
2427         [ARM] GC sometimes stuck in an infinite loop if parallel GC is enabled
2428         https://bugs.webkit.org/show_bug.cgi?id=141290
2429
2430         Reviewed by Anders Carlsson.
2431
2432         * wtf/Platform.h:
2433
2434 2015-02-07  Chris Dumez  <cdumez@apple.com>
2435
2436         Add Vector::removeFirstMatching() / removeAllMatching() methods taking lambda functions
2437         https://bugs.webkit.org/show_bug.cgi?id=141321
2438
2439         Reviewed by Darin Adler.
2440
2441         Add Vector::removeFirstMatching() / removeAllMatching() methods taking
2442         lambda functions to match the element(s) to remove. This simplifies the
2443         code a bit. Vector::removeAllMatching() is also more efficient than the
2444         manual removal alternative.
2445
2446         * wtf/Vector.h:
2447
2448 2015-02-06  Commit Queue  <commit-queue@webkit.org>
2449
2450         Unreviewed, rolling out r179743.
2451         https://bugs.webkit.org/show_bug.cgi?id=141335
2452
2453         caused missing symbols in non-WebKit clients of WTF::Vector
2454         (Requested by kling on #webkit).
2455
2456         Reverted changeset:
2457
2458         "Remove WTF::fastMallocGoodSize()."
2459         https://bugs.webkit.org/show_bug.cgi?id=141020
2460         http://trac.webkit.org/changeset/179743
2461
2462 2015-02-06  Andreas Kling  <akling@apple.com>
2463
2464         Remove WTF::fastMallocGoodSize().
2465         <https://webkit.org/b/141020>
2466
2467         Reviewed by Anders Carlsson.
2468
2469         bmalloc's good-size API just returns exactly whatever you pass it,
2470         so it's of no utility to us anymore.
2471
2472         This gets rid of a bunch of pointless out-of-line calls in Vector
2473         construction and growth.
2474
2475         * wtf/Compression.cpp:
2476         (WTF::GenericCompressedData::create):
2477         * wtf/FastMalloc.cpp:
2478         (WTF::fastMallocGoodSize): Deleted.
2479         * wtf/FastMalloc.h:
2480         * wtf/Vector.h:
2481         (WTF::VectorBufferBase::allocateBuffer):
2482         (WTF::VectorBufferBase::tryAllocateBuffer):
2483         (WTF::VectorBufferBase::reallocateBuffer):
2484
2485 2015-02-05  Youenn Fablet  <youenn.fablet@crf.canon.fr> and Xabier Rodriguez Calvar <calvaris@igalia.com>
2486
2487         [Streams API] Implement a barebone ReadableStream interface
2488         https://bugs.webkit.org/show_bug.cgi?id=141045
2489
2490         Reviewed by Benjamin Poulain.
2491
2492         * wtf/FeatureDefines.h:
2493
2494 2015-02-04  Alexey Proskuryakov  <ap@apple.com>
2495
2496         Optimized equal() functions in StringImpl.h are not ASan compatible
2497         https://bugs.webkit.org/show_bug.cgi?id=141258
2498
2499         Reviewed by Daniel Bates.
2500
2501         * wtf/text/StringImpl.h: (WTF::equal): Add custom implementations for ASan.
2502
2503 2015-02-04  Chris Dumez  <cdumez@apple.com>
2504
2505         Add removeFirst(value) / removeAll(value) methods to WTF::Vector
2506         https://bugs.webkit.org/show_bug.cgi?id=141192
2507
2508         Reviewed by Benjamin Poulain.
2509
2510         Add removeFirst(value) / removeAll(value) convenience methods to
2511         WTF::Vector to reduce complexity a bit at call sites.
2512
2513         I am planning to add overloads for these taking a lambda function for
2514         matching in a follow-up patch as well. I have seen quite a few
2515         Vector::remove(index) call sites that would benefit from it.
2516
2517         * wtf/Vector.h:
2518         (WTF::OverflowHandler>::removeFirst):
2519         (WTF::OverflowHandler>::removeAll):
2520
2521 2015-02-02  Dhi Aurrahman  <diorahman@rockybars.com>
2522
2523         Optimize matchesLangPseudoClass() of :lang()
2524         https://bugs.webkit.org/show_bug.cgi?id=140873
2525
2526         Reviewed by Darin Adler.
2527
2528         Add some basic equality comparison operators.
2529
2530         * wtf/text/StringView.h:
2531         (WTF::operator==):
2532         (WTF::operator!=):
2533         (WTF::equal):
2534         (WTF::equalIgnoringASCIICase):
2535
2536 2015-02-02  Geoffrey Garen  <ggaren@apple.com>
2537
2538         Use FastMalloc (bmalloc) instead of BlockAllocator for GC pages
2539         https://bugs.webkit.org/show_bug.cgi?id=140900
2540
2541         Reviewed by Mark Hahnenberg.
2542
2543         Re-landing just the HandleBlock piece of this patch.
2544
2545         * wtf/FastMalloc.cpp:
2546         (WTF::fastAlignedMalloc):
2547         (WTF::fastAlignedFree):
2548         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2549         * wtf/FastMalloc.h:
2550
2551 2015-02-02  Daniel Bates  <dabates@apple.com>
2552
2553         [iOS] ASSERTION FAILED: m_scriptExecutionContext->isContextThread() in ContextDestructionObserver::observeContext
2554         https://bugs.webkit.org/show_bug.cgi?id=141057
2555         <rdar://problem/19068790>
2556
2557         Reviewed by Alexey Proskuryakov.
2558
2559         * wtf/MainThread.h:
2560         * wtf/mac/MainThreadMac.mm:
2561         (WTF::callOnWebThreadOrDispatchAsyncOnMainThread): Added.
2562
2563 2015-01-31  Sam Weinig  <sam@webkit.org>
2564
2565         Remove even more Mountain Lion support
2566         https://bugs.webkit.org/show_bug.cgi?id=141124
2567
2568         Reviewed by Alexey Proskuryakov.
2569
2570         * Configurations/Base.xcconfig:
2571         * Configurations/DebugRelease.xcconfig:
2572         * wtf/Assertions.cpp:
2573         * wtf/FeatureDefines.h:
2574         * wtf/Platform.h:
2575
2576 2015-01-31  Commit Queue  <commit-queue@webkit.org>
2577
2578         Unreviewed, rolling out r179426.
2579         https://bugs.webkit.org/show_bug.cgi?id=141119
2580
2581         "caused a memory use regression" (Requested by Guest45 on
2582         #webkit).
2583
2584         Reverted changeset:
2585
2586         "Use FastMalloc (bmalloc) instead of BlockAllocator for GC
2587         pages"
2588         https://bugs.webkit.org/show_bug.cgi?id=140900
2589         http://trac.webkit.org/changeset/179426
2590
2591 2015-01-31  Commit Queue  <commit-queue@webkit.org>
2592
2593         Unreviewed, rolling out r179408.
2594         https://bugs.webkit.org/show_bug.cgi?id=141117
2595
2596         This didn't fully fix the issue (Requested by anttik on
2597         #webkit).
2598
2599         Reverted changeset:
2600
2601         "OSObjectPtr does not work with dispatch_data_t on Maverics"
2602         https://bugs.webkit.org/show_bug.cgi?id=141081
2603         http://trac.webkit.org/changeset/179408
2604
2605 2015-01-30  Yusuke Suzuki  <utatane.tea@gmail.com>
2606
2607         Implement ES6 Symbol
2608         https://bugs.webkit.org/show_bug.cgi?id=140435
2609
2610         Reviewed by Geoffrey Garen.
2611
2612         Introduce new unique string mechanizm into StringImpl.
2613         It is used for implementing Symbol which holds a [[Description]] value.
2614
2615         * wtf/text/AtomicString.h:
2616         (WTF::AtomicString::add):
2617         (WTF::AtomicString::addWithStringTableProvider):
2618
2619         Previously, we checked `isAtomic()` or `!length()`. This guard can filter out EmptyUnique.
2620         But now, we introduced new unique StringImpl. Since it has an actual string value, we need to check `isUnique()`.
2621
2622         * wtf/text/StringImpl.cpp:
2623         (WTF::StringImpl::~StringImpl):
2624         (WTF::StringImpl::createUnique):
2625
2626         In createUnique, we leverage Substring mechanizm to produce a new unique
2627         string from an existing string.
2628
2629         * wtf/text/StringImpl.h:
2630         (WTF::StringImpl::StringImpl):
2631         (WTF::StringImpl::createUniqueEmpty):
2632         (WTF::StringImpl::flagIsUnique):
2633         (WTF::StringImpl::isUnique):
2634         (WTF::StringImpl::setIsAtomic):
2635         (WTF::StringImpl::createEmptyUnique): Deleted.
2636         (WTF::StringImpl::isEmptyUnique): Deleted.
2637
2638         Instead of EmptyUnique, we introduced new flag to StringImpl, `isUnique`.
2639         While EmptyUnique cannot hold any string values except for empty string,
2640         the unique StringImpl can hold any String values.
2641         We fold the Symbol's descriptiveString value here.
2642
2643         * wtf/text/StringStatics.cpp:
2644         (WTF::StringImpl::hashAndFlagsForUnique):
2645         (WTF::StringImpl::hashAndFlagsForEmptyUnique): Deleted.
2646
2647 2015-01-30  Geoffrey Garen  <ggaren@apple.com>
2648
2649         Use FastMalloc (bmalloc) instead of BlockAllocator for GC pages
2650         https://bugs.webkit.org/show_bug.cgi?id=140900
2651
2652         Reviewed by Mark Hahnenberg.
2653
2654         Re-landing just the HandleBlock piece of this patch.
2655
2656         * wtf/FastMalloc.cpp:
2657         (WTF::fastAlignedMalloc):
2658         (WTF::fastAlignedFree):
2659         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2660         * wtf/FastMalloc.h:
2661
2662 2015-01-30  Namhoon Kim  <yanhkim@gmail.com>
2663
2664         Call vsnprintf instead of _vsnprintf in vprintf_stderr_common
2665         https://bugs.webkit.org/show_bug.cgi?id=141078
2666
2667         In windows _vsnprintf api does not place null character
2668         automatically. Simply replace it with vsnprintf. Which is
2669         polyfill to call wtf_vsnprintf in windows.
2670
2671         Reviewed by Brent Fulgham.
2672
2673         * wtf/Assertions.cpp:
2674
2675 2015-01-30  Brian J. Burg  <burg@cs.washington.edu>
2676
2677         Web Inspector: ASSERT in InspectorTimelineAgent::internalStop
2678         https://bugs.webkit.org/show_bug.cgi?id=141039
2679
2680         Reviewed by Timothy Hatcher.
2681
2682         Add messages to Stopwatch assertions, and clean up constructor.
2683
2684         * wtf/Stopwatch.h:
2685         (WTF::Stopwatch::Stopwatch):
2686         (WTF::Stopwatch::start):
2687         (WTF::Stopwatch::stop):
2688
2689 2015-01-30  Chris Dumez  <cdumez@apple.com>
2690
2691         Add match_constness<Reference, T> helper struct
2692         https://bugs.webkit.org/show_bug.cgi?id=140905
2693
2694         Reviewed by Benjamin Poulain.
2695
2696         Add match_constness<Reference, T> helper struct to simplify downcast<>()
2697         a bit. The purpose of this helper is to update T's constness to match
2698         Reference's.
2699
2700         * wtf/TypeCasts.h:
2701         (WTF::downcast):
2702
2703 2015-01-30  Chris Dumez  <cdumez@apple.com>
2704
2705         Add assertion in RefPtr's operator*() to make sure we don't dereference nullptr
2706         https://bugs.webkit.org/show_bug.cgi?id=141092
2707
2708         Reviewed by Anders Carlsson.
2709
2710         Add assertion in RefPtr's operator*() to make sure we don't dereference
2711         nullptr.
2712
2713         * wtf/RefPtr.h:
2714         (WTF::RefPtr::operator*):
2715
2716 2015-01-30  Geoffrey Garen  <ggaren@apple.com>
2717
2718         GC marking threads should clear malloc caches
2719         https://bugs.webkit.org/show_bug.cgi?id=141097
2720
2721         Reviewed by Andreas Kling.
2722
2723         Split the scavenging API into per-thread vs global, so that you can
2724         request to scavenge your own thread without scavenging the whole heap.
2725
2726         * wtf/FastMalloc.cpp:
2727         (WTF::releaseFastMallocFreeMemoryForThisThread):
2728         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2729         * wtf/FastMalloc.h:
2730
2731 2015-01-30  Antti Koivisto  <antti@apple.com>
2732
2733         OSObjectPtr does not work with dispatch_data_t on Maverics
2734         https://bugs.webkit.org/show_bug.cgi?id=141081
2735
2736         Reviewed by Pratik Solanki.
2737         
2738         Trying to use OSObjectPtr<dispatch_data_t> throws 
2739         
2740         -[OS_dispatch_data _xref_dispose]: unrecognized selector sent to instance 0
2741
2742         * wtf/OSObjectPtr.h:
2743         (WTF::retainOSObject<dispatch_data_t>):
2744         (WTF::releaseOSObject<dispatch_data_t>):
2745         
2746             Add specialization for dispatch_data_t on Maverics.
2747
2748 2015-01-29  Santosh Mahto  <santoshbit2007@gmail.com>
2749
2750         Refactor String::format to handle unreached va_end.
2751         https://bugs.webkit.org/show_bug.cgi?id=140938
2752
2753         Reviewed by Alexey Proskuryakov.
2754
2755         Now va_end is called for all platform after getting length
2756         of formatted string and again va_start/va_end is called to write
2757         formatted string in buffer. This way it ensure va_end is always
2758         reached for each va_start.
2759
2760         * wtf/text/WTFString.cpp:
2761
2762 2015-01-29  Csaba Osztrogonác  <ossy@webkit.org>
2763
2764         Move HAVE_DTRACE definition back to Platform.h
2765         https://bugs.webkit.org/show_bug.cgi?id=141033
2766
2767         Reviewed by Dan Bernstein.
2768
2769         * wtf/Platform.h:
2770
2771 2015-01-28  Namhoon Kim  <namkim@ea.com>
2772
2773         Windows return -1 when calling vsnprintf with arguments that exceed target buffer size
2774         https://bugs.webkit.org/show_bug.cgi?id=140917
2775
2776         Reviewed by Brent Fulgham.
2777
2778         Fix return value of vsnprintf when windows API return -1 to denote
2779         requested buffer exceeded. Replace return value by calling vscprintf.
2780
2781         * wtf/StringExtras.h:
2782         (snprintf): Fix return value by calling vscprintf when buffer exceeded.
2783         (wtf_vsnprintf): Ditto.
2784
2785 2015-01-28  Geoffrey Garen  <ggaren@apple.com>
2786
2787         Removed fastMallocForbid / fastMallocAllow
2788         https://bugs.webkit.org/show_bug.cgi?id=141012
2789
2790         Reviewed by Mark Hahnenberg.
2791
2792         Removed the forbid / allow API because it is no longer used.
2793
2794         * wtf/FastMalloc.cpp:
2795         (WTF::tryFastMalloc):
2796         (WTF::fastMalloc):
2797         (WTF::tryFastCalloc):
2798         (WTF::fastCalloc):
2799         (WTF::fastFree):
2800         (WTF::tryFastRealloc):
2801         (WTF::fastRealloc):
2802         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2803         (WTF::isForbidden): Deleted.
2804         (WTF::fastMallocForbid): Deleted.
2805         (WTF::fastMallocAllow): Deleted.
2806         (WTF::initializeIsForbiddenKey): Deleted.
2807         * wtf/FastMalloc.h:
2808
2809 2015-01-28  Dana Burkart  <dburkart@apple.com>
2810
2811         Move ASan flag settings from DebugRelease.xcconfig to Base.xcconfig
2812         https://bugs.webkit.org/show_bug.cgi?id=136765
2813
2814         Reviewed by Alexey Proskuryakov.
2815
2816         * Configurations/Base.xcconfig:
2817         * Configurations/DebugRelease.xcconfig:
2818
2819 2015-01-28  Darin Adler  <darin@apple.com>
2820
2821         Fix small leak in Collator
2822         https://bugs.webkit.org/show_bug.cgi?id=140990
2823
2824         Reviewed by Andreas Kling.
2825
2826         * wtf/unicode/icu/CollatorICU.cpp:
2827         (WTF::Collator::Collator): Use fastStrDup instead of strdup.
2828         (WTF::Collator::~Collator): Use fastFree on the collator locale that we
2829         are abandoning. The old code instead just called free on a null pointer.
2830
2831 2015-01-27  Geoffrey Garen  <ggaren@apple.com>
2832
2833         Removed WTF_MALLOC_VALIDATION
2834         https://bugs.webkit.org/show_bug.cgi?id=140958
2835
2836         Reviewed by Anders Carlsson.
2837
2838         I don't think anyone has been using this, and the #ifdefs were driving
2839         me crazy.
2840
2841         We have other options for validation -- like MallocGuardEdges,
2842         MallocCheckHeapEach, MallocScribble, and GuardMalloc.
2843
2844         * wtf/FastMalloc.cpp:
2845         (WTF::tryFastMalloc):
2846         (WTF::fastMalloc):
2847         (WTF::tryFastCalloc):
2848         (WTF::fastCalloc):
2849         (WTF::fastFree):
2850         (WTF::tryFastRealloc):
2851         (WTF::fastRealloc):
2852         (WTF::fastMallocSize):
2853         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2854         (WTF::Internal::fastMallocMatchFailed): Deleted.
2855         * wtf/FastMalloc.h:
2856         (WTF::Internal::fastMallocValidationHeader): Deleted.
2857         (WTF::Internal::fastMallocValidationSuffix): Deleted.
2858         (WTF::Internal::fastMallocMatchValidationType): Deleted.
2859         (WTF::Internal::setFastMallocMatchValidationType): Deleted.
2860         (WTF::fastMallocMatchValidateMalloc): Deleted.
2861         (WTF::fastMallocMatchValidateFree): Deleted.
2862         (WTF::fastMallocValidate): Deleted.
2863
2864 2015-01-27  Commit Queue  <commit-queue@webkit.org>
2865
2866         Unreviewed, rolling out r179192.
2867         https://bugs.webkit.org/show_bug.cgi?id=140953
2868
2869         Caused numerous layout test failures (Requested by mattbaker_
2870         on #webkit).
2871
2872         Reverted changeset:
2873
2874         "Use FastMalloc (bmalloc) instead of BlockAllocator for GC
2875         pages"
2876         https://bugs.webkit.org/show_bug.cgi?id=140900
2877         http://trac.webkit.org/changeset/179192
2878
2879 2015-01-26  Geoffrey Garen  <ggaren@apple.com>
2880
2881         Use FastMalloc (bmalloc) instead of BlockAllocator for GC pages
2882         https://bugs.webkit.org/show_bug.cgi?id=140900
2883
2884         Reviewed by Mark Hahnenberg.
2885
2886         New interface for aligned allocation: fastAlignedMalloc / fastAlignedFree.
2887         We require a special function call on free because Windows.
2888
2889         * wtf/FastMalloc.cpp:
2890         (WTF::fastAlignedMalloc):
2891         (WTF::fastAlignedFree): Do it.
2892
2893         (WTF::do_memalign): Un-ifdef this, since we use it now.
2894
2895         * wtf/FastMalloc.h: Make our new function names visible like the rest
2896         of fastMalloc.
2897
2898 2015-01-26  Brent Fulgham  <bfulgham@apple.com>
2899
2900         [Win] ASSERTION FAILED !m_ptr under AccessibilityController::winAddNotificationListener
2901         https://bugs.webkit.org/show_bug.cgi?id=87426
2902         <rdar://problem/11527899>
2903
2904         Reviewed by Darin Adler.
2905
2906         Revise internal containers to use std::addressof in preference to
2907         to using the '&' operator.
2908
2909         * wtf/Deque.h:
2910         (WTF::inlineCapacity>::append):
2911         (WTF::inlineCapacity>::prepend):
2912         (WTF::inlineCapacity>::removeFirst):
2913         (WTF::inlineCapacity>::removeLast):
2914         (WTF::inlineCapacity>::remove):
2915         (WTF::inlineCapacity>::after):
2916         (WTF::inlineCapacity>::before):
2917         * wtf/GetPtr.h:
2918         * wtf/HashTable.h:
2919         (WTF::HashTableBucketInitializer<false>::initialize):
2920         * wtf/HashTraits.h:
2921         (WTF::SimpleClassHashTraits::constructDeletedValue):
2922         (WTF::CustomHashTraits::constructDeletedValue):
2923         * wtf/ListHashSet.h:
2924         (WTF::ListHashSetConstIterator::get):
2925         * wtf/Vector.h:
2926         (WTF::Vector::swap):
2927         (WTF::OverflowHandler>::append):
2928         (WTF::OverflowHandler>::tryAppend):
2929         (WTF::OverflowHandler>::insert):
2930
2931 2015-01-24  Chris Dumez  <cdumez@apple.com>
2932
2933         Provide implementation for WTF::DefaultHash<bool>
2934         https://bugs.webkit.org/show_bug.cgi?id=140848
2935
2936         Reviewed by Anders Carlsson.
2937
2938         Provide implementation for WTF::DefaultHash<bool> so that we can use
2939         HashMap<std::pair<XXX, bool>> in the code base. Right now, we need to
2940         use some integer type to work around the issue.
2941
2942         * wtf/HashFunctions.h:
2943
2944 2015-01-23  Carlos Garcia Campos  <cgarcia@igalia.com>
2945
2946         [GTK] Add missing null check in some derefGPtr implementations
2947         https://bugs.webkit.org/show_bug.cgi?id=140822
2948
2949         Reviewed by Sergio Villar Senin.
2950
2951         It's missing in GHashTable and GVariant implementations.
2952
2953         * wtf/gobject/GRefPtr.cpp:
2954         (WTF::derefGPtr):
2955
2956 2015-01-23  Carlos Garcia Campos  <cgarcia@igalia.com>
2957
2958         [GTK] Add initial database process support
2959         https://bugs.webkit.org/show_bug.cgi?id=139491
2960
2961         Reviewed by Sergio Villar Senin.
2962
2963         Add support for using GRefPtr with GVariantBuilder.
2964
2965         * wtf/gobject/GRefPtr.cpp:
2966         (WTF::refGPtr):
2967         (WTF::derefGPtr):
2968         * wtf/gobject/GRefPtr.h:
2969         * wtf/gobject/GTypedefs.h:
2970
2971 2015-01-22  Ryosuke Niwa  <rniwa@webkit.org>
2972
2973         Add a build flag for ES6 class syntax
2974         https://bugs.webkit.org/show_bug.cgi?id=140760
2975
2976         Reviewed by Michael Saboff.
2977
2978         * wtf/FeatureDefines.h:
2979
2980 2015-01-21  Csaba Osztrogonác  <ossy@webkit.org>
2981
2982         Remove ENABLE(INSPECTOR) ifdef guards
2983         https://bugs.webkit.org/show_bug.cgi?id=140668
2984
2985         Reviewed by Darin Adler.
2986
2987         * wtf/FeatureDefines.h:
2988
2989 2015-01-20  YunQiang Su  <wzssyqa@gmail.com>
2990
2991         Fix failed to build for Linux/MIPS64EL
2992         https://bugs.webkit.org/show_bug.cgi?id=124370
2993
2994         Reviewed by Darin Adler.
2995
2996         Add MIPS64EL support.
2997
2998         * wtf/Platform.h:
2999         * wtf/dtoa/utils.h:
3000
3001 2015-01-19  Alexey Proskuryakov  <ap@apple.com>
3002
3003         Make ASan do bounds checks for WTF::Vector
3004         https://bugs.webkit.org/show_bug.cgi?id=140631
3005         rdar://problem/19437718
3006
3007         Reviewed by Darin Adler.
3008
3009         * wtf/SizeLimits.cpp: Disable Vector object size checks for ASan enabled builds.
3010
3011         * wtf/Vector.h:
3012         (WTF::VectorBuffer::endOfBuffer):
3013         (WTF::Vector::Vector):
3014         (WTF::Vector::~Vector):
3015         (WTF::Vector::swap):
3016         (WTF::OverflowHandler>::Vector):
3017         (WTF::=):
3018         (WTF::OverflowHandler>::fill):
3019         (WTF::OverflowHandler>::resize):
3020         (WTF::OverflowHandler>::shrink):
3021         (WTF::OverflowHandler>::grow):
3022         (WTF::OverflowHandler>::asanSetInitialBufferSizeTo):
3023         (WTF::OverflowHandler>::asanSetBufferSizeToFullCapacity):
3024         (WTF::OverflowHandler>::asanBufferSizeWillChangeTo):
3025         (WTF::OverflowHandler>::reserveCapacity):
3026         (WTF::OverflowHandler>::tryReserveCapacity):
3027         (WTF::OverflowHandler>::shrinkCapacity):
3028         (WTF::OverflowHandler>::append):
3029         (WTF::OverflowHandler>::tryAppend):
3030         (WTF::OverflowHandler>::appendSlowCase):
3031         (WTF::OverflowHandler>::uncheckedAppend):
3032         (WTF::OverflowHandler>::insert):
3033         (WTF::OverflowHandler>::remove):
3034         (WTF::OverflowHandler>::releaseBuffer):
3035
3036         * wtf/Compiler.h: Changed ASAN_ENABLED macro fallback value from false to 0,
3037         MSVC was not happy with false.
3038
3039 2015-01-20  Csaba Osztrogonác  <ossy@webkit.org>
3040
3041         Remove non-Windows cruft from WebKit/win/Plugins
3042         https://bugs.webkit.org/show_bug.cgi?id=140675
3043
3044         Reviewed by Anders Carlsson.
3045
3046         * wtf/FeatureDefines.h:
3047
3048 2015-01-16  Myles C. Maxfield  <mmaxfield@apple.com>
3049
3050         WeakPtr functions crash when created with default constructor
3051         https://bugs.webkit.org/show_bug.cgi?id=140479
3052
3053         Reviewed by Andreas Kling.
3054
3055         This patch rearranges how WeakPtr works, and has the following ideas behind it:
3056
3057         1. WeakPtr should use Ref internally. This solves the crash by always having a
3058         valid WeakReference.
3059         2. Clients should not be able to construct WeakReferences directly. Instead,
3060         only WeakPtrFactory (and WeakPtr's default constructor) should be able to
3061         construct them. They are considered an implementation detail of WeakPtr.
3062         3. Except for the default constructor, clients should not be able to construct
3063         WeakPtrs directly. Instead, the WeakPtrFactory must construct them. This
3064         guarantees that the WeakPtrs all reference the same WeakReference.
3065         4. Clients can construct a WeakPtr using its default constructor, and then
3066         use the assignment operator to make it non-null. (Or they could use
3067         WeakPtrFactory to make it non-null at creation-time.)
3068         5. No one was using WeakReference::bindTo(), and it doesn't seem useful, so I
3069         removed it.
3070
3071         Tests: WTF_WeakPtr API tests
3072
3073         * wtf/Ref.h:
3074         (WTF::Ref::Ref): Added extra ASSERT()s, and explicitly deleted copy
3075         constructors with a comment.
3076         (WTF::Ref::operator=): Added extra ASSERT()s, and explicitly deleted copy
3077         assignment operators with a comment.
3078         * wtf/WeakPtr.h:
3079         (WTF::WeakReference::clear): Used nullptr.
3080         (WTF::WeakReference::create): Moved to private:
3081         (WTF::WeakPtr::WeakPtr): For the default constructor, initialized the Ref with
3082         a new WeakReference. For the other constructor, moved it to private:. Also added
3083         copy constructors and copy assignment operators (since Ref doesn't have them but
3084         RefPtr does). These constructors/operators are relied upon in various places
3085         throughout WebCore.
3086         (WTF::WeakPtr::operator bool): Made non-explicit.
3087         (WTF::WeakReference::createUnbound): Deleted.
3088         (WTF::WeakReference::bindTo): Deleted.
3089         (WTF::WeakReference::WeakReference): Deleted.
3090         (WTF::WeakPtrFactory::WeakPtrFactory): Deleted.
3091
3092 2015-01-16  Yusuke Suzuki  <utatane.tea@gmail.com>
3093
3094         std::all_of requires complete C++ iterators in GCC 4.8
3095         https://bugs.webkit.org/show_bug.cgi?id=140530
3096
3097         Reviewed by Darin Adler.
3098
3099         In the WebKit2/UIProcess/WebProcessLifetimeObserver.cpp, std::all_of
3100         is used for HashIterators. However, std::all_of requires the complete
3101         C++ iterator interface including iterator_category typedef member and
3102         it raises compile error in GCC 4.8 (and libstdc++) environment.
3103
3104         This patch inherits std::iterator with appropriate type parameters.
3105         It automatically defines required typedefs including iterator_category.
3106
3107         * wtf/HashIterators.h:
3108
3109 2015-01-15  Csaba Osztrogonác  <ossy@webkit.org>
3110
3111         Remove ENABLE(SQL_DATABASE) guards
3112         https://bugs.webkit.org/show_bug.cgi?id=140434
3113
3114         Reviewed by Darin Adler.
3115
3116         * wtf/FeatureDefines.h:
3117
3118 2015-01-14  Csaba Osztrogonác  <ossy@webkit.org>
3119
3120         Unreviewed fix after r163330.
3121
3122         * wtf/Platform.h: Use C style comment.
3123
3124 2015-01-14  Marc Juul  <juul@sudomesh.org>
3125
3126         C++ style comment was preventing compile if CPU(ARM_NEON)
3127         https://bugs.webkit.org/show_bug.cgi?id=133827
3128
3129         Reviewed by Csaba Osztrogonác.
3130
3131         * wtf/Platform.h:
3132
3133 2015-01-13  Chris Dumez  <cdumez@apple.com>
3134
3135         Make WTF::Optional work with msvc 2013
3136         https://bugs.webkit.org/show_bug.cgi?id=140401
3137
3138         Reviewed by Anders Carlsson.
3139
3140         Update the WTF::Optional implementation to use std::aligned_memory and
3141         placement new instead of an unrestricted union because msvc 2013 still
3142         doesn't support unrestricted unions.
3143
3144         This change is a pre-requirement to fix Bug 140347 as this change uses
3145         WTF::Optional with types that have non-trivial copy constructors.
3146
3147         This change is covered by the existing Optional WTF test.
3148
3149         * wtf/Optional.h:
3150
3151 2015-01-11  Sam Weinig  <sam@webkit.org>
3152
3153         Remove support for SharedWorkers
3154         https://bugs.webkit.org/show_bug.cgi?id=140344
3155
3156         Reviewed by Anders Carlsson.
3157
3158         * wtf/FeatureDefines.h:
3159
3160 2015-01-12  Darin Adler  <darin@apple.com>
3161
3162         Modernize and streamline HTMLTokenizer
3163         https://bugs.webkit.org/show_bug.cgi?id=140166
3164
3165         Reviewed by Sam Weinig.
3166
3167         * wtf/Forward.h: Removed PassRef, added OrdinalNumber and TextPosition.
3168
3169 2015-01-09  Commit Queue  <commit-queue@webkit.org>
3170
3171         Unreviewed, rolling out r178154, r178163, and r178164.
3172         https://bugs.webkit.org/show_bug.cgi?id=140292
3173
3174         Still multiple assertion failures on tests (Requested by ap on
3175         #webkit).
3176
3177         Reverted changesets:
3178
3179         "Modernize and streamline HTMLTokenizer"
3180         https://bugs.webkit.org/show_bug.cgi?id=140166
3181         http://trac.webkit.org/changeset/178154
3182
3183         "Unreviewed speculative buildfix after r178154."
3184         http://trac.webkit.org/changeset/178163
3185
3186         "One more unreviewed speculative buildfix after r178154."
3187         http://trac.webkit.org/changeset/178164
3188
3189 2015-01-08  Darin Adler  <darin@apple.com>
3190
3191         Modernize and streamline HTMLTokenizer
3192         https://bugs.webkit.org/show_bug.cgi?id=140166
3193
3194         Reviewed by Sam Weinig.
3195
3196         * wtf/Forward.h: Removed PassRef, added OrdinalNumber and TextPosition.
3197
3198 2015-01-08  Benjamin Poulain  <benjamin@webkit.org>
3199
3200         [WK2] Start a prototype for declarative site specific extensions
3201         https://bugs.webkit.org/show_bug.cgi?id=140160
3202
3203         Reviewed by Andreas Kling.
3204
3205         * wtf/FeatureDefines.h:
3206
3207 2015-01-07  Daniel Bates  <dabates@apple.com>
3208
3209         [iOS] Make WebKit2 build with public iOS SDK and more build fixes for DRT
3210         https://bugs.webkit.org/show_bug.cgi?id=137371
3211
3212         As pointed out by Tim Horton, use C-style comment instead of C++-style comment as
3213         wtf/Compiler.h is included in the sandbox profile and the sandbox profile compiler
3214         doesn't understand C++-style comments.
3215
3216         * wtf/Compiler.h:
3217
3218 2015-01-07  Daniel Bates  <dabates@apple.com>
3219
3220         [iOS] Make WebKit2 build with public iOS SDK and more build fixes for DRT
3221         https://bugs.webkit.org/show_bug.cgi?id=137371
3222
3223         Reviewed by David Kilzer.
3224
3225         Move EXTERN_C_BEGIN and EXTERN_C_END macros from file WebKit2/config.h to here and
3226         rename them to WTF_EXTERN_C_BEGIN and WTF_EXTERN_C_END, respectively, so that we
3227         can make use of these macros in SPI wrapper headers (e.g. UIKitSPI.h).
3228
3229         I'll look to transition existing code to WTF_EXTERN_C_BEGIN/WTF_EXTERN_C_END and
3230         remove EXTERN_C in a subsequent commit(s).
3231
3232         * wtf/Compiler.h:
3233
3234 2015-01-07  Commit Queue  <commit-queue@webkit.org>
3235
3236         Unreviewed, rolling out r178068.
3237         https://bugs.webkit.org/show_bug.cgi?id=140235
3238
3239         Breaks the iOS build (Requested by enrica on #webkit).
3240
3241         Reverted changeset:
3242
3243         "[iOS] Make WebKit2 build with public iOS SDK and more build
3244         fixes for DRT"
3245         https://bugs.webkit.org/show_bug.cgi?id=137371
3246         http://trac.webkit.org/changeset/178068
3247
3248 2015-01-07  Daniel Bates  <dabates@apple.com>
3249
3250         [iOS] Make WebKit2 build with public iOS SDK and more build fixes for DRT
3251         https://bugs.webkit.org/show_bug.cgi?id=137371
3252
3253         Reviewed by David Kilzer.
3254
3255         Move EXTERN_C_BEGIN and EXTERN_C_END macros from file WebKit2/config.h to here and
3256         rename them to WTF_EXTERN_C_BEGIN and WTF_EXTERN_C_END, respectively, so that we
3257         can make use of these macros in SPI wrapper headers (e.g. UIKitSPI.h).
3258
3259         I'll look to transition existing code to WTF_EXTERN_C_BEGIN/WTF_EXTERN_C_END and
3260         remove EXTERN_C in a subsequent commit(s).
3261
3262         * wtf/Compiler.h:
3263
3264 2015-01-07  Brian J. Burg  <burg@cs.washington.edu>
3265
3266         Web Inspector: purge PassRefPtr from Inspector code and use Ref for typed and untyped protocol objects
3267         https://bugs.webkit.org/show_bug.cgi?id=140053
3268
3269         Reviewed by Andreas Kling.
3270
3271         * wtf/Stopwatch.h:
3272         (WTF::Stopwatch::create): Return a Ref.
3273
3274 2015-01-07  Commit Queue  <commit-queue@webkit.org>
3275
3276         Unreviewed, rolling out r178039.
3277         https://bugs.webkit.org/show_bug.cgi?id=140187
3278
3279         Breaks ObjC Inspector Protocol (Requested by JoePeck on
3280         #webkit).
3281
3282         Reverted changeset:
3283
3284         "Web Inspector: purge PassRefPtr from Inspector code and use
3285         Ref for typed and untyped protocol objects"
3286         https://bugs.webkit.org/show_bug.cgi?id=140053
3287         http://trac.webkit.org/changeset/178039
3288
3289 2015-01-06  Brian J. Burg  <burg@cs.washington.edu>
3290
3291         Web Inspector: purge PassRefPtr from Inspector code and use Ref for typed and untyped protocol objects
3292         https://bugs.webkit.org/show_bug.cgi?id=140053
3293
3294         Reviewed by Andreas Kling.
3295
3296         * wtf/Stopwatch.h:
3297         (WTF::Stopwatch::create): Return a Ref.
3298
3299 2015-01-06  Alexey Proskuryakov  <ap@apple.com>
3300
3301         ADDRESS_SANITIZER macro is overloaded
3302         https://bugs.webkit.org/show_bug.cgi?id=140130
3303
3304         Reviewed by Anders Carlsson.
3305
3306         * wtf/Compiler.h: Added an ASAN_ENABLED macro. The abbreviation should become well
3307         known - we already use it in tools.
3308
3309         * wtf/Assertions.h:
3310         * wtf/RefCounted.h:
3311         * wtf/SizeLimits.cpp:
3312         Change the conditional to ENABLE(SECURITY_ASSERTIONS). These checks will be used
3313         in debug builds, and also when one explicitly passes -DENABLE_SECURITY_ASSERTIONS.
3314
3315 2015-01-05  Andreas Kling  <akling@apple.com>
3316
3317         Purge PassRefPtr from Page.
3318         <https://webkit.org/b/140089>
3319
3320         Reviewed by Anders Carlsson.
3321
3322         Make SchedulePair::create() return Ref since it never fails.
3323
3324         * wtf/SchedulePair.h:
3325         (WTF::SchedulePair::create):
3326
3327 2015-01-01  Darin Adler  <darin@apple.com>
3328
3329         Rework code that hides characters in password fields to streamline a little
3330         https://bugs.webkit.org/show_bug.cgi?id=140035
3331
3332         Reviewed by Sam Weinig.
3333
3334         * wtf/text/StringImpl.cpp:
3335         (WTF::StringImpl::fill): Deleted.
3336         * wtf/text/StringImpl.h: Deleted StringImpl::fill.
3337         * wtf/text/WTFString.h:
3338         (WTF::String::fill): Deleted.
3339
3340 2014-12-26  Dan Bernstein  <mitz@apple.com>
3341
3342         Build fix.
3343
3344         Removed use of __builtin_s{add,sub}_overflow introduced in r177729 that was causing a compiler used at Apple to crash because of <rdar://problem/19347133>.
3345
3346         * wtf/SaturatedArithmetic.h:
3347         (signedAddOverflows):
3348         (signedSubtractOverflows):
3349
3350 2014-12-26  Dan Bernstein  <mitz@apple.com>
3351
3352         <rdar://problem/19348208> REGRESSION (r177027): iOS builds use the wrong toolchain
3353         https://bugs.webkit.org/show_bug.cgi?id=139950
3354
3355         Reviewed by David Kilzer.
3356
3357         * Configurations/Base.xcconfig: Only define TOOLCHAINS when building for OS X, doing so
3358         in a manner that works with Xcode 5.1.1.
3359
3360 2014-12-25  Dan Bernstein  <mitz@apple.com>
3361
3362         Try to fix the Windows build after r177733.
3363
3364         * wtf/Ref.h:
3365
3366 2014-12-25  Alexey Proskuryakov  <ap@apple.com>
3367
3368         Simplify saturated integer add/sub
3369         https://bugs.webkit.org/show_bug.cgi?id=139854
3370
3371         Address Darin's post-commit feedback to fix API tests.
3372
3373         * wtf/SaturatedArithmetic.h: (saturatedSubtraction):
3374
3375 2014-12-24  Benjamin Poulain  <benjamin@webkit.org>
3376
3377         Simplify saturated integer add/sub
3378         https://bugs.webkit.org/show_bug.cgi?id=139854
3379
3380         Reviewed by Darin Adler.
3381
3382         * wtf/Compiler.h:
3383         Make a wrapper for __has_builtin for compilers that do not support it.
3384
3385         * wtf/SaturatedArithmetic.h:
3386         (saturatedAddition):
3387         (saturatedSubtraction):
3388         Use the builtins when possible instead of reinventing the wheel.
3389         On ARMv7, use the saturated math instructions.
3390
3391 2014-12-23  Anders Carlsson  <andersca@apple.com>
3392
3393         Move dynamic_objc_cast to RetainPtr.h
3394         https://bugs.webkit.org/show_bug.cgi?id=139915
3395
3396         Reviewed by Sam Weinig.
3397
3398         * wtf/RetainPtr.h:
3399         (WTF::dynamic_objc_cast):
3400
3401 2014-12-23  Anders Carlsson  <andersca@apple.com>
3402
3403         Re-indent RefPtr.h and RetainPtr.h.
3404
3405         Rubber-stamped by Sam Weinig.
3406
3407         * wtf/RefPtr.h:
3408         * wtf/RetainPtr.h:
3409
3410 2014-12-20  Eric Carlson  <eric.carlson@apple.com>
3411
3412         [iOS] add optimized fullscreen API
3413         https://bugs.webkit.org/show_bug.cgi?id=139833
3414         <rdar://problem/18844486>
3415
3416         Reviewed by Simon Fraser.
3417
3418         * wtf/Platform.h: Define ENABLE_VIDEO_PRESENTATION_MODE.
3419
3420 2014-12-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3421
3422         Fix build break on EFL and GTK since r177523
3423         https://bugs.webkit.org/show_bug.cgi?id=139805
3424
3425         Reviewed by Csaba Osztrogonác.
3426
3427         * wtf/Ref.h: Include <wtf/StdLibExtras.h> to use std::exchange().
3428
3429 2014-12-18  Gavin Barraclough  <barraclough@apple.com>
3430
3431         Add strong typing to RefCounter interface, return value as a bool.
3432         https://bugs.webkit.org/show_bug.cgi?id=139776
3433
3434         Unreviewed style fixes.
3435
3436         * wtf/RefCounter.h:
3437         (WTF::=):
3438
3439 2014-12-18  Brent Fulgham  <bfulgham@apple.com>
3440
3441         [Win] Build correction after r177541.
3442
3443         * wtf/RefCounter.h:
3444         (WTF::RefCounter::Token<T>::Token): Revise constructor inlines to correct
3445         syntax error.
3446
3447 2014-12-18  Gavin Barraclough  <barraclough@apple.com>
3448
3449         Add strong typing to RefCounter interface, return value as a bool.
3450         https://bugs.webkit.org/show_bug.cgi?id=139776
3451
3452         Reviewed by Geoff Garen.
3453
3454         Currently all token vended by a RefCounter have the same type - Ref<RefCounter::Count>.
3455         This means there is no compile time type checking to prevent mistakes. Update the count()
3456         method to token<>(), templated on type used to identify the token being returned.
3457         Calls to token<T>() will return a result of type RefCounter::Token<T>.
3458
3459         There are a few problems with the fact the counter will return you an exact count of the
3460         number of outstanding tokens:
3461           - It is desirable to only fire the callback on zero-edge changes; it is more consistent
3462             to do so if the value is only readable as a boolean.
3463           - It is desirable to provide the value as an argument to the callback, however to make
3464             this useful for integer values it is also necessary to indicate the direction of change
3465             (0->1 is often interesting where 2->1 is not).
3466           - There is a mismatch between the precision of returning a count, and the inherent
3467             imprecision of a token based mechanism, where it may be difficult to guarantee
3468             absolutely no unnecessary refcount churn, and thus unintentional counter values.
3469
3470         * wtf/RefCounter.cpp:
3471         (WTF::RefCounter::Count::ref):
3472         (WTF::RefCounter::Count::deref):
3473             - only call the callback on zero-edge changes; provide the value.
3474         (WTF::RefCounter::RefCounter):
3475             - callback now takes a bool argument.
3476         * wtf/RefCounter.h:
3477         (WTF::RefCounter::Token::Token):
3478             - New opaque type to reference the RefCounter::Count.
3479         (WTF::RefCounter::Token::operator!):
3480             - ! operator checks for null / anasigned Tokens.
3481         (WTF::RefCounter::RefCounter):
3482             - callback now takes a bool argument.
3483         (WTF::RefCounter::token):
3484             - renamed from count(), templated on type of token returned.
3485         (WTF::RefCounter::value):
3486             - now returns a bool.
3487         (WTF::RefCounter::Token<T>::Token):
3488         (WTF::=):
3489             - Tokens can be copied & assigned.
3490         (WTF::RefCounter::count): Deleted.
3491             - renamed to token<>().
3492
3493 2014-12-18  Anders Carlsson  <andersca@apple.com>
3494
3495         Simplify smart pointer classes by using std::exchange
3496         https://bugs.webkit.org/show_bug.cgi?id=139790
3497
3498         Reviewed by Andreas Kling.
3499
3500         * wtf/MallocPtr.h:
3501         * wtf/OSObjectPtr.h:
3502         * wtf/OwnPtr.h:
3503         (WTF::OwnPtr<T>::clear):
3504         (WTF::OwnPtr<T>::release):
3505         (WTF::OwnPtr<T>::leakPtr):
3506         (WTF::=):
3507         * wtf/PassOwnPtr.h:
3508         (WTF::PassOwnPtr<T>::leakPtr):
3509         * wtf/PassRefPtr.h:
3510         (WTF::PassRefPtr<T>::leakRef):
3511         * wtf/Ref.h:
3512         * wtf/RefPtr.h:
3513         (WTF::RefPtr<T>::clear):
3514         (WTF::RefPtr<T>::leakRef):
3515         * wtf/RetainPtr.h:
3516         (WTF::RetainPtr<T>::leakRef):
3517
3518 2014-12-18  Anders Carlsson  <andersca@apple.com>
3519
3520         Clean up MachSendRight and add a copySendRight member function
3521         https://bugs.webkit.org/show_bug.cgi?id=139788
3522
3523         Reviewed by Tim Horton.
3524
3525         * wtf/StdLibExtras.h:
3526         (std::exchange):
3527         Add an implementation of std::exchange.
3528
3529 2014-12-17  Chris Dumez  <cdumez@apple.com>
3530
3531         [iOS] Make it possible to toggle FeatureCounter support at runtime
3532         https://bugs.webkit.org/show_bug.cgi?id=139688
3533         <rdar://problem/19266254>
3534
3535         Reviewed by Andreas Kling.
3536
3537         Remove FeatureCounter API from WTF and move it to WebCore/platform
3538         instead so that it can log conditionally based on a WebCore setting.
3539
3540         * WTF.vcxproj/WTF.vcxproj:
3541         * WTF.xcodeproj/project.pbxproj:
3542         * wtf/CMakeLists.txt:
3543
3544 2014-12-17  Brent Fulgham  <bfulgham@apple.com>
3545
3546         [Win] Correct DebugSuffix builds under MSBuild
3547         https://bugs.webkit.org/show_bug.cgi?id=139733
3548         <rdar://problem/19276880>
3549
3550         Reviewed by Simon Fraser.
3551
3552         * WTF.vcxproj/WTF.proj: Make sure to use the '_debug' suffix
3553         when building the DebugSuffix target.
3554
3555 2014-12-17  Anders Carlsson  <andersca@apple.com>
3556
3557         Make Ref::copyRef const and ref-qualified
3558         https://bugs.webkit.org/show_bug.cgi?id=139730
3559
3560         Reviewed by Andreas Kling.
3561
3562         * wtf/Ref.h:
3563
3564 2014-12-16  Daniel Bates  <dabates@apple.com>
3565
3566         [iOS] WTF fails to build with public SDK due to missing header CPAggregateDictionary.h
3567         https://bugs.webkit.org/show_bug.cgi?id=139695
3568
3569         Reviewed by Chris Dumez.
3570
3571         Add USE(APPLE_INTERNAL_SDK)-guard around iOS-specific feature counter implementation
3572         as we are only interested in counting features in builds of iOS WebKit that were built
3573         with the Apple Internal SDK.
3574
3575         * wtf/FeatureCounter.cpp:
3576         * wtf/ios/FeatureCounter.mm:
3577
3578 2014-12-16  Geoffrey Garen  <ggaren@apple.com>
3579
3580         Enable FastMalloc in debug builds
3581         https://bugs.webkit.org/show_bug.cgi?id=139692
3582
3583         Reviewed by Alexey Proskuryakov.
3584
3585         This will give debug builds greater fidelity to the real thing.
3586
3587         FastMalloc now transparently supports all the malloc debugging APIs I
3588         know of by disabling itself at runtime -- and it should be easy to add
3589         support for any APIs I missed -- so there's no need to turn it off in
3590         debug builds.
3591
3592         * wtf/FastMalloc.cpp:
3593
3594 2014-12-16  Anders Carlsson  <andersca@apple.com>
3595
3596         RefPtr::copyRef should be const
3597         https://bugs.webkit.org/show_bug.cgi?id=139689
3598
3599         Reviewed by Andreas Kling.
3600
3601         copyRef() doesn't modify the original object so it should be const.
3602         Also, add a && qualified overload and mark it deleted so that calls to copyRef() where
3603         the object is an rvalue will fail to compile.
3604
3605         * wtf/RefPtr.h:
3606
3607 2014-12-15  Chris Dumez  <cdumez@apple.com>
3608
3609         [iOS] Add feature counting support
3610         https://bugs.webkit.org/show_bug.cgi?id=139652
3611         <rdar://problem/19255690>
3612
3613         Reviewed by Gavin Barraclough.
3614
3615         Add a FeatureCounter API for to log / count when a feature
3616         is used. For now, this is only implementated on iOS.
3617
3618         * WTF.vcxproj/WTF.vcxproj:
3619         * WTF.xcodeproj/project.pbxproj:
3620         * wtf/CMakeLists.txt:
3621         * wtf/FeatureCounter.cpp: Added.
3622         (WTF::incrementFeatureCounterKey):
3623         (WTF::setFeatureCounterKey):
3624         * wtf/FeatureCounter.h: Added.
3625         * wtf/ios/FeatureCounter.mm: Added.
3626         (WTF::incrementFeatureCounterKey):
3627         (WTF::setFeatureCounterKey):
3628
3629 2014-12-12  Anders Carlsson  <andersca@apple.com>
3630
3631         Get rid of the DONT_FINALIZE_ON_MAIN_THREAD #define
3632         https://bugs.webkit.org/show_bug.cgi?id=139613
3633
3634         Reviewed by Sam Weinig.
3635
3636         * wtf/Platform.h:
3637         Remove the #define.
3638
3639 2014-12-15  Commit Queue  <commit-queue@webkit.org>
3640
3641         Unreviewed, rolling out r177284.
3642         https://bugs.webkit.org/show_bug.cgi?id=139658
3643
3644         "Breaks API tests and LayoutTests on Yosemite Debug"
3645         (Requested by msaboff on #webkit).
3646
3647         Reverted changeset:
3648
3649         "Make sure range based iteration of Vector<> still receives
3650         bounds checking"
3651         https://bugs.webkit.org/show_bug.cgi?id=138821
3652         http://trac.webkit.org/changeset/177284
3653
3654 2014-12-15  Andreas Kling  <akling@apple.com>
3655
3656         Purge PassRefPtr from FocusEvent code.
3657         <https://webkit.org/b/139647>
3658
3659         Reviewed by Anders Carlsson.
3660