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