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