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