Unreviewed, rolling out r174275.
[WebKit-https.git] / Source / WTF / ChangeLog
1 2014-10-03  Commit Queue  <commit-queue@webkit.org>
2
3         Unreviewed, rolling out r174275.
4         https://bugs.webkit.org/show_bug.cgi?id=137408
5
6         Build failures on the internal bots. (Requested by dethbakin
7         on #webkit).
8
9         Reverted changeset:
10
11         "FTL should sink PutLocals"
12         https://bugs.webkit.org/show_bug.cgi?id=137168
13         http://trac.webkit.org/changeset/174275
14
15 2014-10-03  Christophe Dumez  <cdumez@apple.com>
16
17         Add TypeCasts.h to xcodeproject
18         https://bugs.webkit.org/show_bug.cgi?id=137403
19
20         Reviewed by Benjamin Poulain.
21
22         Add TypeCasts.h to xcodeproject.
23
24         * WTF.xcodeproj/project.pbxproj:
25
26 2014-09-28  Filip Pizlo  <fpizlo@apple.com>
27
28         FTL should sink PutLocals
29         https://bugs.webkit.org/show_bug.cgi?id=137168
30
31         Reviewed by Oliver Hunt.
32         
33         Make the set bits of a BitVector iterable.
34
35         * wtf/BitVector.h:
36         (WTF::BitVector::SetBitsIterable::SetBitsIterable):
37         (WTF::BitVector::SetBitsIterable::iterator::iterator):
38         (WTF::BitVector::SetBitsIterable::iterator::operator*):
39         (WTF::BitVector::SetBitsIterable::iterator::operator++):
40         (WTF::BitVector::SetBitsIterable::iterator::operator==):
41         (WTF::BitVector::SetBitsIterable::iterator::operator!=):
42         (WTF::BitVector::SetBitsIterable::begin):
43         (WTF::BitVector::SetBitsIterable::end):
44         (WTF::BitVector::setBits):
45
46 2014-10-03  Myles C. Maxfield  <mmaxfield@apple.com>
47
48         Support modern for loops over StringViews
49         https://bugs.webkit.org/show_bug.cgi?id=137165
50
51         Reviewed by Darin Adler.
52
53         This patch adds two functions, codePoints() and codeUnits(), on StringView.
54         These two functions return small objects which have begin() and end() functions,
55         which means it can be used by the modern for loop style. This small class also
56         has an inner iterator class which can be incremented, dereferenced, and
57         compared.
58
59         Using these new objects looks like this:
60         for (UChar codeunit : stringView.codeUnits()) { } and
61         for (UChar32 codepoint : stringView.codePoints()) { }.
62
63         * wtf/text/StringView.h:
64         (WTF::StringView::codepoints):
65         (WTF::StringView::codeunits):
66         (WTF::StringViewCodePointIterator::StringViewCodePointIterator):
67         (WTF::StringViewCodePointIterator::Iterator::Iterator):
68         (WTF::StringViewCodePointIterator::Iterator::operator*):
69         (WTF::StringViewCodePointIterator::Iterator::operator!=):
70         (WTF::StringViewCodeUnitIterator::StringViewCodeUnitIterator):
71         (WTF::StringViewCodeUnitIterator::Iterator::Iterator):
72         (WTF::StringViewCodeUnitIterator::Iterator::operator*):
73         (WTF::StringViewCodeUnitIterator::Iterator::operator!=):
74
75 2014-09-28  Sam Weinig  <sam@webkit.org>
76
77         Remove RefPtrHashMap
78         https://bugs.webkit.org/show_bug.cgi?id=137200
79
80         Reviewed by Darin Adler.
81
82         HashMap now has all the features of the RefPtr specialization of HashMap
83         (which lived in RefPtrHashMap.h) and is in fact more efficient when moving
84         items into it. For instance:
85
86         For HashMap<RefPtr<Foo>, Bar> map:
87
88         RefPtr<Foo> foo = ...;
89         map.add(WTF::move(foo), Bar());
90
91         will now not cause a ref() / deref(), but will successfully move the item in
92         without churn. The same is true if foo.release() was used.
93
94         * WTF.vcxproj/WTF.vcxproj:
95         * WTF.vcxproj/WTF.vcxproj.filters:
96         * WTF.xcodeproj/project.pbxproj:
97         * wtf/CMakeLists.txt:
98         Remove references to RefPtrHashMap.h.
99
100         * wtf/RefPtrHashMap.h: Removed.
101
102         * wtf/HashMap.h:
103         Remove #include of RefPtrHashMap.h and add inlineGet to match the interface
104         exposed by the RefPtrHashMap specialization.
105
106 2014-10-02  Anders Carlsson  <andersca@apple.com>
107
108         Add back debugging/testing code that I accidentally removed.
109
110         * wtf/text/StringConcatenate.h:
111         (WTF::StringTypeAdapter<String>::writeTo):
112
113 2014-10-02  Anders Carlsson  <andersca@apple.com>
114
115         Simplify StringTypeAdapter templates
116         https://bugs.webkit.org/show_bug.cgi?id=137356
117
118         Reviewed by Andreas Kling.
119
120         * wtf/text/StringConcatenate.h:
121         Use StringView for copying characters. Use inheritance for char* vs const char* etc. Make all StringAdapter member functions const.
122
123         * wtf/text/StringView.h:
124         Move enough functions out of line so we can include WTFString.h after the StringView class definition.
125
126 2014-10-01  Christophe Dumez  <cdumez@apple.com>
127
128         Have is<>(T*) function do a null check on the pointer argument
129         https://bugs.webkit.org/show_bug.cgi?id=137333
130
131         Reviewed by Gavin Barraclough.
132
133         Have is<>(T*) function do a null check on the argument instead of a
134         simple assertion. This makes sense for 2 reasons:
135         1. It is more consistent with downcast<>(T*), which will succeed even
136            if the argument is a nullptr.
137         2. It simplifies the code a bit as it gets rid of a lot of explicit
138            null checks.
139
140         * wtf/TypeCasts.h:
141         (WTF::is):
142
143 2014-10-02  Daniel Bates  <dabates@apple.com>
144
145         Clean up: Move XPC forward declarations in JavaScriptCore to WTF SPI wrapper header
146         https://bugs.webkit.org/show_bug.cgi?id=137277
147
148         Reviewed by Alexey Proskuryakov.
149
150         Towards centralizing the declarations of XPC functions used in JavaScriptCore
151         and WebKit2, add a header that wraps these function declarations called XPCSPI.h
152         and use it instead of including the corresponding XPC API/SPI headers/forward
153         declaring XPC functions. This will also aid in the effort to make WebKit2 build
154         for iOS with the public iOS SDK.
155
156         * WTF.xcodeproj/project.pbxproj:
157         * wtf/spi/darwin/XPCSPI.h: Added.
158
159 2014-10-01  Christophe Dumez  <cdumez@apple.com>
160
161         Unreviewed build fix after r174193.
162
163         Adding a return statement as that function is returning a boolean.
164
165         * wtf/TypeCasts.h:
166         (WTF::TypeCastTraits::isOfType):
167
168 2014-10-01  Christophe Dumez  <cdumez@apple.com>
169
170         Fail better when is<>() / downcast<>() is used for an unsupported type
171         https://bugs.webkit.org/show_bug.cgi?id=137323
172
173         Reviewed by Benjamin Poulain.
174
175         We should fail better when is<>() / downcast<>() is used for an
176         unsupported type (i.e. a type that doesn't have the needed
177         TypeCastTraits template specialization). Previously, we would get an
178         obscure linking error, which was sub-optimal.
179
180         With this patch, you would now hit a static_assert() at build time if
181         you tried to use is<>() / downcast<>() for a type that did not have the
182         needed template specialization. There is also a helpful comment above
183         the assertion letting the developer know how to add the needed template
184         specialization.
185
186         * wtf/TypeCasts.h:
187         (WTF::TypeCastTraits::isOfType):
188
189 2014-10-01  Commit Queue  <commit-queue@webkit.org>
190
191         Unreviewed, rolling out r174180, r174183, and r174186.
192         https://bugs.webkit.org/show_bug.cgi?id=137320
193
194         Broke the Mac MountainLion build. Will investigate offline.
195         (Requested by dydz on #webkit).
196
197         Reverted changesets:
198
199         "Clean up: Move XPC forward declarations in JavaScriptCore to
200         WTF SPI wrapper header"
201         https://bugs.webkit.org/show_bug.cgi?id=137277
202         http://trac.webkit.org/changeset/174180
203
204         "Attempt to fix the build after
205         <https://trac.webkit.org/changeset/174180>"
206         https://bugs.webkit.org/show_bug.cgi?id=137277
207         http://trac.webkit.org/changeset/174183
208
209         "Another attempt to fix the Mac build after
210         <https://trac.webkit.org/changeset/174180>"
211         https://bugs.webkit.org/show_bug.cgi?id=137277
212         http://trac.webkit.org/changeset/174186
213
214 2014-10-01  Daniel Bates  <dabates@apple.com>
215
216         Another attempt to fix the Mac build after <https://trac.webkit.org/changeset/174180>
217         (https://bugs.webkit.org/show_bug.cgi?id=137277)
218
219         Include header AvailabilityMacros.h instead of Availability.h, which actually defines the
220         macro __MAC_OS_X_VERSION_MIN_REQUIRED.
221
222         * wtf/spi/darwin/XPCSPI.h:
223
224 2014-10-01  Daniel Bates  <dabates@apple.com>
225
226         Attempt to fix the build after <https://trac.webkit.org/changeset/174180>
227         (https://bugs.webkit.org/show_bug.cgi?id=137277)
228
229         Include header <Availability.h> for the definition of __MAC_OS_X_VERSION_MIN_REQUIRED.
230         Also, we want to define CONST_ON_OR_AFTER_MAC_OS_X_VERSION_1090 to be const when building
231         on iOS.
232
233         * wtf/spi/darwin/XPCSPI.h:
234
235 2014-10-01  Daniel Bates  <dabates@apple.com>
236
237         Clean up: Move XPC forward declarations in JavaScriptCore to WTF SPI wrapper header
238         https://bugs.webkit.org/show_bug.cgi?id=137277
239
240         Reviewed by Alexey Proskuryakov.
241
242         Towards centralizing the declarations of XPC functions used in JavaScriptCore
243         and WebKit2, add a header that wraps these function declarations called XPCSPI.h
244         and use it instead of including the corresponding XPC API/SPI headers/forward
245         declaring XPC functions. This will also aid in the effort to make WebKit2 build
246         for iOS with the public iOS SDK.
247
248         * WTF.xcodeproj/project.pbxproj:
249         * wtf/spi/darwin/XPCSPI.h: Added.
250
251 2014-10-01  Brent Fulgham  <bfulgham@apple.com>
252
253         [Win] 32-bit JavaScriptCore should limit itself to the C loop
254         https://bugs.webkit.org/show_bug.cgi?id=137304
255         <rdar://problem/18375370>
256
257         Reviewed by Michael Saboff.
258
259         * wtf/Platform.h: Force the C loop when building for 32-bit Windows.
260
261 2014-09-30  Christophe Dumez  <cdumez@apple.com>
262
263         Generalize is<>() / downcast<>() support to all types
264         https://bugs.webkit.org/show_bug.cgi?id=137243
265
266         Reviewed by Benjamin Poulain.
267
268         Generalize is<>() / downcast<>() support to all types, not just Nodes.
269
270         * wtf/Assertions.h:
271         * wtf/TypeCasts.h: Added.
272         (WTF::is):
273         (WTF::downcast):
274
275 2014-09-30  Anders Carlsson  <andersca@apple.com>
276
277         Get the STRING_STATS codepath compiling again, and add calls to ref/deref
278         https://bugs.webkit.org/show_bug.cgi?id=137259
279
280         Reviewed by Andreas Kling.
281
282         * wtf/text/StringImpl.cpp:
283         (WTF::StringStats::removeString):
284         (WTF::StringStats::printStats):
285         (WTF::StringImpl::~StringImpl):
286         * wtf/text/StringImpl.h:
287         (WTF::StringImpl::StringImpl):
288         (WTF::StringImpl::isSubString):
289         (WTF::StringImpl::ref):
290         (WTF::StringImpl::deref):
291         (WTF::StringStats::addUpconvertedString): Deleted.
292
293 2014-09-30  Daniel Bates  <dabates@apple.com>
294
295         REGRESSION (r172532): JSBase.h declares NSMapTable functions that are SPI
296         https://bugs.webkit.org/show_bug.cgi?id=137170
297         <rdar://problem/18477384>
298
299         Reviewed by Geoffrey Garen.
300
301         Add SPI wrapper header, NSMapTableSPI.h.
302
303         Additionally, define convenience macro EXTERN_C that can be used to specify the C linkage
304         convention for a declaration. For example, the declaration "EXTERN_C const int x;" will
305         expand to:
306
307         extern const int x;
308
309         and
310
311         extern "C" const int x;
312
313         when used in a C and C++ file, respectively.
314
315         * WTF.xcodeproj/project.pbxproj:
316         * wtf/Compiler.h:
317         * wtf/spi/cocoa/NSMapTableSPI.h: Added.
318
319 2014-09-29  Commit Queue  <commit-queue@webkit.org>
320
321         Unreviewed, rolling out r174045.
322         https://bugs.webkit.org/show_bug.cgi?id=137231
323
324         Introduced a crash during page loading tests on Mac (Requested
325         by rniwa on #webkit).
326
327         Reverted changeset:
328
329         "Replace OSObjectPtr with RetainPtr/adoptOS"
330         https://bugs.webkit.org/show_bug.cgi?id=137158
331         http://trac.webkit.org/changeset/174045
332
333 2014-09-26  Sam Weinig  <sam@webkit.org>
334
335         Replace OSObjectPtr with RetainPtr/adoptOS
336         https://bugs.webkit.org/show_bug.cgi?id=137158
337
338         Reviewed by Dan Bernstein.
339
340         * WTF.xcodeproj/project.pbxproj:
341         * wtf/OSObjectPtr.h: Removed.
342         * wtf/RetainPtr.h:
343         (WTF::adoptOS):
344         Added. This adopt function is slightly different than both adoptCF and adoptNS,
345         in that unlike adoptCF(), it can be passed an Objective-C type (since OS objects
346         are sometimes Objective-C objects, but not always), and unlike adoptNS() it doesn't 
347         require us to jump through hoops to appease GC (since OS objects are not Objective-C
348         objects if GC is enabled).
349
350 2014-09-24  Filip Pizlo  <fpizlo@apple.com>
351
352         FTL should sink object allocations
353         https://bugs.webkit.org/show_bug.cgi?id=136330
354
355         Reviewed by Oliver Hunt.
356         
357         Make it possible to reset a Bag.
358
359         * wtf/Bag.h:
360         (WTF::Bag::Bag):
361         (WTF::Bag::~Bag):
362         (WTF::Bag::clear):
363
364 2014-09-25  Roger Fong  <roger_fong@apple.com>
365
366         [Windows] Unreviewed build fix. Ensure that python2.7 is used for Windows builds.
367
368         * WTF.vcxproj/WTFGenerated.make:
369
370 2014-09-25  Csaba Osztrogonác  <ossy@webkit.org>
371
372         Remove WinCE port from trunk
373         https://bugs.webkit.org/show_bug.cgi?id=136951
374
375         Reviewed by Alex Christensen.
376
377         * config.h:
378         * wtf/Assertions.cpp:
379         * wtf/Assertions.h:
380         * wtf/Atomics.h:
381         (WTF::weakCompareAndSwap):
382         * wtf/CurrentTime.cpp:
383         (WTF::lowResUTCTime):
384         * wtf/DataLog.cpp:
385         * wtf/DateMath.cpp:
386         (WTF::getLocalTime):
387         (WTF::calculateDSTOffset):
388         * wtf/FastMalloc.cpp:
389         * wtf/FeatureDefines.h:
390         * wtf/OSAllocator.h:
391         (WTF::OSAllocator::decommitAndRelease):
392         * wtf/Platform.h:
393         * wtf/PlatformWin.cmake:
394         * wtf/RAMSize.cpp:
395         (WTF::computeRAMSize):
396         * wtf/RandomNumberSeed.h:
397         (WTF::initializeRandomNumberGenerator):
398         * wtf/StackBounds.cpp:
399         (WTF::StackBounds::initialize):
400         * wtf/StackBounds.h:
401         (WTF::StackBounds::isGrowingDownward):
402         * wtf/StdLibExtras.h:
403         (wtf_bsearch): Deleted.
404         * wtf/StringExtras.h:
405         (strnicmp): Deleted.
406         (stricmp): Deleted.
407         (strdup): Deleted.
408         * wtf/ThreadSpecific.h:
409         * wtf/ThreadingWin.cpp:
410         (WTF::createThreadInternal):
411         * wtf/WindowsExtras.h:
412         (WTF::getRegistryValue):
413         (WTF::getWindowPointer):
414         (WTF::setWindowPointer):
415         * wtf/dtoa/utils.h:
416         * wtf/text/WTFString.cpp:
417         (WTF::String::format):
418
419 2014-09-24  Geoffrey Garen  <ggaren@apple.com>
420
421         Do the bmalloc.
422         https://bugs.webkit.org/show_bug.cgi?id=132629
423
424         Reviewed by Gavin Barraclough.
425
426         64-bit only for now, just to try it out.
427
428         * wtf/FastMalloc.cpp:
429
430 2014-09-23  Geoffrey Garen  <ggaren@apple.com>
431
432         Rolled out r173346.
433
434             bmalloc should honor the FastMalloc statistics API
435             https://bugs.webkit.org/show_bug.cgi?id=136592
436
437         This didn't really work. Because we allow ranges with and without
438         physical pages to merge, and we allow double-committing and
439         double-decommitting, we can't rely on commit actions to track memory
440         footprint.
441
442         * wtf/FastMalloc.cpp:
443         (WTF::fastMallocStatistics):
444
445 2014-09-23  Joseph Pecoraro  <pecoraro@apple.com>
446
447         Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed
448         https://bugs.webkit.org/show_bug.cgi?id=136893
449
450         Reviewed by Timothy Hatcher.
451
452         Currently automatic inspection only happens in processes that have a
453         debugger attached. That condition may change in the future, but this
454         function can stand on its own in WTF. It may be useful in the future
455         to perhaps continue though ASSERTs if you have a debugger attached.
456
457         * wtf/Assertions.cpp:
458         * wtf/Assertions.h:
459
460 2014-09-22  Sam Weinig  <sam@webkit.org>
461
462         Eliminate redundant PtrHash specializations
463         https://bugs.webkit.org/show_bug.cgi?id=136990
464
465         Reviewed by Darin Adler.
466
467         Now that we have IsSmartPtr, we can eliminate all the specializations
468         of PtrHash that we had (for RefPtr, OwnPtr, RetainPtr, and std::unique_ptr)
469         and instead just have one that uses GetPtrHelper.
470
471         No changes of behavior intended.
472
473         * wtf/GetPtr.h:
474         Remove unnecessary const_cast that Darin noticed.
475
476         * wtf/HashFunctions.h:
477         (WTF::PtrHash::hash): Deleted.
478         (WTF::PtrHash::equal): Deleted.
479         (WTF::PtrHash<RefPtr<P>>::hash): Deleted.
480         (WTF::PtrHash<RefPtr<P>>::equal): Deleted.
481         Specialize PtrHash based on whether the type is a smart pointer, and use GetPtrHelper
482         to implement the smart pointer specialized variant.
483
484         * wtf/HashMap.h:
485         Remove include of GetPtr.h that is now included by HashFunctions.h
486
487         * wtf/OwnPtr.h:
488         (WTF::PtrHash<OwnPtr<P>>::hash): Deleted.
489         (WTF::PtrHash<OwnPtr<P>>::equal): Deleted.
490         Remove unnecessary specialization of PtrHash.
491
492         * wtf/RetainPtr.h:
493         (WTF::PtrHash<RetainPtr<P>>::hash): Deleted.
494         (WTF::PtrHash<RetainPtr<P>>::equal): Deleted.
495         Specialize IsSmartPointer for RetainPtr and remove the then unnecessary specialization of PtrHash.
496         (This is already tested in the API test WTF/cf/RetainPtrHashing).
497
498 2014-09-20  Sam Weinig  <sam@webkit.org>
499
500         Make possible HashSet<std::unique_ptr<>>
501         https://bugs.webkit.org/show_bug.cgi?id=136166
502
503         Reviewed by Darin Adler.
504
505         * wtf/GetPtr.h:
506         (WTF::getPtr):
507         (WTF::GetPtrHelper<std::unique_ptr<T>>::getPtr):
508         Make specializing GetPtrHelper a bit cleaner (you don't have to put 
509         IsSmartPtr<T>::value everywhere any more) and add specializations for
510         std::unique_ptr.
511
512         * wtf/HashFunctions.h:
513         (WTF::PtrHash<std::unique_ptr<P>>):
514         Add specialization for PtrHash for std::unique_ptr and set it as the DefaultHash
515         for it as well.
516
517         * wtf/HashMap.h:    
518         * wtf/HashSet.h:
519         Add overloads of find(), contains(), remove(), take() (and get() for HashMap) for "smart pointers" that
520         take the raw pointer type as the parameter. These use SFINAE to make themselves only available
521         when the IsSmartPtr<KeyType>::value is true. 
522
523         * wtf/HashTraits.h:
524         Override constructDeletedValue() and isDeletedValue() in the std::unique_ptr specialization
525         since the default implementation depends on the type having a constructor that takes a HashTableDeletedValue
526         and function named isHashTableDeletedValue().
527
528         * wtf/OwnPtr.h:
529         (WTF::OwnPtr::OwnPtr):
530         (WTF::OwnPtr::isHashTableDeletedValue):
531         (WTF::OwnPtr::hashTableDeletedValue):
532         Add HashTableDeletedValue constructor/functions to allow the constructDeletedValue() and isDeletedValue()
533         hash traits to work.
534
535         (WTF::PtrHash<OwnPtr<P>>::hash):
536         (WTF::PtrHash<OwnPtr<P>>::equal):
537         Add specialization for PtrHash for OwnPtr and set it as the DefaultHash
538         for it as well.
539
540         * wtf/Ref.h:
541         Update for the less verbose GetPtrHelper specialization.
542
543 2014-09-19  Chris Dumez  <cdumez@apple.com>
544
545         Allow DOM methods to return references instead of pointers
546         https://bugs.webkit.org/show_bug.cgi?id=136931
547
548         Add support for having WTF::getPtr() transform reference arguments
549         into raw pointers so that DOM methods can now return references when
550         appropriate and so that the generated bindings code can handle this
551         via WTF::getPtr().
552
553         This patch had to alter the way getPtr() was overloaded for smart
554         pointer types so that we don't call &p on smart pointers but p.get().
555         This was needed because the new WTF::getPtr(T&) was being called for
556         RefPtr<T> arguments instead of the getPtr(const RefPtr<T>&) overload.
557         This was addressed using traits and template specialization to
558         distinguish WTF smart pointers from other types.
559
560         Reviewed by Sam Weinig.
561
562         * wtf/GetPtr.h:
563         (WTF::getPtr):
564         * wtf/OwnPtr.h:
565         (WTF::getPtr): Deleted.
566         * wtf/PassOwnPtr.h:
567         (WTF::getPtr): Deleted.
568         * wtf/PassRefPtr.h:
569         (WTF::getPtr): Deleted.
570         * wtf/Ref.h:
571         * wtf/RefPtr.h:
572         (WTF::getPtr): Deleted.
573         * wtf/gobject/GRefPtr.h:
574         (WTF::getPtr): Deleted.
575
576 2014-09-19  Daniel Bates  <dabates@apple.com>
577
578         Always assume internal SDK when building configuration Production
579         https://bugs.webkit.org/show_bug.cgi?id=136925
580         <rdar://problem/18362399>
581
582         Reviewed by Dan Bernstein.
583
584         * Configurations/Base.xcconfig:
585
586 2014-09-19  Diego Pino Garcia  <dpino@igalia.com>
587
588         Simple ES6 feature:String prototype additions
589         https://bugs.webkit.org/show_bug.cgi?id=131704
590
591         Reviewed by Darin Adler.
592
593         * wtf/text/StringImpl.cpp:
594         (WTF::StringImpl::find):
595         (WTF::equalInner): Added.
596         (WTF::StringImpl::startsWith): Add implementation that supports
597         'startOffset' parameter.
598         (WTF::StringImpl::endsWith): Add implementation that supports
599         'endOffset' parameter.
600         * wtf/text/StringImpl.h:
601         * wtf/text/WTFString.h:
602         (WTF::String::contains): Modify current implementation to allow
603         setting a startOffset, 0 by default.
604         (WTF::String::startsWith):
605         (WTF::String::endsWith):
606
607 2014-09-18  Carlos Garcia Campos  <cgarcia@igalia.com>
608
609         [GTK] Dot not allow to create delete-on-destroy GMainLoopSources
610         https://bugs.webkit.org/show_bug.cgi?id=136923
611
612         Reviewed by Gustavo Noronha Silva.
613
614         We have several asserts to ensure that delete-on-destroy sources
615         are not misused, like not scheduling socket sources on a
616         delete-on-destroy GMainLoopSource or not allowing to cancel them
617         before they have been dispatched. It's better to ensure all those
618         things at compile time, using static methods to schedule sources
619         creating a delete-on-destroy GMainLoopSource that is not returned
620         to the user.
621
622         * wtf/gobject/GMainLoopSource.cpp:
623         (WTF::GMainLoopSource::create): Private static method to create a
624         delete-on-destroy GMainLoopSource.
625         (WTF::GMainLoopSource::cancelWithoutLocking): Return early in case
626         of delete-on-destroy source, since they can't be cancelled.
627         (WTF::GMainLoopSource::schedule): Remove assertion to ensure
628         socket sources are not scheduled on a delete-on-destroy GMainLoopSource.
629         (WTF::GMainLoopSource::scheduleAndDeleteOnDestroy):
630         (WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy):
631         (WTF::GMainLoopSource::createAndDeleteOnDestroy): Deleted.
632         * wtf/gobject/GMainLoopSource.h:
633         * wtf/gtk/MainThreadGtk.cpp:
634         (WTF::scheduleDispatchFunctionsOnMainThread): Use GMainLoopSource::scheduleAndDeleteOnDestroy()
635         * wtf/gtk/RunLoopGtk.cpp:
636         (WTF::RunLoop::wakeUp): Ditto.
637
638 2014-09-18  Joseph Pecoraro  <pecoraro@apple.com>
639
640         Unreviewed rollout r173731. Broke multiple builds.
641
642         * wtf/Assertions.cpp:
643         * wtf/Assertions.h:
644
645 2014-09-18  Joseph Pecoraro  <pecoraro@apple.com>
646
647         Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed
648         https://bugs.webkit.org/show_bug.cgi?id=136893
649
650         Reviewed by Timothy Hatcher.
651
652         Currently automatic inspection only happens in processes that have a
653         debugger attached. That condition may change in the future, but this
654         function can stand on its own in WTF. It may be useful in the future
655         to perhaps continue though ASSERTs if you have a debugger attached.
656
657         * wtf/Assertions.cpp:
658         * wtf/Assertions.h:
659
660 2014-09-18  Zan Dobersek  <zdobersek@igalia.com>
661
662         GMainLoopSource is exposed to race conditions
663         https://bugs.webkit.org/show_bug.cgi?id=135800
664
665         Reviewed by Carlos Garcia Campos.
666
667         GMainLoopSource objects can be dispatching tasks on one thread
668         while having a new task scheduled on a different thread. This
669         can for instance occur in WebKitVideoSink, where the timeout
670         callback can be called on main thread while at the same time
671         it is being rescheduled on a different thread (created through
672         GStreamer).
673
674         The initial solution is to use GMutex to prevent parallel data
675         access from different threads. In the future I plan to look at
676         the possibility of creating thread-specific GMainLoopSource
677         objects that wouldn't require the use of GMutex.
678
679         GSource, GCancellable and std::function<> objects are now packed
680         into an internal Context structure. Using the C++11 move semantics
681         it's simple to, at the time of dispatch, move the current context
682         out of the GMainLoopSource object in case the dispatch causes a
683         rescheduling on that same object.
684
685         Also added in the Context struct is a new GCancellable. The pointer
686         of that object is shared with the GMainLoopSource before the Context
687         is moved out for the callback dispatch. This makes it safe to cancel
688         or even delete the GMainLoopSource during the dispatch and prevents
689         use-after-delete on GMainLoopSource once the dispatch is done in
690         the GMainLoopSource::*Callback() methods.
691
692         All the schedule*() methods and the cancelWithoutLocking() method
693         callers now lock the GMutex to ensure no one else is accessing the
694         data at that moment. Similar goes for the dispatch methods, but those
695         do the dispatch and possible destruction duties with the mutex unlocked.
696         The dispatch can cause rescheduling on the same GMainLoopSource object,
697         which must not be done with a locked mutex.
698
699         * wtf/gobject/GMainLoopSource.cpp:
700         (WTF::GMainLoopSource::GMainLoopSource):
701         (WTF::GMainLoopSource::~GMainLoopSource):
702         (WTF::GMainLoopSource::cancel):
703         (WTF::GMainLoopSource::cancelWithoutLocking):
704         (WTF::GMainLoopSource::scheduleIdleSource):
705         (WTF::GMainLoopSource::schedule):
706         (WTF::GMainLoopSource::scheduleTimeoutSource):
707         (WTF::GMainLoopSource::scheduleAfterDelay):
708         (WTF::GMainLoopSource::voidCallback):
709         (WTF::GMainLoopSource::boolCallback):
710         (WTF::GMainLoopSource::socketCallback):
711         (WTF::GMainLoopSource::socketSourceCallback):
712         (WTF::GMainLoopSource::Context::destroySource):
713         (WTF::GMainLoopSource::reset): Deleted.
714         (WTF::GMainLoopSource::destroy): Deleted.
715         * wtf/gobject/GMainLoopSource.h:
716
717 2014-09-17  Daniel Bates  <dabates@apple.com>
718
719         Unreviewed, rolling out r173695.
720
721         Broke building third-party Legacy WebKit apps; will
722         investigate offline
723
724         Reverted changeset:
725
726         "[iOS] Make WebCore build with public iOS SDK"
727         https://bugs.webkit.org/show_bug.cgi?id=136487
728         http://trac.webkit.org/changeset/173695
729
730 2014-09-17  Benjamin Poulain  <bpoulain@apple.com>
731
732         CSS value in whitespace-separated list attribute selector (~=) mishandles tab/newline/etc.
733         https://bugs.webkit.org/show_bug.cgi?id=136807
734
735         Reviewed by Antti Koivisto.
736
737         * wtf/text/AtomicString.h:
738         (WTF::AtomicString::find):
739
740 2014-09-17  Daniel Bates  <dabates@apple.com>
741
742         [iOS] Make WebCore build with public iOS SDK
743         https://bugs.webkit.org/show_bug.cgi?id=136487
744
745         Reviewed by David Kilzer.
746
747         Define convenience macro EXTERN_C that can be used to specify the C linkage convention
748         for a declaration. For example, the declaration "EXTERN_C const int x;" will expand to:
749
750         extern const int x;
751
752         and
753
754         extern "C" const int x;
755
756         when used in a C and C++ file, respectively.
757
758         * wtf/Compiler.h:
759
760 2014-09-16  Filip Pizlo  <fpizlo@apple.com>
761
762         Unreviewed, disable native inlining because it causes build failures.
763
764         * wtf/Platform.h:
765
766 2014-09-15  Jer Noble  <jer.noble@apple.com>
767
768         [Mac] Support audioSourceProvider() in MediaPlayerPrivateAVFoundationObjC
769         https://bugs.webkit.org/show_bug.cgi?id=135042
770
771         Reviewed by Eric Carlson.
772
773         * wtf/Platform.h: Add WTF_USE_MEDIATOOLBOX.
774
775 2014-09-15  peavo@outlook.com  <peavo@outlook.com>
776
777         [WinCairo] Make it easier to enable/disable GStreamer.
778         https://bugs.webkit.org/show_bug.cgi?id=135766
779
780         Reviewed by Brent Fulgham.
781
782         Make it possible to enable/disable GStreamer by editing the new user macro ENABLE_GSTREAMER_WINCAIRO.
783
784         * WTF.vcxproj/WTFDebugWinCairo.props: Import GStreamer property file.
785         * WTF.vcxproj/WTFReleaseWinCairo.props: Ditto.
786         * wtf/Platform.h: Enable GStreamer if ENABLE(GSTREAMER_WINCAIRO) is true, otherwise use Media Foundation.
787
788 2014-09-10  Jon Honeycutt  <jhoneycutt@apple.com>
789
790         Re-add the request autocomplete feature
791
792         <https://bugs.webkit.org/show_bug.cgi?id=136730>
793
794         This feature was rolled out in r148731 because it was only used by
795         Chromium. As we consider supporting this feature, roll it back in, but
796         leave it disabled.
797
798         This rolls out r148731 (which removed the feature) with small changes
799         needed to make the code build in ToT, to make the tests run, and to
800         remove unused code.
801
802         Reviewed by Andy Estes.
803
804         * wtf/FeatureDefines.h:
805
806 2014-09-12  Tim Horton  <timothy_horton@apple.com>
807
808         Swiping back from a Twitter image to Twitter flashes to the wrong position
809         https://bugs.webkit.org/show_bug.cgi?id=136798
810         <rdar://problem/18324338>
811
812         Reviewed by Darin Adler and Sam Weinig.
813
814         * wtf/RunLoop.h:
815         (WTF::RunLoop::TimerBase::startRepeating):
816         Add a std::chrono veresion of RunLoop::TimerBase::startRepeating.
817
818 2014-09-12  Geoffrey Garen  <ggaren@apple.com>
819
820         Rolled out r173540.
821
822         It broke the Membuster performance bot, and it's still slightly profligate
823         with memory.
824
825             Do the bmalloc.
826             https://bugs.webkit.org/show_bug.cgi?id=132629
827
828         * wtf/FastMalloc.cpp:
829
830 2014-09-11  Geoffrey Garen  <ggaren@apple.com>
831
832         Do the bmalloc.
833         https://bugs.webkit.org/show_bug.cgi?id=132629
834
835         Reviewed by Michael Saboff.
836
837         64-bit only for now, just to try it out.
838
839         * wtf/FastMalloc.cpp:
840
841 2014-09-09  Benjamin Poulain  <bpoulain@apple.com>
842
843         Disable the "unreachable-code" warning
844         https://bugs.webkit.org/show_bug.cgi?id=136677
845
846         Reviewed by Darin Adler.
847
848         The warning causes various build errors depending on which Clang you are using.
849
850         For example, with recent clangs, it breaks all the ARCHS dependent code like this:
851             if (sizeof(uintptr_t) == 4)
852                 // Something for 32 bits.
853             else
854                 // Somethign for 64 bits.
855
856         * Configurations/Base.xcconfig:
857
858 2014-09-07  Filip Pizlo  <fpizlo@apple.com>
859
860         DFG should have a reusable SSA builder
861         https://bugs.webkit.org/show_bug.cgi?id=136331
862
863         Reviewed by Oliver Hunt.
864         
865         Update the alloc() method to use variadic templates. This makes it more natural to use.
866
867         * wtf/SegmentedVector.h:
868         (WTF::SegmentedVector::alloc):
869
870 2014-09-08  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
871
872         Remove FILTERS flag
873         https://bugs.webkit.org/show_bug.cgi?id=136571
874
875         Reviewed by Darin Adler.
876
877         * wtf/FeatureDefines.h:
878
879 2014-09-08  Dan Bernstein  <mitz@apple.com>
880
881         HAVE(VOUCHERS) is not available outside of WebKit2
882         https://bugs.webkit.org/show_bug.cgi?id=136637
883
884         Reviewed by Tim Horton.
885
886         * wtf/Platform.h: Moved the definition of HAVE_VOUCHERS from WebKit2’s config.h here.
887
888 2014-09-08  Tim Horton  <timothy_horton@apple.com>
889
890         Try to fix the build after r173383, part 2.
891
892         * wtf/OSObjectPtr.h:
893
894 2014-09-08  Tim Horton  <timothy_horton@apple.com>
895
896         Try to fix the build after r173383.
897
898         * wtf/OSObjectPtr.h:
899
900 2014-09-07  Sam Weinig  <sam@webkit.org>
901
902         Make OSObjectPtr a bit more like RefPtr
903         https://bugs.webkit.org/show_bug.cgi?id=136613
904
905         Reviewed by Darin Adler.
906
907         Address some of Darin's feedback by:
908         - Making the adopting constructor private and friending adoptOSObject().
909         - Implementing the assignment operator using swap.
910         - Adding a move assignment operator.
911
912         * wtf/OSObjectPtr.h:
913         (WTF::OSObjectPtr::operator=):
914         (WTF::OSObjectPtr::swap):
915         (WTF::OSObjectPtr::OSObjectPtr):
916
917 2014-09-08  Jessie Berlin  <jberlin@apple.com>
918
919         More build fixes after r173374.
920
921         * wtf/dtoa/strtod.cc:
922
923 2014-09-08  Jessie Berlin  <jberlin@apple.com>
924
925         Build fix after r173374.
926
927         * wtf/dtoa/strtod.cc:
928
929 2014-09-08  Jessie Berlin  <jberlin@apple.com>
930
931         Speculative build fix after r173364.
932
933         * wtf/dtoa/strtod.cc:
934
935 2014-09-07  Maciej Stachowiak  <mjs@apple.com>
936
937         Introduce COMPILER_QUIRK(CONSIDERS_UNREACHABLE_CODE) and use it
938         https://bugs.webkit.org/show_bug.cgi?id=136616
939
940         Reviewed by Darin Adler.
941
942         * wtf/Compiler.h: Define the quirk for all compilers but clang.
943
944 2014-09-06  Sam Weinig  <sam@webkit.org>
945
946         XPCPtr should be converted into an all purpose smart pointer for os_objects
947         https://bugs.webkit.org/show_bug.cgi?id=136602
948
949         Reviewed by Darin Adler.
950
951         * WTF.xcodeproj/project.pbxproj:
952         * wtf/OSObjectPtr.h: Copied from Source/WebKit2/Platform/IPC/mac/XPCPtr.h.
953         (WTF::retainOSObject):
954         (WTF::releaseOSObject):
955         (WTF::OSObjectPtr::OSObjectPtr):
956         (WTF::OSObjectPtr::~OSObjectPtr):
957         (WTF::OSObjectPtr::operator=):
958         (WTF::adoptOSObject):
959         (IPC::XPCPtr::XPCPtr): Deleted.
960         (IPC::XPCPtr::~XPCPtr): Deleted.
961         (IPC::XPCPtr::operator=): Deleted.
962         (IPC::adoptXPC): Deleted.
963         Rename/move XPCPtr to OSObjectPtr and make it work with any os_object.
964
965 2014-09-06  Darin Adler  <darin@apple.com>
966
967         Make updates suggested by new version of Xcode
968         https://bugs.webkit.org/show_bug.cgi?id=136603
969
970         Reviewed by Mark Rowe.
971
972         * Configurations/Base.xcconfig: Added CLANG_WARN_UNREACHABLE_CODE,
973         COMBINE_HIDPI_IMAGES, and ENABLE_STRICT_OBJC_MSGSEND as suggested by
974         Xcode upgrade check.
975
976         * WTF.xcodeproj/project.pbxproj: Updated LastUpgradeCheck.
977
978 2014-09-05  Geoffrey Garen  <ggaren@apple.com>
979
980         bmalloc should honor the FastMalloc statistics API
981         https://bugs.webkit.org/show_bug.cgi?id=136592
982
983         Reviewed by Gavin Barraclough.
984
985         * wtf/FastMalloc.cpp:
986         (WTF::fastMallocStatistics):
987
988 2014-09-05  Geoffrey Garen  <ggaren@apple.com>
989
990         bmalloc should honor the FastMalloc scavenging API
991         https://bugs.webkit.org/show_bug.cgi?id=136588
992
993         Reviewed by Andreas Kling.
994
995         * wtf/FastMalloc.cpp:
996         (WTF::releaseFastMallocFreeMemory):
997
998 2014-09-05  Geoffrey Garen  <ggaren@apple.com>
999
1000         Rolled out <http://trac.webkit.org/changeset/173313>.
1001
1002         It seems to have broken the PLT bot.
1003
1004                 Do the bmalloc.
1005                 https://bugs.webkit.org/show_bug.cgi?id=132629
1006
1007                 * wtf/FastMalloc.cpp:
1008
1009 2014-06-06  Jer Noble  <jer.noble@apple.com>
1010
1011         Refactoring: make MediaTime the primary time type for audiovisual times.
1012         https://bugs.webkit.org/show_bug.cgi?id=133579
1013
1014         Reviewed by Eric Carlson.
1015
1016         Add a unary minus operator, and add unimplemented private casting operators, to make
1017         unintentional double->MediaTime and MediaTime->double casts hard errors.
1018
1019         * wtf/MediaTime.cpp:
1020         (WTF::MediaTime::operator-):
1021         * wtf/MediaTime.h:
1022
1023 2014-09-04  Geoffrey Garen  <ggaren@apple.com>
1024
1025         Do the bmalloc.
1026         https://bugs.webkit.org/show_bug.cgi?id=132629
1027
1028         Reviewed by Michael Saboff.
1029
1030         64-bit only for now, just to try it out.
1031
1032         * wtf/FastMalloc.cpp:
1033
1034 2014-09-05  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
1035
1036         Enable GenGC on ARM Traditional
1037         https://bugs.webkit.org/show_bug.cgi?id=136567
1038
1039         Reviewed by Csaba Osztrogonác.
1040
1041         * wtf/Platform.h:
1042
1043 2014-09-04  Filip Pizlo  <fpizlo@apple.com>
1044
1045         Beef up the DFG's CFG analyses to include iterated dominance frontiers and more user-friendly BlockSets
1046         https://bugs.webkit.org/show_bug.cgi?id=136520
1047
1048         Fix bug found in Geoff's review but not landed in previous commit.
1049
1050         * wtf/BitVector.cpp:
1051         (WTF::BitVector::equalsSlowCaseFast): return true.
1052
1053 2014-09-03  Filip Pizlo  <fpizlo@apple.com>
1054
1055         Beef up the DFG's CFG analyses to include iterated dominance frontiers and more user-friendly BlockSets
1056         https://bugs.webkit.org/show_bug.cgi?id=136520
1057
1058         Reviewed by Geoffrey Garen.
1059         
1060         Give BitVector a way to quickly find the next set (or unset) bit. Make BitVector equality
1061         faster. Fix a minor closure goof in Spectrum.
1062
1063         * wtf/BitVector.cpp:
1064         (WTF::BitVector::equalsSlowCase):
1065         (WTF::BitVector::equalsSlowCaseFast):
1066         (WTF::BitVector::equalsSlowCaseSimple):
1067         * wtf/BitVector.h:
1068         (WTF::BitVector::findBit):
1069         (WTF::BitVector::findBitFast):
1070         (WTF::BitVector::findBitSimple):
1071         (WTF::BitVector::findBitInWord):
1072         * wtf/Spectrum.h:
1073         (WTF::Spectrum::removeIf):
1074
1075 2014-09-04  Anders Carlsson  <andersca@apple.com>
1076
1077         Make hash table classes final
1078         https://bugs.webkit.org/show_bug.cgi?id=136540
1079
1080         Reviewed by Antti Koivisto.
1081
1082         We don't want anybody inheriting from these classes, so make them final.
1083
1084         * wtf/HashCountedSet.h:
1085         * wtf/HashMap.h:
1086         * wtf/HashSet.h:
1087
1088 2014-09-04  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
1089
1090         Remove CSS_FILTERS flag
1091         https://bugs.webkit.org/show_bug.cgi?id=136529
1092
1093         Reviewed by Dirk Schulze.
1094
1095         * wtf/FeatureDefines.h:
1096
1097 2014-09-04  Commit Queue  <commit-queue@webkit.org>
1098
1099         Unreviewed, rolling out r173201.
1100         https://bugs.webkit.org/show_bug.cgi?id=136538
1101
1102         Improves the situation but also introduces additional crashes.
1103         (Requested by zdobersek on #webkit).
1104
1105         Reverted changeset:
1106
1107         "GMainLoopSource is exposed to race conditions"
1108         https://bugs.webkit.org/show_bug.cgi?id=135800
1109         http://trac.webkit.org/changeset/173201
1110
1111 2014-09-04  Pratik Solanki  <psolanki@apple.com>
1112
1113         Remove iOS specific disk image cache
1114         https://bugs.webkit.org/show_bug.cgi?id=136517
1115
1116         Reviewed by Antti Koivisto.
1117
1118         Disk image cache code unnecessarily complicates SharedBuffer implementation. We can remove
1119         this now since we don't enable it in WebKit2 on iOS.
1120
1121         * wtf/FeatureDefines.h:
1122
1123 2014-09-03  Dan Bernstein  <mitz@apple.com>
1124
1125         Get rid of HIGH_DPI_CANVAS leftovers
1126         https://bugs.webkit.org/show_bug.cgi?id=136491
1127
1128         Reviewed by Benjamin Poulain.
1129
1130         * wtf/FeatureDefines.h: Removed definition of ENABLE_HIGH_DPI_CANVAS.
1131
1132 2014-09-03  Zan Dobersek  <zdobersek@igalia.com>
1133
1134         GMainLoopSource is exposed to race conditions
1135         https://bugs.webkit.org/show_bug.cgi?id=135800
1136
1137         Reviewed by Carlos Garcia Campos.
1138
1139         GMainLoopSource objects can be dispatching tasks on one thread
1140         while having a new task scheduled on a different thread. This
1141         can for instance occur in WebKitVideoSink, where the timeout
1142         callback can be called on main thread while at the same time
1143         it is being rescheduled on a different thread (created through
1144         GStreamer).
1145
1146         The initial solution is to use GMutex to prevent parallel data
1147         access from different threads. In the future I plan to add better
1148         assertions, some meaningful comments and look at the possibility
1149         of creating thread-specific GMainLoopSource objects that wouldn't
1150         require the use of GMutex.
1151
1152         GSource, GCancellable and std::function<> objects are now packed
1153         into an internal Context structure. Using the C++11 move semantics
1154         it's simple to, at the time of dispatch, move the current context
1155         out of the GMainLoopSource object in case the dispatch causes a
1156         rescheduling on that same object.
1157
1158         All the schedule*() methods and the cancelInternal() method callers
1159         now lock the GMutex to ensure no one else is accessing the data at
1160         that moment. Similar goes for the dispatch methods, but those do
1161         the dispatch and possible destruction duties with the mutex unlocked.
1162         The dispatch can cause rescheduling on the same GMainLoopSource object,
1163         which must not be done with a locked mutex.
1164
1165         * wtf/gobject/GMainLoopSource.cpp:
1166         (WTF::GMainLoopSource::GMainLoopSource):
1167         (WTF::GMainLoopSource::~GMainLoopSource):
1168         (WTF::GMainLoopSource::cancel):
1169         (WTF::GMainLoopSource::cancelInternal):
1170         (WTF::GMainLoopSource::scheduleIdleSource):
1171         (WTF::GMainLoopSource::schedule):
1172         (WTF::GMainLoopSource::scheduleTimeoutSource):
1173         (WTF::GMainLoopSource::scheduleAfterDelay):
1174         (WTF::GMainLoopSource::voidCallback):
1175         (WTF::GMainLoopSource::boolCallback):
1176         (WTF::GMainLoopSource::socketCallback):
1177         (WTF::GMainLoopSource::destroy):
1178         (WTF::GMainLoopSource::reset): Deleted.
1179         * wtf/gobject/GMainLoopSource.h:
1180
1181 2014-09-02  Daniel Bates  <dabates@apple.com>
1182
1183         [iOS] Support using Foundation networking code
1184         https://bugs.webkit.org/show_bug.cgi?id=136467
1185
1186         Reviewed by Pratik Solanki.
1187
1188         Disable USE(CFNETWORK) and use the Foundation networking code by default when building
1189         iOS WebKit without the Apple Internal SDK.
1190
1191         * wtf/Platform.h:
1192
1193 2014-08-26  Maciej Stachowiak  <mjs@apple.com>
1194
1195         Use RetainPtr::autorelease in some places where it seems appropriate
1196         https://bugs.webkit.org/show_bug.cgi?id=136280
1197
1198         Reviewed by Darin Adler.
1199
1200         * wtf/text/mac/StringImplMac.mm:
1201         (WTF::StringImpl::operator NSString *): Use autorelease() instead of
1202         CFBridgingRelease(leakRef())
1203
1204 2014-08-29  Joseph Pecoraro  <pecoraro@apple.com>
1205
1206         JavaScriptCore: Use ASCIILiteral where possible
1207         https://bugs.webkit.org/show_bug.cgi?id=136179
1208
1209         Reviewed by Michael Saboff.
1210
1211         * wtf/text/WTFString.cpp:
1212         (asciiDebug):
1213
1214 2014-08-27  Filip Pizlo  <fpizlo@apple.com>
1215
1216         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"
1217         https://bugs.webkit.org/show_bug.cgi?id=93361
1218
1219         Reviewed by Mark Hahnenberg.
1220         
1221         Make BitVector operations return the previous value of the bit you're changing. This is
1222         useful for the kinds of set operations that are commonplace in compiler graph searches.
1223
1224         * wtf/BitVector.h:
1225         (WTF::BitVector::quickSet):
1226         (WTF::BitVector::quickClear):
1227         (WTF::BitVector::set):
1228         (WTF::BitVector::ensureSizeAndSet):
1229         (WTF::BitVector::clear):
1230
1231 2014-08-27  Filip Pizlo  <fpizlo@apple.com>
1232
1233         FTL should be able to do polymorphic call inlining
1234         https://bugs.webkit.org/show_bug.cgi?id=135145
1235
1236         Reviewed by Geoffrey Garen.
1237         
1238         Add some power that I need for call edge profiling.
1239
1240         * wtf/OwnPtr.h:
1241         (WTF::OwnPtr<T>::createTransactionally):
1242         * wtf/Spectrum.h:
1243         (WTF::Spectrum::add):
1244         (WTF::Spectrum::addAll):
1245         (WTF::Spectrum::get):
1246         (WTF::Spectrum::size):
1247         (WTF::Spectrum::KeyAndCount::KeyAndCount):
1248         (WTF::Spectrum::clear):
1249         (WTF::Spectrum::removeIf):
1250
1251 2014-08-27  Nico Weber  <thakis@chromium.org>
1252
1253         Delete a MSVS2010 workaround.
1254         https://bugs.webkit.org/show_bug.cgi?id=136321
1255
1256         Reviewed by Benjamin Poulain.
1257
1258         Ports https://codereview.chromium.org/512923004/ by the talented
1259         Nico Weber from Blink. No intended behavior change.
1260
1261         * wtf/Vector.h:
1262         (WTF::=):
1263
1264 2014-08-27  Mark Rowe  <mrowe@apple.com>
1265
1266         JavaScriptCore is missing debug info for WTF because libWTF.a is stripped.
1267         <https://webkit.org/b/136320> / <rdar://problem/18148776>
1268
1269         Reviewed by Dan Bernstein.
1270
1271         * Configurations/WTF.xcconfig: Set STRIP_INSTALLED_PRODUCT = NO for the target
1272         that produces libWTF.a so that the debug symbols will be linked into JavaScriptCore
1273         and end up in its dSYM file.
1274
1275 2014-08-26  Commit Queue  <commit-queue@webkit.org>
1276
1277         Unreviewed, rolling out r172940.
1278         https://bugs.webkit.org/show_bug.cgi?id=136256
1279
1280         Caused assertions on fast/storage/serialized-script-
1281         value.html, and possibly flakiness on more tests (Requested by
1282         ap on #webkit).
1283
1284         Reverted changeset:
1285
1286         "FTL should be able to do polymorphic call inlining"
1287         https://bugs.webkit.org/show_bug.cgi?id=135145
1288         http://trac.webkit.org/changeset/172940
1289
1290 2014-08-23  Filip Pizlo  <fpizlo@apple.com>
1291
1292         FTL should be able to do polymorphic call inlining
1293         https://bugs.webkit.org/show_bug.cgi?id=135145
1294
1295         Reviewed by Geoffrey Garen.
1296         
1297         Add some power that I need for call edge profiling.
1298
1299         * wtf/OwnPtr.h:
1300         (WTF::OwnPtr<T>::createTransactionally):
1301         * wtf/Spectrum.h:
1302         (WTF::Spectrum::add):
1303         (WTF::Spectrum::addAll):
1304         (WTF::Spectrum::get):
1305         (WTF::Spectrum::size):
1306         (WTF::Spectrum::KeyAndCount::KeyAndCount):
1307         (WTF::Spectrum::clear):
1308         (WTF::Spectrum::removeIf):
1309
1310 2014-08-25  Tomas Popela  <tpopela@redhat.com>
1311
1312         Add support for little-endian PowerPC64
1313         https://bugs.webkit.org/show_bug.cgi?id=135647
1314
1315         Reviewed by Oliver Hunt.
1316
1317         * wtf/Platform.h:
1318         * wtf/dtoa/utils.h:
1319
1320 2014-08-24  Zan Dobersek  <zdobersek@igalia.com>
1321
1322         GenericHashTraits::peek() is producing copies of passed-in temporary values
1323         https://bugs.webkit.org/show_bug.cgi?id=131461
1324
1325         Reviewed by Darin Adler.
1326
1327         * wtf/HashTraits.h:
1328         (WTF::GenericHashTraits::peek): Make this method a template that passes through
1329         the passed-in value without copying, achieved by using universal references and
1330         std::forward<>().
1331
1332 2014-08-22  Daniel Bates  <dabates@apple.com>
1333
1334         [iOS] Disable ENABLE_IOS_{GESTURE, TOUCH}_EVENTS, and temporarily disable ENABLE_TOUCH_EVENTS
1335         and ENABLE_XSLT when building with the iOS public SDK
1336         https://bugs.webkit.org/show_bug.cgi?id=135945
1337
1338         Reviewed by Andy Estes.
1339
1340         * wtf/FeatureDefines.h:
1341
1342 2014-08-22  Akos Kiss  <akiss@inf.u-szeged.hu>
1343
1344         Enable fixed executable allocator for any ARM64 target.
1345         https://bugs.webkit.org/show_bug.cgi?id=136162
1346
1347         Reviewed by Michael Saboff.
1348
1349         The ARM64 macro assembler relies on near calls being implemented by BL
1350         instructions, which have only 128MB offset range from PC. The
1351         on-demand executable allocator cannot ensure that any two locations in
1352         memory allocated for the JIT-compiled code are within this range. 
1353         However, the fixed executable allocator has a fixed 16MB memory pool for
1354         ARM64.
1355
1356         * wtf/Platform.h:
1357         Define ENABLE_EXECUTABLE_ALLOCATOR_FIXED if CPU(ARM64), and update
1358         attached comment.
1359
1360 2014-08-22  Commit Queue  <commit-queue@webkit.org>
1361
1362         Unreviewed, rolling out r172844.
1363         https://bugs.webkit.org/show_bug.cgi?id=136164
1364
1365         re-applying WEBCORE_EXPORTS patch (Requested by
1366         alexchristensen on #webkit).
1367
1368         Reverted changeset:
1369
1370         "Revert r172831, it broke the Windows build."
1371         http://trac.webkit.org/changeset/172844
1372
1373 2014-08-22  Jon Lee  <jonlee@apple.com>
1374
1375         Fix iOS build due to r172832 and move RUBBER_BANDING out of FeatureDefines.h
1376         https://bugs.webkit.org/show_bug.cgi?id=136157
1377
1378         Reviewed by Simon Fraser.
1379
1380         * wtf/FeatureDefines.h: Remove ENABLE(RUBBER_BANDING) logic for Mac platform.
1381
1382 2014-08-21  Tim Horton  <timothy_horton@apple.com>
1383
1384         Revert r172831, it broke the Windows build.
1385
1386         * wtf/ExportMacros.h:
1387
1388 2014-08-21  Zalan Bujtas  <zalan@apple.com>
1389
1390         Enable SATURATED_LAYOUT_ARITHMETIC.
1391         https://bugs.webkit.org/show_bug.cgi?id=136106
1392
1393         Reviewed by Simon Fraser.
1394
1395         SATURATED_LAYOUT_ARITHMETIC protects LayoutUnit against arithmetic overflow.
1396         (No measurable performance regression on Mac.)
1397
1398         * wtf/FeatureDefines.h:
1399
1400 2014-08-21  Alex Christensen  <achristensen@webkit.org>
1401
1402         More WEBCORE_EXPORT macros.
1403         https://bugs.webkit.org/show_bug.cgi?id=136129
1404
1405         Reviewed by Tim Horton.
1406
1407         * wtf/ExportMacros.h:
1408         Removed WTF_TESTING which isn't used.
1409
1410 2014-08-20  Akos Kiss  <akiss@inf.u-szeged.hu>
1411
1412         Enable ARM64 disassembler on EFL
1413         https://bugs.webkit.org/show_bug.cgi?id=136089
1414
1415         Reviewed by Filip Pizlo.
1416
1417         * wtf/Platform.h:
1418         Enable WTF_USE_ARM64_DISASSEMBLER for EFL as well.
1419
1420 2014-08-19  Pratik Solanki  <psolanki@apple.com>
1421
1422         Remove PurgeableBuffer since it is not very useful any more
1423         https://bugs.webkit.org/show_bug.cgi?id=135939
1424
1425         Reviewed by Andreas Kling.
1426
1427         * wtf/Platform.h: Remove ENABLE_PURGEABLE_MEMORY define.
1428         * wtf/VMTags.h: Remove VM tags used by WebCore for cached resource purgeable memory.
1429
1430 2014-08-19  Magnus Granberg  <zorry@gentoo.org>
1431
1432         TEXTREL in libjavascriptcoregtk-1.0.so.0.11.0 on x86 (or i586)
1433         https://bugs.webkit.org/show_bug.cgi?id=70610
1434
1435         Reviewed by Darin Adler.
1436
1437         Add PLT if we're building with PIC.
1438
1439         * wtf/InlineASM.h:
1440
1441 2014-08-19  Zalan Bujtas  <zalan@apple.com>
1442
1443         Remove ENABLE(SUBPIXEL_LAYOUT).
1444         https://bugs.webkit.org/show_bug.cgi?id=136077
1445
1446         Reviewed by Simon Fraser.
1447
1448         Remove compile time flag SUBPIXEL_LAYOUT. All ports have it enabled for a while now.
1449
1450         * wtf/FeatureDefines.h:
1451
1452 2014-08-18  Maciej Stachowiak  <mjs@apple.com>
1453
1454         Use NSURLFileTypeMappings directly instead of depending on WebKitSystemInterface wrappers for it
1455         https://bugs.webkit.org/show_bug.cgi?id=136035
1456
1457         Reviewed by Dan Bernstein.
1458
1459         * wtf/Platform.h: Define USE(APPLE_INTERNAL_SDK) by default on platforms that have it.
1460
1461 2014-08-18  Commit Queue  <commit-queue@webkit.org>
1462
1463         Unreviewed, rolling out r172736.
1464         https://bugs.webkit.org/show_bug.cgi?id=136060
1465
1466         Caused 14% PLT regressions (Requested by rniwa on #webkit).
1467
1468         Reverted changeset:
1469
1470         "Remove PurgeableBuffer since it is not very useful any more"
1471         https://bugs.webkit.org/show_bug.cgi?id=135939
1472         http://trac.webkit.org/changeset/172736
1473
1474 2014-08-18  Pratik Solanki  <psolanki@apple.com>
1475
1476         Remove PurgeableBuffer since it is not very useful any more
1477         https://bugs.webkit.org/show_bug.cgi?id=135939
1478
1479         Reviewed by Geoffrey Garen.
1480
1481         * wtf/Platform.h: Remove ENABLE_PURGEABLE_MEMORY define.
1482         * wtf/VMTags.h: Remove VM tags used by WebCore for cached resource purgeable memory.
1483
1484 2014-08-14  Benjamin Poulain  <benjamin@webkit.org>
1485
1486         CSS JIT: compile the :empty pseudo class
1487         https://bugs.webkit.org/show_bug.cgi?id=135958
1488
1489         Reviewed by Andreas Kling.
1490
1491         * wtf/text/StringImpl.h:
1492         (WTF::StringImpl::lengthMemoryOffset):
1493
1494 2014-08-12  Myles C. Maxfield  <mmaxfield@apple.com>
1495
1496         Elements whose contents start with an astral Unicode symbol disappear when CSS `::first-letter` is applied to them
1497         https://bugs.webkit.org/show_bug.cgi?id=135756
1498
1499         Reviewed by Darin Adler.
1500
1501         Add a method to StringView which passes through contains() to find().
1502
1503         * wtf/text/StringView.h:
1504         (WTF::StringView::contains):
1505
1506 2014-08-12  Pratik Solanki  <psolanki@apple.com>
1507
1508         Enable didReceiveDataArray callback on Mac
1509         https://bugs.webkit.org/show_bug.cgi?id=135554
1510         <rdar://problem/9170731>
1511
1512         Reviewed by Andreas Kling.
1513
1514         Enable WTF_USE_NETWORK_CFDATA_ARRAY_CALLBACK for all Cocoa platforms so that we use the same
1515         code path for Mac and iOS.
1516
1517         * wtf/Platform.h:
1518
1519 2014-08-12  Alex Christensen  <achristensen@webkit.org>
1520
1521         Generate header detection headers for CMake on Windows.
1522         https://bugs.webkit.org/show_bug.cgi?id=135807
1523
1524         Reviewed by Brent Fulgham.
1525
1526         * wtf/CMakeLists.txt:
1527         * wtf/PlatformWin.cmake:
1528         Generate and include a stub WTFHeaderDetection.h.
1529
1530 2014-08-11  Andy Estes  <aestes@apple.com>
1531
1532         [iOS] Get rid of iOS.xcconfig
1533         https://bugs.webkit.org/show_bug.cgi?id=135809
1534
1535         Reviewed by Joseph Pecoraro.
1536
1537         All iOS.xcconfig did was include AspenFamily.xcconfig, so there's no need for the indirection.
1538
1539         * Configurations/Base.xcconfig:
1540         * Configurations/iOS.xcconfig: Removed.
1541         * WTF.xcodeproj/project.pbxproj:
1542
1543 2014-08-12  Zan Dobersek  <zdobersek@igalia.com>
1544
1545         Clean up GMutexLocker
1546         https://bugs.webkit.org/show_bug.cgi?id=135833
1547
1548         Reviewed by Carlos Garcia Campos.
1549
1550         Place the GMutexLocker into the WTF namespace. There's no need for this
1551         class to use FastMalloc since it's always allocated on the stack. The
1552         constructor and class now operate on a GMutex reference. There's little
1553         need for an additional inline specifier for methods defined in the header.
1554         The mutex() method is removed as it was not used. m_val is renamed to a
1555         more descriptive m_locked and is made a boolean.
1556
1557         * wtf/gobject/GMutexLocker.h:
1558         (WTF::GMutexLocker::GMutexLocker):
1559         (WTF::GMutexLocker::~GMutexLocker):
1560         (WTF::GMutexLocker::lock):
1561         (WTF::GMutexLocker::unlock):
1562         (WebCore::GMutexLocker::GMutexLocker): Deleted.
1563         (WebCore::GMutexLocker::~GMutexLocker): Deleted.
1564         (WebCore::GMutexLocker::lock): Deleted.
1565         (WebCore::GMutexLocker::unlock): Deleted.
1566         (WebCore::GMutexLocker::mutex): Deleted.
1567
1568 2014-08-12  Zan Dobersek  <zdobersek@igalia.com>
1569
1570         Make GRefPtr move-able
1571         https://bugs.webkit.org/show_bug.cgi?id=135801
1572
1573         Reviewed by Carlos Garcia Campos.
1574
1575         Add move constructor and move assignment operator for GRefPtr.
1576
1577         * wtf/gobject/GRefPtr.h:
1578         (WTF::GRefPtr::GRefPtr):
1579         (WTF::=):
1580
1581 2014-08-10  Benjamin Poulain  <benjamin@webkit.org>
1582
1583         Update HashTable's operator= after r172167 per review comments
1584
1585         * wtf/HashTable.h:
1586         Update the type as suggested by Darin.
1587
1588 2014-08-07  Benjamin Poulain  <bpoulain@apple.com>
1589
1590         Get rid of SCRIPTED_SPEECH
1591         https://bugs.webkit.org/show_bug.cgi?id=135729
1592
1593         Reviewed by Brent Fulgham.
1594
1595         * wtf/FeatureDefines.h:
1596
1597 2014-08-07  Benjamin Poulain  <bpoulain@apple.com>
1598
1599         Get rid of INPUT_SPEECH
1600         https://bugs.webkit.org/show_bug.cgi?id=135672
1601
1602         Reviewed by Andreas Kling.
1603
1604         * wtf/FeatureDefines.h:
1605
1606 2014-08-06  Dean Jackson  <dino@apple.com>
1607
1608         ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED is not used anywhere. Remove it.
1609         https://bugs.webkit.org/show_bug.cgi?id=135675
1610
1611         Reviewed by Sam Weinig.
1612
1613         * wtf/FeatureDefines.h:
1614
1615 2014-08-06  Benjamin Poulain  <benjamin@webkit.org>
1616
1617         HashTable based classes leak a lot
1618         https://bugs.webkit.org/show_bug.cgi?id=135638
1619
1620         Reviewed by Darin Adler.
1621
1622         * wtf/HashTable.h:
1623         The operator= taking a rvalue reference was never freeing the memory allocated
1624         for the table of the left hand side object.
1625
1626         This patch fixes the leaks by doing an alloc+swap with a new object.
1627         The object temp gets the reference to m_table, and destroys it in the regular destructor
1628         when going out of scope.
1629
1630         Kudos to Pratik Solanki for finding the leaks.
1631
1632 2014-08-06  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
1633
1634         [JSC] Build fix for FTL on EFL after ftlopt merge
1635         https://bugs.webkit.org/show_bug.cgi?id=135565
1636
1637         Reviewed by Mark Lam.
1638
1639         Added ENABLE(FTL_NATIVE_CALL_INLINING).
1640
1641         * wtf/Platform.h:
1642
1643 2014-08-04  Alex Christensen  <achristensen@webkit.org>
1644
1645         Progress towards CMake on Mac.
1646         https://bugs.webkit.org/show_bug.cgi?id=135528
1647
1648         Reviewed by Gyuyoung Kim.
1649
1650         * wtf/CMakeLists.txt:
1651         Include text directory.
1652         * wtf/PlatformMac.cmake: Added.
1653
1654 2014-07-31  Alex Christensen  <achristensen@webkit.org>
1655
1656         Progress towards cmake on Windows.
1657         https://bugs.webkit.org/show_bug.cgi?id=135484
1658
1659         Reviewed by Martin Robinson.
1660
1661         * wtf/CMakeLists.txt:
1662         Added WTF_LIBRARY_TYPE because Windows needs WTF to be a shared library.
1663
1664 2014-07-30  Andreas Kling  <akling@apple.com>
1665
1666         PropertyName's internal string is always atomic.
1667         <https://webkit.org/b/135451>
1668
1669         Remove AtomicString::findStringWithHash() since nobody uses it anymore.
1670
1671         Reviewed by Benjamin Poulain.
1672
1673         * wtf/text/AtomicString.cpp:
1674         (WTF::findString): Deleted.
1675         (WTF::AtomicString::findStringWithHash): Deleted.
1676         * wtf/text/AtomicString.h:
1677
1678 2014-07-30  Andy Estes  <aestes@apple.com>
1679
1680         USE(CONTENT_FILTERING) should be ENABLE(CONTENT_FILTERING)
1681         https://bugs.webkit.org/show_bug.cgi?id=135439
1682
1683         Reviewed by Tim Horton.
1684
1685         We now support two different platform content filters, and will soon support a mock content filter (as part of
1686         webkit.org/b/128858). This makes content filtering a feature of WebKit, not just an adoption of a third-party
1687         library. ENABLE() is the correct macro to use for such a feature.
1688
1689         * wtf/Platform.h:
1690
1691 2014-07-29  Brent Fulgham  <bfulgham@apple.com>
1692
1693         [Win] Modify version numbering scheme to support 5-tuple versions
1694         https://bugs.webkit.org/show_bug.cgi?id=135400
1695         <rdar://problem/17849033>
1696
1697         Reviewed by David Kilzer.
1698
1699         * WTF.vcxproj/WTFPostBuild.cmd: Use new version-stamp.pl script
1700         to version WTF.dll.
1701         * WTF.vcxproj/WTFPreBuild.cmd: Make sure we have created the
1702         appropriate version resource during builds.
1703
1704 2014-07-29  Daniel Bates  <dabates@apple.com>
1705
1706         Use WTF::move() instead of std::move() to help ensure move semantics
1707         https://bugs.webkit.org/show_bug.cgi?id=135351
1708
1709         Reviewed by Alexey Proskuryakov.
1710
1711         * wtf/HashTable.h:
1712         (WTF::KeyTraits>::HashTable):
1713
1714 2014-07-28  Brian J. Burg  <burg@cs.washington.edu>
1715
1716         Should not export symbols for base64Encode inline adapter methods
1717         https://bugs.webkit.org/show_bug.cgi?id=135355
1718
1719         Unreviewed build fix.
1720
1721         Fixes the build break introduced by r171682, where a base64Encode
1722         inline adapter method was used in another header, thus creating
1723         multiple definitions of it (and problems with with weak symbols).
1724
1725         * wtf/text/Base64.h: Remove WTF_EXPORT_PRIVATE for inlined methods.
1726
1727 2014-07-27  Filip Pizlo  <fpizlo@apple.com>
1728
1729         Merge r170090, r170092, r170129, r170141, r170161, r170215, r170275, r170375, r170376, r170382, r170383, r170399, r170436, r170489, r170490, r170556 from ftlopt.
1730
1731         * wtf/text/WTFString.h:
1732
1733 2014-07-26  Filip Pizlo  <fpizlo@apple.com>
1734
1735         Unreviewed, roll out r171641-r171644. It broke some tests; will investigate and
1736         reland later.
1737
1738         * wtf/text/WTFString.h:
1739
1740 2014-07-25  Filip Pizlo  <fpizlo@apple.com>
1741
1742         Attempt to fix Windows.
1743
1744         * wtf/text/WTFString.h:
1745
1746 2014-07-25  Gavin Barraclough  <baraclough@apple.com>
1747
1748         Yosemite version number is 101000
1749         https://bugs.webkit.org/show_bug.cgi?id=135301
1750
1751         Reviewed by Sam Weinig.
1752
1753         * wtf/FeatureDefines.h:
1754         * wtf/Platform.h:
1755
1756 2014-07-23  Brent Fulgham  <bfulgham@apple.com>
1757
1758         [Win] Use NO_RETURN_DUE_TO_CRASH on Windows.
1759         https://bugs.webkit.org/show_bug.cgi?id=13519
1760
1761         Reviewed by Mark Lam.
1762
1763         * wtf/Assertions.h: Add MSVC to list of compilers supporting this macro.
1764         * wtf/FastMalloc.cpp: Correct function declaration for NO_RETURN_DUE_TO_CRASH.
1765
1766 2014-07-22  Filip Pizlo  <fpizlo@apple.com>
1767
1768         Merge r169148, r169185, r169188, r169578, r169582, r169584, r169588, r169753 from ftlopt.
1769
1770     2014-06-04  Filip Pizlo  <fpizlo@apple.com>
1771     
1772             [ftlopt] AI should be able track structure sets larger than 1
1773             https://bugs.webkit.org/show_bug.cgi?id=128073
1774     
1775             Reviewed by Oliver Hunt.
1776     
1777             * wtf/Bag.h:
1778             (WTF::Bag::Node::Node):
1779             (WTF::Bag::add):
1780     
1781 2014-07-22  Filip Pizlo  <fpizlo@apple.com>
1782
1783         Merge r168635, r168780, r169005, r169014, and r169143 from ftlopt.
1784
1785     2014-05-20  Filip Pizlo  <fpizlo@apple.com>
1786     
1787             [ftlopt] DFG bytecode parser should turn GetById with nothing but a Getter stub as stuff+handleCall, and handleCall should be allowed to inline if it wants to
1788             https://bugs.webkit.org/show_bug.cgi?id=133105
1789     
1790             Reviewed by Michael Saboff.
1791     
1792             * wtf/Bag.h:
1793             (WTF::Bag::iterator::operator!=):
1794     
1795 2014-07-19  Zan Dobersek  <zdobersek@igalia.com>
1796
1797         [WTF] Add the move constructor, move assignment operator for HashTable
1798         https://bugs.webkit.org/show_bug.cgi?id=130772
1799
1800         Reviewed by Darin Adler.
1801
1802         HashTable has both copy constructor and copy assignment operator, meaning that the move constructor
1803         and move assignment operator are implicitly deleted. This patch defines both to avoid unnecessary
1804         copies when moves can be performed.
1805
1806         * wtf/HashTable.h:
1807         (WTF::KeyTraits>::HashTable):
1808
1809 2014-07-15  Commit Queue  <commit-queue@webkit.org>
1810
1811         Unreviewed, rolling out r171107.
1812         https://bugs.webkit.org/show_bug.cgi?id=134959
1813
1814         This was not the problem! (Requested by kling on #webkit).
1815
1816         Reverted changeset:
1817
1818         "Revert: Run the FastMalloc scavenger thread on iOS as well."
1819         https://bugs.webkit.org/show_bug.cgi?id=134927
1820         http://trac.webkit.org/changeset/171107
1821
1822 2014-07-15  Andreas Kling  <akling@apple.com>
1823
1824         Revert: Run the FastMalloc scavenger thread on iOS as well.
1825         <https://webkit.org/b/134927>
1826         <rdar://problem/17485079>
1827
1828         This appears to be the cause of some elusive crashes, and since I don't
1829         have a way to reproduce them, let's just go back to not running the
1830         scavenger thread on iOS.
1831
1832         Reviewed by Antti Koivisto.
1833
1834         * wtf/FastMalloc.cpp:
1835
1836 2014-07-13  Filip Pizlo  <fpizlo@apple.com>
1837
1838         HashMap should have removeIf()
1839         https://bugs.webkit.org/show_bug.cgi?id=134870
1840
1841         Reviewed by Sam Weinig.
1842         
1843         Expose a new HashMap method, called removeIf(), which allows you to do an efficient
1844         pass over the map and remove a bunch of things at once. This is used by DFG GCSE as
1845         part of https://bugs.webkit.org/show_bug.cgi?id=134677.
1846
1847         * wtf/HashMap.h:
1848         (WTF::X>::removeIf):
1849         * wtf/HashTable.h:
1850         (WTF::KeyTraits>::removeIf):
1851
1852 2014-07-11  peavo@outlook.com  <peavo@outlook.com>
1853
1854         [Win] Enable DFG JIT.
1855         https://bugs.webkit.org/show_bug.cgi?id=123615
1856
1857         Reviewed by Mark Lam.
1858
1859         * wtf/Platform.h:
1860
1861 2014-07-11  Commit Queue  <commit-queue@webkit.org>
1862
1863         Unreviewed, rolling out r170995.
1864         https://bugs.webkit.org/show_bug.cgi?id=134831
1865
1866         Causing odd crashes in debug builds (Requested by zdobersek on
1867         #webkit).
1868
1869         Reverted changeset:
1870
1871         "[WTF] Add the move constructor, move assignment operator for
1872         HashTable"
1873         https://bugs.webkit.org/show_bug.cgi?id=130772
1874         http://trac.webkit.org/changeset/170995
1875
1876 2014-07-09  Zan Dobersek  <zdobersek@igalia.com>
1877
1878         [WTF] Add the move constructor, move assignment operator for HashTable
1879         https://bugs.webkit.org/show_bug.cgi?id=130772
1880
1881         Reviewed by Darin Adler.
1882
1883         HashTable has both copy constructor and copy assignment operator, meaning that the move constructor
1884         and move assignment operator are implicitly deleted. This patch defines both to avoid unnecessary
1885         copies when moves can be performed.
1886
1887         * wtf/HashTable.h:
1888         (WTF::KeyTraits>::HashTable):
1889
1890 2014-07-10  Alex Christensen  <achristensen@webkit.org>
1891
1892         Enable same features on all Windows ports.
1893         https://bugs.webkit.org/show_bug.cgi?id=134715
1894
1895         Reviewed by Brent Fulgham.
1896
1897         * wtf/Platform.h:
1898         Use REQUEST_ANIMATION_FRAME_TIMER on WinCairo.
1899
1900 2014-07-09  Brent Fulgham  <bfulgham@apple.com>
1901
1902         [Win] Unreviewed build fix after r170930.
1903
1904         * WTF.vcxproj/copy-files.cmd: Include cf files in
1905         post-build copy operation.
1906
1907 2014-07-09  Brent Fulgham  <bfulgham@apple.com>
1908
1909         [Win] Remove uses of 'bash' in build system
1910         https://bugs.webkit.org/show_bug.cgi?id=134782
1911         <rdar://problem/17615533>
1912
1913         Reviewed by Dean Jackson.
1914
1915         Remove uses of 'bash' by replacing Windows-specific bash scripts
1916         with Perl equivalents.
1917
1918         * WTF.vcxproj/WTFGenerated.make:
1919         * WTF.vcxproj/WTFGenerated.vcxproj:
1920         * WTF.vcxproj/WTFGenerated.vcxproj.filters:
1921         * WTF.vcxproj/WTFPreBuild.cmd:
1922         * WTF.vcxproj/build-generated-files.pl: Copied from Source/WTF/WTF.vcxproj/build-generated-files.sh.
1923         * WTF.vcxproj/build-generated-files.sh: Removed.
1924
1925 2014-07-09  Brent Fulgham  <bfulgham@apple.com>
1926
1927         [Win] Remove use of 'grep' in build steps
1928         https://bugs.webkit.org/show_bug.cgi?id=134770
1929         <rdar://problem/17608783>
1930
1931         Reviewed by Tim Horton.
1932
1933         Replace uses of the grep command in Windows builds with the equivalent
1934         Perl program.
1935
1936         * WTF.vcxproj/WTFPreBuild.cmd:
1937
1938 2014-07-07  Zan Dobersek  <zdobersek@igalia.com>
1939
1940         Enable ARMv7 disassembler for the GTK port
1941         https://bugs.webkit.org/show_bug.cgi?id=134676
1942
1943         Reviewed by Benjamin Poulain.
1944
1945         * wtf/Platform.h: Enable the ARMv7 disassembler for the GTK port when
1946         targeting the ARMv7 architecture.
1947
1948 2014-07-06  Yoav Weiss  <yoav@yoav.ws>
1949
1950         Turn on img@sizes compile flag
1951         https://bugs.webkit.org/show_bug.cgi?id=134634
1952
1953         Reviewed by Benjamin Poulain.
1954
1955         * wtf/FeatureDefines.h: Added compile flag definition.
1956
1957 2014-07-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1958
1959         Unreivewed, fix build break on EFL and GTK since r170767.
1960
1961         * wtf/CMakeLists.txt: Exclude Decoder.h and Encoder.h because those files were removed.
1962
1963 2014-07-03  Daniel Bates  <dabates@apple.com>
1964
1965         Add WTF::move()
1966         https://bugs.webkit.org/show_bug.cgi?id=134500
1967
1968         Reviewed by Darin Adler.
1969
1970         Substitution of WTF::move() for std::move() rubber-stamped by Anders Carlsson.
1971
1972         Implement WTF::move(), a replacement for std::move(). WTF::move() is less error
1973         prone than std::move() as it compile asserts that its argument is a non-const
1974         lvalue reference before ultimately casting it to a rvalue reference (via std::move).
1975
1976         * wtf/Deque.h: Substitute WTF::move() for std::move().
1977         * wtf/HashMap.h: Ditto.
1978         * wtf/HashSet.h: Ditto.
1979         * wtf/HashTable.h: Ditto.
1980         * wtf/IteratorAdaptors.h: Ditto.
1981         * wtf/IteratorRange.h: Ditto.
1982         * wtf/ListHashSet.h: Ditto.
1983         * wtf/MainThread.cpp: Ditto.
1984         [...]
1985         * wtf/StdLibExtras.h:
1986         (WTF::move): Added.
1987         [...]
1988
1989 2014-07-03  Anders Carlsson  <andersca@apple.com>
1990
1991         Get rid of Encoder.h and Decoder.h from WTF
1992         https://bugs.webkit.org/show_bug.cgi?id=134600
1993
1994         Reviewed by Darin Adler.
1995
1996         * WTF.vcxproj/WTF.vcxproj:
1997         * WTF.vcxproj/WTF.vcxproj.filters:
1998         * WTF.xcodeproj/project.pbxproj:
1999         * wtf/Decoder.h: Removed.
2000         * wtf/Encoder.h: Removed.
2001
2002 2014-07-03  Ryuan Choi  <ryuan.choi@samsung.com>
2003
2004         Broken build with build-webkit --no-video
2005         https://bugs.webkit.org/show_bug.cgi?id=134587
2006
2007         Reviewed by Darin Adler.
2008
2009         MEDIA_CONTROLS_SCRIPT requires VIDEO enabled.
2010
2011         * wtf/FeatureDefines.h: Added error message for dependency failure.
2012
2013 2014-07-02  Enrica Casucci  <enrica@apple.com>
2014
2015         iOS build fix after http://trac.webkit.org/changeset/170697.
2016         
2017         Unreviewed.
2018
2019         * wtf/Deque.h:
2020
2021 2014-07-02  Dan Bernstein  <mitz@apple.com>
2022
2023         Remove some code only needed for versions of Safari that are no longer supported
2024         https://bugs.webkit.org/show_bug.cgi?id=134537
2025
2026         Reviewed by Anders Carlsson.
2027
2028         * wtf/Assertions.cpp:
2029         * wtf/Assertions.h:
2030
2031 2014-07-01  Alex Christensen  <achristensen@webkit.org>
2032
2033         Reduce dynamic memory allocation in css jit.
2034         https://bugs.webkit.org/show_bug.cgi?id=134416
2035
2036         Reviewed by Benjamin Poulain.
2037
2038         * wtf/Deque.h:
2039         Added inlineCapacity optional template parameter.
2040
2041 2014-06-30  Commit Queue  <commit-queue@webkit.org>
2042
2043         Unreviewed, rolling out r170605.
2044         https://bugs.webkit.org/show_bug.cgi?id=134484
2045
2046         The changes cause crashes on ARM64 (Requested by benjaminp on
2047         #webkit).
2048
2049         Reverted changeset:
2050
2051         "Reduce dynamic memory allocation in css jit."
2052         https://bugs.webkit.org/show_bug.cgi?id=134416
2053         http://trac.webkit.org/changeset/170605
2054
2055 2014-06-30  Daniel Bates  <dabates@apple.com>
2056
2057         Make TransformIterator::TransformIterator() take rvalue references
2058         https://bugs.webkit.org/show_bug.cgi?id=134468
2059
2060         Reviewed by Darin Adler.
2061
2062         It's unnecessary to support TransformIterator::TransformIterator() taking const lvalue references
2063         as we only call it with rvalues. As a side benefit, we can use move semantics to initialize the
2064         members of TransformIterator.
2065
2066         * wtf/IteratorAdaptors.h:
2067         (WTF::TransformIterator::TransformIterator): Make constructor take arguments as rvalue references.
2068         (WTF::makeTransformIterator): Substitute std::move() for std::forward().
2069
2070 2014-06-30  Alex Christensen  <achristensen@webkit.org>
2071
2072         Reduce dynamic memory allocation in css jit.
2073         https://bugs.webkit.org/show_bug.cgi?id=134416
2074
2075         Reviewed by Benjamin Poulain.
2076
2077         * wtf/Deque.h:
2078         Added inlineCapacity optional template parameter.
2079
2080 2014-06-30  Anders Carlsson  <andersca@apple.com>
2081
2082         Add code for encoding legacy session history entries
2083         https://bugs.webkit.org/show_bug.cgi?id=134452
2084
2085         Reviewed by Andreas Kling.
2086
2087         * wtf/MallocPtr.h:
2088         (WTF::MallocPtr::malloc):
2089         (WTF::MallocPtr::realloc):
2090
2091 2014-06-27  Andreas Kling  <akling@apple.com>
2092
2093         [ARMv7] Skip one particularly expensive fastFree() alignment check.
2094         <https://webkit.org/b/134402>
2095
2096         The size class alignment check in fastFree() was crazy expensive on ARMv7
2097         due to its use of modulo. Disabling it shaves 470ms off of PLT main thread
2098         time in the web process.
2099
2100         Note that this was very hard to identify in profiles due to TCO.
2101
2102         Reviewed by Gavin Barraclough.
2103
2104         * wtf/FastMalloc.cpp:
2105         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2106
2107 2014-06-26  Andreas Kling  <akling@apple.com>
2108
2109         Bump FastMalloc thread cache max size to 1MB on iOS.
2110         <https://webkit.org/b/134365>
2111
2112         The previous limit (512kB) comes from the old days of very-low-memory
2113         devices, and we can now afford to spend another 512kB here.
2114         Note that we already have a mechanism to purge FastMalloc caches on
2115         system memory pressure.
2116
2117         Looks like a ~400ms progression on PLT.
2118
2119         Reviewed by Geoff Garen.
2120
2121         * wtf/FastMalloc.cpp:
2122
2123 2014-06-26  Laszlo Gombos  <l.gombos@samsung.com>
2124
2125         Define TARGET_OS_IPHONE to 0 for non-darwin ports
2126         https://bugs.webkit.org/show_bug.cgi?id=134347
2127
2128         Reviewed by Darin Adler.
2129
2130         A follow-up to r169880 to make it easier to reason about
2131         the code. The purpose of this change to allow
2132         "#if TARGET_OS_IPHONE" in public header files.
2133
2134         * wtf/Platform.h:
2135
2136 2014-06-26  Chris Fleizach  <cfleizach@apple.com>
2137
2138         Add an undo group for each dictated utterance in WebKit
2139         https://bugs.webkit.org/show_bug.cgi?id=134086
2140
2141         Applied review comments from Sam Weinig.
2142
2143         Move the associated USE #define into Platform.h.
2144
2145         * wtf/Platform.h:
2146
2147 2014-06-25  Geoffrey Garen  <ggaren@apple.com>
2148
2149         Unreviewed, rolling out r166876.
2150
2151         Caused some ECMA test262 failures
2152
2153         Reverted changeset:
2154
2155         "Date object needs to check for ES5 15.9.1.14 TimeClip limit."
2156         https://bugs.webkit.org/show_bug.cgi?id=131248
2157         http://trac.webkit.org/changeset/166876
2158
2159 2014-06-25  peavo@outlook.com  <peavo@outlook.com>
2160
2161         [Win64] ASM LLINT is not enabled.
2162         https://bugs.webkit.org/show_bug.cgi?id=130638
2163
2164         Reviewed by Mark Lam.
2165
2166         * wtf/Platform.h: Enable LLINT and JIT for Win64.
2167
2168 2014-06-25  Laszlo Gombos  <l.gombos@samsung.com>
2169
2170         Remove build guard for progress element
2171         https://bugs.webkit.org/show_bug.cgi?id=134292
2172
2173         Reviewed by Benjamin Poulain.
2174
2175         The build flag is no longer needed as it is always on.
2176
2177         * wtf/FeatureDefines.h:
2178
2179 2014-06-24  Andreas Kling  <akling@apple.com>
2180
2181         Run the FastMalloc scavenger thread on iOS as well.
2182         <https://webkit.org/b/134287>
2183         <rdar://problem/17446198>
2184
2185         Reviewed by Gavin Barraclough.
2186
2187         * wtf/FastMalloc.cpp:
2188
2189 2014-06-24  Anders Carlsson  <andersca@apple.com>
2190
2191         Add PageState to HistoryItem conversion code
2192         https://bugs.webkit.org/show_bug.cgi?id=134259
2193
2194         Reviewed by Andreas Kling.
2195
2196         * wtf/Optional.h:
2197         (WTF::Optional::valueOr):
2198
2199 2014-06-24  László Langó  <llango.u-szeged@partner.samsung.com>
2200
2201         [JavaScriptCore] Enable concurrent JIT on EFL.
2202         https://bugs.webkit.org/show_bug.cgi?id=134242
2203
2204         Reviewed by Csaba Osztrogonác.
2205
2206         * wtf/Platform.h:
2207
2208 2014-06-23  Ryuan Choi  <ryuan.choi@samsung.com>
2209
2210         [EFL] Replace RefPtr<Evas_Object> with UniquePtrEfl
2211         https://bugs.webkit.org/show_bug.cgi?id=134236
2212
2213         Reviewed by Gyuyoung Kim.
2214
2215         Although there are ref/unref for Evas_Object, it's bit odd so we should call evas_object_del to destroy it.
2216         So, this patch replaced RefPtr<Evas_Object> with UniquePtrEfl for the simplicity.
2217
2218         * wtf/PlatformEfl.cmake: Removed RefPtrEfl.cpp from source list.
2219         * wtf/efl/RefPtrEfl.cpp: Removed.
2220         * wtf/efl/RefPtrEfl.h: Removed.
2221
2222 2014-06-21  Brady Eidson  <beidson@apple.com>
2223
2224         Gamepad API - Deprecate the existing implementation
2225         https://bugs.webkit.org/show_bug.cgi?id=134108
2226
2227         Reviewed by Timothy Hatcher.
2228
2229         -Add new "GAMEPAD_DEPRECATED" build flag, moving the existing implementation to use it
2230         -Move some implementation files into a "deprecated" subdirectory.
2231
2232         * wtf/FeatureDefines.h:
2233
2234 2014-06-21  Commit Queue  <commit-queue@webkit.org>
2235
2236         Unreviewed, rolling out r170244.
2237         https://bugs.webkit.org/show_bug.cgi?id=134157
2238
2239         GTK/EFL bindings generator works differently, making this
2240         patch not work there.  Will fix entire patch after a rollout.
2241         (Requested by bradee-oh on #webkit).
2242
2243         Reverted changeset:
2244
2245         "Gamepad API - Deprecate the existing implementation"
2246         https://bugs.webkit.org/show_bug.cgi?id=134108
2247         http://trac.webkit.org/changeset/170244
2248
2249 2014-06-21  Brady Eidson  <beidson@apple.com>
2250
2251         Gamepad API - Deprecate the existing implementation
2252         https://bugs.webkit.org/show_bug.cgi?id=134108
2253
2254         Reviewed by Timothy Hatcher.
2255
2256         -Add new "GAMEPAD_DEPRECATED" build flag, moving the existing implementation to use it
2257         -Add the "Deprecated" suffix to some implementation files
2258
2259         * wtf/FeatureDefines.h:
2260
2261 2014-06-21  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
2262
2263         Removing PAGE_VISIBILITY_API compile guard.
2264         https://bugs.webkit.org/show_bug.cgi?id=133844
2265
2266         Reviewed by Gavin Barraclough.
2267
2268         * wtf/FeatureDefines.h:
2269
2270 2014-06-20  Anders Carlsson  <andersca@apple.com>
2271
2272         Add encoding and decoding support for WTF::Optional
2273         https://bugs.webkit.org/show_bug.cgi?id=134125
2274
2275         Reviewed by Andreas Kling.
2276
2277         * wtf/Optional.h:
2278         (WTF::Optional::operator=):
2279
2280 2014-06-20  Anders Carlsson  <andersca@apple.com>
2281
2282         Add copy/move constructors and assignment operators to WTF::Optional
2283         https://bugs.webkit.org/show_bug.cgi?id=134119
2284
2285         Reviewed by Andreas Kling.
2286
2287         * wtf/Optional.h:
2288         (WTF::Optional::Optional):
2289         (WTF::Optional::operator=):
2290
2291 2014-06-19  Anders Carlsson  <andersca@apple.com>
2292
2293         Add WTF::Optional class
2294         https://bugs.webkit.org/show_bug.cgi?id=134083
2295
2296         Reviewed by Andreas Kling.
2297
2298         * WTF.xcodeproj/project.pbxproj:
2299         * wtf/Optional.h: Added.
2300         (WTF::Optional::Optional):
2301         (WTF::Optional::~Optional):
2302         (WTF::Optional::operator bool):
2303         (WTF::Optional::value):
2304
2305 2014-06-19  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
2306
2307         Remove ENABLE(LLINT) and ENABLE(LLINT_C_LOOP) guards
2308         https://bugs.webkit.org/show_bug.cgi?id=130389
2309
2310         Reviewed by Mark Lam.
2311
2312         Removed ENABLE(LLINT) since we always build with it, and changed ENABLE(LLINT_C_LOOP)
2313         into !ENABLE(JIT) since they are mutually exclusive.
2314
2315         * wtf/OSAllocatorPosix.cpp:
2316         (WTF::OSAllocator::reserveAndCommit):
2317         * wtf/Platform.h:
2318
2319 2014-06-18  Anders Carlsson  <andersca@apple.com>
2320
2321         Add CF type cast function templates and use them in KeyedDecoder in WebKit2
2322         https://bugs.webkit.org/show_bug.cgi?id=134033
2323
2324         Reviewed by Sam Weinig.
2325
2326         * WTF.xcodeproj/project.pbxproj:
2327         * wtf/cf/TypeCasts.h: Added.
2328         (WTF::dynamic_cf_cast):
2329         Returns null if the given CFTypeRef object doesn't have the right type.
2330
2331         (WTF::checked_cf_cast):
2332         ASSERTs (with security implication) if the given CFTypeRef object is null or doesn't have the right type.
2333
2334 2014-06-17  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
2335
2336         Misused PLATFORM(MIDDLE_ENDIAN) and PLATFORM(BIG_ENDIAN).
2337         https://bugs.webkit.org/show_bug.cgi?id=128301
2338
2339         Reviewed by Daniel Bates.
2340
2341         Endianness is a CPU attribute, not a PLATFORM. PLATFORM() macro is replaced to CPU().
2342
2343         * wtf/text/ASCIIFastPath.h:
2344         (WTF::copyLCharsFromUCharSource):
2345
2346 2014-06-17  Andreas Kling  <akling@apple.com>
2347
2348         Web process main thread priority is lower than some network process threads.
2349         <https://webkit.org/b/133987>
2350         <rdar://problem/17330300>
2351
2352         Bring all of our threads to the appropriate priority level by opting in to the
2353         threading QoS APIs. By marking them "user initiated", they still yield to UI
2354         interaction, but take priority over background tasks.
2355
2356         Reviewed by Maciej Stachowiak.
2357
2358         * wtf/Platform.h:
2359         * wtf/Threading.cpp:
2360         (WTF::setCurrentThreadIsUserInitiated):
2361         * wtf/Threading.h:
2362         * wtf/ThreadingPthreads.cpp:
2363         (WTF::createThreadInternal):
2364
2365 2014-06-17  Alex Christensen  <achristensen@webkit.org>
2366
2367         Enable css jit for armv7 on iOS.
2368         https://bugs.webkit.org/show_bug.cgi?id=133961
2369         <rdar://problem/17310631>
2370
2371         Reviewed by Andreas Kling.
2372
2373         * wtf/Platform.h:
2374         Enable css jit for ARM thumb on iOS.
2375
2376 2014-06-17  Dan Bernstein  <mitz@apple.com>
2377
2378         String::isolatedCopy doesn’t return an isolated copy when used on an rvalue reference
2379         https://bugs.webkit.org/show_bug.cgi?id=133968
2380
2381         Reviewed by Anders Carlsson.
2382
2383         Made the rvalue reference overload of isolatedCopy() non-const, so that std::move(*this) is
2384         an rvalue reference that can be moved, rather than copied, into the returned String.
2385
2386         * wtf/text/WTFString.cpp:
2387         (WTF::String::isolatedCopy):
2388         * wtf/text/WTFString.h:
2389
2390 2014-06-15  Dan Bernstein  <mitz@apple.com>
2391
2392         iOS build fix after r169995.
2393
2394         * wtf/RetainPtr.h:
2395
2396 2014-06-15  Anders Carlsson  <andersca@apple.com>
2397
2398         Add an autorelease() member function to RetainPtr
2399         https://bugs.webkit.org/show_bug.cgi?id=133929
2400
2401         Reviewed by Dan Bernstein.
2402
2403         * wtf/RetainPtr.h:
2404
2405 2014-06-13  Alex Christensen  <achristensen@webkit.org>
2406
2407         Unreviewed disabling css jit on armv7.  It's not quite ready yet.
2408
2409         * wtf/Platform.h:
2410         Disable css jit on armv7.
2411
2412 2014-06-13  Alex Christensen  <achristensen@webkit.org>
2413
2414         Enable css jit for armv7 on iOS.
2415         https://bugs.webkit.org/show_bug.cgi?id=133890
2416         <rdar://problem/17310631>
2417
2418         Reviewed by Andreas Kling.
2419
2420         * wtf/Platform.h:
2421         Enable css jit for ARM thumb on iOS.
2422
2423 2014-06-13  Mark Hahnenberg  <mhahnenberg@apple.com>
2424
2425         OSR exit should barrier the Executables for all InlineCallFrames, not just those on the stack at the time of exit
2426         https://bugs.webkit.org/show_bug.cgi?id=133880
2427
2428         Reviewed by Filip Pizlo.
2429
2430         * wtf/Bag.h:
2431         (WTF::Bag::iterator::operator!=): Add != to the Bag iterator so we can use it in range-based iteration.
2432
2433 2014-06-12  Gavin Barraclough  <barraclough@apple.com>
2434
2435         Add support for thread/WorkQueue QoS
2436         https://bugs.webkit.org/show_bug.cgi?id=130688
2437
2438         Reviewed by Anders Carlson & Simon Fraser.
2439
2440         Add the ability to mark threads as UserInteractive.
2441
2442         * wtf/Threading.cpp:
2443         (WTF::setCurrentThreadIsUserInteractive):
2444             - added method to set QoS of current thread to UserInteractive.
2445         * wtf/Threading.h:
2446             - added declaration.
2447
2448 2014-06-12  Alexey Proskuryakov  <ap@apple.com>
2449
2450         Fix Mac after r169880.
2451
2452         This revision added a C++ comment to Platform.h, which breaks sandbox profile
2453         preprocessing.
2454
2455         Also, I do not believe that this comment was entirely accurate - we've always used
2456         this technique with GCC, so there has to be more to it. So, I just removed the comment.
2457
2458         * wtf/Platform.h:
2459
2460 2014-06-11  Csaba Osztrogonác  <ossy@webkit.org>
2461
2462         [EFL][GTK] Ultimate fix not to have build failures
2463         in the future because of "#if TARGET_OS_IPHONE" guards.
2464
2465         Unreviewed buildfix.
2466
2467         * wtf/Platform.h: Define TARGET_OS_IPHONE to 0 on EFL and GTK.
2468
2469 2014-06-11  Ryosuke Niwa  <rniwa@webkit.org>
2470
2471         Turning on DUMP_PROPERTYMAP_STATS causes a build failure
2472         https://bugs.webkit.org/show_bug.cgi?id=133673
2473
2474         Reviewed by Andreas Kling.
2475
2476         Added DEFINE_GLOBAL_FOR_LOGGING to allow running a destructor in logging code
2477         that needs to be enabled in release builds (e.g. for JavaScriptCore).
2478
2479         * wtf/StdLibExtras.h:
2480
2481 2014-06-09  Benjamin Poulain  <bpoulain@apple.com>
2482
2483         Improve CSSPrimitiveValue::customCSSText for ARMv7
2484         https://bugs.webkit.org/show_bug.cgi?id=133597
2485
2486         Reviewed by Andreas Kling.
2487
2488         * wtf/RefPtr.h:
2489         (WTF::RefPtr<T>::RefPtr):
2490         * wtf/text/WTFString.h:
2491         (WTF::String::String):
2492
2493 2014-06-05  Yoav Weiss  <yoav@yoav.ws>
2494
2495         Align srcset parser with recent spec changes
2496         https://bugs.webkit.org/show_bug.cgi?id=133504
2497
2498         Reviewed by Darin Adler.
2499
2500         I've added toInt and toFloat methods to StringView, and exposed
2501         charactersToInt so that they can be used by
2502         HTMLSrcsetParser.cpp.
2503
2504         * wtf/text/WTFString.h:
2505         * wtf/text/StringView.h:
2506         (WTF::StringView::toInt):
2507         (WTF::StringView::toFloat):
2508
2509 2014-06-04  Alex Christensen  <achristensen@webkit.org>
2510
2511         Enable WebGL on Windows.
2512         https://bugs.webkit.org/show_bug.cgi?id=133503
2513
2514         Reviewed by Brent Fulgham.
2515
2516         * wtf/FeatureDefines.h:
2517         Enable WebGL for AppleWin and WinCairo ports.
2518
2519 2014-06-01  Jer Noble  <jer.noble@apple.com>
2520
2521         [MSE] Appends of overlapping sample data do not clear existing samples properly.
2522         https://bugs.webkit.org/show_bug.cgi?id=133435
2523
2524         Reviewed by Darin Adler.
2525
2526         Add a dump method to MediaTime, so that MediaTimes can be easily converted to strings (for logging purposes).
2527
2528         * wtf/MediaTime.cpp:
2529         (WTF::MediaTime::dump):
2530         * wtf/MediaTime.h:
2531
2532 2014-05-31  Anders Carlsson  <andersca@apple.com>
2533
2534         Add a LazyNeverDestroyed class template and use it
2535         https://bugs.webkit.org/show_bug.cgi?id=133425
2536
2537         Reviewed by Darin Adler.
2538
2539         LazyNeverDestroyed is similar to NeverDestroyed, except it's lazily constructed
2540         by calling construct(). This makes it useful for using inside std::call_once functions.
2541         
2542         * wtf/Forward.h:
2543         * wtf/NeverDestroyed.h:
2544         (WTF::LazyNeverDestroyed::construct):
2545         (WTF::LazyNeverDestroyed::operator T&):
2546         (WTF::LazyNeverDestroyed::get):
2547         (WTF::LazyNeverDestroyed::asPtr):
2548         (WTF::LazyNeverDestroyed::MaybeRelax::MaybeRelax):
2549         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
2550         (WTF::atomicallyInitializedStaticMutex):
2551         * wtf/unicode/icu/CollatorICU.cpp:
2552         (WTF::cachedCollatorMutex):
2553
2554 2014-05-29  Alex Christensen  <achristensen@webkit.org>
2555
2556         Enable css jit by default on arm64.
2557         https://bugs.webkit.org/show_bug.cgi?id=133246
2558         <rdar://problem/17073407>
2559
2560         Reviewed by Benjamin Poulain.
2561
2562         * wtf/Platform.h:
2563         Added arm64 to list of supported architectures.
2564
2565 2014-05-28  Filip Pizlo  <fpizlo@apple.com>
2566
2567         DFG::DCEPhase inserts into an insertion set in reverse, causing hilarious basic block corruption if you kill a lot of NewArrays
2568         https://bugs.webkit.org/show_bug.cgi?id=133368
2569
2570         Reviewed by Mark Lam.
2571
2572         * wtf/Insertion.h:
2573         (WTF::executeInsertions): This algorithm is only correct if insertions are added in the right order. Assert that the order is right.
2574
2575 2014-05-27  Jon Lee  <jonlee@apple.com>
2576
2577         Update ENABLE(MEDIA_SOURCE) on Mac
2578         https://bugs.webkit.org/show_bug.cgi?id=133141
2579
2580         Reviewed by Darin Adler.
2581
2582         * wtf/FeatureDefines.h: #ifdef unneeded for Mac since it's covered in the .xcconfigs.
2583
2584 2014-05-27  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
2585
2586         Remove BLOB guards
2587         https://bugs.webkit.org/show_bug.cgi?id=132863
2588
2589         Reviewed by Csaba Osztrogonác.
2590
2591         * wtf/FeatureDefines.h:
2592
2593 2014-05-27  Gwang Yoon Hwang  <yoon@igalia.com>
2594
2595         [GLIB] RunLoop::dispatch always executes the function on the main thread instead of the target thread.
2596         https://bugs.webkit.org/show_bug.cgi?id=133291
2597
2598         Reviewed by Carlos Garcia Campos.
2599
2600         GMainLoopSource::schedule[AfterDelay] must be used with the appropriate
2601         GMainContext. Because current implementations in RunLoopGtk passes nullptr
2602         instead of its runLoopContext when using GMainLoopSource, all of dispatched
2603         functions are executed on the main thread regardless of which runloops is used.
2604
2605         This patch fixes the issue by passing the m_runLoopContext instead the default
2606         parameter to the GMainLoopSource::schedule[AfterDelay].
2607
2608         * wtf/gtk/RunLoopGtk.cpp:
2609         (WTF::RunLoop::wakeUp):
2610         (WTF::RunLoop::TimerBase::start):
2611
2612 2014-05-26  Darin Adler  <darin@apple.com>
2613
2614         Class name matching should use ASCII case-insensitive matching, not Unicode case folding
2615         https://bugs.webkit.org/show_bug.cgi?id=133292
2616
2617         Reviewed by Anders Carlsson.
2618
2619         * wtf/text/AtomicString.cpp:
2620         (WTF::AtomicString::addSlowCase): Change to take references instead of pointers since these
2621         arguments can never be null.
2622         (WTF::AtomicString::lower): Rearranged slightly to use PassRef in a more efficient but
2623         slightly uglier way.
2624         (WTF::AtomicString::convertToASCIILowercase): Added.
2625         * wtf/text/AtomicString.h: Updated for above changes.
2626
2627         * wtf/text/StringImpl.cpp:
2628         (WTF::StringImpl::convertToASCIILowercase): Added.
2629         * wtf/text/StringImpl.h: Updated for above.
2630
2631         * wtf/text/WTFString.cpp:
2632         (WTF::String::convertToASCIILowercase): Added.
2633         * wtf/text/WTFString.h: Updated for above.
2634
2635 2014-05-22  Zan Dobersek  <zdobersek@igalia.com>
2636
2637         Add the partial specialization for VectorTraits<std::unique_ptr<P>>
2638         https://bugs.webkit.org/show_bug.cgi?id=133083
2639
2640         Reviewed by Andreas Kling.
2641
2642         * wtf/VectorTraits.h: Like for RefPtr<P>, OwnPtr<P> and Ref<P>, the partial
2643         specialization for VectorTraits<std::unique_ptr<P>> should exist and should
2644         inherit from SimpleClassVector.
2645
2646 2014-05-20  Geoffrey Garen  <ggaren@apple.com>
2647
2648         Rolled out <http://trac.webkit.org/changeset/166184>
2649         https://bugs.webkit.org/show_bug.cgi?id=133144
2650
2651         Reviewed by Gavin Barraclough.
2652
2653         It caused a performance regression.
2654
2655         * wtf/FastMalloc.cpp:
2656         (WTF::TCMalloc_PageHeap::runScavengerThread):
2657         * wtf/Threading.h:
2658         * wtf/ThreadingPthreads.cpp:
2659         (WTF::createThreadInternal):
2660         (WTF::setCurrentThreadQOSUtility): Deleted.
2661         * wtf/ThreadingWin.cpp:
2662         (WTF::setCurrentThreadQOSUtility): Deleted.
2663
2664 2014-05-20  Jer Noble  <jer.noble@apple.com>
2665
2666         [Mac] AVAssets are never destroyed; lack of an autorelease pool when calling callOnMainThread.
2667         https://bugs.webkit.org/show_bug.cgi?id=133130
2668
2669         Reviewed by Geoff Garen.
2670
2671         Wrap the function to be called in an autorelease pool, so that autoreleased objects are cleaned
2672         up immediately after the end of the function.
2673
2674         * wtf/mac/MainThreadMac.mm:
2675         (WTF::timerFired):
2676
2677 2014-05-18  Rik Cabanier  <cabanier@adobe.com>
2678
2679         support for navigator.hardwareConcurrency
2680         https://bugs.webkit.org/show_bug.cgi?id=132588
2681
2682         Reviewed by Filip Pizlo.
2683
2684         * wtf/FeatureDefines.h:
2685
2686 2014-05-14  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
2687
2688         Remove CSS_STICKY_POSITION guards
2689         https://bugs.webkit.org/show_bug.cgi?id=132676
2690
2691         Reviewed by Simon Fraser.
2692
2693         * wtf/FeatureDefines.h:
2694
2695 2014-05-13  Simon Fraser  <simon.fraser@apple.com>
2696
2697         [iOS WK2] background-attachment:fixed behaves very poorly
2698         https://bugs.webkit.org/show_bug.cgi?id=132881
2699         <rdar://problem/16789526>
2700
2701         Reviewed by Beth Dakin.
2702         
2703         Remove ENABLE_FAST_MOBILE_SCROLLING. Ports can use the fixedBackgroundsPaintRelativeToDocument
2704         setting now.
2705
2706         * wtf/FeatureDefines.h:
2707
2708 2014-05-08  Alexey Proskuryakov  <ap@apple.com>
2709
2710         Automatically zip document bundles used via File API
2711         https://bugs.webkit.org/show_bug.cgi?id=132713
2712         <rdar://problem/13397892>
2713
2714         Reviewed by Anders Carlsson.
2715
2716         * wtf/FeatureDefines.h: Added ENABLE_FILE_REPLACEMENT for Mac.
2717
2718 2014-05-07  Filip Pizlo  <fpizlo@apple.com>
2719
2720         UNREACHABLE_FOR_PLATFORM() is meant to be a release crash.
2721
2722         Rubber stamped by Mark Hahnenberg..
2723
2724         * wtf/Assertions.h:
2725         (UNREACHABLE_FOR_PLATFORM):
2726
2727 2014-05-06  Alberto Garcia  <berto@igalia.com>
2728
2729         There is no HW_AVAILCPU on FreeBSD, NetBSD, and OpenBSD
2730         https://bugs.webkit.org/show_bug.cgi?id=132542
2731
2732         Reviewed by Michael Saboff.
2733
2734         Use sysconf() to get the number of processor cores.
2735
2736         * wtf/NumberOfCores.cpp:
2737         (WTF::numberOfProcessorCores):
2738
2739 2014-05-04  Darin Adler  <darin@apple.com>
2740
2741         RetainPtr: Use adoptCF function instead of AdoptCF constructor argument
2742         https://bugs.webkit.org/show_bug.cgi?id=80222
2743
2744         Reviewed by Alexey Proskuryakov.
2745
2746         All the clients are gone, so we can now remove AdoptCF and AdoptNS.
2747
2748         * wtf/RetainPtr.h: Removed the public constructors that let you specify AdoptCF
2749         and AdoptNS. Instead, made the adoptCF and adoptNS functions be friends and use
2750         a private constructor that takes an Adopt argument.
2751         (WTF::adoptCF): Moved the Objective-C class check in here.
2752         (WTF::adoptNS): Moved the code to deal with the CFRetain for garbage collection
2753         in here; it used to be spread across the constructor and adoptNSReference.
2754
2755 2014-05-04  Andreas Kling  <akling@apple.com>
2756
2757         Optimize JSRopeString for resolving directly to AtomicString.
2758         <https://webkit.org/b/132548>
2759
2760         Add AtomicString::find([LU]Char*, unsigned length) helpers for finding
2761         an existing AtomicString without a StringImpl on hand.
2762
2763         Reviewed by Filip Pizlo.
2764
2765         * wtf/text/AtomicString.h:
2766         * wtf/text/AtomicString.cpp:
2767         (WTF::AtomicString::find):
2768
2769 2014-05-01  Brent Fulgham  <bfulgham@apple.com>
2770
2771         Fix handling of attributes prior to compiling shader
2772         https://bugs.webkit.org/show_bug.cgi?id=132430
2773
2774         Reviewed by Dean Jackson.
2775
2776         WebGL programs that called bindAttribLocations prior to compiling shader sources
2777         would perform the bind using the non-hashed symbol name, but would later create
2778         the attributes as hashed names. Consequently, the program would refer to
2779         attributes that were never actually part of any shader, resulting in some amazing
2780         display artifacts.
2781
2782         This patch adds a dictionary of hashed symbol names so that we can tell the WebGL
2783         program the proper name that will be used when the shader is eventually compiled,
2784         allowing the WebGL program to link against the proper symbol after compiling and
2785         linking completes.
2786
2787         * wtf/HexNumber.h:
2788         (WTF::appendUnsigned64AsHex): Add uint64_t-compatible hex->string converter.
2789
2790 2014-04-30  Geoffrey Garen  <ggaren@apple.com>
2791
2792         Link against bmalloc in production builds
2793         https://bugs.webkit.org/show_bug.cgi?id=132413
2794
2795         Reviewed by Sam Weinig.
2796
2797         Production builders have been configured to handle this, so let's build
2798         it.
2799
2800         * Configurations/WTF.xcconfig:
2801
2802 2014-05-01  Ryuan Choi  <ryuan.choi@samsung.com>
2803
2804         [EFL] There are many warnings with software backend
2805         https://bugs.webkit.org/show_bug.cgi?id=132422
2806
2807         Reviewed by Gyuyoung Kim.
2808
2809         * wtf/efl/EflTypedefs.h: Added Ecore_X_Window typedef
2810
2811 2014-04-30  Simon Fraser  <simon.fraser@apple.com>
2812
2813         Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
2814         https://bugs.webkit.org/show_bug.cgi?id=132396
2815
2816         Reviewed by Eric Carlson.
2817
2818         Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.
2819
2820         * wtf/FeatureDefines.h:
2821
2822 2014-04-30  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
2823
2824         [GTK][GStreamer] Remove unnecessary GLIB_CHECK_VERSION #ifdefs
2825         https://bugs.webkit.org/show_bug.cgi?id=132390
2826
2827         Reviewed by Philippe Normand.
2828
2829         Since EFL port use GLib 2.38 and GTK+, 2.33.2, I assume it is OK
2830         remove, in GTK+ and GST, the existing glib version guards.
2831
2832         This code was rollback from r149879 because Qt MIPS used it. But since
2833         Qt is gone, it is safe to remove now.
2834
2835         * wtf/gobject/GRefPtr.cpp:
2836         (WTF::refGPtr): Deleted.
2837         (WTF::derefGPtr): Deleted.
2838
2839 2014-04-29  Alex Christensen  <achristensen@webkit.org>
2840
2841         [WinCairo] Switch video from GStreamer to Media Foundation.
2842         https://bugs.webkit.org/show_bug.cgi?id=132358
2843
2844         Reviewed by Brent Fulgham.
2845
2846         * WTF.vcxproj/WTF.vcxproj:
2847         Removed dependencies on GStreamer.
2848         * wtf/Platform.h:
2849         Use Media Foundation instead of GStreamer and GLib.
2850
2851 2014-04-29  Filip Pizlo  <fpizlo@apple.com>
2852
2853         Unreviewed, fix cloop build.
2854
2855         * wtf/Platform.h:
2856
2857 2014-04-29  Michael Saboff  <msaboff@apple.com>
2858
2859         For DARWIN platforms, use system temporary directory for DataLog output
2860         https://bugs.webkit.org/show_bug.cgi?id=132346
2861
2862         Reviewed by Geoffrey Garen.
2863
2864         Added code to call confstr() to access the process's temporary directory to use that
2865         location instead of /tmp/.  Put the code behind #ifdef DATA_LOG_TO_DARWIN_TEMP_DIR.
2866
2867         * wtf/DataLog.cpp:
2868         (WTF::initializeLogFileOnce):
2869
2870 2014-04-25  Filip Pizlo  <fpizlo@apple.com>
2871
2872         Figure out how many cores are available for realsies.
2873
2874         Rubber stamped by Andreas Kling.
2875         
2876         HW_AVAILCPU is more canonical than HW_NCPU. For example if you use hacks to tell Darwin
2877         to make it seem like there are fewer CPUs, HW_AVAILCPU will change but HW_NCPU won't.
2878         HW_NCPU doesn't reflect how much actual paralellism you'll get; it's merely reporting
2879         facts about the machine you're running on. HW_AVAILCPU is almost always what WebKit
2880         wants since it uses this information to decide how many threads to launch for various
2881         things.
2882
2883         * wtf/NumberOfCores.cpp:
2884         (WTF::numberOfProcessorCores):
2885
2886 2014-04-22  Brent Fulgham  <bfulgham@apple.com>
2887
2888         [Win] Support Python 2.7 in Cygwin
2889         https://bugs.webkit.org/show_bug.cgi?id=132023
2890
2891         Reviewed by Michael Saboff.
2892
2893         * WTF.vcxproj/WTFGenerated.make: Use proper path to Python.
2894
2895 2014-04-21  Eric Carlson  <eric.carlson@apple.com>
2896
2897         [Mac] implement WebKitDataCue
2898         https://bugs.webkit.org/show_bug.cgi?id=131799
2899
2900         Reviewed by Dean Jackson.
2901
2902         * wtf/FeatureDefines.h: Define ENABLE_DATACUE_VALUE.
2903
2904 2014-04-21  Darin Adler  <darin@apple.com>
2905
2906         Add HashSet::takeAny
2907         https://bugs.webkit.org/show_bug.cgi?id=131928
2908
2909         Reviewed by Benjamin Poulain.
2910
2911         * wtf/HashSet.h: Added an overload of take that takes an iterator,
2912         and used it to implement both the existing take and new takeAny functions.
2913
2914 2014-04-20  Andreas Kling  <akling@apple.com>
2915
2916         Speed up jsStringWithCache() through WeakGCMap inlining.
2917         <https://webkit.org/b/131923>
2918
2919         Add HashMap::fastAdd(), which is the same as add() except we'll tell
2920         the compiler to aggressively inline it.
2921
2922         Reviewed by Darin Adler.
2923
2924         * wtf/HashMap.h:
2925         * wtf/HashTable.h:
2926
2927 2014-04-19  Filip Pizlo  <fpizlo@apple.com>
2928
2929         Make it easier to check if an integer sum would overflow
2930         https://bugs.webkit.org/show_bug.cgi?id=131900
2931
2932         Reviewed by Darin Adler.
2933
2934         * wtf/CheckedArithmetic.h:
2935         (WTF::checkedSum):
2936         (WTF::sumOverflows):
2937
2938 2014-04-18  Commit Queue  <commit-queue@webkit.org>
2939
2940         Unreviewed, rolling out r167527.
2941         https://bugs.webkit.org/show_bug.cgi?id=131883
2942
2943         Broke 32-bit build (Requested by ap on #webkit).
2944
2945         Reverted changeset:
2946
2947         "[Mac] implement WebKitDataCue"
2948         https://bugs.webkit.org/show_bug.cgi?id=131799
2949         http://trac.webkit.org/changeset/167527
2950
2951 2014-04-18  Eric Carlson  <eric.carlson@apple.com>
2952
2953         [Mac] implement WebKitDataCue
2954         https://bugs.webkit.org/show_bug.cgi?id=131799
2955
2956         Reviewed by Dean Jackson.
2957
2958         * wtf/FeatureDefines.h: Define ENABLE_DATACUE_VALUE.
2959
2960 2014-04-18  Martin Robinson  <mrobinson@igalia.com>
2961
2962         Remove DynamicAnnotations.h?
2963         https://bugs.webkit.org/show_bug.cgi?id=131754
2964
2965         Reviewed by Simon Fraser.
2966
2967         This file, which helped support tools like Valgrind was unused.
2968
2969         * WTF.vcxproj/WTF.vcxproj: Remove references to the files.
2970         * WTF.vcxproj/WTF.vcxproj.filters: Remove references to the files.
2971         * WTF.xcodeproj/project.pbxproj: Remove references to the files.
2972         * wtf/CMakeLists.txt: Remove references to the files.
2973         * wtf/DynamicAnnotations.cpp: Removed.
2974         * wtf/DynamicAnnotations.h: Removed.
2975         * wtf/ThreadSafeRefCounted.h: Remove references to the files.
2976         * wtf/text/StringStatics.cpp: Remove references to the files.
2977
2978 2014-04-18  Philippe Normand  <pnormand@igalia.com>
2979
2980         Remove NETWORK_INFO support
2981         https://bugs.webkit.org/show_bug.cgi?id=131841
2982
2983         Reviewed by Gyuyoung Kim.
2984
2985         * wtf/FeatureDefines.h:
2986
2987 2014-04-17  Filip Pizlo  <fpizlo@apple.com>
2988
2989         Don't include CompilationThread.h from StringImpl.h
2990         https://bugs.webkit.org/show_bug.cgi?id=131817
2991
2992         Reviewed by Simon Fraser.
2993
2994         * wtf/CompilationThread.h:
2995         * wtf/StdLibExtras.h:
2996         * wtf/text/StringImpl.h:
2997
2998 2014-04-17  Darin Adler  <darin@apple.com>
2999
3000         Use HashMap<unique_ptr> and Vector<unique_ptr> instead of deprecatedDeleteAllValues
3001         https://bugs.webkit.org/show_bug.cgi?id=73757
3002
3003         Reviewed by Brent Fulgham.
3004
3005         * wtf/Vector.h:
3006         (WTF::deprecatedDeleteAllValues): Deleted.
3007
3008 2014-04-17  Darin Adler  <darin@apple.com>
3009
3010         Add separate flag for IndexedDatabase in workers since the current implementation is not threadsafe
3011         https://bugs.webkit.org/show_bug.cgi?id=131785
3012         rdar://problem/16003108
3013
3014         Reviewed by Brady Eidson.
3015
3016         * wtf/FeatureDefines.h: Added INDEXED_DATABASE_IN_WORKERS.
3017
3018 2014-04-16  Simon Fraser  <simon.fraser@apple.com>
3019
3020         Don't include CryptographicallyRandomNumber.h in StringImpl.h
3021         https://bugs.webkit.org/show_bug.cgi?id=131772
3022
3023         Reviewed by Sam Weinig.
3024
3025         * wtf/text/StringImpl.h:
3026
3027 2014-04-16  Gavin Barraclough  <barraclough@apple.com>
3028
3029         Update to pthread QoS SPI
3030         https://bugs.webkit.org/show_bug.cgi?id=131753
3031
3032         Rubber stamped by Benjamin Poulain
3033
3034         * wtf/ThreadingPthreads.cpp:
3035         (WTF::setCurrentThreadQOSUtility):
3036
3037 2014-04-14  Geoffrey Garen  <ggaren@apple.com>
3038
3039         WTF should have an optional mbmalloc target so we can benchmark FastMalloc
3040         https://bugs.webkit.org/show_bug.cgi?id=131662
3041
3042         Reviewed by Darin Adler.
3043
3044         * WTF.xcodeproj/project.pbxproj: Added the target.
3045         * wtf/mbmalloc.cpp: Added. Implements the libmbmalloc.dylib API required
3046         by MallocBench.
3047
3048 2014-04-16  Darin Adler  <darin@apple.com>
3049
3050         Make Vector::takeLast work with move-only types (and optimize for types where move is faster)
3051         https://bugs.webkit.org/show_bug.cgi?id=131735
3052
3053         Reviewed by Alexey Proskuryakov.
3054
3055         * wtf/Vector.h:
3056         (WTF::Vector::takeLast): Added a missing std::move. All the other take functions have it.
3057
3058 2014-04-14  Mark Lam  <mark.lam@apple.com>
3059
3060         monotonicallyIncreasingTime() should only initialize its static timebaseInfo once.
3061         <https://webkit.org/b/131630>
3062
3063         Reviewed by Filip Pizlo.
3064
3065         The current initialization of the static field is not thread safe.
3066
3067         * wtf/CurrentTime.cpp:
3068         (WTF::monotonicallyIncreasingTime):
3069
3070 2014-04-14  Benjamin Poulain  <benjamin@webkit.org>
3071
3072         [JSC] Improve the call site of string comparison in some hot path
3073         https://bugs.webkit.org/show_bug.cgi?id=131605
3074
3075         Reviewed by Darin Adler.
3076
3077         * wtf/text/StringImpl.cpp:
3078         (WTF::stringImplContentEqual):
3079         Inline that function to reduce the call overhead for JSC.
3080         This is only inlined twice, it is not catastrophic for our binary.
3081
3082 2014-04-13  Andy Estes  <aestes@apple.com>
3083
3084         Relax adoption requirements of RefCounted objects that are NeverDestroyed
3085         https://bugs.webkit.org/show_bug.cgi?id=131593
3086
3087         Reviewed by Dan Bernstein.
3088
3089         RefCounted objects that are created by NeverDestroyed<> won't have a
3090         RefPtr adopting them, so call relaxAdoptionRequirements().
3091
3092         * wtf/NeverDestroyed.h:
3093         (WTF::NeverDestroyed::NeverDestroyed):
3094         (WTF::NeverDestroyed::MaybeRelax::MaybeRelax):
3095
3096 2014-04-10  Brent Fulgham  <bfulgham@apple.com>
3097
3098         [Win] Clean up some 64-bit warnings from Visual Studio analyzer
3099         https://bugs.webkit.org/show_bug.cgi?id=131514
3100
3101         Reviewed by Tim Horton.
3102
3103         * WTF.vcxproj/WTF.vcxproj: Use correct platform settings for
3104         64-bit build.
3105         * config.h: Ditto.
3106         * wtf/CurrentTime.cpp:
3107         (WTF::highResUpTime): Resolve warning about deprecated API.
3108         * wtf/StackBounds.cpp:
3109         (WTF::StackBounds::initialize): Silence warning about
3110         an uninitialized variable.
3111
3112 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
3113
3114         Rolled back in r166972.
3115
3116         This time, we conditionally exclude linking against bmalloc in Production
3117         builds. Production builds will not be able to link against bmalloc
3118         until the Production build system has been updated to build bmalloc.
3119
3120             WTF should link against bmalloc
3121             https://bugs.webkit.org/show_bug.cgi?id=131403
3122
3123             Reviewed by Mark Rowe.
3124
3125             * Configurations/WTF.xcconfig:
3126             * WTF.xcodeproj/project.pbxproj:
3127
3128 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
3129
3130         Put bmalloc headers in the right place
3131         https://bugs.webkit.org/show_bug.cgi?id=131464
3132
3133         Reviewed by Mark Rowe.
3134
3135         * wtf/FastMalloc.cpp: Use "<bmalloc/...>" syntax so we can find our
3136         headers in <header-root>/usr/local/include/bmalloc/.
3137
3138 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
3139
3140         Rolled back out r166972.
3141
3142         The production buildbots are still broken because the build-root script
3143         doesn't build bmalloc.
3144
3145         * WTF.xcodeproj/project.pbxproj:
3146
3147 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
3148
3149         Rolled back in r166972.
3150
3151         The iOS buildbot's scripts have been updated to build bmalloc, so the
3152         build should now succeed on the bot.
3153
3154         Also renamed "Frameworks" to "Libraries" as suggested in a review comment.
3155
3156             WTF should link against bmalloc
3157             https://bugs.webkit.org/show_bug.cgi?id=131403
3158
3159             Reviewed by Michael Saboff.
3160
3161             This is required to build successfullly with bmalloc enabled.
3162
3163             * WTF.xcodeproj/project.pbxproj:
3164
3165 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
3166
3167         Stop linking WTF against bmalloc.
3168
3169         Reviewed by Enrica Casucci.
3170
3171         This seems to have broken an iOS buildbot script. Disable it for now
3172         until we can fix the script.
3173
3174         * WTF.xcodeproj/project.pbxproj:
3175
3176 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
3177
3178         WTF should link against bmalloc
3179         https://bugs.webkit.org/show_bug.cgi?id=131403
3180
3181         Reviewed by Michael Saboff.
3182
3183         This is required to build successfullly with bmalloc enabled.
3184
3185         * WTF.xcodeproj/project.pbxproj:
3186
3187 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
3188
3189         Added a bmalloc back-end for FastMalloc
3190         https://bugs.webkit.org/show_bug.cgi?id=131387
3191
3192         Reviewed by Andreas Kling.
3193
3194         We'll need to rethink some things if we adopt this back-end. For example,
3195         fastMallocSize() and fastMallocGoodSize() are no longer real things. But,
3196         this is enough to test for now.
3197
3198         * wtf/FastMalloc.cpp:
3199         (WTF::fastMalloc):
3200         (WTF::fastCalloc):
3201         (WTF::fastRealloc):
3202         (WTF::fastFree):
3203         (WTF::fastMallocSize):
3204         (WTF::fastMallocGoodSize):
3205         (WTF::tryFastMalloc):
3206         (WTF::tryFastRealloc):
3207         (WTF::tryFastCalloc):
3208         (WTF::releaseFastMallocFreeMemory):
3209         (WTF::fastMallocStatistics):
3210
3211 2014-04-08  Andres Gomez  <agomez@igalia.com>
3212
3213         [GTK] [EFL] Build fails with GCC < 4.8.x
3214         https://bugs.webkit.org/show_bug.cgi?id=130585
3215
3216         Reviewed by Martin Robinson.
3217
3218         The behavior in lower versions of GCC seem to be related to
3219         http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#2132.
3220
3221         Provided explicit casts for the failing ambiguous overloads.
3222
3223         * wtf/gtk/MainThreadGtk.cpp:
3224         (WTF::scheduleDispatchFunctionsOnMainThread):
3225         * wtf/gtk/RunLoopGtk.cpp:
3226         (WTF::RunLoop::wakeUp): Provided lambda with a RefPtr instead of
3227         ref and de-referring.
3228
3229 2014-04-04  Mark Lam  <mark.lam@apple.com>
3230
3231         Date object needs to check for ES5 15.9.1.14 TimeClip limit.
3232         <https://webkit.org/b/131248>
3233
3234         Reviewed by Mark Hahnenberg.
3235
3236         * wtf/DateMath.cpp:
3237         - Moved the definition of maxECMAScriptTime to the .h file so that we
3238           can use it in other files as well.
3239         (WTF::msToYear):
3240         - Removed a stale comment for parseDateFromNullTerminatedCharacters().
3241         * wtf/DateMath.h:
3242
3243 2014-04-04  Mark Hahnenberg  <mhahnenberg@apple.com>
3244
3245         Enhanced GC logging
3246         https://bugs.webkit.org/show_bug.cgi?id=131246
3247
3248         Reviewed by Geoff Garen.
3249
3250         Remove OBJECT_MARK_LOGGING
3251
3252         * wtf/FeatureDefines.h:
3253         * wtf/Platform.h:
3254
3255 2014-04-03  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
3256
3257         [EFL] Enable CSS JIT again, it works fine after r166666.
3258
3259         Reviewed by Csaba Osztrogonác.
3260
3261         * wtf/Platform.h:
3262
3263 2014-04-03  Javier Fernandez  <jfernandez@igalia.com>
3264
3265         [GTK][Cmake] Enable CSS JIT
3266         https://bugs.webkit.org/show_bug.cgi?id=131022
3267
3268         Reviewed by Martin Robinson.
3269
3270         * wtf/Platform.h: Enable CSS JIT for GTK port.
3271
3272 2014-04-02  Frédéric Wang  <fred.wang@free.fr>
3273
3274         Operator stretching: read the Open Type MATH table
3275         https://bugs.webkit.org/show_bug.cgi?id=130324
3276
3277         Reviewed by Chris Fleizach.
3278
3279         * wtf/Platform.h: enable OPENTYPE_MATH on platforms that can read OpenType tables.
3280
3281 2014-04-02  Alex Christensen  <achristensen@webkit.org>
3282
3283         [WinCairo] Build fix with GMainLoopSource.
3284         https://bugs.webkit.org/show_bug.cgi?id=131089
3285
3286         Reviewed by Carlos Garcia Campos.
3287
3288         * wtf/gobject/GMainLoopSource.cpp:
3289         Only compile if glib is used, which fixes compile errors with video disabled in WinCairo.
3290         * wtf/gobject/GMainLoopSource.h:
3291         Export the GMainLoopSource functions to WTF.dll to link with where they are called in the GStreamer code.
3292         Also removed spaces to appease style bot.
3293
3294 2014-04-01  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
3295
3296         [EFL] REGRESSION(166569): It made DoYouEvenBench/Full.html, CSS/QuerySelector.html and Dromaeo performance tests crash
3297         https://bugs.webkit.org/show_bug.cgi?id=131039
3298
3299         Reviewed by Csaba Osztrogonác.
3300
3301         * wtf/Platform.h: Disable CSS JIT on EFL until proper fix.
3302
3303 2014-04-01  Commit Queue  <commit-queue@webkit.org>
3304
3305         Unreviewed, rolling out r166583.
3306         https://bugs.webkit.org/show_bug.cgi?id=131040
3307
3308         It's causing frequent crashes when running Layout Tests
3309         (Requested by svillar on #webkit).
3310
3311         Reverted changeset:
3312
3313         "[GTK][Cmake] Enable CSS JIT"
3314         https://bugs.webkit.org/show_bug.cgi?id=131022
3315         http://trac.webkit.org/changeset/166583
3316
3317 2014-04-01  Javier Fernandez  <jfernandez@igalia.com>
3318
3319         [GTK][Cmake] Enable CSS JIT
3320         https://bugs.webkit.org/show_bug.cgi?id=131022
3321
3322         Reviewed by Martin Robinson.
3323
3324         * wtf/Platform.h: Enable CSS JIT for GTK port.
3325
3326 2014-04-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3327
3328         [CMake][EFL] Enable CSS JIT
3329         https://bugs.webkit.org/show_bug.cgi?id=131010
3330
3331         Reviewed by Benjamin Poulain.
3332
3333         * wtf/Platform.h: Enable CSS JIT for EFL port.
3334
3335 2014-03-31  Dean Jackson  <dino@apple.com>
3336
3337         Remove WEB_ANIMATIONS
3338         https://bugs.webkit.org/show_bug.cgi?id=130989
3339
3340         Reviewed by Simon Fraser.
3341
3342         Remove this feature flag until we plan to implement.
3343
3344         * wtf/FeatureDefines.h:
3345
3346 2014-03-31  Alex Christensen  <achristensen@webkit.org>
3347
3348         Preparation for using Soup on Windows.
3349         https://bugs.webkit.org/show_bug.cgi?id=130615
3350
3351         Reviewed by Carlos Garcia Campos.
3352
3353         * WTF.vcxproj/WTF.vcxproj:
3354         * WTF.vcxproj/WTF.vcxproj.filters:
3355         Add all gobject source files in WinCairo build.
3356         * wtf/gobject/GRefPtr.h:
3357         Export refGPtr and derefGPtr overloads in WTF.dll to fix linker errors with WebKit.dll when using soup.
3358
3359 2014-03-31  Zan Dobersek  <zdobersek@igalia.com>
3360
3361         Use std::unique_ptr in WTF::CompressedVector, WTF::GenericCompressedData
3362         https://bugs.webkit.org/show_bug.cgi?id=130737
3363
3364         Switch to using std::unique_ptr instead of OwnPtr and PassOwnPtr
3365         for the CompressedVector and GenericCompressedData classes.
3366
3367         * wtf/Compression.cpp:
3368         (WTF::GenericCompressedData::create):
3369         * wtf/Compression.h:
3370         (WTF::CompressedVector::create):
3371         (WTF::CompressibleVector::decompressIfNecessary):
3372
3373 2014-03-28  Alexey Proskuryakov  <ap@apple.com>
3374
3375         [Mac] Enable async text input implementation
3376         https://bugs.webkit.org/show_bug.cgi?id=130856
3377
3378         Reviewed by Sam Weinig.
3379
3380         * wtf/Platform.h: Added a USE macro definition.
3381
3382 2014-03-28  peavo@outlook.com  <peavo@outlook.com>
3383
3384         Null pointer crash in String::append(UChar).
3385         https://bugs.webkit.org/show_bug.cgi?id=130900
3386
3387         Reviewed by Michael Saboff.
3388
3389         * wtf/text/WTFString.cpp:
3390         (WTF::String::append): Check and initialize m_impl member first, to avoid null pointer crash.
3391
3392 2014-03-27  Commit Queue  <commit-queue@webkit.org>
3393
3394         Unreviewed, rolling out r166360.
3395         https://bugs.webkit.org/show_bug.cgi?id=130869
3396
3397         Seems to have broken PLT (Requested by ap on #webkit).
3398
3399         Reverted changeset:
3400
3401         "Connection::dispatchOneMessage() can be re-entered while
3402         handling Cmd-key menu"
3403         https://bugs.webkit.org/show_bug.cgi?id=130767
3404         http://trac.webkit.org/changeset/166360
3405
3406 2014-03-27  Alexey Proskuryakov  <ap@apple.com>
3407
3408         Connection::dispatchOneMessage() can be re-entered while handling Cmd-key menu
3409         equivalents, ASSERT(!_data->_keyDownEventBeingResent)
3410         https://bugs.webkit.org/show_bug.cgi?id=130767
3411         <rdar://problem/16307487>
3412
3413         Reviewed by Darin Adler.
3414
3415         Changed RunLoop to wake up and fire timers only in default run loop mode by default,
3416         and added an ability to add more modes (can't use AppKit symbols in WTF).
3417
3418         In addition to this bug, the change also blocks modal alerts from appearing under
3419         menus during menu tracking.
3420
3421         * wtf/RunLoop.h:
3422         * wtf/cf/RunLoopCF.cpp:
3423         (WTF::RunLoop::RunLoop):
3424         (WTF::RunLoop::addModeForWakeUpAndTimers):
3425         (WTF::RunLoop::TimerBase::start):
3426
3427 2014-03-26  Zan Dobersek  <zdobersek@igalia.com>
3428
3429         Unreviewed. Removing the remaining Automake cruft.
3430
3431         * GNUmakefile.list.am: Removed.
3432
3433 2014-03-25  Martin Robinson  <mrobinson@igalia.com>
3434
3435         [GTK] Remove the autotools build
3436         https://bugs.webkit.org/show_bug.cgi?id=130717
3437
3438         Reviewed by Anders Carlsson.
3439
3440         * GNUmakefile.am: Removed.
3441         * config.h: Removed references to the autotools configure file.
3442
3443 2014-03-25  Gabor Rapcsanyi  <rgabor@webkit.org>
3444
3445         [ARM64] GCC generates wrong code with -O2 flag in WTF::weakCompareAndSwap
3446         https://bugs.webkit.org/show_bug.cgi?id=130500
3447
3448         Reviewed by Filip Pizlo.
3449
3450         Set the first operand to the exact register in the inline assembly with GCC.
3451
3452         * wtf/Atomics.h:
3453         (WTF::weakCompareAndSwap):
3454
3455 2014-03-25  Gabor Rapcsanyi  <rgabor@webkit.org>
3456
3457         [EFL] Add ARM64 build support
3458         https://bugs.webkit.org/show_bug.cgi?id=130506
3459
3460         Rubber stamped by Gyuyoung Kim.
3461
3462         * wtf/Platform.h: Set WTF_CPU_ARM64 when __aarch64__ is defined.
3463
3464 2014-03-24  Andy Estes  <aestes@apple.com>
3465
3466         Fix the iOS build.
3467
3468         * wtf/ThreadingPthreads.cpp:
3469         (WTF::createThreadInternal):
3470         (WTF::setCurrentThreadQOSUtility):
3471
3472 2014-03-24  Gavin Barraclough  <barraclough@apple.com>
3473
3474         Add support for thread QoS
3475         https://bugs.webkit.org/show_bug.cgi?id=130688
3476
3477         Speculative EFL build fix.
3478
3479         * wtf/ThreadingPthreads.cpp:
3480         (WTF::setCurrentThreadQOSUtility):
3481
3482 2014-03-24  Gavin Barraclough  <barraclough@apple.com>
3483
3484         Add support for thread QoS
3485         https://bugs.webkit.org/show_bug.cgi?id=130688
3486
3487         Reviewed by Andreas Kling.
3488
3489         * wtf/FastMalloc.cpp:
3490         (WTF::TCMalloc_PageHeap::runScavengerThread):
3491             - block freeing is a utility activity.
3492         * wtf/Threading.h:
3493             - declaration.
3494         * wtf/ThreadingPthreads.cpp:
3495         (WTF::createThreadInternal):
3496             - default to interactive.
3497         (WTF::setCurrentThreadQOSUtility):
3498             - implementation.
3499         * wtf/ThreadingWin.cpp:
3500         (WTF::setCurrentThreadQOSUtility):
3501             - no-op implementation.
3502
3503 2014-03-23  Hyowon Kim  <hw1008.kim@samsung.com>
3504
3505         Move all EFL typedefs into EflTypedefs.h.
3506         https://bugs.webkit.org/show_bug.cgi?id=130511
3507
3508         Reviewed by Gyuyoung Kim.
3509
3510         * wtf/Platform.h: include EflTypedefs.h.
3511         * wtf/efl/EflTypedefs.h: Added.
3512         * wtf/efl/RefPtrEfl.h: Remove EFL typedefs.
3513
3514 2014-03-22  Darin Adler  <darin@apple.com>
3515
3516         Remove String::deprecatedCharacters
3517         https://bugs.webkit.org/show_bug.cgi?id=126854
3518
3519         Reviewed by Sam Weinig.
3520
3521         * wtf/text/StringBuilder.cpp:
3522         (WTF::StringBuilder::reifyString): Removed code to update 16-bit shadow.
3523
3524         * wtf/text/StringBuilder.h: Removed deprecatedCharacters.
3525         (WTF::StringBuilder::StringBuilder): Removed m_valid16BitShadowLength.
3526         (WTF::StringBuilder::clear): Removed code to clear m_valid16BitShadowLength.
3527         (WTF::StringBuilder::swap): Removed code to swap m_valid16BitShadowLength.
3528
3529         * wtf/text/StringImpl.cpp:
3530         (WTF::StringImpl::~StringImpl): Removed code to free m_copyData16.
3531         (WTF::StringImpl::upper): Use StringView::upconvertedCharacters for slow case.
3532         (WTF::StringImpl::lower): Ditto.
3533         (WTF::StringImpl::find): Use characters8/16 rather than deprecatedCharacters.
3534         Added an 8-bit code path to one of the overloads. Might want to revisit later
3535         to decide whether to use templates instead of copy/paste, or even use StringView
3536         to cut down on duplicate code paths.
3537         (WTF::StringImpl::findIgnoringCase): Ditto.
3538         (WTF::StringImpl::sizeInBytes): Remove code to handle has16BitShadow case.
3539         (WTF::equalIgnoringNullity): Added. To be called by the Vector template in the header.
3540
3541         * wtf/text/StringImpl.h: Removed deprecatedCharacters, has16BitShadow,
3542         upconvertCharacters, getData16SlowCase, s_hashFlagHas16BitShadow, and m_copyData16.
3543         (WTF::equalIgnoringNullity): Changed the template function into an inline that calls
3544         a non-inline helper function. The non-inline function handles both 8-bit and 16-bit
3545         strings.
3546
3547         * wtf/text/StringView.h:
3548         (WTF::StringView::StringView): Added an overload so we can make one of these directly
3549         from a StringImpl without first wrapping it in a string. Added an adapter so we can
3550         use StringView as part of string concatenation. Added an append function so we can
3551         append to a Vector<UChar>.
3552
3553         * wtf/text/WTFString.cpp:
3554         (WTF::String::append): Use StringView::getCharactersWithUpconvert. Also changed
3555         single-character append so it won't always turn an 8-bit string into a 16-bit one.
3556         (WTF::String::insert): Removed one insert overload and changed the other to use
3557         StringView::getCharactersWithUpconvert.
3558         (WTF::String::truncate): Changed to use StringImpl::substring.
3559         (WTF::String::percentage): Added characters8/16 paths instead of using
3560         deprecatedCharacters.
3561
3562         * wtf/text/WTFString.h: Removed deprecatedCharacters, getCharactersWithUpconvert,
3563         insert(UChar*, unsigned, unsigned), and the append overload for Vector<UChar>.
3564
3565 2014-03-20  Darin Adler  <darin@apple.com>
3566
3567         Fix a header guard mistake (harmless but clearly wrong)
3568         https://bugs.webkit.org/show_bug.cgi?id=130559
3569
3570         Reviewed by Andreas Kling.
3571
3572         * wtf/text/StringConcatenate.h: Correct the macro name in the header guard.
3573
3574 2014-03-20  Hyowon Kim  <hw1008.kim@samsung.com>
3575
3576         Move to using std::unique_ptr for EFL objects.
3577         https://bugs.webkit.org/show_bug.cgi?id=129853
3578
3579         Reviewed by Gyuyoung Kim.
3580
3581         EflUniquePtr is a template alias of std::unique_ptr
3582         with a custom deleter for each Efl Objects, which is motivated by GUniquePtr.
3583         This patch replaces uses of OwnPtr and PassOwnPtr for Efl objects with EflUniquePtr.
3584
3585         * wtf/OwnPtrCommon.h:
3586         * wtf/PlatformEfl.cmake:
3587         * wtf/RunLoop.h:
3588         * wtf/efl/MainThreadEfl.cpp:
3589         (WTF::pipeObject):
3590         (WTF::initializeMainThreadPlatform):
3591         * wtf/efl/OwnPtrEfl.cpp: Removed.
3592         * wtf/efl/RunLoopEfl.cpp:
3593         (WTF::RunLoop::RunLoop):
3594         * wtf/efl/UniquePtrEfl.h: Added.
3595         (WTF::EflPtrDeleter::operator()):
3596
3597 2014-03-20  Gavin Barraclough  <barraclough@apple.com>
3598
3599         Remove IdentifierTable typedef, isIdentifier()
3600         https://bugs.webkit.org/show_bug.cgi?id=130533
3601
3602         Rubber stamped by Geoff Garen.
3603
3604         Code should use AtomicStringTable, isAtomic() directly.
3605
3606         * wtf/WTFThreadData.h:
3607         (WTF::WTFThreadData::setCurrentAtomicStringTable):
3608         (WTF::WTFThreadData::resetCurrentAtomicStringTable):
3609             - removed IdentifierTypedef.
3610         * wtf/text/StringImpl.h:
3611         (WTF::StringImpl::flagIsAtomic):
3612             - renamed flagIsIdentfier -> flagIsAtomic.
3613
3614 2014-03-20  Gavin Barraclough  <barraclough@apple.com>
3615
3616         Merge AtomicString, Identifier
3617         https://bugs.webkit.org/show_bug.cgi?id=128624
3618
3619         Reviewed by Geoff Garen.
3620
3621         WTF::StringImpl currently supports two uniquing mechanism - AtomicString and
3622         Identifer - that is one too many.
3623
3624         Remove Identifier in favour of AtomicString. Identifier had two interesting
3625         mechanisms that we preserve.
3626
3627         (1) JSC API VMs each get their own string table, switch the string table on
3628             API entry/exit.
3629         (2) JSC caches a pointer to the string table on the VM to avoid a thread
3630             specific access. Adds a new AtomicString::add method to support this.
3631
3632         * wtf/WTFThreadData.cpp:
3633         (WTF::WTFThreadData::WTFThreadData):
3634             - remove allocation of IdentifierTable.
3635         (WTF::WTFThreadData::~WTFThreadData):
3636             - remove deletion of IdentifierTable.
3637         * wtf/WTFThreadData.h:
3638         (WTF::WTFThreadData::atomicStringTable):
3639             - table is now switched by JSC API, return the current table.
3640         (WTF::WTFThreadData::currentIdentifierTable):
3641             - now returns the current AtomicStringTable.
3642         (WTF::WTFThreadData::setCurrentIdentifierTable):
3643             - now sets the current AtomicStringTable.
3644         (WTF::WTFThreadData::resetCurrentIdentifierTable):
3645             - now resets the AtomicStringTable.
3646         * wtf/text/AtomicString.cpp:
3647         (WTF::AtomicString::addSlowCase):
3648             - add without thread-specific access to access string table.
3649         * wtf/text/AtomicString.h:
3650         (WTF::AtomicString::addWithStringTableProvider):
3651             - add without thread-specific access (used by JSC, string table provided by VM or ExecState).
3652         * wtf/text/AtomicStringTable.cpp:
3653         (WTF::AtomicStringTable::create):
3654             - renamed m_atomicStringTable -> m_defaultAtomicStringTable.
3655         (WTF::AtomicStringTable::~AtomicStringTable):
3656         (WTF::AtomicStringTable::destroy):
3657             - clearing of table moved from AtomicStringTable::destroy to destructor.
3658         * wtf/text/AtomicStringTable.h:
3659             - added destructor.
3660         * wtf/text/StringImpl.cpp:
3661         (WTF::StringImpl::~StringImpl):
3662             - Identifers no longer exist; no need to remove them from IdentifierTable.
3663         * wtf/text/StringImpl.h:
3664         (WTF::StringImpl::StringImpl):
3665             - removed s_hashFlagIsIdentifier.
3666         (WTF::StringImpl::flagIsIdentifier):
3667             - s_hashFlagIsIdentifier -> s_hashFlagIsAtomic.
3668         (WTF::StringImpl::isIdentifier):
3669             - now synonymous to isAtomic().
3670         * wtf/text/StringStatics.cpp:
3671         (WTF::StringImpl::hashAndFlagsForEmptyUnique):
3672             - removed s_hashFlagIsIdentifier.
3673
3674 2014-03-20  Zan Dobersek  <zdobersek@igalia.com>
3675
3676         Unreviewed Clang build fix for the GTK port after r165952.
3677
3678         * wtf/gobject/GMainLoopSource.h: Include the <functional> header for the std::function<> objects.
3679
3680 2014-03-18  Carlos Garcia Campos  <cgarcia@igalia.com>
3681
3682         [GLIB] Add GMainLoopSource class to wrap idle and timeout sources
3683         https://bugs.webkit.org/show_bug.cgi?id=130027
3684
3685         Reviewed by Martin Robinson.
3686
3687         GLib main loop sources like idle and timeouts are sometimes
3688         unconvenient to use and it's very common to forget canceling the
3689         source when the object is destroyed or reset the source ID in the
3690         callback when called. GMainLoopSource is a wrapper class to make it
3691         easier to handle sources and also to avoid those typical mistakes.
3692         It forces to create sources with a name and the user doesn't have
3693         to deal with the source ID anymore. The source is cancelled when
3694         the object is deleted or when a new source is scheduled. It uses
3695       &nbs