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