Rename descendentxxx to descendantxxxx in RenderLayerBacking
[WebKit-https.git] / Source / WTF / ChangeLog
1 2015-01-27  Geoffrey Garen  <ggaren@apple.com>
2
3         Removed WTF_MALLOC_VALIDATION
4         https://bugs.webkit.org/show_bug.cgi?id=140958
5
6         Reviewed by Anders Carlsson.
7
8         I don't think anyone has been using this, and the #ifdefs were driving
9         me crazy.
10
11         We have other options for validation -- like MallocGuardEdges,
12         MallocCheckHeapEach, MallocScribble, and GuardMalloc.
13
14         * wtf/FastMalloc.cpp:
15         (WTF::tryFastMalloc):
16         (WTF::fastMalloc):
17         (WTF::tryFastCalloc):
18         (WTF::fastCalloc):
19         (WTF::fastFree):
20         (WTF::tryFastRealloc):
21         (WTF::fastRealloc):
22         (WTF::fastMallocSize):
23         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
24         (WTF::Internal::fastMallocMatchFailed): Deleted.
25         * wtf/FastMalloc.h:
26         (WTF::Internal::fastMallocValidationHeader): Deleted.
27         (WTF::Internal::fastMallocValidationSuffix): Deleted.
28         (WTF::Internal::fastMallocMatchValidationType): Deleted.
29         (WTF::Internal::setFastMallocMatchValidationType): Deleted.
30         (WTF::fastMallocMatchValidateMalloc): Deleted.
31         (WTF::fastMallocMatchValidateFree): Deleted.
32         (WTF::fastMallocValidate): Deleted.
33
34 2015-01-27  Commit Queue  <commit-queue@webkit.org>
35
36         Unreviewed, rolling out r179192.
37         https://bugs.webkit.org/show_bug.cgi?id=140953
38
39         Caused numerous layout test failures (Requested by mattbaker_
40         on #webkit).
41
42         Reverted changeset:
43
44         "Use FastMalloc (bmalloc) instead of BlockAllocator for GC
45         pages"
46         https://bugs.webkit.org/show_bug.cgi?id=140900
47         http://trac.webkit.org/changeset/179192
48
49 2015-01-26  Geoffrey Garen  <ggaren@apple.com>
50
51         Use FastMalloc (bmalloc) instead of BlockAllocator for GC pages
52         https://bugs.webkit.org/show_bug.cgi?id=140900
53
54         Reviewed by Mark Hahnenberg.
55
56         New interface for aligned allocation: fastAlignedMalloc / fastAlignedFree.
57         We require a special function call on free because Windows.
58
59         * wtf/FastMalloc.cpp:
60         (WTF::fastAlignedMalloc):
61         (WTF::fastAlignedFree): Do it.
62
63         (WTF::do_memalign): Un-ifdef this, since we use it now.
64
65         * wtf/FastMalloc.h: Make our new function names visible like the rest
66         of fastMalloc.
67
68 2015-01-26  Brent Fulgham  <bfulgham@apple.com>
69
70         [Win] ASSERTION FAILED !m_ptr under AccessibilityController::winAddNotificationListener
71         https://bugs.webkit.org/show_bug.cgi?id=87426
72         <rdar://problem/11527899>
73
74         Reviewed by Darin Adler.
75
76         Revise internal containers to use std::addressof in preference to
77         to using the '&' operator.
78
79         * wtf/Deque.h:
80         (WTF::inlineCapacity>::append):
81         (WTF::inlineCapacity>::prepend):
82         (WTF::inlineCapacity>::removeFirst):
83         (WTF::inlineCapacity>::removeLast):
84         (WTF::inlineCapacity>::remove):
85         (WTF::inlineCapacity>::after):
86         (WTF::inlineCapacity>::before):
87         * wtf/GetPtr.h:
88         * wtf/HashTable.h:
89         (WTF::HashTableBucketInitializer<false>::initialize):
90         * wtf/HashTraits.h:
91         (WTF::SimpleClassHashTraits::constructDeletedValue):
92         (WTF::CustomHashTraits::constructDeletedValue):
93         * wtf/ListHashSet.h:
94         (WTF::ListHashSetConstIterator::get):
95         * wtf/Vector.h:
96         (WTF::Vector::swap):
97         (WTF::OverflowHandler>::append):
98         (WTF::OverflowHandler>::tryAppend):
99         (WTF::OverflowHandler>::insert):
100
101 2015-01-24  Chris Dumez  <cdumez@apple.com>
102
103         Provide implementation for WTF::DefaultHash<bool>
104         https://bugs.webkit.org/show_bug.cgi?id=140848
105
106         Reviewed by Anders Carlsson.
107
108         Provide implementation for WTF::DefaultHash<bool> so that we can use
109         HashMap<std::pair<XXX, bool>> in the code base. Right now, we need to
110         use some integer type to work around the issue.
111
112         * wtf/HashFunctions.h:
113
114 2015-01-23  Carlos Garcia Campos  <cgarcia@igalia.com>
115
116         [GTK] Add missing null check in some derefGPtr implementations
117         https://bugs.webkit.org/show_bug.cgi?id=140822
118
119         Reviewed by Sergio Villar Senin.
120
121         It's missing in GHashTable and GVariant implementations.
122
123         * wtf/gobject/GRefPtr.cpp:
124         (WTF::derefGPtr):
125
126 2015-01-23  Carlos Garcia Campos  <cgarcia@igalia.com>
127
128         [GTK] Add initial database process support
129         https://bugs.webkit.org/show_bug.cgi?id=139491
130
131         Reviewed by Sergio Villar Senin.
132
133         Add support for using GRefPtr with GVariantBuilder.
134
135         * wtf/gobject/GRefPtr.cpp:
136         (WTF::refGPtr):
137         (WTF::derefGPtr):
138         * wtf/gobject/GRefPtr.h:
139         * wtf/gobject/GTypedefs.h:
140
141 2015-01-22  Ryosuke Niwa  <rniwa@webkit.org>
142
143         Add a build flag for ES6 class syntax
144         https://bugs.webkit.org/show_bug.cgi?id=140760
145
146         Reviewed by Michael Saboff.
147
148         * wtf/FeatureDefines.h:
149
150 2015-01-21  Csaba Osztrogonác  <ossy@webkit.org>
151
152         Remove ENABLE(INSPECTOR) ifdef guards
153         https://bugs.webkit.org/show_bug.cgi?id=140668
154
155         Reviewed by Darin Adler.
156
157         * wtf/FeatureDefines.h:
158
159 2015-01-20  YunQiang Su  <wzssyqa@gmail.com>
160
161         Fix failed to build for Linux/MIPS64EL
162         https://bugs.webkit.org/show_bug.cgi?id=124370
163
164         Reviewed by Darin Adler.
165
166         Add MIPS64EL support.
167
168         * wtf/Platform.h:
169         * wtf/dtoa/utils.h:
170
171 2015-01-19  Alexey Proskuryakov  <ap@apple.com>
172
173         Make ASan do bounds checks for WTF::Vector
174         https://bugs.webkit.org/show_bug.cgi?id=140631
175         rdar://problem/19437718
176
177         Reviewed by Darin Adler.
178
179         * wtf/SizeLimits.cpp: Disable Vector object size checks for ASan enabled builds.
180
181         * wtf/Vector.h:
182         (WTF::VectorBuffer::endOfBuffer):
183         (WTF::Vector::Vector):
184         (WTF::Vector::~Vector):
185         (WTF::Vector::swap):
186         (WTF::OverflowHandler>::Vector):
187         (WTF::=):
188         (WTF::OverflowHandler>::fill):
189         (WTF::OverflowHandler>::resize):
190         (WTF::OverflowHandler>::shrink):
191         (WTF::OverflowHandler>::grow):
192         (WTF::OverflowHandler>::asanSetInitialBufferSizeTo):
193         (WTF::OverflowHandler>::asanSetBufferSizeToFullCapacity):
194         (WTF::OverflowHandler>::asanBufferSizeWillChangeTo):
195         (WTF::OverflowHandler>::reserveCapacity):
196         (WTF::OverflowHandler>::tryReserveCapacity):
197         (WTF::OverflowHandler>::shrinkCapacity):
198         (WTF::OverflowHandler>::append):
199         (WTF::OverflowHandler>::tryAppend):
200         (WTF::OverflowHandler>::appendSlowCase):
201         (WTF::OverflowHandler>::uncheckedAppend):
202         (WTF::OverflowHandler>::insert):
203         (WTF::OverflowHandler>::remove):
204         (WTF::OverflowHandler>::releaseBuffer):
205
206         * wtf/Compiler.h: Changed ASAN_ENABLED macro fallback value from false to 0,
207         MSVC was not happy with false.
208
209 2015-01-20  Csaba Osztrogonác  <ossy@webkit.org>
210
211         Remove non-Windows cruft from WebKit/win/Plugins
212         https://bugs.webkit.org/show_bug.cgi?id=140675
213
214         Reviewed by Anders Carlsson.
215
216         * wtf/FeatureDefines.h:
217
218 2015-01-16  Myles C. Maxfield  <mmaxfield@apple.com>
219
220         WeakPtr functions crash when created with default constructor
221         https://bugs.webkit.org/show_bug.cgi?id=140479
222
223         Reviewed by Andreas Kling.
224
225         This patch rearranges how WeakPtr works, and has the following ideas behind it:
226
227         1. WeakPtr should use Ref internally. This solves the crash by always having a
228         valid WeakReference.
229         2. Clients should not be able to construct WeakReferences directly. Instead,
230         only WeakPtrFactory (and WeakPtr's default constructor) should be able to
231         construct them. They are considered an implementation detail of WeakPtr.
232         3. Except for the default constructor, clients should not be able to construct
233         WeakPtrs directly. Instead, the WeakPtrFactory must construct them. This
234         guarantees that the WeakPtrs all reference the same WeakReference.
235         4. Clients can construct a WeakPtr using its default constructor, and then
236         use the assignment operator to make it non-null. (Or they could use
237         WeakPtrFactory to make it non-null at creation-time.)
238         5. No one was using WeakReference::bindTo(), and it doesn't seem useful, so I
239         removed it.
240
241         Tests: WTF_WeakPtr API tests
242
243         * wtf/Ref.h:
244         (WTF::Ref::Ref): Added extra ASSERT()s, and explicitly deleted copy
245         constructors with a comment.
246         (WTF::Ref::operator=): Added extra ASSERT()s, and explicitly deleted copy
247         assignment operators with a comment.
248         * wtf/WeakPtr.h:
249         (WTF::WeakReference::clear): Used nullptr.
250         (WTF::WeakReference::create): Moved to private:
251         (WTF::WeakPtr::WeakPtr): For the default constructor, initialized the Ref with
252         a new WeakReference. For the other constructor, moved it to private:. Also added
253         copy constructors and copy assignment operators (since Ref doesn't have them but
254         RefPtr does). These constructors/operators are relied upon in various places
255         throughout WebCore.
256         (WTF::WeakPtr::operator bool): Made non-explicit.
257         (WTF::WeakReference::createUnbound): Deleted.
258         (WTF::WeakReference::bindTo): Deleted.
259         (WTF::WeakReference::WeakReference): Deleted.
260         (WTF::WeakPtrFactory::WeakPtrFactory): Deleted.
261
262 2015-01-16  Yusuke Suzuki  <utatane.tea@gmail.com>
263
264         std::all_of requires complete C++ iterators in GCC 4.8
265         https://bugs.webkit.org/show_bug.cgi?id=140530
266
267         Reviewed by Darin Adler.
268
269         In the WebKit2/UIProcess/WebProcessLifetimeObserver.cpp, std::all_of
270         is used for HashIterators. However, std::all_of requires the complete
271         C++ iterator interface including iterator_category typedef member and
272         it raises compile error in GCC 4.8 (and libstdc++) environment.
273
274         This patch inherits std::iterator with appropriate type parameters.
275         It automatically defines required typedefs including iterator_category.
276
277         * wtf/HashIterators.h:
278
279 2015-01-15  Csaba Osztrogonác  <ossy@webkit.org>
280
281         Remove ENABLE(SQL_DATABASE) guards
282         https://bugs.webkit.org/show_bug.cgi?id=140434
283
284         Reviewed by Darin Adler.
285
286         * wtf/FeatureDefines.h:
287
288 2015-01-14  Csaba Osztrogonác  <ossy@webkit.org>
289
290         Unreviewed fix after r163330.
291
292         * wtf/Platform.h: Use C style comment.
293
294 2015-01-14  Marc Juul  <juul@sudomesh.org>
295
296         C++ style comment was preventing compile if CPU(ARM_NEON)
297         https://bugs.webkit.org/show_bug.cgi?id=133827
298
299         Reviewed by Csaba Osztrogonác.
300
301         * wtf/Platform.h:
302
303 2015-01-13  Chris Dumez  <cdumez@apple.com>
304
305         Make WTF::Optional work with msvc 2013
306         https://bugs.webkit.org/show_bug.cgi?id=140401
307
308         Reviewed by Anders Carlsson.
309
310         Update the WTF::Optional implementation to use std::aligned_memory and
311         placement new instead of an unrestricted union because msvc 2013 still
312         doesn't support unrestricted unions.
313
314         This change is a pre-requirement to fix Bug 140347 as this change uses
315         WTF::Optional with types that have non-trivial copy constructors.
316
317         This change is covered by the existing Optional WTF test.
318
319         * wtf/Optional.h:
320
321 2015-01-11  Sam Weinig  <sam@webkit.org>
322
323         Remove support for SharedWorkers
324         https://bugs.webkit.org/show_bug.cgi?id=140344
325
326         Reviewed by Anders Carlsson.
327
328         * wtf/FeatureDefines.h:
329
330 2015-01-12  Darin Adler  <darin@apple.com>
331
332         Modernize and streamline HTMLTokenizer
333         https://bugs.webkit.org/show_bug.cgi?id=140166
334
335         Reviewed by Sam Weinig.
336
337         * wtf/Forward.h: Removed PassRef, added OrdinalNumber and TextPosition.
338
339 2015-01-09  Commit Queue  <commit-queue@webkit.org>
340
341         Unreviewed, rolling out r178154, r178163, and r178164.
342         https://bugs.webkit.org/show_bug.cgi?id=140292
343
344         Still multiple assertion failures on tests (Requested by ap on
345         #webkit).
346
347         Reverted changesets:
348
349         "Modernize and streamline HTMLTokenizer"
350         https://bugs.webkit.org/show_bug.cgi?id=140166
351         http://trac.webkit.org/changeset/178154
352
353         "Unreviewed speculative buildfix after r178154."
354         http://trac.webkit.org/changeset/178163
355
356         "One more unreviewed speculative buildfix after r178154."
357         http://trac.webkit.org/changeset/178164
358
359 2015-01-08  Darin Adler  <darin@apple.com>
360
361         Modernize and streamline HTMLTokenizer
362         https://bugs.webkit.org/show_bug.cgi?id=140166
363
364         Reviewed by Sam Weinig.
365
366         * wtf/Forward.h: Removed PassRef, added OrdinalNumber and TextPosition.
367
368 2015-01-08  Benjamin Poulain  <benjamin@webkit.org>
369
370         [WK2] Start a prototype for declarative site specific extensions
371         https://bugs.webkit.org/show_bug.cgi?id=140160
372
373         Reviewed by Andreas Kling.
374
375         * wtf/FeatureDefines.h:
376
377 2015-01-07  Daniel Bates  <dabates@apple.com>
378
379         [iOS] Make WebKit2 build with public iOS SDK and more build fixes for DRT
380         https://bugs.webkit.org/show_bug.cgi?id=137371
381
382         As pointed out by Tim Horton, use C-style comment instead of C++-style comment as
383         wtf/Compiler.h is included in the sandbox profile and the sandbox profile compiler
384         doesn't understand C++-style comments.
385
386         * wtf/Compiler.h:
387
388 2015-01-07  Daniel Bates  <dabates@apple.com>
389
390         [iOS] Make WebKit2 build with public iOS SDK and more build fixes for DRT
391         https://bugs.webkit.org/show_bug.cgi?id=137371
392
393         Reviewed by David Kilzer.
394
395         Move EXTERN_C_BEGIN and EXTERN_C_END macros from file WebKit2/config.h to here and
396         rename them to WTF_EXTERN_C_BEGIN and WTF_EXTERN_C_END, respectively, so that we
397         can make use of these macros in SPI wrapper headers (e.g. UIKitSPI.h).
398
399         I'll look to transition existing code to WTF_EXTERN_C_BEGIN/WTF_EXTERN_C_END and
400         remove EXTERN_C in a subsequent commit(s).
401
402         * wtf/Compiler.h:
403
404 2015-01-07  Commit Queue  <commit-queue@webkit.org>
405
406         Unreviewed, rolling out r178068.
407         https://bugs.webkit.org/show_bug.cgi?id=140235
408
409         Breaks the iOS build (Requested by enrica on #webkit).
410
411         Reverted changeset:
412
413         "[iOS] Make WebKit2 build with public iOS SDK and more build
414         fixes for DRT"
415         https://bugs.webkit.org/show_bug.cgi?id=137371
416         http://trac.webkit.org/changeset/178068
417
418 2015-01-07  Daniel Bates  <dabates@apple.com>
419
420         [iOS] Make WebKit2 build with public iOS SDK and more build fixes for DRT
421         https://bugs.webkit.org/show_bug.cgi?id=137371
422
423         Reviewed by David Kilzer.
424
425         Move EXTERN_C_BEGIN and EXTERN_C_END macros from file WebKit2/config.h to here and
426         rename them to WTF_EXTERN_C_BEGIN and WTF_EXTERN_C_END, respectively, so that we
427         can make use of these macros in SPI wrapper headers (e.g. UIKitSPI.h).
428
429         I'll look to transition existing code to WTF_EXTERN_C_BEGIN/WTF_EXTERN_C_END and
430         remove EXTERN_C in a subsequent commit(s).
431
432         * wtf/Compiler.h:
433
434 2015-01-07  Brian J. Burg  <burg@cs.washington.edu>
435
436         Web Inspector: purge PassRefPtr from Inspector code and use Ref for typed and untyped protocol objects
437         https://bugs.webkit.org/show_bug.cgi?id=140053
438
439         Reviewed by Andreas Kling.
440
441         * wtf/Stopwatch.h:
442         (WTF::Stopwatch::create): Return a Ref.
443
444 2015-01-07  Commit Queue  <commit-queue@webkit.org>
445
446         Unreviewed, rolling out r178039.
447         https://bugs.webkit.org/show_bug.cgi?id=140187
448
449         Breaks ObjC Inspector Protocol (Requested by JoePeck on
450         #webkit).
451
452         Reverted changeset:
453
454         "Web Inspector: purge PassRefPtr from Inspector code and use
455         Ref for typed and untyped protocol objects"
456         https://bugs.webkit.org/show_bug.cgi?id=140053
457         http://trac.webkit.org/changeset/178039
458
459 2015-01-06  Brian J. Burg  <burg@cs.washington.edu>
460
461         Web Inspector: purge PassRefPtr from Inspector code and use Ref for typed and untyped protocol objects
462         https://bugs.webkit.org/show_bug.cgi?id=140053
463
464         Reviewed by Andreas Kling.
465
466         * wtf/Stopwatch.h:
467         (WTF::Stopwatch::create): Return a Ref.
468
469 2015-01-06  Alexey Proskuryakov  <ap@apple.com>
470
471         ADDRESS_SANITIZER macro is overloaded
472         https://bugs.webkit.org/show_bug.cgi?id=140130
473
474         Reviewed by Anders Carlsson.
475
476         * wtf/Compiler.h: Added an ASAN_ENABLED macro. The abbreviation should become well
477         known - we already use it in tools.
478
479         * wtf/Assertions.h:
480         * wtf/RefCounted.h:
481         * wtf/SizeLimits.cpp:
482         Change the conditional to ENABLE(SECURITY_ASSERTIONS). These checks will be used
483         in debug builds, and also when one explicitly passes -DENABLE_SECURITY_ASSERTIONS.
484
485 2015-01-05  Andreas Kling  <akling@apple.com>
486
487         Purge PassRefPtr from Page.
488         <https://webkit.org/b/140089>
489
490         Reviewed by Anders Carlsson.
491
492         Make SchedulePair::create() return Ref since it never fails.
493
494         * wtf/SchedulePair.h:
495         (WTF::SchedulePair::create):
496
497 2015-01-01  Darin Adler  <darin@apple.com>
498
499         Rework code that hides characters in password fields to streamline a little
500         https://bugs.webkit.org/show_bug.cgi?id=140035
501
502         Reviewed by Sam Weinig.
503
504         * wtf/text/StringImpl.cpp:
505         (WTF::StringImpl::fill): Deleted.
506         * wtf/text/StringImpl.h: Deleted StringImpl::fill.
507         * wtf/text/WTFString.h:
508         (WTF::String::fill): Deleted.
509
510 2014-12-26  Dan Bernstein  <mitz@apple.com>
511
512         Build fix.
513
514         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>.
515
516         * wtf/SaturatedArithmetic.h:
517         (signedAddOverflows):
518         (signedSubtractOverflows):
519
520 2014-12-26  Dan Bernstein  <mitz@apple.com>
521
522         <rdar://problem/19348208> REGRESSION (r177027): iOS builds use the wrong toolchain
523         https://bugs.webkit.org/show_bug.cgi?id=139950
524
525         Reviewed by David Kilzer.
526
527         * Configurations/Base.xcconfig: Only define TOOLCHAINS when building for OS X, doing so
528         in a manner that works with Xcode 5.1.1.
529
530 2014-12-25  Dan Bernstein  <mitz@apple.com>
531
532         Try to fix the Windows build after r177733.
533
534         * wtf/Ref.h:
535
536 2014-12-25  Alexey Proskuryakov  <ap@apple.com>
537
538         Simplify saturated integer add/sub
539         https://bugs.webkit.org/show_bug.cgi?id=139854
540
541         Address Darin's post-commit feedback to fix API tests.
542
543         * wtf/SaturatedArithmetic.h: (saturatedSubtraction):
544
545 2014-12-24  Benjamin Poulain  <benjamin@webkit.org>
546
547         Simplify saturated integer add/sub
548         https://bugs.webkit.org/show_bug.cgi?id=139854
549
550         Reviewed by Darin Adler.
551
552         * wtf/Compiler.h:
553         Make a wrapper for __has_builtin for compilers that do not support it.
554
555         * wtf/SaturatedArithmetic.h:
556         (saturatedAddition):
557         (saturatedSubtraction):
558         Use the builtins when possible instead of reinventing the wheel.
559         On ARMv7, use the saturated math instructions.
560
561 2014-12-23  Anders Carlsson  <andersca@apple.com>
562
563         Move dynamic_objc_cast to RetainPtr.h
564         https://bugs.webkit.org/show_bug.cgi?id=139915
565
566         Reviewed by Sam Weinig.
567
568         * wtf/RetainPtr.h:
569         (WTF::dynamic_objc_cast):
570
571 2014-12-23  Anders Carlsson  <andersca@apple.com>
572
573         Re-indent RefPtr.h and RetainPtr.h.
574
575         Rubber-stamped by Sam Weinig.
576
577         * wtf/RefPtr.h:
578         * wtf/RetainPtr.h:
579
580 2014-12-20  Eric Carlson  <eric.carlson@apple.com>
581
582         [iOS] add optimized fullscreen API
583         https://bugs.webkit.org/show_bug.cgi?id=139833
584         <rdar://problem/18844486>
585
586         Reviewed by Simon Fraser.
587
588         * wtf/Platform.h: Define ENABLE_VIDEO_PRESENTATION_MODE.
589
590 2014-12-18  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
591
592         Fix build break on EFL and GTK since r177523
593         https://bugs.webkit.org/show_bug.cgi?id=139805
594
595         Reviewed by Csaba Osztrogonác.
596
597         * wtf/Ref.h: Include <wtf/StdLibExtras.h> to use std::exchange().
598
599 2014-12-18  Gavin Barraclough  <barraclough@apple.com>
600
601         Add strong typing to RefCounter interface, return value as a bool.
602         https://bugs.webkit.org/show_bug.cgi?id=139776
603
604         Unreviewed style fixes.
605
606         * wtf/RefCounter.h:
607         (WTF::=):
608
609 2014-12-18  Brent Fulgham  <bfulgham@apple.com>
610
611         [Win] Build correction after r177541.
612
613         * wtf/RefCounter.h:
614         (WTF::RefCounter::Token<T>::Token): Revise constructor inlines to correct
615         syntax error.
616
617 2014-12-18  Gavin Barraclough  <barraclough@apple.com>
618
619         Add strong typing to RefCounter interface, return value as a bool.
620         https://bugs.webkit.org/show_bug.cgi?id=139776
621
622         Reviewed by Geoff Garen.
623
624         Currently all token vended by a RefCounter have the same type - Ref<RefCounter::Count>.
625         This means there is no compile time type checking to prevent mistakes. Update the count()
626         method to token<>(), templated on type used to identify the token being returned.
627         Calls to token<T>() will return a result of type RefCounter::Token<T>.
628
629         There are a few problems with the fact the counter will return you an exact count of the
630         number of outstanding tokens:
631           - It is desirable to only fire the callback on zero-edge changes; it is more consistent
632             to do so if the value is only readable as a boolean.
633           - It is desirable to provide the value as an argument to the callback, however to make
634             this useful for integer values it is also necessary to indicate the direction of change
635             (0->1 is often interesting where 2->1 is not).
636           - There is a mismatch between the precision of returning a count, and the inherent
637             imprecision of a token based mechanism, where it may be difficult to guarantee
638             absolutely no unnecessary refcount churn, and thus unintentional counter values.
639
640         * wtf/RefCounter.cpp:
641         (WTF::RefCounter::Count::ref):
642         (WTF::RefCounter::Count::deref):
643             - only call the callback on zero-edge changes; provide the value.
644         (WTF::RefCounter::RefCounter):
645             - callback now takes a bool argument.
646         * wtf/RefCounter.h:
647         (WTF::RefCounter::Token::Token):
648             - New opaque type to reference the RefCounter::Count.
649         (WTF::RefCounter::Token::operator!):
650             - ! operator checks for null / anasigned Tokens.
651         (WTF::RefCounter::RefCounter):
652             - callback now takes a bool argument.
653         (WTF::RefCounter::token):
654             - renamed from count(), templated on type of token returned.
655         (WTF::RefCounter::value):
656             - now returns a bool.
657         (WTF::RefCounter::Token<T>::Token):
658         (WTF::=):
659             - Tokens can be copied & assigned.
660         (WTF::RefCounter::count): Deleted.
661             - renamed to token<>().
662
663 2014-12-18  Anders Carlsson  <andersca@apple.com>
664
665         Simplify smart pointer classes by using std::exchange
666         https://bugs.webkit.org/show_bug.cgi?id=139790
667
668         Reviewed by Andreas Kling.
669
670         * wtf/MallocPtr.h:
671         * wtf/OSObjectPtr.h:
672         * wtf/OwnPtr.h:
673         (WTF::OwnPtr<T>::clear):
674         (WTF::OwnPtr<T>::release):
675         (WTF::OwnPtr<T>::leakPtr):
676         (WTF::=):
677         * wtf/PassOwnPtr.h:
678         (WTF::PassOwnPtr<T>::leakPtr):
679         * wtf/PassRefPtr.h:
680         (WTF::PassRefPtr<T>::leakRef):
681         * wtf/Ref.h:
682         * wtf/RefPtr.h:
683         (WTF::RefPtr<T>::clear):
684         (WTF::RefPtr<T>::leakRef):
685         * wtf/RetainPtr.h:
686         (WTF::RetainPtr<T>::leakRef):
687
688 2014-12-18  Anders Carlsson  <andersca@apple.com>
689
690         Clean up MachSendRight and add a copySendRight member function
691         https://bugs.webkit.org/show_bug.cgi?id=139788
692
693         Reviewed by Tim Horton.
694
695         * wtf/StdLibExtras.h:
696         (std::exchange):
697         Add an implementation of std::exchange.
698
699 2014-12-17  Chris Dumez  <cdumez@apple.com>
700
701         [iOS] Make it possible to toggle FeatureCounter support at runtime
702         https://bugs.webkit.org/show_bug.cgi?id=139688
703         <rdar://problem/19266254>
704
705         Reviewed by Andreas Kling.
706
707         Remove FeatureCounter API from WTF and move it to WebCore/platform
708         instead so that it can log conditionally based on a WebCore setting.
709
710         * WTF.vcxproj/WTF.vcxproj:
711         * WTF.xcodeproj/project.pbxproj:
712         * wtf/CMakeLists.txt:
713
714 2014-12-17  Brent Fulgham  <bfulgham@apple.com>
715
716         [Win] Correct DebugSuffix builds under MSBuild
717         https://bugs.webkit.org/show_bug.cgi?id=139733
718         <rdar://problem/19276880>
719
720         Reviewed by Simon Fraser.
721
722         * WTF.vcxproj/WTF.proj: Make sure to use the '_debug' suffix
723         when building the DebugSuffix target.
724
725 2014-12-17  Anders Carlsson  <andersca@apple.com>
726
727         Make Ref::copyRef const and ref-qualified
728         https://bugs.webkit.org/show_bug.cgi?id=139730
729
730         Reviewed by Andreas Kling.
731
732         * wtf/Ref.h:
733
734 2014-12-16  Daniel Bates  <dabates@apple.com>
735
736         [iOS] WTF fails to build with public SDK due to missing header CPAggregateDictionary.h
737         https://bugs.webkit.org/show_bug.cgi?id=139695
738
739         Reviewed by Chris Dumez.
740
741         Add USE(APPLE_INTERNAL_SDK)-guard around iOS-specific feature counter implementation
742         as we are only interested in counting features in builds of iOS WebKit that were built
743         with the Apple Internal SDK.
744
745         * wtf/FeatureCounter.cpp:
746         * wtf/ios/FeatureCounter.mm:
747
748 2014-12-16  Geoffrey Garen  <ggaren@apple.com>
749
750         Enable FastMalloc in debug builds
751         https://bugs.webkit.org/show_bug.cgi?id=139692
752
753         Reviewed by Alexey Proskuryakov.
754
755         This will give debug builds greater fidelity to the real thing.
756
757         FastMalloc now transparently supports all the malloc debugging APIs I
758         know of by disabling itself at runtime -- and it should be easy to add
759         support for any APIs I missed -- so there's no need to turn it off in
760         debug builds.
761
762         * wtf/FastMalloc.cpp:
763
764 2014-12-16  Anders Carlsson  <andersca@apple.com>
765
766         RefPtr::copyRef should be const
767         https://bugs.webkit.org/show_bug.cgi?id=139689
768
769         Reviewed by Andreas Kling.
770
771         copyRef() doesn't modify the original object so it should be const.
772         Also, add a && qualified overload and mark it deleted so that calls to copyRef() where
773         the object is an rvalue will fail to compile.
774
775         * wtf/RefPtr.h:
776
777 2014-12-15  Chris Dumez  <cdumez@apple.com>
778
779         [iOS] Add feature counting support
780         https://bugs.webkit.org/show_bug.cgi?id=139652
781         <rdar://problem/19255690>
782
783         Reviewed by Gavin Barraclough.
784
785         Add a FeatureCounter API for to log / count when a feature
786         is used. For now, this is only implementated on iOS.
787
788         * WTF.vcxproj/WTF.vcxproj:
789         * WTF.xcodeproj/project.pbxproj:
790         * wtf/CMakeLists.txt:
791         * wtf/FeatureCounter.cpp: Added.
792         (WTF::incrementFeatureCounterKey):
793         (WTF::setFeatureCounterKey):
794         * wtf/FeatureCounter.h: Added.
795         * wtf/ios/FeatureCounter.mm: Added.
796         (WTF::incrementFeatureCounterKey):
797         (WTF::setFeatureCounterKey):
798
799 2014-12-12  Anders Carlsson  <andersca@apple.com>
800
801         Get rid of the DONT_FINALIZE_ON_MAIN_THREAD #define
802         https://bugs.webkit.org/show_bug.cgi?id=139613
803
804         Reviewed by Sam Weinig.
805
806         * wtf/Platform.h:
807         Remove the #define.
808
809 2014-12-15  Commit Queue  <commit-queue@webkit.org>
810
811         Unreviewed, rolling out r177284.
812         https://bugs.webkit.org/show_bug.cgi?id=139658
813
814         "Breaks API tests and LayoutTests on Yosemite Debug"
815         (Requested by msaboff on #webkit).
816
817         Reverted changeset:
818
819         "Make sure range based iteration of Vector<> still receives
820         bounds checking"
821         https://bugs.webkit.org/show_bug.cgi?id=138821
822         http://trac.webkit.org/changeset/177284
823
824 2014-12-15  Andreas Kling  <akling@apple.com>
825
826         Purge PassRefPtr from FocusEvent code.
827         <https://webkit.org/b/139647>
828
829         Reviewed by Anders Carlsson.
830
831         Add a RefPtr::copyRef() to use when passing a RefPtr to a RefPtr&& without
832         transferring the ownership.
833
834         * wtf/RefPtr.h:
835
836 2014-12-15  Oliver Hunt  <oliver@apple.com>
837
838         Make sure range based iteration of Vector<> still receives bounds checking
839         https://bugs.webkit.org/show_bug.cgi?id=138821
840
841         Reviewed by Mark Lam.
842
843         Add a new IndexedIterator struct to WTF that wraps a
844         Vector type and index to provide pointer like semantics
845         while still performing runtime bounds checking, even in
846         release builds. We store a simple index into the vector
847         which means that this iterator allows vector resizing
848         during iteration. If the vector is resized such that the
849         iterator is out of bounds, then any attempt to dereference
850         the iterator will crash safely.
851
852         For the purpose of retaining semantically equivalent
853         behaviour, the iterator can be moved to m_index == size()
854         as that is the standard "end" terminator for these types.
855         Attempting to dereference at that point will still crash
856         rather than perform an unsafe memory operation.
857
858         By necessity there are many overrides for operator + and - as
859         we otherwise hit many different type promotion ambiguities when
860         performing arithmetic with iterators. These ambiguities are also
861         different for 32- vs. 64-bit, so duplicating the functions
862         and then forwarding to the core implementations that performed
863         the bounds checking and mutation seemed like the right call.
864
865         * WTF.vcxproj/WTF.vcxproj:
866         * WTF.vcxproj/WTF.vcxproj.filters:
867         * WTF.xcodeproj/project.pbxproj:
868         * wtf/IndexedIterator.h: Added.
869         (WTF::IndexedIterator::IndexedIterator):
870         (WTF::IndexedIterator::operator->):
871         (WTF::IndexedIterator::operator*):
872         (WTF::IndexedIterator::get):
873         (WTF::IndexedIterator::operator++):
874         (WTF::IndexedIterator::operator--):
875         (WTF::IndexedIterator::operator UnspecifiedBoolType):
876         (WTF::IndexedIterator::operator-):
877         (WTF::IndexedIterator::operator=):
878         (WTF::IndexedIterator::operator==):
879         (WTF::IndexedIterator::operator!=):
880         (WTF::IndexedIterator::operator<):
881         (WTF::IndexedIterator::operator<=):
882         (WTF::IndexedIterator::operator>):
883         (WTF::IndexedIterator::operator>=):
884         (WTF::IndexedIterator::operator const_iterator):
885         (WTF::IndexedIterator::unsafeGet):
886         (WTF::getPtr):
887         (WTF::operator-):
888         (WTF::operator==):
889         (WTF::operator!=):
890         (WTF::operator<=):
891         (WTF::operator>=):
892         (WTF::operator<):
893         (WTF::operator>):
894         (WTF::IndexedIteratorSelector::makeIterator):
895         (WTF::IndexedIteratorSelector::makeConstIterator):
896         * wtf/RefCountedArray.h:
897         (WTF::RefCountedArray::RefCountedArray):
898         * wtf/Vector.h:
899         (WTF::Vector::Vector):
900         (WTF::Vector::begin):
901         (WTF::Vector::end):
902         (WTF::OverflowHandler>::Vector):
903         (WTF::=):
904         (WTF::OverflowHandler>::fill):
905         (WTF::OverflowHandler>::expandCapacity):
906         (WTF::OverflowHandler>::tryExpandCapacity):
907         (WTF::OverflowHandler>::resize):
908         (WTF::OverflowHandler>::shrink):
909         (WTF::OverflowHandler>::grow):
910         (WTF::OverflowHandler>::reserveCapacity):
911         (WTF::OverflowHandler>::tryReserveCapacity):
912         (WTF::OverflowHandler>::shrinkCapacity):
913         (WTF::OverflowHandler>::append):
914         (WTF::OverflowHandler>::tryAppend):
915         (WTF::OverflowHandler>::appendSlowCase):
916         (WTF::OverflowHandler>::uncheckedAppend):
917         (WTF::OverflowHandler>::appendVector):
918         (WTF::OverflowHandler>::insert):
919         (WTF::OverflowHandler>::insertVector):
920         (WTF::OverflowHandler>::remove):
921
922 2014-12-14  Andreas Kling  <akling@apple.com>
923
924         Minor follow-up tweaks suggested by Darin on bug 139587.
925
926         * wtf/text/WTFString.h:
927         (WTF::String::String):
928
929 2014-12-14  Andreas Kling  <akling@apple.com>
930
931         Replace PassRef with Ref/Ref&& across the board.
932         <https://webkit.org/b/139587>
933
934         Reviewed by Darin Adler.
935
936         Kill the PassRef class and replace it by Ref/Ref&&.
937         Usage is simple:
938
939             - For locals and members, keep using Ref<T>.
940             - For return types, use Ref<T>.
941             - For (ownership-transferring) arguments, use Ref<T>&&.
942
943         When passing to a Ref&&, use WTF::move() to mobilize the value
944         at the call site, e.g:
945
946             void myFunction(Ref<Foo>&&);
947
948             Ref<Foo> myFoo(Foo::create());
949             myFunction(WTF::move(myFoo));
950             // 'myFoo' is invalid from this point forward.
951
952         As you can see, it works a lot like PassRefPtr, but unlike PassRefPtr
953         it won't surprise you by becoming null *unless* you WTF::move it.
954
955         I've also added a Ref::copyRef() for instances where you want to
956         return a Ref *without* transferring ownership, e.g code like:
957
958             Ref<Foo> foo() { return m_foo; }
959
960         ... now becomes ...
961
962             Ref<Foo> foo() { return m_foo.copyRef(); }
963
964         This makes it explicit that a refcount bump will occur.
965
966         Finally, do note that unlike last year's PassRef, Ref&& does not
967         require you to move it to avoid leaking; it will clean itself up.
968
969         * wtf/PassRef.h:
970         (WTF::adopted): Deleted.
971         (WTF::PassRef<T>::PassRef): Deleted.
972         (WTF::PassRef<T>::~PassRef): Deleted.
973         (WTF::PassRef<T>::get): Deleted.
974         (WTF::PassRef<T>::ptr): Deleted.
975         (WTF::PassRef<T>::leakRef): Deleted.
976         (WTF::adoptRef): Deleted.
977         (WTF::createRefCounted): Deleted.
978         * wtf/PassRefPtr.h:
979         (WTF::PassRefPtr::PassRefPtr):
980         * wtf/Ref.h:
981         (WTF::adopted):
982         (WTF::Ref::~Ref):
983         (WTF::Ref::Ref):
984         (WTF::Ref::operator=):
985         (WTF::Ref::operator->):
986         (WTF::Ref::ptr):
987         (WTF::Ref::get):
988         (WTF::Ref::operator T&):
989         (WTF::Ref::operator const T&):
990         (WTF::Ref<T>::replace):
991         (WTF::adoptRef):
992         * wtf/RefCounter.h:
993         (WTF::RefCounter::count):
994         * wtf/RefPtr.h:
995         (WTF::RefPtr::releaseNonNull):
996         (WTF::RefPtr<T>::RefPtr):
997         (WTF::=):
998         * wtf/text/AtomicString.cpp:
999         (WTF::addToStringTable):
1000         (WTF::AtomicString::add):
1001         (WTF::AtomicString::addFromLiteralData):
1002         (WTF::AtomicString::addSlowCase):
1003         * wtf/text/AtomicString.h:
1004         * wtf/text/StringImpl.cpp:
1005         (WTF::StringImpl::createFromLiteral):
1006         (WTF::StringImpl::createWithoutCopying):
1007         (WTF::StringImpl::createUninitializedInternal):
1008         (WTF::StringImpl::createUninitializedInternalNonEmpty):
1009         (WTF::StringImpl::createUninitialized):
1010         (WTF::StringImpl::reallocateInternal):
1011         (WTF::StringImpl::reallocate):
1012         (WTF::StringImpl::createInternal):
1013         (WTF::StringImpl::create):
1014         (WTF::StringImpl::create8BitIfPossible):
1015         (WTF::StringImpl::substring):
1016         (WTF::StringImpl::lower):
1017         (WTF::StringImpl::upper):
1018         (WTF::StringImpl::fill):
1019         (WTF::StringImpl::foldCase):
1020         (WTF::StringImpl::convertToASCIILowercase):
1021         (WTF::StringImpl::stripMatchedCharacters):
1022         (WTF::StringImpl::stripWhiteSpace):
1023         (WTF::StringImpl::removeCharacters):
1024         (WTF::StringImpl::simplifyMatchedCharactersToSpace):
1025         (WTF::StringImpl::simplifyWhiteSpace):
1026         (WTF::StringImpl::replace):
1027         (WTF::StringImpl::adopt):
1028         * wtf/text/StringImpl.h:
1029         (WTF::StringImpl::create8BitIfPossible):
1030         (WTF::StringImpl::create):
1031         (WTF::StringImpl::createSubstringSharingImpl8):
1032         (WTF::StringImpl::createSubstringSharingImpl):
1033         (WTF::StringImpl::createFromLiteral):
1034         (WTF::StringImpl::createEmptyUnique):
1035         (WTF::StringImpl::adopt):
1036         (WTF::StringImpl::replace):
1037         (WTF::StringImpl::constructInternal<LChar>):
1038         (WTF::StringImpl::constructInternal<UChar>):
1039         (WTF::StringImpl::isolatedCopy):
1040         * wtf/text/WTFString.h:
1041         (WTF::String::String):
1042
1043 2014-12-10  Geoffrey Garen  <ggaren@apple.com>
1044
1045         Please disable the webkitFirstVersionWithInitConstructorSupport check on Apple TV
1046         https://bugs.webkit.org/show_bug.cgi?id=139501
1047
1048         Reviewed by Gavin Barraclough.
1049
1050         Added a platform definition for APPLETV.
1051
1052         (It's not an OS because it's not mutually exclusive with other OS definitions.)
1053
1054         * wtf/Platform.h:
1055
1056 2014-12-10  Martin Robinson  <mrobinson@igalia.com>
1057
1058         [GTK] Add support for text-decoration-skip
1059         https://bugs.webkit.org/show_bug.cgi?id=131540
1060
1061         Reviewed by Gustavo Noronha Silva.
1062
1063         * wtf/Platform.h: Enable text decoration skip by default.
1064
1065 2014-12-09  David Kilzer  <ddkilzer@apple.com>
1066
1067         Switch from using PLATFORM_NAME to SDK selectors in ANGLE, bmalloc, gtest, JavaScriptCore, WTF
1068         <http://webkit.org/b/139212>
1069
1070         Reviewed by Joseph Pecoraro.
1071
1072         * Configurations/Base.xcconfig:
1073         - Only set GCC_ENABLE_OBJC_GC, GCC_MODEL_TUNING and TOOLCHAINS
1074           on OS X.
1075         * Configurations/DebugRelease.xcconfig:
1076         - Only set MACOSX_DEPLOYMENT_TARGET and SDKROOT on OS X.
1077
1078 2014-12-09  Dean Jackson  <dino@apple.com>
1079
1080         [Apple] Use Accelerate framework to speed-up FEGaussianBlur
1081         https://bugs.webkit.org/show_bug.cgi?id=139310
1082
1083         Unreviewed followup, after comments by Andreas Kling.
1084
1085         It was pointed out that we already have a USE(ACCELERATE), so
1086         we don't need a HAVE(ACCELERATE) :)
1087
1088         * wtf/Platform.h:
1089
1090 2014-12-09  Alberto Garcia  <berto@igalia.com>
1091
1092         Undefined Symbol build error "_objc_registerThreadWithCollector" when building WebKit GTK Mac OS X on Snow Leopard
1093         https://bugs.webkit.org/show_bug.cgi?id=58737
1094
1095         Reviewed by Darin Adler.
1096
1097         Replace OS(MAC_OS_X) with PLATFORM(MAC) to prevent using
1098         osx-specific code in WebKitGTK+ builds.
1099
1100         * wtf/ThreadingPthreads.cpp:
1101         (WTF::initializeCurrentThreadInternal):
1102
1103 2014-12-08  Dean Jackson  <dino@apple.com>
1104
1105         [Apple] Use Accelerate framework to speed-up FEGaussianBlur
1106         https://bugs.webkit.org/show_bug.cgi?id=139310
1107         <rdar://problem/18434594>
1108
1109         Reviewed by Simon Fraser.
1110
1111         Add a HAVE_ACCELERATE flag, true on Apple platforms.
1112
1113         * wtf/Platform.h:
1114
1115 2014-12-08  Myles C. Maxfield  <mmaxfield@apple.com>
1116
1117         Fix iOS build after r176971.
1118
1119         I had previously modified the WTF forwarding header instead of modifying the real source.
1120
1121         * wtf/unicode/CharacterNames.h:
1122
1123 2014-12-08  Anders Carlsson  <andersca@apple.com>
1124
1125         Change WTF::currentCPUTime to return std::chrono::microseconds and get rid of currentCPUTimeMS
1126         https://bugs.webkit.org/show_bug.cgi?id=139410
1127
1128         Reviewed by Andreas Kling.
1129
1130         * wtf/CurrentTime.cpp:
1131         (WTF::currentCPUTime):
1132         (WTF::currentCPUTimeMS): Deleted.
1133         * wtf/CurrentTime.h:
1134
1135 2014-12-08  Chris Dumez  <cdumez@apple.com>
1136
1137         Revert r176293 & r176275
1138
1139         Unreviewed, revert r176293 & r176275 changing the Vector API to use unsigned type
1140         instead of size_t. There is some disagreement regarding the long-term direction
1141         of the API and we shouldn’t leave the API partly transitioned to unsigned type
1142         while making a decision.
1143
1144         * wtf/Forward.h:
1145         * wtf/Vector.h:
1146         (WTF::VectorTypeOperations::compare):
1147         (WTF::VectorBufferBase::allocateBuffer):
1148         (WTF::VectorBufferBase::tryAllocateBuffer):
1149         (WTF::VectorBufferBase::shouldReallocateBuffer):
1150         (WTF::VectorBufferBase::reallocateBuffer):
1151         (WTF::VectorBufferBase::capacity):
1152         (WTF::VectorBufferBase::VectorBufferBase):
1153         (WTF::VectorBuffer::VectorBuffer):
1154         (WTF::VectorBuffer::allocateBuffer):
1155         (WTF::VectorBuffer::tryAllocateBuffer):
1156         (WTF::VectorBuffer::shouldReallocateBuffer):
1157         (WTF::VectorBuffer::reallocateBuffer):
1158         (WTF::VectorBuffer::swap):
1159         (WTF::VectorBuffer::swapInlineBuffer):
1160         (WTF::VectorBuffer::swapInlineBuffers):
1161         (WTF::Vector::Vector):
1162         (WTF::Vector::capacity):
1163         (WTF::Vector::at):
1164         (WTF::Vector::operator[]):
1165         (WTF::OverflowHandler>::find):
1166         (WTF::OverflowHandler>::reverseFind):
1167         (WTF::OverflowHandler>::fill):
1168         (WTF::OverflowHandler>::expandCapacity):
1169         (WTF::OverflowHandler>::tryExpandCapacity):
1170         (WTF::OverflowHandler>::resize):
1171         (WTF::OverflowHandler>::resizeToFit):
1172         (WTF::OverflowHandler>::shrink):
1173         (WTF::OverflowHandler>::grow):
1174         (WTF::OverflowHandler>::reserveCapacity):
1175         (WTF::OverflowHandler>::tryReserveCapacity):
1176         (WTF::OverflowHandler>::reserveInitialCapacity):
1177         (WTF::OverflowHandler>::shrinkCapacity):
1178         (WTF::OverflowHandler>::append):
1179         (WTF::OverflowHandler>::tryAppend):
1180         (WTF::OverflowHandler>::insert):
1181         (WTF::OverflowHandler>::insertVector):
1182         (WTF::OverflowHandler>::remove):
1183         (WTF::OverflowHandler>::reverse):
1184         (WTF::OverflowHandler>::checkConsistency):
1185         * wtf/text/AtomicString.h:
1186         * wtf/text/StringImpl.h:
1187         (WTF::StringImpl::adopt):
1188         (WTF::equalIgnoringNullity):
1189         * wtf/text/StringView.h:
1190         (WTF::append):
1191         * wtf/text/WTFString.h:
1192
1193 2014-12-07  Andreas Kling  <akling@apple.com>
1194
1195         Use more PassRef in AtomicString.
1196         <https://webkit.org/b/139319>
1197
1198         Reviewed by Antti Koivisto.
1199
1200         Make a pass over AtomicString and convert functions that return PassRefPtr
1201         into returning RefPtr (where it may be null) and PassRef otherwise.
1202         This allows the compiler to skip null checks in many places.
1203
1204         * wtf/text/AtomicString.cpp:
1205         (WTF::addToStringTable):
1206         (WTF::AtomicString::add):
1207         (WTF::AtomicString::addFromLiteralData):
1208         (WTF::AtomicString::addSlowCase):
1209         * wtf/text/AtomicString.h:
1210         (WTF::AtomicString::add):
1211         (WTF::AtomicString::addWithStringTableProvider):
1212         * wtf/text/cf/AtomicStringCF.cpp:
1213         (WTF::AtomicString::add):
1214
1215 2014-12-05  Roger Fong  <roger_fong@apple.com>
1216
1217         [Win] proj files copying over too many resources..
1218         https://bugs.webkit.org/show_bug.cgi?id=139315.
1219         <rdar://problem/19148278>
1220
1221         Reviewed by Brent Fulgham.
1222
1223         * WTF.vcxproj/WTF.proj: Only copy WTF.dll.
1224
1225 2014-12-05  Andreas Kling  <akling@apple.com>
1226
1227         PassRef should deref on destruction if pointee was not moved.
1228         <https://webkit.org/b/139309>
1229
1230         Reviewed by Antti Koivisto.
1231
1232         Let PassRef become nullptr internally after having WTF::move()'d the pointee.
1233         This means that PassRef is now essentially a PassRefPtr that can only be
1234         constructed with a non-null pointee.
1235
1236         This should make it possible for all ::create()-style construction helpers to
1237         return PassRef, removing a branch in each case.
1238
1239         * wtf/PassRef.h:
1240         (WTF::PassRef<T>::PassRef):
1241         (WTF::PassRef<T>::~PassRef):
1242         (WTF::PassRef<T>::get):
1243         (WTF::PassRef<T>::ptr):
1244         (WTF::PassRef<T>::leakRef):
1245         (WTF::PassRef<T>::dropRef): Deleted.
1246
1247 2014-12-05  Jer Noble  <jer.noble@apple.com>
1248
1249         [WTF] MediaTime should support round-tripping from and to doubles.
1250         https://bugs.webkit.org/show_bug.cgi?id=139248
1251
1252         Reviewed by Eric Carlson.
1253
1254         MediaTimes should be able to return precisely the same double value as was used
1255         when the MediaTime was created, so long as that MediaTime was not modified in a
1256         non-destructive way. This will allow API which accepts floating-point values to
1257         return the exact same value when asked, but still be able to store that value
1258         as a MediaTime.
1259
1260         * wtf/MediaTime.cpp:
1261         (WTF::MediaTime::createWithFloat): Added; store the floating-point value in a union.
1262         (WTF::MediaTime::createWithDouble): Ditto.
1263         (WTF::MediaTime::toFloat): If the value is a double, just return it.
1264         (WTF::MediaTime::toDouble): Ditto.
1265         (WTF::MediaTime::operator+): Special case when one or both sides are doubles.
1266         (WTF::MediaTime::operator-): Ditto.
1267         (WTF::MediaTime::operator*): Ditto.
1268         (WTF::MediaTime::compare): Ditto.
1269         (WTF::abs): Ditto.
1270         (WTF::MediaTime::setTimeScale): Convert the MediaTime from a double.
1271
1272 2014-12-05  peavo@outlook.com  <peavo@outlook.com>
1273
1274         [WinCairo] WTF project is missing a GStreamer source file.
1275         https://bugs.webkit.org/show_bug.cgi?id=139296
1276
1277         Reviewed by Philippe Normand.
1278
1279         The WTF project file is missing a GStreamer source file,
1280         causing a link error when compiling with GStreamer enabled.
1281
1282         * WTF.vcxproj/WTF.vcxproj:
1283         * WTF.vcxproj/WTF.vcxproj.filters:
1284
1285 2014-12-04  David Kilzer  <ddkilzer@apple.com>
1286
1287         REGRESSION (r176683): RefCounter.h is installed outside SDKROOT
1288
1289         * WTF.xcodeproj/project.pbxproj: Don't mark RefCounter.h as a
1290         private header.  WTF headers use a special build phase script to
1291         be installed.
1292
1293 2014-12-04  Anders Carlsson  <andersca@apple.com>
1294
1295         Make API::String copy the underlying strings if needed, for thread safety
1296         https://bugs.webkit.org/show_bug.cgi?id=139261
1297
1298         Reviewed by Sam Weinig.
1299
1300         * wtf/RefPtr.h:
1301         (WTF::RefPtr<T>::leakRef):
1302         Add a leakRef() to RefPtr so we don't have to go through PassRefPtr.
1303
1304         * wtf/text/WTFString.cpp:
1305         (WTF::String::isSafeToSendToAnotherThread):
1306         Check if the string is empty before checking whether it's in an atomic string table.
1307         It's safe to send empty strings to other threads even if they're in the atomic string table
1308         since they will never be deallocated.
1309
1310 2014-12-04  Csaba Osztrogonác  <ossy@webkit.org>
1311
1312         Fix cast-align warning in StringImpl.h
1313         https://bugs.webkit.org/show_bug.cgi?id=139222
1314
1315         Reviewed by Anders Carlsson.
1316
1317         * wtf/text/StringImpl.h:
1318         (WTF::StringImpl::tailPointer):
1319
1320 2014-12-02  Mark Lam  <mark.lam@apple.com>
1321
1322         Rolling out r176592, r176603, r176616, and r176705 until build and perf issues are resolved.
1323         https://bugs.webkit.org/show_bug.cgi?id=138821
1324
1325         Not reviewed.
1326
1327         * WTF.vcxproj/WTF.vcxproj:
1328         * WTF.vcxproj/WTF.vcxproj.filters:
1329         * WTF.xcodeproj/project.pbxproj:
1330         * wtf/IndexedIterator.h: Removed.
1331         * wtf/RefCountedArray.h:
1332         (WTF::RefCountedArray::RefCountedArray):
1333         * wtf/Vector.h:
1334         (WTF::Vector::Vector):
1335         (WTF::Vector::begin):
1336         (WTF::Vector::end):
1337         (WTF::OverflowHandler>::Vector):
1338         (WTF::=):
1339         (WTF::OverflowHandler>::fill):
1340         (WTF::OverflowHandler>::expandCapacity):
1341         (WTF::OverflowHandler>::tryExpandCapacity):
1342         (WTF::OverflowHandler>::resize):
1343         (WTF::OverflowHandler>::shrink):
1344         (WTF::OverflowHandler>::grow):
1345         (WTF::OverflowHandler>::reserveCapacity):
1346         (WTF::OverflowHandler>::tryReserveCapacity):
1347         (WTF::OverflowHandler>::shrinkCapacity):
1348         (WTF::OverflowHandler>::append):
1349         (WTF::OverflowHandler>::tryAppend):
1350         (WTF::OverflowHandler>::appendSlowCase):
1351         (WTF::OverflowHandler>::uncheckedAppend):
1352         (WTF::OverflowHandler>::appendVector):
1353         (WTF::OverflowHandler>::insert):
1354         (WTF::OverflowHandler>::insertVector):
1355         (WTF::OverflowHandler>::remove):
1356
1357 2014-12-02  Oliver Hunt  <oliver@apple.com>
1358
1359         Fix IOS builds.
1360
1361         * wtf/IndexedIterator.h:
1362
1363 2014-12-02  Gavin Barraclough  <barraclough@apple.com>
1364
1365         Generalize PageActivityAssertionToken
1366         https://bugs.webkit.org/show_bug.cgi?id=139106
1367
1368         Reviewed by Sam Weinig.
1369
1370         PageActivityAssertionToken is a RAII mechanism implementing a counter, used by PageThrottler
1371         to count user visible activity in progress on the page (currently page load and media playback).
1372         Use of an RAII type is prevents a number of possible errors, including double counting a single
1373         media element, or failing to decrement the count after a media element has been deallocated.
1374
1375         The current implementation has a number of drawbacks that have been addressed by this refactoring:
1376          - specific to single use in PageThrottler class - not reusable.
1377          - incomplete encapsulation - the counter and WeakPtrFactory that comprise the current implementation
1378            are not encapsulated (are in the client type, PageThrottler).
1379          - tokens are not shared - PageActivityAssertionToken instances are managed by std::unique, every
1380            increment requires an object allocation.
1381          - redundancy - the current implementation uses a WeakPtr to safely reference the PageThrottler, this
1382            is internally implemented using a reference counted type, resulting in two counters being
1383            incremented (one in the PageActivityAssertionToken, one in the PageThrottler).
1384
1385         In the reimplementation:
1386          - a callback is provided via a lambda function, which allows for easy reuse without a lot of
1387            boilerplate code.
1388          - the counter, callback and ownership of the otherwise weakly-owned token is encapsulated within the
1389            RefCounter type.
1390          - a single count within RefCounter::Count stores the counter value, and also manage the lifetime
1391            of this object.
1392          - standard RefPtrs are used to manage references to the RefCounter::Count.
1393
1394         * WTF.xcodeproj/project.pbxproj:
1395             - added RefCounter.cpp/.h
1396         * wtf/RefCounter.cpp: Added.
1397         (WTF::RefCounter::Count::ref):
1398             - increment the counter.
1399         (WTF::RefCounter::Count::deref):
1400             - decrement the counter, and delete as necessary.
1401         (WTF::RefCounter::RefCounter):
1402             - create a RefCounter::Count.
1403         (WTF::RefCounter::~RefCounter):
1404             - eagerly delete the Counter if it has no references, otherwise let it be deleted on last deref.
1405         * wtf/RefCounter.h: Added.
1406         (WTF::RefCounter::Count::Count):
1407             - initialize count to 0.
1408         (WTF::RefCounter::RefCounter):
1409             - takes a lambda to be called when the value changes.
1410         (WTF::RefCounter::count):
1411             - reference the counter (and in doing so increment the count).
1412         (WTF::RefCounter::value):
1413             - access the current value of the counter.
1414
1415 2014-12-01  Andreas Kling  <akling@apple.com>
1416
1417         Optimize constructing JSC::Identifier from AtomicString.
1418         <https://webkit.org/b/139157>
1419
1420         Reviewed by Michael Saboff.
1421
1422         Make AtomicString::isInAtomicStringTable() public so it can be used
1423         in some Identifier assertions.
1424
1425         * wtf/text/AtomicString.h:
1426
1427 2014-12-01  Oliver Hunt  <oliver@apple.com>
1428
1429         Fix non-mac builds.
1430
1431         * wtf/IndexedIterator.h:
1432
1433 2014-12-01  Oliver Hunt  <oliver@apple.com>
1434
1435         Fix 32-bit build.
1436
1437         * wtf/IndexedIterator.h:
1438
1439 2014-11-17  Oliver Hunt  <oliver@apple.com>
1440
1441         Make sure range based iteration of Vector<> still receives bounds checking
1442         https://bugs.webkit.org/show_bug.cgi?id=138821
1443
1444         Reviewed by Mark Lam.
1445
1446         Add a new IndexedIterator struct to WTF that wraps a
1447         Vector type and index to provide pointer like semantics
1448         while still performing runtime bounds checking, even in
1449         release builds. We store a simple index into the vector
1450         which means that this iterator allows vector resizing
1451         during iteration. If the vector is resized such that the
1452         iterator is out of bounds, then any attempt to dereference
1453         the iterator will crash safely. Any other errors, including
1454         overflows, and over extending the iterator will likewise
1455         crash.
1456
1457         For the purpose of retaining semantically equivalent
1458         behaviour, the iterator can be moved to m_index == size()
1459         as that is the standard "end" terminator for these types.
1460         Attempting to dereference at that point will still crash
1461         rather than perform an unsafe memory operation.
1462
1463         In order to maintain the validity of all the bounds checking,
1464         we perform full integer range checking prior to any mutation
1465         of the iterator location. If we detect an arithmetic overflow
1466         we will crash rather than attempting to carry on.
1467
1468         By necessity there are many overrides for operator + and - as
1469         we otherwise hit many different type promotion ambiguities when
1470         performing arithmetic with iterators. These ambiguities are also
1471         different for 32- vs. 64-bit, so duplicating the functions
1472         and then forwarding to the core implementations that performed
1473         the bounds checking and mutation seemed like the right call.
1474
1475         * WTF.xcodeproj/project.pbxproj:
1476         * wtf/IndexedIterator.h: Added.
1477         (WTF::IndexedIterator::IndexedIterator):
1478         (WTF::IndexedIterator::operator->):
1479         (WTF::IndexedIterator::operator*):
1480         (WTF::IndexedIterator::get):
1481         (WTF::IndexedIterator::operator++):
1482         (WTF::IndexedIterator::operator--):
1483         (WTF::IndexedIterator::operator UnspecifiedBoolType):
1484         (WTF::IndexedIterator::operator+=):
1485         (WTF::IndexedIterator::operator-=):
1486         (WTF::IndexedIterator::operator+):
1487         (WTF::IndexedIterator::operator-):
1488         (WTF::IndexedIterator::operator=):
1489         (WTF::IndexedIterator::operator==):
1490         (WTF::IndexedIterator::operator!=):
1491         (WTF::IndexedIterator::operator<):
1492         (WTF::IndexedIterator::operator<=):
1493         (WTF::IndexedIterator::operator>):
1494         (WTF::IndexedIterator::operator>=):
1495         (WTF::IndexedIterator::operator const_iterator):
1496         (WTF::IndexedIterator::isSafeToCompare):
1497         (WTF::IndexedIterator::unsafeGet):
1498         (WTF::getPtr):
1499         (WTF::operator-):
1500         (WTF::operator==):
1501         (WTF::operator!=):
1502         (WTF::operator<=):
1503         (WTF::operator>=):
1504         (WTF::operator<):
1505         (WTF::operator>):
1506         (WTF::IndexedIteratorSelector::makeIterator):
1507         (WTF::IndexedIteratorSelector::makeConstIterator):
1508         * wtf/RefCountedArray.h:
1509         (WTF::RefCountedArray::RefCountedArray):
1510         * wtf/Vector.h:
1511         (WTF::Vector::Vector):
1512         (WTF::Vector::begin):
1513         (WTF::Vector::end):
1514         (WTF::OverflowHandler>::Vector):
1515         (WTF::=):
1516         (WTF::OverflowHandler>::fill):
1517         (WTF::OverflowHandler>::expandCapacity):
1518         (WTF::OverflowHandler>::tryExpandCapacity):
1519         (WTF::OverflowHandler>::resize):
1520         (WTF::OverflowHandler>::shrink):
1521         (WTF::OverflowHandler>::grow):
1522         (WTF::OverflowHandler>::reserveCapacity):
1523         (WTF::OverflowHandler>::tryReserveCapacity):
1524         (WTF::OverflowHandler>::shrinkCapacity):
1525         (WTF::OverflowHandler>::append):
1526         (WTF::OverflowHandler>::tryAppend):
1527         (WTF::OverflowHandler>::appendSlowCase):
1528         (WTF::OverflowHandler>::uncheckedAppend):
1529         (WTF::OverflowHandler>::appendVector):
1530         (WTF::OverflowHandler>::insert):
1531         (WTF::OverflowHandler>::insertVector):
1532         (WTF::OverflowHandler>::remove):
1533
1534 2014-11-30  Ryuan Choi  <ryuan.choi@navercorp.com>
1535
1536         [EFL] Drop support for the EFL 1.7
1537         https://bugs.webkit.org/show_bug.cgi?id=139114
1538
1539         Reviewed by Gyuyoung Kim.
1540
1541         * wtf/efl/EflTypedefs.h: Removed old definitions which EFL 1.7 used.
1542
1543 2014-11-21  Anders Carlsson  <andersca@apple.com>
1544
1545         Remove the Timer parameters from timer callbacks
1546         https://bugs.webkit.org/show_bug.cgi?id=138974
1547
1548         Reviewed by Antti Koivisto.
1549
1550         * wtf/RunLoopTimer.h:
1551         (WTF::RunLoopTimer::RunLoopTimer):
1552         (WTF::RunLoopTimer::fired):
1553
1554 2014-11-18  Chris Dumez  <cdumez@apple.com>
1555
1556         Have Vector::capacity() return an unsigned instead of a size_t
1557         https://bugs.webkit.org/show_bug.cgi?id=138842
1558
1559         Reviewed by Andreas Kling.
1560
1561         Have Vector::capacity() return an unsigned instead of a size_t as
1562         capacity is stored as an unsigned internally.
1563
1564         * wtf/Vector.h:
1565         (WTF::Vector::capacity):
1566         (WTF::OverflowHandler>::expandCapacity):
1567         (WTF::OverflowHandler>::tryExpandCapacity):
1568
1569 2014-11-18  Geoffrey Garen  <ggaren@apple.com>
1570
1571         Removed the custom allocator for ListHashSet nodes
1572         https://bugs.webkit.org/show_bug.cgi?id=138841
1573
1574         Reviewed by Andreas Kling.
1575
1576         bmalloc is fast, so we don't need a custom allocator.
1577
1578         The MallocBench test for linked list node allocation (list_allocate) is
1579         4.09X faster in bmalloc than TCMalloc. Also, I wrote a stress test to
1580         add/remove link elements, which modify a ListHashSet on insertion and
1581         removal, and it was 1% faster / in the noise with bmalloc enabled.
1582
1583         * wtf/ListHashSet.h:
1584         (WTF::ListHashSetNode::ListHashSetNode):
1585         (WTF::ListHashSetTranslator::translate):
1586         (WTF::U>::ListHashSet):
1587         (WTF::=):
1588         (WTF::U>::swap):
1589         (WTF::U>::~ListHashSet):
1590         (WTF::U>::size):
1591         (WTF::U>::capacity):
1592         (WTF::U>::isEmpty):
1593         (WTF::U>::first):
1594         (WTF::U>::removeFirst):
1595         (WTF::U>::takeFirst):
1596         (WTF::U>::last):
1597         (WTF::U>::removeLast):
1598         (WTF::U>::takeLast):
1599         (WTF::U>::contains):
1600         (WTF::U>::remove):
1601         (WTF::U>::clear):
1602         (WTF::U>::unlink):
1603         (WTF::U>::unlinkAndDelete):
1604         (WTF::U>::appendNode):
1605         (WTF::U>::prependNode):
1606         (WTF::U>::insertNodeBefore):
1607         (WTF::U>::deleteAllNodes):
1608         (WTF::ListHashSetNodeAllocator::ListHashSetNodeAllocator): Deleted.
1609         (WTF::ListHashSetNodeAllocator::allocate): Deleted.
1610         (WTF::ListHashSetNodeAllocator::deallocate): Deleted.
1611         (WTF::ListHashSetNodeAllocator::pool): Deleted.
1612         (WTF::ListHashSetNodeAllocator::pastPool): Deleted.
1613         (WTF::ListHashSetNodeAllocator::inPool): Deleted.
1614         (WTF::ListHashSetNode::operator new): Deleted.
1615         (WTF::ListHashSetNode::destroy): Deleted.
1616
1617 2014-11-18  Chris Dumez  <cdumez@apple.com>
1618
1619         Update the Vector API to deal with unsigned types instead of size_t
1620         https://bugs.webkit.org/show_bug.cgi?id=138824
1621
1622         Reviewed by Andreas Kling.
1623
1624         Update part of the Vector API to deal with unsigned types instead of
1625         size_t. The Vector class is already using unsigned type for its
1626         capacity and size data members. However, the Vector API was never
1627         updated accordingly.
1628
1629         The rest of the Vector API will be ported in follow-up patches to
1630         make the change smaller and more easily reviewable.
1631
1632         * wtf/Forward.h:
1633         * wtf/Vector.h:
1634         (WTF::VectorTypeOperations::compare):
1635         (WTF::VectorBufferBase::allocateBuffer):
1636         (WTF::VectorBufferBase::tryAllocateBuffer):
1637         (WTF::VectorBufferBase::shouldReallocateBuffer):
1638         (WTF::VectorBufferBase::reallocateBuffer):
1639         (WTF::VectorBufferBase::capacity):
1640         (WTF::VectorBufferBase::VectorBufferBase):
1641         (WTF::VectorBuffer::VectorBuffer):
1642         (WTF::VectorBuffer::allocateBuffer):
1643         (WTF::VectorBuffer::tryAllocateBuffer):
1644         (WTF::VectorBuffer::shouldReallocateBuffer):
1645         (WTF::VectorBuffer::reallocateBuffer):
1646         (WTF::VectorBuffer::swap):
1647         (WTF::VectorBuffer::swapInlineBuffer):
1648         (WTF::VectorBuffer::swapInlineBuffers):
1649         (WTF::Vector::Vector):
1650         (WTF::Vector::at):
1651         (WTF::Vector::operator[]):
1652         (WTF::OverflowHandler>::find):
1653         (WTF::OverflowHandler>::reverseFind):
1654         (WTF::OverflowHandler>::fill):
1655         (WTF::OverflowHandler>::expandCapacity):
1656         (WTF::OverflowHandler>::tryExpandCapacity):
1657         (WTF::OverflowHandler>::resize):
1658         (WTF::OverflowHandler>::resizeToFit):
1659         (WTF::OverflowHandler>::shrink):
1660         (WTF::OverflowHandler>::grow):
1661         (WTF::OverflowHandler>::reserveCapacity):
1662         (WTF::OverflowHandler>::tryReserveCapacity):
1663         (WTF::OverflowHandler>::reserveInitialCapacity):
1664         (WTF::OverflowHandler>::shrinkCapacity):
1665         (WTF::OverflowHandler>::append):
1666         (WTF::OverflowHandler>::tryAppend):
1667         (WTF::OverflowHandler>::insert):
1668         (WTF::OverflowHandler>::insertVector):
1669         (WTF::OverflowHandler>::remove):
1670         (WTF::OverflowHandler>::reverse):
1671         (WTF::OverflowHandler>::checkConsistency):
1672         * wtf/text/AtomicString.h:
1673         * wtf/text/StringImpl.h:
1674         (WTF::StringImpl::adopt):
1675         (WTF::equalIgnoringNullity):
1676         * wtf/text/StringView.h:
1677         (WTF::append):
1678         * wtf/text/WTFString.h:
1679
1680 2014-11-18  peavo@outlook.com  <peavo@outlook.com>
1681
1682         [WinCairo] Compile errors when GStreamer is enabled.
1683         https://bugs.webkit.org/show_bug.cgi?id=137000
1684
1685         Reviewed by Philippe Normand.
1686
1687         MSVC does not allow the keyword default on move constructors and move assignment operators.
1688
1689         * wtf/gobject/GMainLoopSource.cpp:
1690         (WTF::GMainLoopSource::cancel):
1691         (WTF::GMainLoopSource::socketCallback):
1692         * wtf/gobject/GMainLoopSource.h:
1693         (WTF::GMainLoopSource::Context::operator=):
1694
1695 2014-11-17  Anders Carlsson  <andersca@apple.com>
1696
1697         Fix WTF build with newer versions of clang.
1698         <rdar://problem/18978705>
1699
1700         * wtf/HashTable.h:
1701         (WTF::removeIterator):
1702         * wtf/dtoa/utils.h:
1703         (WTF::double_conversion::BitCast):
1704
1705 2014-11-13  Myles C. Maxfield  <mmaxfield@apple.com>
1706
1707         Allow constructing a base PassRef with a derived Ref
1708         https://bugs.webkit.org/show_bug.cgi?id=138701
1709
1710         Reviewed by Andreas Kling
1711
1712         * wtf/PassRef.h:
1713         (WTF::PassRef<T>::PassRef):
1714
1715 2014-11-12  Ryuan Choi  <ryuan.choi@navercorp.com>
1716
1717         [EFL] Fix the build with EFL 1.12
1718         https://bugs.webkit.org/show_bug.cgi?id=138245
1719
1720         Reviewed by Gyuyoung Kim.
1721
1722         * wtf/efl/UniquePtrEfl.h:
1723         Removed Evas_GL.h from UniquePtrEfl.h, which is commonly included, because
1724         it should not be included with official GL headers.
1725
1726 2014-11-12  Mark Lam  <mark.lam@apple.com>
1727
1728         Rename USE(MASM_PROBE) to ENABLE(MASM_PROBE).
1729         <https://webkit.org/b/138661>
1730
1731         Reviewed by Michael Saboff.
1732
1733         Also move the switch for enabling the use of MASM_PROBE from JavaScriptCore's
1734         config.h to WTF's Platform.h.  This ensures that the setting is consistently
1735         applied even when building WebCore parts as well.
1736
1737         * wtf/Platform.h:
1738
1739 2014-11-09  Antti Koivisto  <antti@apple.com>
1740
1741         Remove BloomFilter size limit
1742         https://bugs.webkit.org/show_bug.cgi?id=138549
1743
1744         Reviewed by Andreas Kling.
1745
1746         * wtf/BloomFilter.h: Remove the static_assert, the code works fine with somewhat larger sizes.
1747
1748 2014-11-09  Chris Dumez  <cdumez@apple.com>
1749
1750         Add a more correct way to compare floating point numbers and use it
1751         https://bugs.webkit.org/show_bug.cgi?id=138527
1752
1753         Reviewed by Darin Adler.
1754
1755         To compare floating point numbers in the code base, we would often rely
1756         on the following check:
1757         std::abs(a - b) <= std::numeric_limits<T>::epsilon()
1758
1759         However, this is not correct for arbitrary floating point values, and
1760         will fail for values that are not close to zero.
1761
1762         This patch introduces a WTF::areEssentiallyEqual() templated function
1763         that can only be called with floating point types and relies on the
1764         following formula from [1][2] that defines u as being "essentially
1765         equal" to v if: | u - v | / |u| <= e and | u - v | / |v| <= e
1766
1767         [1] Knuth, D. E. "Accuracy of Floating Point Arithmetic." The Art of
1768             Computer Programming. 3rd ed. Vol. 2. Boston: Addison-Wesley, 1998.
1769             229-45.
1770         [2] http://www.boost.org/doc/libs/1_34_0/libs/test/doc/components/test_tools/floating_point_comparison.html
1771
1772         * wtf/MathExtras.h:
1773         (WTF::safeFPDivision):
1774         (WTF::areEssentiallyEqual):
1775         (WTF::withinEpsilon): Deleted.
1776
1777 2014-11-08  Darin Adler  <darin@apple.com>
1778
1779         Replace FileThread class with a single function
1780         https://bugs.webkit.org/show_bug.cgi?id=138282
1781
1782         Reviewed by Alexey Proskuryakov.
1783
1784         * wtf/MessageQueue.h: Made queue work on any type and not require wrapping
1785         everything in a unique_ptr.
1786
1787         * wtf/Threading.cpp:
1788         (WTF::threadEntryPoint): Changed to use a std::function instead of a function pointer.
1789         (WTF::createThread): Add a version that takes a std::function. Reimplemented the
1790         old version using lambdas. Removed the obsolete versions that were there just to support
1791         binary compatibility with very old versions of Safari.
1792
1793         * wtf/Threading.h: Removed an incorrect license header that covers code that was long ago
1794         moved to a different file. Changed createThread to take a std::function instead of a function
1795         pointer and data pointer. Moved internal functions after public functions.
1796
1797 2014-11-05  Chris Dumez  <cdumez@apple.com>
1798
1799         Assertion hit DOMTimer::updateTimerIntervalIfNecessary()
1800         https://bugs.webkit.org/show_bug.cgi?id=138440
1801
1802         Reviewed by Geoffrey Garen.
1803
1804         Move the withinEpsilon() function to WTF to avoid code duplication.
1805
1806         * wtf/MathExtras.h:
1807         (WTF::withinEpsilon):
1808
1809 2014-11-05  Chris Dumez  <cdumez@apple.com>
1810
1811         Allow constructing a PassRef from a Ref
1812         https://bugs.webkit.org/show_bug.cgi?id=138389
1813
1814         Reviewed by Andreas Kling.
1815
1816         Allow constructing a PassRef from a Ref, similarly to PassRefPtr that
1817         can be constructed from a RefPtr already. This avoids having to call
1818         Ref::get() and simplifies the code a bit.
1819
1820         * wtf/PassRef.h:
1821         (WTF::PassRef<T>::PassRef):
1822
1823 2014-11-05  Dan Bernstein  <mitz@apple.com>
1824
1825         Remove the unused deletion UI feature
1826         https://bugs.webkit.org/show_bug.cgi?id=138442
1827
1828         Rubber-stamped by Alexey Proskuryakov.
1829
1830         * wtf/FeatureDefines.h: Removed definition of ENABLE_DELETION_UI.
1831
1832 2014-11-03  Dean Jackson  <dino@apple.com>
1833
1834         Add ENABLE_FILTERS_LEVEL_2 feature guard.
1835         https://bugs.webkit.org/show_bug.cgi?id=138362
1836
1837         Reviewed by Tim Horton.
1838
1839         Add a new feature define for Level 2 of CSS Filters.
1840         http://dev.w3.org/fxtf/filters-2/
1841
1842         * wtf/FeatureDefines.h:
1843
1844 2014-11-05  Csaba Osztrogonác  <ossy@webkit.org>
1845
1846         Enable ARMv7 disassembler for all platforms
1847         https://bugs.webkit.org/show_bug.cgi?id=138415
1848
1849         Reviewed by Darin Adler.
1850
1851         * wtf/Platform.h:
1852
1853 2014-11-04  Chris Dumez  <cdumez@apple.com>
1854
1855         Add ptr() method to Ref class
1856         https://bugs.webkit.org/show_bug.cgi?id=138361
1857
1858         Reviewed by Darin Adler.
1859
1860         It is a very common pattern in our code base to get a pointer from a
1861         Ref object. Previously, we have to call Ref.get() and take its address
1862         which is not very nice. This patch adds a ptr() method to Ref class
1863         to simplify the code a bit.
1864
1865         * wtf/PassRef.h:
1866         (WTF::PassRef<T>::ptr):
1867         * wtf/Ref.h:
1868         (WTF::Ref::ptr):
1869         (WTF::GetPtrHelper<Ref<T>>::getPtr):
1870
1871 2014-11-04  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
1872
1873         ATTR_USED incorrectly applying to Clang
1874         https://bugs.webkit.org/show_bug.cgi?id=138313
1875
1876         Reviewed by Csaba Osztrogonác.
1877
1878         ATTR_USED was only intended for GCC. Also limit it to ENABLE(FTL_NATIVE_CALL_INLINING)
1879         since that's the only thing it's needed for.
1880
1881         * wtf/Platform.h:
1882
1883 2014-11-03  Chris Dumez  <cdumez@apple.com>
1884
1885         Allow implicit conversion from Ref<T> to T&
1886         https://bugs.webkit.org/show_bug.cgi?id=138331
1887
1888         Reviewed by Andreas Kling.
1889
1890         Allow implicit conversion from Ref<T> to T& to reduce the amount of
1891         Ref<>::get() calls in the code and increase readability. Unlike for
1892         RefPtr, doing this for Ref should not be error prone.
1893
1894         * wtf/Ref.h:
1895         (WTF::Ref::operator T&):
1896         (WTF::Ref::operator const T&):
1897         * wtf/RunLoop.cpp:
1898         (WTF::RunLoop::Holder::runLoop):
1899
1900 2014-10-31  Jeffrey Pfau  <jpfau@apple.com>
1901
1902         Unreviewed, fix ASan build after r175382
1903
1904         * wtf/SizeLimits.cpp:
1905
1906 2014-10-31  Geoffrey Garen  <ggaren@apple.com>
1907
1908         Rolled in r175389.
1909
1910         WebKit was failing to build 32bit on some Apple internal systems because
1911         those systems were configured to build bmalloc 64-bit-only. Those systems
1912         have been updated to build bmalloc as a universal binary, so everything
1913         should work fine now.
1914
1915         The relevant setting is controlled by an environment variable on the
1916         build system, and not by the project file in the source tree, so there's
1917         no new code change here.
1918
1919                 Enable bmalloc in 32bit builds
1920                 https://bugs.webkit.org/show_bug.cgi?id=138232
1921
1922                 Reviewed by Andreas Kling.
1923
1924         * wtf/FastMalloc.cpp:
1925
1926 2014-10-31  Lucas Forschler  <lforschler@apple.com>
1927
1928         Unreviewed rollout r175389.
1929         
1930 2014-10-30  Dana Burkart  <dburkart@apple.com>
1931
1932         <rdar://problem/18821260> Prepare for the mysterious future
1933
1934         Reviewed by Lucas Forschler.
1935
1936         * Configurations/Base.xcconfig:
1937         * Configurations/DebugRelease.xcconfig:
1938
1939 2014-10-30  Geoffrey Garen  <ggaren@apple.com>
1940
1941         Enable bmalloc in 32bit builds
1942         https://bugs.webkit.org/show_bug.cgi?id=138232
1943
1944         Reviewed by Andreas Kling.
1945
1946         Seems to work fine.
1947
1948         * wtf/FastMalloc.cpp:
1949
1950 2014-10-30  Jeffrey Pfau  <jpfau@apple.com>
1951
1952         ASSERT(!m_deletionHasBegun) in RefCounted.h should be ASSERT_WITH_SECURITY_IMPLICATION
1953         https://bugs.webkit.org/show_bug.cgi?id=138141
1954
1955         Reviewed by Alexey Proskuryakov.
1956
1957         * wtf/RefCounted.h:
1958         (WTF::RefCountedBase::ref):
1959         (WTF::RefCountedBase::relaxAdoptionRequirement):
1960         (WTF::RefCountedBase::derefBase):
1961         (WTF::adopted):
1962
1963 2014-10-28  Milan Crha  <mcrha@redhat.com>
1964
1965         Use constants from wtf/MathExtras.h
1966         https://bugs.webkit.org/show_bug.cgi?id=137967
1967
1968         Reviewed by Darin Adler.
1969
1970         * wtf/MathExtras.h:
1971
1972 2014-10-28  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
1973
1974         [EFL] Remove unnecessary defines from OptionsEfl.cmake
1975         https://bugs.webkit.org/show_bug.cgi?id=138132
1976
1977         Reviewed by Csaba Osztrogonác.
1978
1979         * wtf/Platform.h:
1980
1981 2014-10-27  Chris Dumez  <cdumez@apple.com>
1982
1983         Use separate HashMaps for common and uncommon headers in HTTPHeaderMap
1984         https://bugs.webkit.org/show_bug.cgi?id=138079
1985
1986         Reviewed by Anders Carlsson.
1987
1988         Add HashTraits for C++11 strong enum types. Using integer HashTraits for
1989         strong enums would be inconvenient as it would require casting between
1990         integer and strong enum types.
1991
1992         * wtf/HashTraits.h:
1993         (WTF::StrongEnumHashTraits::emptyValue):
1994         (WTF::StrongEnumHashTraits::constructDeletedValue):
1995         (WTF::StrongEnumHashTraits::isDeletedValue):
1996
1997 2014-10-25  Brian J. Burg  <burg@cs.washington.edu>
1998
1999         Web Inspector: timelines should not count time elapsed while paused in the debugger
2000         https://bugs.webkit.org/show_bug.cgi?id=136351
2001
2002         Unreviewed, follow-up fix after r175203. The debugger agent should not assume
2003         that the inspector environment's stopwatch has already been started.
2004
2005         * wtf/Stopwatch.h:
2006         (WTF::Stopwatch::isActive): Added. Allow peeking at the stopwatch state.
2007
2008 2014-10-18  Brian J. Burg  <burg@cs.washington.edu>
2009
2010         Web Inspector: timelines should not count time elapsed while paused in the debugger
2011         https://bugs.webkit.org/show_bug.cgi?id=136351
2012
2013         Reviewed by Timothy Hatcher.
2014
2015         * WTF.vcxproj/WTF.vcxproj:
2016         * WTF.vcxproj/WTF.vcxproj.filters:
2017         * WTF.xcodeproj/project.pbxproj:
2018         * wtf/CMakeLists.txt:
2019         * wtf/Stopwatch.h: Added. This implements a refcounted monotonic stopwatch.
2020         (WTF::Stopwatch::create):
2021         (WTF::Stopwatch::Stopwatch):
2022         (WTF::Stopwatch::reset):
2023         (WTF::Stopwatch::start):
2024         (WTF::Stopwatch::stop):
2025         (WTF::Stopwatch::elapsedTime):
2026
2027 2014-10-23  Joseph Pecoraro  <pecoraro@apple.com>
2028
2029         Web Inspector: Provide a way to have alternate inspector agents
2030         https://bugs.webkit.org/show_bug.cgi?id=137901
2031
2032         Reviewed by Brian Burg.
2033
2034         * wtf/FeatureDefines.h:
2035
2036 2014-10-23  Alberto Garcia  <berto@igalia.com>
2037
2038         [GTK] Fix build on Hurd
2039         https://bugs.webkit.org/show_bug.cgi?id=138003
2040
2041         Reviewed by Carlos Garcia Campos.
2042
2043         * wtf/InlineASM.h:
2044         * wtf/Platform.h:
2045
2046 2014-10-22  Byungseon Shin  <sun.shin@lge.com>
2047
2048         String(new Date(Mar 30 2014 01:00:00)) is wrong in CET
2049         https://bugs.webkit.org/show_bug.cgi?id=130967
2050
2051         Reviewed by Mark Lam.
2052
2053         By definition of calculateLocalTimeOffset, input time should be UTC time.
2054         But there are many cases when input time is based on local time.
2055         So, it gives erroneous results while calculating offset of DST boundary time.
2056         By adding a argument to distinguish UTC and local time, we can get the correct offset.
2057
2058         * wtf/DateMath.cpp:
2059         (WTF::calculateLocalTimeOffset):
2060         (WTF::parseDateFromNullTerminatedCharacters):
2061         Compensate time offset depends on UTC time or local time.
2062         * wtf/DateMath.h:
2063         Add argument to differenciate UTC or local time.
2064
2065 2014-10-21  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
2066
2067         Fix FTL Native Inlining for EFL
2068         https://bugs.webkit.org/show_bug.cgi?id=137774
2069
2070         Reviewed by Michael Saboff.
2071
2072         Updated guard definition for Native Inlining, and added an attribute define for marking functions
2073         that should not be left out of the symbol table.
2074
2075         * wtf/Platform.h:
2076
2077 2014-10-20  Chris Dumez  <cdumez@apple.com>
2078
2079         Use is<>() / downcast<>() for Accessibility objects
2080         https://bugs.webkit.org/show_bug.cgi?id=137286
2081
2082         Reviewed by Darin Adler.
2083
2084         Remove the legacy TYPE_CASTS_BASE() macro now that it is no longer
2085         used.
2086
2087         * wtf/Assertions.h:
2088
2089 2014-10-18  Dan Bernstein  <mitz@apple.com>
2090
2091         WorkQueue dispatches functions but isn’t a FunctionDispatcher
2092         https://bugs.webkit.org/show_bug.cgi?id=137853
2093
2094         Reviewed by Anders Carlsson.
2095
2096         * wtf/FunctionDispatcher.h: Added header guards.
2097
2098 2014-10-17  Carlos Garcia Campos  <cgarcia@igalia.com>
2099
2100         [GLIB] Add API to GMainLoopSource to schedule sources after a delay in microseconds
2101         https://bugs.webkit.org/show_bug.cgi?id=137782
2102
2103         Reviewed by Sergio Villar Senin.
2104
2105         In some cases when we have a double with the time in seconds, the
2106         conversion to milliseconds ends up truncating the value to 0, and
2107         the source scheduled immediately.
2108
2109         * wtf/gobject/GMainLoopSource.cpp:
2110         (WTF::createMicrosecondsTimeoutSource): Use a custom timeout
2111         source that handles the interval in microseconds instead of milliseconds.
2112         (WTF::GMainLoopSource::scheduleAfterDelay): Use MicrosecondsTimeoutSource.
2113         (WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy): Ditto.
2114         * wtf/gobject/GMainLoopSource.h:
2115
2116 2014-10-17  Dan Bernstein  <mitz@apple.com>
2117
2118         Reverted incorrect build fix attempt.
2119
2120         * wtf/Threading.cpp:
2121
2122 2014-10-17  Dan Bernstein  <mitz@apple.com>
2123
2124         Tried to fix the Yosemite build.
2125
2126         * wtf/Threading.cpp:
2127
2128 2014-10-16  Dan Bernstein  <mitz@apple.com>
2129
2130         OSObjectPtr is missing leakRef()
2131         https://bugs.webkit.org/show_bug.cgi?id=137798
2132
2133         Reviewed by Sam Weinig.
2134
2135         * wtf/OSObjectPtr.h:
2136
2137 2014-10-14  Brent Fulgham  <bfulgham@apple.com>
2138
2139         [Win] Unreviewed gardening. Ignore Visual Studio *.sdf files.
2140
2141         * WTF.vcxproj: Modified property svn:ignore.
2142
2143 2014-10-13  Antti Koivisto  <antti@apple.com>
2144
2145         Add StringCapture helper for thread-safe lambda capture
2146         https://bugs.webkit.org/show_bug.cgi?id=137664
2147
2148         Reviewed by Anders Carlsson.
2149
2150         There is currently no clean way to capture a String in a thread-safe manner. This will now work:
2151
2152         StringCapture stringCapture(string);
2153         auto lambdaThatRunsInAnotherThread = [stringCapture] { String string = stringCapture.string(); ... }
2154
2155         This type won't be necessary with C++14 initialized lambda capture: [string = string.isolatedCopy()].
2156
2157         * wtf/text/WTFString.h:
2158         (WTF::StringCapture::StringCapture): Create isolated copy in copy-constructor.
2159         (WTF::StringCapture::string):
2160
2161 2014-10-11  KwangHyuk Kim  <hyuki.kim@samsung.com>
2162
2163         [EFL] Enable WebP support.
2164         https://bugs.webkit.org/show_bug.cgi?id=136156
2165
2166         Reviewed by Gyuyoung Kim.
2167
2168         Enable WTF_USE_WEBP macro for WK2 Efl.
2169
2170         * wtf/Platform.h:
2171
2172 2014-10-11  Carlos Garcia Campos  <cgarcia@igalia.com>
2173
2174         [GLIB] Split GMainLoopSource moving thread safe implementation to its own class GThreadSafeMainLoopSource
2175         https://bugs.webkit.org/show_bug.cgi?id=137485
2176
2177         Reviewed by Sergio Villar Senin.
2178
2179         We made GMainLoopSource thread safe, but in most of the cases we
2180         know the sources are used by a single thread, which has an impact
2181         in the performance (mutex, GCancellable, etc.). The new class
2182         GThreadSafeMainLoopSource inherits from GMainLoopSource overriding
2183         the new virtual methods and calling the parent for the common code.
2184         GMutexLocker now supports recursive mutexes, it's a template that
2185         can wrap a GMutex or a GRecMutex. GThreadSafeMainLoopSource uses a
2186         recursive mutex using the new GMutexLocker API.
2187
2188         * wtf/PlatformEfl.cmake: Add new file to compilation.
2189         * wtf/PlatformGTK.cmake: Ditto.
2190         * wtf/gobject/GMainLoopSource.cpp:
2191         (WTF::GMainLoopSource::GMainLoopSource):
2192         (WTF::GMainLoopSource::~GMainLoopSource):
2193         (WTF::GMainLoopSource::cancel):
2194         (WTF::GMainLoopSource::schedule):
2195         (WTF::GMainLoopSource::scheduleAfterDelay):
2196         (WTF::GMainLoopSource::prepareVoidCallback):
2197         (WTF::GMainLoopSource::finishVoidCallback):
2198         (WTF::GMainLoopSource::voidCallback):
2199         (WTF::GMainLoopSource::prepareBoolCallback):
2200         (WTF::GMainLoopSource::finishBoolCallback):
2201         (WTF::GMainLoopSource::boolCallback):
2202         (WTF::GMainLoopSource::socketCallback):
2203         (WTF::GMainLoopSource::cancelWithoutLocking): Deleted.
2204         * wtf/gobject/GMainLoopSource.h:
2205         * wtf/gobject/GMutexLocker.h:
2206         (WTF::MutexWrapper<GMutex>::lock):
2207         (WTF::MutexWrapper<GMutex>::unlock):
2208         (WTF::MutexWrapper<GRecMutex>::lock):
2209         (WTF::MutexWrapper<GRecMutex>::unlock):
2210         (WTF::GMutexLocker::GMutexLocker):
2211         (WTF::GMutexLocker::lock):
2212         (WTF::GMutexLocker::unlock):
2213         * wtf/gobject/GThreadSafeMainLoopSource.cpp: Added.
2214         (WTF::GThreadSafeMainLoopSource::GThreadSafeMainLoopSource):
2215         (WTF::GThreadSafeMainLoopSource::~GThreadSafeMainLoopSource):
2216         (WTF::GThreadSafeMainLoopSource::cancel):
2217         (WTF::GThreadSafeMainLoopSource::schedule):
2218         (WTF::GThreadSafeMainLoopSource::scheduleAfterDelay):
2219         (WTF::GThreadSafeMainLoopSource::prepareVoidCallback):
2220         (WTF::GThreadSafeMainLoopSource::finishVoidCallback):
2221         (WTF::GThreadSafeMainLoopSource::voidCallback):
2222         (WTF::GThreadSafeMainLoopSource::prepareBoolCallback):
2223         (WTF::GThreadSafeMainLoopSource::finishBoolCallback):
2224         (WTF::GThreadSafeMainLoopSource::boolCallback):
2225         * wtf/gobject/GThreadSafeMainLoopSource.h: Added.
2226
2227 2014-10-09  Dean Jackson  <dino@apple.com>
2228
2229         Remove ENABLE_CSS3_CONDITIONAL_RULES
2230         https://bugs.webkit.org/show_bug.cgi?id=137571
2231
2232         Reviewed by Simon Fraser.
2233
2234         * wtf/FeatureDefines.h:
2235
2236 2014-10-09  Akos Kiss  <akiss@inf.u-szeged.hu>
2237
2238         Enable ARM64 disassembler for all platforms
2239         https://bugs.webkit.org/show_bug.cgi?id=137560
2240
2241         Reviewed by Michael Saboff.
2242
2243         Remove PLATFORM conditions from around WTF_USE_ARM64_DISASSEMBLER since
2244         the ARM64 disassembler has no platform dependencies anymore.
2245
2246         * wtf/Platform.h:
2247
2248 2014-10-08  peavo@outlook.com  <peavo@outlook.com>
2249
2250         [WinCairo] Enable JIT on 32-bit.
2251         https://bugs.webkit.org/show_bug.cgi?id=137521
2252
2253         Reviewed by Mark Lam.
2254
2255         Enable JIT on Windows 32-bit, but disable it at runtime if SSE2 is not present.
2256
2257         * wtf/Platform.h:
2258
2259 2014-10-08  Brent Fulgham  <bfulgham@apple.com>
2260
2261         [Win] Resolve warnings about missing __has_include macro under MSVC
2262         https://bugs.webkit.org/show_bug.cgi?id=137524
2263
2264         Reviewed by Anders Carlsson.
2265
2266         * wtf/Compiler.h: Provide a dummy implementation of __has_include that
2267         avoids the warning without changing compile behavior.
2268
2269 2014-10-07  Brent Fulgham  <bfulgham@apple.com>
2270
2271         [Win] Resolve some MSVC static analyzer warnings
2272         https://bugs.webkit.org/show_bug.cgi?id=137504
2273
2274         Reviewed by Dean Jackson.
2275
2276         * wtf/GregorianDateTime.cpp:
2277         (WTF::GregorianDateTime::setToCurrentLocalTime): Properly handle
2278         possible timezone error case.
2279         * wtf/OSAllocatorWin.cpp:
2280         (WTF::OSAllocator::decommit): Silence a spurious warning about using
2281         MEM_DECOMMIT instead of MEM_RELEASE.
2282         * wtf/ThreadingWin.cpp: Silence a spurious warning about how the
2283         tryLock method is implemented.
2284
2285 2014-10-07  Christophe Dumez  <cdumez@apple.com>
2286
2287         [WK2] Use is<>() / downcast<>() for DrawingAreaProxy subclasses
2288         https://bugs.webkit.org/show_bug.cgi?id=137477
2289
2290         Reviewed by Andreas Kling.
2291
2292         Rename wtf/cf/TypeCasts.h to wtf/cf/TypeCastsCF.h to avoid conflict
2293         with wtf/TypeCasts.h. They were using the same #ifndef guard and it
2294         was causing problems when both were included in the same context.
2295
2296         * WTF.xcodeproj/project.pbxproj:
2297         * wtf/cf/TypeCastsCF.h: Renamed from Source/WTF/wtf/cf/TypeCasts.h.
2298         (WTF::dynamic_cf_cast):
2299         (WTF::checked_cf_cast):
2300
2301 2014-10-07  Anders Carlsson  <andersca@apple.com>
2302
2303         Try to fix the Mountain Lion build.
2304
2305         * wtf/text/StringView.h:
2306         (WTF::StringView::underlyingStringIsValid):
2307         (WTF::StringView::setUnderlyingString):
2308         (WTF::StringView::invalidate):
2309
2310 2014-10-07  Anders Carlsson  <andersca@apple.com>
2311
2312         Use "1", not "true".
2313
2314         * wtf/text/StringView.h:
2315
2316 2014-10-07  Anders Carlsson  <andersca@apple.com>
2317
2318         Temporarily disable the StringView lifetime checking.
2319
2320         * wtf/text/StringView.h:
2321
2322 2014-10-07  Anders Carlsson  <andersca@apple.com>
2323
2324         Another build fix attempt.
2325
2326         * wtf/text/StringView.cpp:
2327         (WTF::StringView::UnderlyingString::UnderlyingString):
2328
2329 2014-10-07  Anders Carlsson  <andersca@apple.com>
2330
2331         Try to fix the Windows build.
2332
2333         * wtf/text/StringView.cpp:
2334         (WTF::StringView::UnderlyingString::UnderlyingString):
2335
2336 2014-10-06  Darin Adler  <darin@apple.com>
2337
2338         Make StringView check the lifetime of the StringImpl it's created from
2339         https://bugs.webkit.org/show_bug.cgi?id=137202
2340
2341         Reviewed by Anders Carlsson.
2342
2343         * WTF.vcxproj/WTF.vcxproj: Added StringView.cpp.
2344         * WTF.vcxproj/WTF.vcxproj.filters: Added StringView.cpp.
2345         * WTF.xcodeproj/project.pbxproj: Added StringView.cpp.
2346         * wtf/CMakeLists.txt: Added StringView.cpp.
2347
2348         * wtf/text/StringImpl.cpp:
2349         (WTF::StringImpl::~StringImpl): Call StringView::invalidate.
2350
2351         * wtf/text/StringView.cpp: Added.
2352         (WTF::underlyingStrings): Returns map from StringImpl to the underlying
2353         string object used by StringView to track validity.
2354         (WTF::StringView::invalidate): Mark the underlying string object invalid,
2355         and remove it from the map, so any future StringImpl will get a new one,
2356         even if it has the same pointer.
2357         (WTF::StringView::underlyingStringIsValid): Return true only if the
2358         underlying string is still valid.
2359         (WTF::StringView::setUnderlyingString): Create and manage reference counts
2360         of underlying string objects as needed.
2361
2362         * wtf/text/StringView.h: Moved function bodies out of the class definition,
2363         so we can now read a clean class definition to see the class design and what
2364         functions it offers.
2365         (WTF::StringView::StringView): Added a comment to the default constructor.
2366         Also added copy and move constructors so they can call setUnderlyingString
2367         and assert the underlying string is valid as needed, replacing the
2368         compiler-generated ones.
2369         (WTF::StringView::~StringView): Added a call to setUnderlyingString.
2370         (WTF::StringView::operator=): Added these assignment operators with the same
2371         job as the constructors above.
2372         (WTF::StringView::initialize): Added a comment.
2373         (WTF::StringView::characters8): Added an assertion that the underlying
2374         string is valid.
2375         (WTF::StringView::characters16): Ditto.
2376         (WTF::StringView::substring): Added code to propagate the underlying string
2377         from the original string to the substring.
2378         (WTF::StringView::invalidate): Inline empty version of this function for
2379         non-debug builds.
2380         (WTF::StringView::underlyingStringIsValid): Ditto.
2381         (WTF::StringView::setUnderlyingString): Ditto.
2382
2383 2014-10-06  Brent Fulgham  <bfulgham@apple.com>
2384
2385         [Win] DateMath's calculateUTFOffset does not account for DST.
2386         https://bugs.webkit.org/show_bug.cgi?id=137458
2387         <rdar://problem/18559172>
2388
2389         Reviewed by Geoffrey Garen.
2390
2391         Check the return value of GetTimeZoneInformation and use the
2392         proper bias against UTC (depending on whether we are in daylight
2393         savings time, or standard time).
2394
2395         Also, handle possible error cases in the FileTimeToSystemTime
2396         and SystemTimeToTzSpecificLocalTime, rather than using potentially
2397         uninitialized values.
2398
2399         * wtf/DateMath.cpp:
2400         (WTF::calculateUTCOffset): Use proper daylight-savings-time state.
2401         (WTF::calculateDSTOffset): Avoid uninitialized data due to failing
2402         API calls.
2403
2404 2014-10-06  Christophe Dumez  <cdumez@apple.com>
2405
2406         Add is<>() / downcast<>() support for RenderObject subclasses
2407         https://bugs.webkit.org/show_bug.cgi?id=137424
2408
2409         Reviewed by Benjamin Poulain.
2410
2411         Handle correctly calling TypeCastTraits<ExpectedType, ArgType>::isOfType(ArgType&)
2412         with ExpectedType being a base class of ArgType (or the same as ArgType). The
2413         previous template specialization was only meant to support the case where
2414         ExpectedType is the same as ArgType but even that wasn't working as the compiler
2415         would complain about ambiguous partial specializations. Since this is needed by
2416         RenderTraversal functions, this patch adds an extra isBaseType template parameter
2417         to TypeCastTraits to resolve the ambiguity and relies on std::is_base_of for the
2418         detection.
2419
2420         * wtf/TypeCasts.h:
2421
2422 2014-10-06  Brent Fulgham  <bfulgham@apple.com>
2423
2424         [Win] Project file gardening.
2425
2426         * WTF.vcxproj/WTF.vcxproj.filters: Move HashMethod.h and
2427         FastBitVector.cpp to proper places in hierarchy.
2428
2429 2014-10-04  Brian J. Burg  <burg@cs.washington.edu>
2430
2431         Unreviewed, rolling out r174319.
2432
2433         Causes assertions in fast/profiler tests. Needs nontrivial
2434         investigation, will take offline.
2435
2436         Reverted changeset:
2437
2438         "Web Inspector: timelines should not count time elapsed while
2439         paused in the debugger"
2440         https://bugs.webkit.org/show_bug.cgi?id=136351
2441         http://trac.webkit.org/changeset/174319
2442
2443 2014-10-04  Brian J. Burg  <burg@cs.washington.edu>
2444
2445         Web Inspector: timelines should not count time elapsed while paused in the debugger
2446         https://bugs.webkit.org/show_bug.cgi?id=136351
2447
2448         Reviewed by Timothy Hatcher.
2449
2450         * WTF.vcxproj/WTF.vcxproj:
2451         * WTF.vcxproj/WTF.vcxproj.filters:
2452         * WTF.xcodeproj/project.pbxproj:
2453         * wtf/CMakeLists.txt:
2454         * wtf/Stopwatch.h: Added. This implements a refcounted monotonic stopwatch.
2455         (WTF::Stopwatch::reset):
2456         (WTF::Stopwatch::start):
2457         (WTF::Stopwatch::stop):
2458
2459 2014-10-04  Filip Pizlo  <fpizlo@apple.com>
2460
2461         FTL should sink PutLocals
2462         https://bugs.webkit.org/show_bug.cgi?id=137168
2463
2464         Reviewed by Oliver Hunt.
2465         
2466         Make the set bits of a BitVector iterable.
2467
2468         * wtf/BitVector.h:
2469         (WTF::BitVector::SetBitsIterable::SetBitsIterable):
2470         (WTF::BitVector::SetBitsIterable::iterator::iterator):
2471         (WTF::BitVector::SetBitsIterable::iterator::operator*):
2472         (WTF::BitVector::SetBitsIterable::iterator::operator++):
2473         (WTF::BitVector::SetBitsIterable::iterator::operator==):
2474         (WTF::BitVector::SetBitsIterable::iterator::operator!=):
2475         (WTF::BitVector::SetBitsIterable::begin):
2476         (WTF::BitVector::SetBitsIterable::end):
2477         (WTF::BitVector::setBits):
2478
2479 2014-10-03  Commit Queue  <commit-queue@webkit.org>
2480
2481         Unreviewed, rolling out r174275.
2482         https://bugs.webkit.org/show_bug.cgi?id=137408
2483
2484         Build failures on the internal bots. (Requested by dethbakin
2485         on #webkit).
2486
2487         Reverted changeset:
2488
2489         "FTL should sink PutLocals"
2490         https://bugs.webkit.org/show_bug.cgi?id=137168
2491         http://trac.webkit.org/changeset/174275
2492
2493 2014-10-03  Christophe Dumez  <cdumez@apple.com>
2494
2495         Add TypeCasts.h to xcodeproject
2496         https://bugs.webkit.org/show_bug.cgi?id=137403
2497
2498         Reviewed by Benjamin Poulain.
2499
2500         Add TypeCasts.h to xcodeproject.
2501
2502         * WTF.xcodeproj/project.pbxproj:
2503
2504 2014-09-28  Filip Pizlo  <fpizlo@apple.com>
2505
2506         FTL should sink PutLocals
2507         https://bugs.webkit.org/show_bug.cgi?id=137168
2508
2509         Reviewed by Oliver Hunt.
2510         
2511         Make the set bits of a BitVector iterable.
2512
2513         * wtf/BitVector.h:
2514         (WTF::BitVector::SetBitsIterable::SetBitsIterable):
2515         (WTF::BitVector::SetBitsIterable::iterator::iterator):
2516         (WTF::BitVector::SetBitsIterable::iterator::operator*):
2517         (WTF::BitVector::SetBitsIterable::iterator::operator++):
2518         (WTF::BitVector::SetBitsIterable::iterator::operator==):
2519         (WTF::BitVector::SetBitsIterable::iterator::operator!=):
2520         (WTF::BitVector::SetBitsIterable::begin):
2521         (WTF::BitVector::SetBitsIterable::end):
2522         (WTF::BitVector::setBits):
2523
2524 2014-10-03  Myles C. Maxfield  <mmaxfield@apple.com>
2525
2526         Support modern for loops over StringViews
2527         https://bugs.webkit.org/show_bug.cgi?id=137165
2528
2529         Reviewed by Darin Adler.
2530
2531         This patch adds two functions, codePoints() and codeUnits(), on StringView.
2532         These two functions return small objects which have begin() and end() functions,
2533         which means it can be used by the modern for loop style. This small class also
2534         has an inner iterator class which can be incremented, dereferenced, and
2535         compared.
2536
2537         Using these new objects looks like this:
2538         for (UChar codeunit : stringView.codeUnits()) { } and
2539         for (UChar32 codepoint : stringView.codePoints()) { }.
2540
2541         * wtf/text/StringView.h:
2542         (WTF::StringView::codepoints):
2543         (WTF::StringView::codeunits):
2544         (WTF::StringViewCodePointIterator::StringViewCodePointIterator):
2545         (WTF::StringViewCodePointIterator::Iterator::Iterator):
2546         (WTF::StringViewCodePointIterator::Iterator::operator*):
2547         (WTF::StringViewCodePointIterator::Iterator::operator!=):
2548         (WTF::StringViewCodeUnitIterator::StringViewCodeUnitIterator):
2549         (WTF::StringViewCodeUnitIterator::Iterator::Iterator):
2550         (WTF::StringViewCodeUnitIterator::Iterator::operator*):
2551         (WTF::StringViewCodeUnitIterator::Iterator::operator!=):
2552
2553 2014-09-28  Sam Weinig  <sam@webkit.org>
2554
2555         Remove RefPtrHashMap
2556         https://bugs.webkit.org/show_bug.cgi?id=137200
2557
2558         Reviewed by Darin Adler.
2559
2560         HashMap now has all the features of the RefPtr specialization of HashMap
2561         (which lived in RefPtrHashMap.h) and is in fact more efficient when moving
2562         items into it. For instance:
2563
2564         For HashMap<RefPtr<Foo>, Bar> map:
2565
2566         RefPtr<Foo> foo = ...;
2567         map.add(WTF::move(foo), Bar());
2568
2569         will now not cause a ref() / deref(), but will successfully move the item in
2570         without churn. The same is true if foo.release() was used.
2571
2572         * WTF.vcxproj/WTF.vcxproj:
2573         * WTF.vcxproj/WTF.vcxproj.filters:
2574         * WTF.xcodeproj/project.pbxproj:
2575         * wtf/CMakeLists.txt:
2576         Remove references to RefPtrHashMap.h.
2577
2578         * wtf/RefPtrHashMap.h: Removed.
2579
2580         * wtf/HashMap.h:
2581         Remove #include of RefPtrHashMap.h and add inlineGet to match the interface
2582         exposed by the RefPtrHashMap specialization.
2583
2584 2014-10-02  Anders Carlsson  <andersca@apple.com>
2585
2586         Add back debugging/testing code that I accidentally removed.
2587
2588         * wtf/text/StringConcatenate.h:
2589         (WTF::StringTypeAdapter<String>::writeTo):
2590
2591 2014-10-02  Anders Carlsson  <andersca@apple.com>
2592
2593         Simplify StringTypeAdapter templates
2594         https://bugs.webkit.org/show_bug.cgi?id=137356
2595
2596         Reviewed by Andreas Kling.
2597
2598         * wtf/text/StringConcatenate.h:
2599         Use StringView for copying characters. Use inheritance for char* vs const char* etc. Make all StringAdapter member functions const.
2600
2601         * wtf/text/StringView.h:
2602         Move enough functions out of line so we can include WTFString.h after the StringView class definition.
2603
2604 2014-10-01  Christophe Dumez  <cdumez@apple.com>
2605
2606         Have is<>(T*) function do a null check on the pointer argument
2607         https://bugs.webkit.org/show_bug.cgi?id=137333
2608
2609         Reviewed by Gavin Barraclough.
2610
2611         Have is<>(T*) function do a null check on the argument instead of a
2612         simple assertion. This makes sense for 2 reasons:
2613         1. It is more consistent with downcast<>(T*), which will succeed even
2614            if the argument is a nullptr.
2615         2. It simplifies the code a bit as it gets rid of a lot of explicit
2616            null checks.
2617
2618         * wtf/TypeCasts.h:
2619         (WTF::is):
2620
2621 2014-10-02  Daniel Bates  <dabates@apple.com>
2622
2623         Clean up: Move XPC forward declarations in JavaScriptCore to WTF SPI wrapper header
2624         https://bugs.webkit.org/show_bug.cgi?id=137277
2625
2626         Reviewed by Alexey Proskuryakov.
2627
2628         Towards centralizing the declarations of XPC functions used in JavaScriptCore
2629         and WebKit2, add a header that wraps these function declarations called XPCSPI.h
2630         and use it instead of including the corresponding XPC API/SPI headers/forward
2631         declaring XPC functions. This will also aid in the effort to make WebKit2 build
2632         for iOS with the public iOS SDK.
2633
2634         * WTF.xcodeproj/project.pbxproj:
2635         * wtf/spi/darwin/XPCSPI.h: Added.
2636
2637 2014-10-01  Christophe Dumez  <cdumez@apple.com>
2638
2639         Unreviewed build fix after r174193.
2640
2641         Adding a return statement as that function is returning a boolean.
2642
2643         * wtf/TypeCasts.h:
2644         (WTF::TypeCastTraits::isOfType):
2645
2646 2014-10-01  Christophe Dumez  <cdumez@apple.com>
2647
2648         Fail better when is<>() / downcast<>() is used for an unsupported type
2649         https://bugs.webkit.org/show_bug.cgi?id=137323
2650
2651         Reviewed by Benjamin Poulain.
2652
2653         We should fail better when is<>() / downcast<>() is used for an
2654         unsupported type (i.e. a type that doesn't have the needed
2655         TypeCastTraits template specialization). Previously, we would get an
2656         obscure linking error, which was sub-optimal.
2657
2658         With this patch, you would now hit a static_assert() at build time if
2659         you tried to use is<>() / downcast<>() for a type that did not have the
2660         needed template specialization. There is also a helpful comment above
2661         the assertion letting the developer know how to add the needed template
2662         specialization.
2663
2664         * wtf/TypeCasts.h:
2665         (WTF::TypeCastTraits::isOfType):
2666
2667 2014-10-01  Commit Queue  <commit-queue@webkit.org>
2668
2669         Unreviewed, rolling out r174180, r174183, and r174186.
2670         https://bugs.webkit.org/show_bug.cgi?id=137320
2671
2672         Broke the Mac MountainLion build. Will investigate offline.
2673         (Requested by dydz on #webkit).
2674
2675         Reverted changesets:
2676
2677         "Clean up: Move XPC forward declarations in JavaScriptCore to
2678         WTF SPI wrapper header"
2679         https://bugs.webkit.org/show_bug.cgi?id=137277
2680         http://trac.webkit.org/changeset/174180
2681
2682         "Attempt to fix the build after
2683         <https://trac.webkit.org/changeset/174180>"
2684         https://bugs.webkit.org/show_bug.cgi?id=137277
2685         http://trac.webkit.org/changeset/174183
2686
2687         "Another attempt to fix the Mac build after
2688         <https://trac.webkit.org/changeset/174180>"
2689         https://bugs.webkit.org/show_bug.cgi?id=137277
2690         http://trac.webkit.org/changeset/174186
2691
2692 2014-10-01  Daniel Bates  <dabates@apple.com>
2693
2694         Another attempt to fix the Mac build after <https://trac.webkit.org/changeset/174180>
2695         (https://bugs.webkit.org/show_bug.cgi?id=137277)
2696
2697         Include header AvailabilityMacros.h instead of Availability.h, which actually defines the
2698         macro __MAC_OS_X_VERSION_MIN_REQUIRED.
2699
2700         * wtf/spi/darwin/XPCSPI.h:
2701
2702 2014-10-01  Daniel Bates  <dabates@apple.com>
2703
2704         Attempt to fix the build after <https://trac.webkit.org/changeset/174180>
2705         (https://bugs.webkit.org/show_bug.cgi?id=137277)
2706
2707         Include header <Availability.h> for the definition of __MAC_OS_X_VERSION_MIN_REQUIRED.
2708         Also, we want to define CONST_ON_OR_AFTER_MAC_OS_X_VERSION_1090 to be const when building
2709         on iOS.
2710
2711         * wtf/spi/darwin/XPCSPI.h:
2712
2713 2014-10-01  Daniel Bates  <dabates@apple.com>
2714
2715         Clean up: Move XPC forward declarations in JavaScriptCore to WTF SPI wrapper header
2716         https://bugs.webkit.org/show_bug.cgi?id=137277
2717
2718         Reviewed by Alexey Proskuryakov.
2719
2720         Towards centralizing the declarations of XPC functions used in JavaScriptCore
2721         and WebKit2, add a header that wraps these function declarations called XPCSPI.h
2722         and use it instead of including the corresponding XPC API/SPI headers/forward
2723         declaring XPC functions. This will also aid in the effort to make WebKit2 build
2724         for iOS with the public iOS SDK.
2725
2726         * WTF.xcodeproj/project.pbxproj:
2727         * wtf/spi/darwin/XPCSPI.h: Added.
2728
2729 2014-10-01  Brent Fulgham  <bfulgham@apple.com>
2730
2731         [Win] 32-bit JavaScriptCore should limit itself to the C loop
2732         https://bugs.webkit.org/show_bug.cgi?id=137304
2733         <rdar://problem/18375370>
2734
2735         Reviewed by Michael Saboff.
2736
2737         * wtf/Platform.h: Force the C loop when building for 32-bit Windows.
2738
2739 2014-09-30  Christophe Dumez  <cdumez@apple.com>
2740
2741         Generalize is<>() / downcast<>() support to all types
2742         https://bugs.webkit.org/show_bug.cgi?id=137243
2743
2744         Reviewed by Benjamin Poulain.
2745
2746         Generalize is<>() / downcast<>() support to all types, not just Nodes.
2747
2748         * wtf/Assertions.h:
2749         * wtf/TypeCasts.h: Added.
2750         (WTF::is):
2751         (WTF::downcast):
2752
2753 2014-09-30  Anders Carlsson  <andersca@apple.com>
2754
2755         Get the STRING_STATS codepath compiling again, and add calls to ref/deref
2756         https://bugs.webkit.org/show_bug.cgi?id=137259
2757
2758         Reviewed by Andreas Kling.
2759
2760         * wtf/text/StringImpl.cpp:
2761         (WTF::StringStats::removeString):
2762         (WTF::StringStats::printStats):
2763         (WTF::StringImpl::~StringImpl):
2764         * wtf/text/StringImpl.h:
2765         (WTF::StringImpl::StringImpl):
2766         (WTF::StringImpl::isSubString):
2767         (WTF::StringImpl::ref):
2768         (WTF::StringImpl::deref):
2769         (WTF::StringStats::addUpconvertedString): Deleted.
2770
2771 2014-09-30  Daniel Bates  <dabates@apple.com>
2772
2773         REGRESSION (r172532): JSBase.h declares NSMapTable functions that are SPI
2774         https://bugs.webkit.org/show_bug.cgi?id=137170
2775         <rdar://problem/18477384>
2776
2777         Reviewed by Geoffrey Garen.
2778
2779         Add SPI wrapper header, NSMapTableSPI.h.
2780
2781         Additionally, define convenience macro EXTERN_C that can be used to specify the C linkage
2782         convention for a declaration. For example, the declaration "EXTERN_C const int x;" will
2783         expand to:
2784
2785         extern const int x;
2786
2787         and
2788
2789         extern "C" const int x;
2790
2791         when used in a C and C++ file, respectively.
2792
2793         * WTF.xcodeproj/project.pbxproj:
2794         * wtf/Compiler.h:
2795         * wtf/spi/cocoa/NSMapTableSPI.h: Added.
2796
2797 2014-09-29  Commit Queue  <commit-queue@webkit.org>
2798
2799         Unreviewed, rolling out r174045.
2800         https://bugs.webkit.org/show_bug.cgi?id=137231
2801
2802         Introduced a crash during page loading tests on Mac (Requested
2803         by rniwa on #webkit).
2804
2805         Reverted changeset:
2806
2807         "Replace OSObjectPtr with RetainPtr/adoptOS"
2808         https://bugs.webkit.org/show_bug.cgi?id=137158
2809         http://trac.webkit.org/changeset/174045
2810
2811 2014-09-26  Sam Weinig  <sam@webkit.org>
2812
2813         Replace OSObjectPtr with RetainPtr/adoptOS
2814         https://bugs.webkit.org/show_bug.cgi?id=137158
2815
2816         Reviewed by Dan Bernstein.
2817
2818         * WTF.xcodeproj/project.pbxproj:
2819         * wtf/OSObjectPtr.h: Removed.
2820         * wtf/RetainPtr.h:
2821         (WTF::adoptOS):
2822         Added. This adopt function is slightly different than both adoptCF and adoptNS,
2823         in that unlike adoptCF(), it can be passed an Objective-C type (since OS objects
2824         are sometimes Objective-C objects, but not always), and unlike adoptNS() it doesn't 
2825         require us to jump through hoops to appease GC (since OS objects are not Objective-C
2826         objects if GC is enabled).
2827
2828 2014-09-24  Filip Pizlo  <fpizlo@apple.com>
2829
2830         FTL should sink object allocations
2831         https://bugs.webkit.org/show_bug.cgi?id=136330
2832
2833         Reviewed by Oliver Hunt.
2834         
2835         Make it possible to reset a Bag.
2836
2837         * wtf/Bag.h:
2838         (WTF::Bag::Bag):
2839         (WTF::Bag::~Bag):
2840         (WTF::Bag::clear):
2841
2842 2014-09-25  Roger Fong  <roger_fong@apple.com>
2843
2844         [Windows] Unreviewed build fix. Ensure that python2.7 is used for Windows builds.
2845
2846         * WTF.vcxproj/WTFGenerated.make:
2847
2848 2014-09-25  Csaba Osztrogonác  <ossy@webkit.org>
2849
2850         Remove WinCE port from trunk
2851         https://bugs.webkit.org/show_bug.cgi?id=136951
2852
2853         Reviewed by Alex Christensen.
2854
2855         * config.h:
2856         * wtf/Assertions.cpp:
2857         * wtf/Assertions.h:
2858         * wtf/Atomics.h:
2859         (WTF::weakCompareAndSwap):
2860         * wtf/CurrentTime.cpp:
2861         (WTF::lowResUTCTime):
2862         * wtf/DataLog.cpp:
2863         * wtf/DateMath.cpp:
2864         (WTF::getLocalTime):
2865         (WTF::calculateDSTOffset):
2866         * wtf/FastMalloc.cpp:
2867         * wtf/FeatureDefines.h:
2868         * wtf/OSAllocator.h:
2869         (WTF::OSAllocator::decommitAndRelease):
2870         * wtf/Platform.h:
2871         * wtf/PlatformWin.cmake:
2872         * wtf/RAMSize.cpp:
2873         (WTF::computeRAMSize):
2874         * wtf/RandomNumberSeed.h:
2875         (WTF::initializeRandomNumberGenerator):
2876         * wtf/StackBounds.cpp:
2877         (WTF::StackBounds::initialize):
2878         * wtf/StackBounds.h:
2879         (WTF::StackBounds::isGrowingDownward):
2880         * wtf/StdLibExtras.h:
2881         (wtf_bsearch): Deleted.
2882         * wtf/StringExtras.h:
2883         (strnicmp): Deleted.
2884         (stricmp): Deleted.
2885         (strdup): Deleted.
2886         * wtf/ThreadSpecific.h:
2887         * wtf/ThreadingWin.cpp:
2888         (WTF::createThreadInternal):
2889         * wtf/WindowsExtras.h:
2890         (WTF::getRegistryValue):
2891         (WTF::getWindowPointer):
2892         (WTF::setWindowPointer):
2893         * wtf/dtoa/utils.h:
2894         * wtf/text/WTFString.cpp:
2895         (WTF::String::format):
2896
2897 2014-09-24  Geoffrey Garen  <ggaren@apple.com>
2898
2899         Do the bmalloc.
2900         https://bugs.webkit.org/show_bug.cgi?id=132629
2901
2902         Reviewed by Gavin Barraclough.
2903
2904         64-bit only for now, just to try it out.
2905
2906         * wtf/FastMalloc.cpp:
2907
2908 2014-09-23  Geoffrey Garen  <ggaren@apple.com>
2909
2910         Rolled out r173346.
2911
2912             bmalloc should honor the FastMalloc statistics API
2913             https://bugs.webkit.org/show_bug.cgi?id=136592
2914
2915         This didn't really work. Because we allow ranges with and without
2916         physical pages to merge, and we allow double-committing and
2917         double-decommitting, we can't rely on commit actions to track memory
2918         footprint.
2919
2920         * wtf/FastMalloc.cpp:
2921         (WTF::fastMallocStatistics):
2922
2923 2014-09-23  Joseph Pecoraro  <pecoraro@apple.com>
2924
2925         Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed
2926         https://bugs.webkit.org/show_bug.cgi?id=136893
2927
2928         Reviewed by Timothy Hatcher.
2929
2930         Currently automatic inspection only happens in processes that have a
2931         debugger attached. That condition may change in the future, but this
2932         function can stand on its own in WTF. It may be useful in the future
2933         to perhaps continue though ASSERTs if you have a debugger attached.
2934
2935         * wtf/Assertions.cpp:
2936         * wtf/Assertions.h:
2937
2938 2014-09-22  Sam Weinig  <sam@webkit.org>
2939
2940         Eliminate redundant PtrHash specializations
2941         https://bugs.webkit.org/show_bug.cgi?id=136990
2942
2943         Reviewed by Darin Adler.
2944
2945         Now that we have IsSmartPtr, we can eliminate all the specializations
2946         of PtrHash that we had (for RefPtr, OwnPtr, RetainPtr, and std::unique_ptr)
2947         and instead just have one that uses GetPtrHelper.
2948
2949         No changes of behavior intended.
2950
2951         * wtf/GetPtr.h:
2952         Remove unnecessary const_cast that Darin noticed.
2953
2954         * wtf/HashFunctions.h:
2955         (WTF::PtrHash::hash): Deleted.
2956         (WTF::PtrHash::equal): Deleted.
2957         (WTF::PtrHash<RefPtr<P>>::hash): Deleted.
2958         (WTF::PtrHash<RefPtr<P>>::equal): Deleted.
2959         Specialize PtrHash based on whether the type is a smart pointer, and use GetPtrHelper
2960         to implement the smart pointer specialized variant.
2961
2962         * wtf/HashMap.h:
2963         Remove include of GetPtr.h that is now included by HashFunctions.h
2964
2965         * wtf/OwnPtr.h:
2966         (WTF::PtrHash<OwnPtr<P>>::hash): Deleted.
2967         (WTF::PtrHash<OwnPtr<P>>::equal): Deleted.
2968         Remove unnecessary specialization of PtrHash.
2969
2970         * wtf/RetainPtr.h:
2971         (WTF::PtrHash<RetainPtr<P>>::hash): Deleted.
2972         (WTF::PtrHash<RetainPtr<P>>::equal): Deleted.
2973         Specialize IsSmartPointer for RetainPtr and remove the then unnecessary specialization of PtrHash.
2974         (This is already tested in the API test WTF/cf/RetainPtrHashing).
2975
2976 2014-09-20  Sam Weinig  <sam@webkit.org>
2977
2978         Make possible HashSet<std::unique_ptr<>>
2979         https://bugs.webkit.org/show_bug.cgi?id=136166
2980
2981         Reviewed by Darin Adler.
2982
2983         * wtf/GetPtr.h:
2984         (WTF::getPtr):
2985         (WTF::GetPtrHelper<std::unique_ptr<T>>::getPtr):
2986         Make specializing GetPtrHelper a bit cleaner (you don't have to put 
2987         IsSmartPtr<T>::value everywhere any more) and add specializations for
2988         std::unique_ptr.
2989
2990         * wtf/HashFunctions.h:
2991         (WTF::PtrHash<std::unique_ptr<P>>):
2992         Add specialization for PtrHash for std::unique_ptr and set it as the DefaultHash
2993         for it as well.
2994
2995         * wtf/HashMap.h:    
2996         * wtf/HashSet.h:
2997         Add overloads of find(), contains(), remove(), take() (and get() for HashMap) for "smart pointers" that
2998         take the raw pointer type as the parameter. These use SFINAE to make themselves only available
2999         when the IsSmartPtr<KeyType>::value is true. 
3000
3001         * wtf/HashTraits.h:
3002         Override constructDeletedValue() and isDeletedValue() in the std::unique_ptr specialization
3003         since the default implementation depends on the type having a constructor that takes a HashTableDeletedValue
3004         and function named isHashTableDeletedValue().
3005
3006         * wtf/OwnPtr.h:
3007         (WTF::OwnPtr::OwnPtr):
3008         (WTF::OwnPtr::isHashTableDeletedValue):
3009         (WTF::OwnPtr::hashTableDeletedValue):
3010         Add HashTableDeletedValue constructor/functions to allow the constructDeletedValue() and isDeletedValue()
3011         hash traits to work.
3012
3013         (WTF::PtrHash<OwnPtr<P>>::hash):
3014         (WTF::PtrHash<OwnPtr<P>>::equal):
3015         Add specialization for PtrHash for OwnPtr and set it as the DefaultHash
3016         for it as well.
3017
3018         * wtf/Ref.h:
3019         Update for the less verbose GetPtrHelper specialization.
3020
3021 2014-09-19  Chris Dumez  <cdumez@apple.com>
3022
3023         Allow DOM methods to return references instead of pointers
3024         https://bugs.webkit.org/show_bug.cgi?id=136931
3025
3026         Add support for having WTF::getPtr() transform reference arguments
3027         into raw pointers so that DOM methods can now return references when
3028         appropriate and so that the generated bindings code can handle this
3029         via WTF::getPtr().
3030
3031         This patch had to alter the way getPtr() was overloaded for smart
3032         pointer types so that we don't call &p on smart pointers but p.get().
3033         This was needed because the new WTF::getPtr(T&) was being called for
3034         RefPtr<T> arguments instead of the getPtr(const RefPtr<T>&) overload.
3035         This was addressed using traits and template specialization to
3036         distinguish WTF smart pointers from other types.
3037
3038         Reviewed by Sam Weinig.
3039
3040         * wtf/GetPtr.h:
3041         (WTF::getPtr):
3042         * wtf/OwnPtr.h:
3043         (WTF::getPtr): Deleted.
3044         * wtf/PassOwnPtr.h:
3045         (WTF::getPtr): Deleted.
3046         * wtf/PassRefPtr.h:
3047         (WTF::getPtr): Deleted.
3048         * wtf/Ref.h:
3049         * wtf/RefPtr.h:
3050         (WTF::getPtr): Deleted.
3051         * wtf/gobject/GRefPtr.h:
3052         (WTF::getPtr): Deleted.
3053
3054 2014-09-19  Daniel Bates  <dabates@apple.com>
3055
3056         Always assume internal SDK when building configuration Production
3057         https://bugs.webkit.org/show_bug.cgi?id=136925
3058         <rdar://problem/18362399>
3059
3060         Reviewed by Dan Bernstein.
3061
3062         * Configurations/Base.xcconfig:
3063
3064 2014-09-19  Diego Pino Garcia  <dpino@igalia.com>
3065
3066         Simple ES6 feature:String prototype additions
3067         https://bugs.webkit.org/show_bug.cgi?id=131704
3068
3069         Reviewed by Darin Adler.
3070
3071         * wtf/text/StringImpl.cpp:
3072         (WTF::StringImpl::find):
3073         (WTF::equalInner): Added.
3074         (WTF::StringImpl::startsWith): Add implementation that supports
3075         'startOffset' parameter.
3076         (WTF::StringImpl::endsWith): Add implementation that supports
3077         'endOffset' parameter.
3078         * wtf/text/StringImpl.h:
3079         * wtf/text/WTFString.h:
3080         (WTF::String::contains): Modify current implementation to allow
3081         setting a startOffset, 0 by default.
3082         (WTF::String::startsWith):
3083         (WTF::String::endsWith):
3084
3085 2014-09-18  Carlos Garcia Campos  <cgarcia@igalia.com>
3086
3087         [GTK] Dot not allow to create delete-on-destroy GMainLoopSources
3088         https://bugs.webkit.org/show_bug.cgi?id=136923
3089
3090         Reviewed by Gustavo Noronha Silva.
3091
3092         We have several asserts to ensure that delete-on-destroy sources
3093         are not misused, like not scheduling socket sources on a
3094         delete-on-destroy GMainLoopSource or not allowing to cancel them
3095         before they have been dispatched. It's better to ensure all those
3096         things at compile time, using static methods to schedule sources
3097         creating a delete-on-destroy GMainLoopSource that is not returned
3098         to the user.
3099
3100         * wtf/gobject/GMainLoopSource.cpp:
3101         (WTF::GMainLoopSource::create): Private static method to create a
3102         delete-on-destroy GMainLoopSource.
3103         (WTF::GMainLoopSource::cancelWithoutLocking): Return early in case
3104         of delete-on-destroy source, since they can't be cancelled.
3105         (WTF::GMainLoopSource::schedule): Remove assertion to ensure
3106         socket sources are not scheduled on a delete-on-destroy GMainLoopSource.
3107         (WTF::GMainLoopSource::scheduleAndDeleteOnDestroy):
3108         (WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy):
3109         (WTF::GMainLoopSource::createAndDeleteOnDestroy): Deleted.
3110         * wtf/gobject/GMainLoopSource.h:
3111         * wtf/gtk/MainThreadGtk.cpp:
3112         (WTF::scheduleDispatchFunctionsOnMainThread): Use GMainLoopSource::scheduleAndDeleteOnDestroy()
3113         * wtf/gtk/RunLoopGtk.cpp:
3114         (WTF::RunLoop::wakeUp): Ditto.
3115
3116 2014-09-18  Joseph Pecoraro  <pecoraro@apple.com>
3117
3118         Unreviewed rollout r173731. Broke multiple builds.
3119
3120         * wtf/Assertions.cpp:
3121         * wtf/Assertions.h:
3122
3123 2014-09-18  Joseph Pecoraro  <pecoraro@apple.com>
3124
3125         Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed
3126         https://bugs.webkit.org/show_bug.cgi?id=136893
3127
3128         Reviewed by Timothy Hatcher.
3129
3130         Currently automatic inspection only happens in processes that have a
3131         debugger attached. That condition may change in the future, but this
3132         function can stand on its own in WTF. It may be useful in the future
3133         to perhaps continue though ASSERTs if you have a debugger attached.
3134
3135         * wtf/Assertions.cpp:
3136         * wtf/Assertions.h:
3137
3138 2014-09-18  Zan Dobersek  <zdobersek@igalia.com>
3139
3140         GMainLoopSource is exposed to race conditions
3141         https://bugs.webkit.org/show_bug.cgi?id=135800
3142
3143         Reviewed by Carlos Garcia Campos.
3144
3145         GMainLoopSource objects can be dispatching tasks on one thread
3146         while having a new task scheduled on a different thread. This
3147         can for instance occur in WebKitVideoSink, where the timeout
3148         callback can be called on main thread while at the same time
3149         it is being rescheduled on a different thread (created through
3150         GStreamer).
3151
3152         The initial solution is to use GMutex to prevent parallel data
3153         access from different threads. In the future I plan to look at
3154         the possibility of creating thread-specific GMainLoopSource
3155         objects that wouldn't require the use of GMutex.
3156
3157         GSource, GCancellable and std::function<> objects are now packed
3158         into an internal Context structure. Using the C++11 move semantics
3159         it's simple to, at the time of dispatch, move the current context
3160         out of the GMainLoopSource object in case the dispatch causes a
3161         rescheduling on that same object.
3162
3163         Also added in the Context struct is a new GCancellable. The pointer
3164         of that object is shared with the GMainLoopSource before the Context
3165         is moved out for the callback dispatch. This makes it safe to cancel
3166         or even delete the GMainLoopSource during the dispatch and prevents
3167         use-after-delete on GMainLoopSource once the dispatch is done in
3168         the GMainLoopSource::*Callback() methods.
3169
3170         All the schedule*() methods and the cancelWithoutLocking() method
3171         callers now lock the GMutex to ensure no one else is accessing the
3172         data at that moment. Similar goes for the dispatch methods, but those
3173         do the dispatch and possible destruction duties with the mutex unlocked.
3174         The dispatch can cause rescheduling on the same GMainLoopSource object,
3175         which must not be done with a locked mutex.
3176
3177         * wtf/gobject/GMainLoopSource.cpp:
3178         (WTF::GMainLoopSource::GMainLoopSource):
3179         (WTF::GMainLoopSource::~GMainLoopSource):
3180         (WTF::GMainLoopSource::cancel):
3181         (WTF::GMainLoopSource::cancelWithoutLocking):
3182         (WTF::GMainLoopSource::scheduleIdleSource):
3183         (WTF::GMainLoopSource::schedule):
3184         (WTF::GMainLoopSource::scheduleTimeoutSource):
3185         (WTF::GMainLoopSource::scheduleAfterDelay):
3186         (WTF::GMainLoopSource::voidCallback):
3187         (WTF::GMainLoopSource::boolCallback):
3188         (WTF::GMainLoopSource::socketCallback):
3189         (WTF::GMainLoopSource::socketSourceCallback):
3190         (WTF::GMainLoopSource::Context::destroySource):
3191         (WTF::GMainLoopSource::reset): Deleted.
3192         (WTF::GMainLoopSource::destroy): Deleted.
3193         * wtf/gobject/GMainLoopSource.h:
3194
3195 2014-09-17  Daniel Bates  <dabates@apple.com>
3196
3197         Unreviewed, rolling out r173695.
3198
3199         Broke building third-party Legacy WebKit apps; will
3200         investigate offline
3201
3202         Reverted changeset:
3203
3204         "[iOS] Make WebCore build with public iOS SDK"
3205         https://bugs.webkit.org/show_bug.cgi?id=136487
3206         http://trac.webkit.org/changeset/173695
3207
3208 2014-09-17  Benjamin Poulain  <bpoulain@apple.com>
3209
3210         CSS value in whitespace-separated list attribute selector (~=) mishandles tab/newline/etc.
3211         https://bugs.webkit.org/show_bug.cgi?id=136807
3212
3213         Reviewed by Antti Koivisto.
3214
3215         * wtf/text/AtomicString.h:
3216         (WTF::AtomicString::find):
3217
3218 2014-09-17  Daniel Bates  <dabates@apple.com>
3219
3220         [iOS] Make WebCore build with public iOS SDK
3221         https://bugs.webkit.org/show_bug.cgi?id=136487
3222
3223         Reviewed by David Kilzer.
3224
3225         Define convenience macro EXTERN_C that can be used to specify the C linkage convention
3226         for a declaration. For example, the declaration "EXTERN_C const int x;" will expand to:
3227
3228         extern const int x;
3229
3230         and
3231
3232         extern "C" const int x;
3233
3234         when used in a C and C++ file, respectively.
3235
3236         * wtf/Compiler.h:
3237
3238 2014-09-16  Filip Pizlo  <fpizlo@apple.com>
3239
3240         Unreviewed, disable native inlining because it causes build failures.
3241
3242         * wtf/Platform.h:
3243
3244 2014-09-15  Jer Noble  <jer.noble@apple.com>
3245
3246         [Mac] Support audioSourceProvider() in MediaPlayerPrivateAVFoundationObjC
3247         https://bugs.webkit.org/show_bug.cgi?id=135042
3248
3249         Reviewed by Eric Carlson.
3250
3251         * wtf/Platform.h: Add WTF_USE_MEDIATOOLBOX.
3252
3253 2014-09-15  peavo@outlook.com  <peavo@outlook.com>
3254
3255         [WinCairo] Make it easier to enable/disable GStreamer.
3256         https://bugs.webkit.org/show_bug.cgi?id=135766
3257
3258         Reviewed by Brent Fulgham.
3259
3260         Make it possible to enable/disable GStreamer by editing the new user macro ENABLE_GSTREAMER_WINCAIRO.
3261
3262         * WTF.vcxproj/WTFDebugWinCairo.props: Import GStreamer property file.
3263         * WTF.vcxproj/WTFReleaseWinCairo.props: Ditto.
3264         * wtf/Platform.h: Enable GStreamer if ENABLE(GSTREAMER_WINCAIRO) is true, otherwise use Media Foundation.
3265
3266 2014-09-10  Jon Honeycutt  <jhoneycutt@apple.com>
3267
3268         Re-add the request autocomplete feature
3269
3270         <https://bugs.webkit.org/show_bug.cgi?id=136730>
3271
3272         This feature was rolled out in r148731 because it was only used by
3273         Chromium. As we consider supporting this feature, roll it back in, but
3274         leave it disabled.
3275
3276         This rolls out r148731 (which removed the feature) with small changes
3277         needed to make the code build in ToT, to make the tests run, and to
3278         remove unused code.
3279
3280         Reviewed by Andy Estes.
3281
3282         * wtf/FeatureDefines.h:
3283
3284 2014-09-12  Tim Horton  <timothy_horton@apple.com>
3285
3286         Swiping back from a Twitter image to Twitter flashes to the wrong position
3287         https://bugs.webkit.org/show_bug.cgi?id=136798
3288         <rdar://problem/18324338>
3289
3290         Reviewed by Darin Adler and Sam Weinig.
3291
3292         * wtf/RunLoop.h:
3293         (WTF::RunLoop::TimerBase::startRepeating):
3294         Add a std::chrono veresion of RunLoop::TimerBase::startRepeating.
3295
3296 2014-09-12  Geoffrey Garen  <ggaren@apple.com>
3297
3298         Rolled out r173540.
3299
3300         It broke the Membuster performance bot, and it's still slightly profligate
3301         with memory.
3302
3303             Do the bmalloc.
3304             https://bugs.webkit.org/show_bug.cgi?id=132629
3305
3306         * wtf/FastMalloc.cpp:
3307
3308 2014-09-11  Geoffrey Garen  <ggaren@apple.com>
3309
3310         Do the bmalloc.
3311         https://bugs.webkit.org/show_bug.cgi?id=132629
3312
3313         Reviewed by Michael Saboff.
3314
3315         64-bit only for now, just to try it out.
3316
3317         * wtf/FastMalloc.cpp:
3318
3319 2014-09-09  Benjamin Poulain  <bpoulain@apple.com>
3320
3321         Disable the "unreachable-code" warning
3322         https://bugs.webkit.org/show_bug.cgi?id=136677
3323
3324         Reviewed by Darin Adler.
3325
3326         The warning causes various build errors depending on which Clang you are using.
3327
3328         For example, with recent clangs, it breaks all the ARCHS dependent code like this:
3329             if (sizeof(uintptr_t) == 4)
3330                 // Something for 32 bits.
3331             else
3332                 // Somethign for 64 bits.
3333
3334         * Configurations/Base.xcconfig:
3335
3336 2014-09-07  Filip Pizlo  <fpizlo@apple.com>
3337
3338         DFG should have a reusable SSA builder
3339         https://bugs.webkit.org/show_bug.cgi?id=136331
3340
3341         Reviewed by Oliver Hunt.
3342         
3343         Update the alloc() method to use variadic templates. This makes it more natural to use.
3344
3345         * wtf/SegmentedVector.h:
3346         (WTF::SegmentedVector::alloc):
3347
3348 2014-09-08  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
3349
3350         Remove FILTERS flag
3351         https://bugs.webkit.org/show_bug.cgi?id=136571
3352
3353         Reviewed by Darin Adler.
3354
3355         * wtf/FeatureDefines.h:
3356
3357 2014-09-08  Dan Bernstein  <mitz@apple.com>
3358
3359         HAVE(VOUCHERS) is not available outside of WebKit2
3360         https://bugs.webkit.org/show_bug.cgi?id=136637
3361
3362         Reviewed by Tim Horton.
3363
3364         * wtf/Platform.h: Moved the definition of HAVE_VOUCHERS from WebKit2’s config.h here.
3365
3366 2014-09-08  Tim Horton  <timothy_horton@apple.com>
3367
3368         Try to fix the build after r173383, part 2.
3369
3370         * wtf/OSObjectPtr.h:
3371
3372 2014-09-08  Tim Horton  <timothy_horton@apple.com>
3373
3374         Try to fix the build after r173383.
3375
3376         * wtf/OSObjectPtr.h:
3377
3378 2014-09-07  Sam Weinig  <sam@webkit.org>
3379
3380         Make OSObjectPtr a bit more like RefPtr
3381         https://bugs.webkit.org/show_bug.cgi?id=136613
3382
3383         Reviewed by Darin Adler.
3384
3385         Address some of Darin's feedback by:
3386         - Making the adopting constructor private and friending adoptOSObject().
3387         - Implementing the assignment operator using swap.
3388         - Adding a move assignment operator.
3389
3390         * wtf/OSObjectPtr.h:
3391         (WTF::OSObjectPtr::operator=):
3392         (WTF::OSObjectPtr::swap):
3393         (WTF::OSObjectPtr::OSObjectPtr):
3394
3395 2014-09-08  Jessie Berlin  <jberlin@apple.com>
3396
3397         More build fixes after r173374.
3398
3399         * wtf/dtoa/strtod.cc:
3400
3401 2014-09-08  Jessie Berlin  <jberlin@apple.com>
3402
3403         Build fix after r173374.
3404
3405         * wtf/dtoa/strtod.cc:
3406
3407 2014-09-08  Jessie Berlin  <jberlin@apple.com>
3408
3409         Speculative build fix after r173364.
3410
3411         * wtf/dtoa/strtod.cc:
3412
3413 2014-09-07  Maciej Stachowiak  <mjs@apple.com>
3414
3415         Introduce COMPILER_QUIRK(CONSIDERS_UNREACHABLE_CODE) and use it
3416         https://bugs.webkit.org/show_bug.cgi?id=136616
3417
3418         Reviewed by Darin Adler.
3419
3420         * wtf/Compiler.h: Define the quirk for all compilers but clang.
3421
3422 2014-09-06  Sam Weinig  <sam@webkit.org>
3423
3424         XPCPtr should be converted into an all purpose smart pointer for os_objects
3425         https://bugs.webkit.org/show_bug.cgi?id=136602
3426
3427         Reviewed by Darin Adler.
3428
3429         * WTF.xcodeproj/project.pbxproj:
3430         * wtf/OSObjectPtr.h: Copied from Source/WebKit2/Platform/IPC/mac/XPCPtr.h.
3431         (WTF::retainOSObject):
3432         (WTF::releaseOSObject):
3433         (WTF::OSObjectPtr::OSObjectPtr):
3434         (WTF::OSObjectPtr::~OSObjectPtr):
3435         (WTF::OSObjectPtr::operator=):
3436         (WTF::adoptOSObject):
3437         (IPC::XPCPtr::XPCPtr): Deleted.
3438         (IPC::XPCPtr::~XPCPtr): Deleted.
3439         (IPC::XPCPtr::operator=): Deleted.
3440         (IPC::adoptXPC): Deleted.
3441         Rename/move XPCPtr to OSObjectPtr and make it work with any os_object.
3442
3443 2014-09-06  Darin Adler  <darin@apple.com>
3444
3445         Make updates suggested by new version of Xcode
3446         https://bugs.webkit.org/show_bug.cgi?id=136603
3447
3448         Reviewed by Mark Rowe.
3449
3450         * Configurations/Base.xcconfig: Added CLANG_WARN_UNREACHABLE_CODE,
3451         COMBINE_HIDPI_IMAGES, and ENABLE_STRICT_OBJC_MSGSEND as suggested by
3452         Xcode upgrade check.
3453
3454         * WTF.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.
3455
3456 2014-09-05  Geoffrey Garen  <ggaren@apple.com>
3457
3458         bmalloc should honor the FastMalloc statistics API
3459         https://bugs.webkit.org/show_bug.cgi?id=136592
3460
3461         Reviewed by Gavin Barraclough.
3462
3463         * wtf/FastMalloc.cpp:
3464         (WTF::fastMallocStatistics):
3465
3466 2014-09-05  Geoffrey Garen  <ggaren@apple.com>
3467
3468         bmalloc should honor the FastMalloc scavenging API
3469         https://bugs.webkit.org/show_bug.cgi?id=136588
3470
3471         Reviewed by Andreas Kling.
3472
3473         * wtf/FastMalloc.cpp:
3474         (WTF::releaseFastMallocFreeMemory):
3475
3476 2014-09-05  Geoffrey Garen  <ggaren@apple.com>
3477
3478         Rolled out <http://trac.webkit.org/changeset/173313>.
3479
3480         It seems to have broken the PLT bot.
3481
3482                 Do the bmalloc.
3483                 https://bugs.webkit.org/show_bug.cgi?id=132629
3484
3485                 * wtf/FastMalloc.cpp:
3486
3487 2014-06-06  Jer Noble  <jer.noble@apple.com>
3488
3489         Refactoring: make MediaTime the primary time type for audiovisual times.
3490         https://bugs.webkit.org/show_bug.cgi?id=133579
3491
3492         Reviewed by Eric Carlson.
3493
3494         Add a unary minus operator, and add unimplemented private casting operators, to make
3495         unintentional double->MediaTime and MediaTime->double casts hard errors.
3496
3497         * wtf/MediaTime.cpp:
3498         (WTF::MediaTime::operator-):
3499         * wtf/MediaTime.h:
3500
3501 2014-09-04  Geoffrey Garen  <ggaren@apple.com>
3502
3503         Do the bmalloc.
3504         https://bugs.webkit.org/show_bug.cgi?id=132629
3505
3506         Reviewed by Michael Saboff.
3507
3508         64-bit only for now, just to try it out.
3509
3510         * wtf/FastMalloc.cpp:
3511
3512 2014-09-05  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
3513
3514         Enable GenGC on ARM Traditional
3515         https://bugs.webkit.org/show_bug.cgi?id=136567
3516
3517         Reviewed by Csaba Osztrogonác.
3518
3519         * wtf/Platform.h:
3520
3521 2014-09-04  Filip Pizlo  <fpizlo@apple.com>
3522
3523         Beef up the DFG's CFG analyses to include iterated dominance frontiers and more user-friendly BlockSets
3524         https://bugs.webkit.org/show_bug.cgi?id=136520
3525
3526         Fix bug found in Geoff's review but not landed in previous commit.
3527
3528         * wtf/BitVector.cpp:
3529         (WTF::BitVector::equalsSlowCaseFast): return true.
3530
3531 2014-09-03  Filip Pizlo  <fpizlo@apple.com>
3532
3533         Beef up the DFG's CFG analyses to include iterated dominance frontiers and more user-friendly BlockSets
3534         https://bugs.webkit.org/show_bug.cgi?id=136520
3535
3536         Reviewed by Geoffrey Garen.
3537         
3538         Give BitVector a way to quickly find the next set (or unset) bit. Make BitVector equality
3539         faster. Fix a minor closure goof in Spectrum.
3540
3541         * wtf/BitVector.cpp:
3542         (WTF::BitVector::equalsSlowCase):
3543         (WTF::BitVector::equalsSlowCaseFast):
3544         (WTF::BitVector::equalsSlowCaseSimple):
3545         * wtf/BitVector.h:
3546         (WTF::BitVector::findBit):
3547         (WTF::BitVector::findBitFast):
3548         (WTF::BitVector::findBitSimple):
3549         (WTF::BitVector::findBitInWord):
3550         * wtf/Spectrum.h:
3551         (WTF::Spectrum::removeIf):
3552
3553 2014-09-04  Anders Carlsson  <andersca@apple.com>
3554
3555         Make hash table classes final
3556         https://bugs.webkit.org/show_bug.cgi?id=136540
3557
3558         Reviewed by Antti Koivisto.
3559
3560         We don't want anybody inheriting from these classes, so make them final.
3561
3562         * wtf/HashCountedSet.h:
3563         * wtf/HashMap.h:
3564         * wtf/HashSet.h:
3565
3566 2014-09-04  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
3567
3568         Remove CSS_FILTERS flag
3569         https://bugs.webkit.org/show_bug.cgi?id=136529
3570
3571         Reviewed by Dirk Schulze.
3572
3573         * wtf/FeatureDefines.h:
3574
3575 2014-09-04  Commit Queue  <commit-queue@webkit.org>
3576
3577         Unreviewed, rolling out r173201.
3578         https://bugs.webkit.org/show_bug.cgi?id=136538
3579
3580         Improves the situation but also introduces additional crashes.
3581         (Requested by zdobersek on #webkit).
3582
3583         Reverted changeset:
3584
3585         "GMainLoopSource is exposed to race conditions"
3586         https://bugs.webkit.org/show_bug.cgi?id=135800
3587         http://trac.webkit.org/changeset/173201
3588
3589 2014-09-04  Pratik Solanki  <psolanki@apple.com>
3590
3591         Remove iOS specific disk image cache
3592         https://bugs.webkit.org/show_bug.cgi?id=136517
3593
3594         Reviewed by Antti Koivisto.
3595
3596         Disk image cache code unnecessarily complicates SharedBuffer implementation. We can remove
3597         this now since we don't enable it in WebKit2 on iOS.
3598
3599         * wtf/FeatureDefines.h:
3600
3601 2014-09-03  Dan Bernstein  <mitz@apple.com>
3602
3603         Get rid of HIGH_DPI_CANVAS leftovers
3604         https://bugs.webkit.org/show_bug.cgi?id=136491
3605
3606         Reviewed by Benjamin Poulain.
3607
3608         * wtf/FeatureDefines.h: Removed definition of ENABLE_HIGH_DPI_CANVAS.
3609
3610 2014-09-03  Zan Dobersek  <zdobersek@igalia.com>
3611
3612         GMainLoopSource is exposed to race conditions
3613         https://bugs.webkit.org/show_bug.cgi?id=135800
3614
3615         Reviewed by Carlos Garcia Campos.
3616
3617         GMainLoopSource objects can be dispatching tasks on one thread
3618         while having a new task scheduled on a different thread. This
3619         can for instance occur in WebKitVideoSink, where the timeout
3620         callback can be called on main thread while at the same time
3621         it is being rescheduled on a different thread (created through
3622         GStreamer).
3623
3624         The initial solution is to use GMutex to prevent parallel data
3625         access from different threads. In the future I plan to add better
3626         assertions, some meaningful comments and look at the possibility
3627         of creating thread-specific GMainLoopSource objects that wouldn't
3628         require the use of GMutex.
3629
3630         GSource, GCancellable and std::function<> objects are now packed
3631         into an internal Context structure. Using the C++11 move semantics
3632         it's simple to, at the time of dispatch, move the current context
3633         out of the GMainLoopSource object in case the dispatch causes a
3634         rescheduling on that same object.
3635
3636         All the schedule*() methods and the cancelInternal() method callers
3637         now lock the GMutex to ensure no one else is accessing the data at