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