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