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