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