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