56e1232bc3fe7a2d8691711bb6ef0bbac37d6b2b
[WebKit-https.git] / Source / WTF / ChangeLog
1 2013-10-22  Filip Pizlo  <fpizlo@apple.com>
2
3         FTL should be able to do some simple inline caches using LLVM patchpoints
4         https://bugs.webkit.org/show_bug.cgi?id=123164
5
6         Reviewed by Mark Hahnenberg.
7         
8         This needed some better bitvector support, like merging (|=), excluding (&=~),
9         hashing, and bit counting.
10
11         * wtf/BitVector.cpp:
12         (WTF::BitVector::setSlow):
13         (WTF::BitVector::excludeSlow):
14         (WTF::BitVector::bitCountSlow):
15         (WTF::BitVector::equalsSlowCase):
16         (WTF::BitVector::hashSlowCase):
17         (WTF::BitVector::dump):
18         * wtf/BitVector.h:
19         (WTF::BitVector::merge):
20         (WTF::BitVector::exclude):
21         (WTF::BitVector::bitCount):
22         (WTF::BitVector::BitVector):
23         (WTF::BitVector::isEmptyValue):
24         (WTF::BitVector::isDeletedValue):
25         (WTF::BitVector::isEmptyOrDeletedValue):
26         (WTF::BitVector::operator==):
27         (WTF::BitVector::hash):
28         (WTF::BitVectorHash::hash):
29         (WTF::BitVectorHash::equal):
30         * wtf/HashTraits.h:
31         (WTF::CustomHashTraits::constructDeletedValue):
32         (WTF::CustomHashTraits::isDeletedValue):
33         (WTF::CustomHashTraits::emptyValue):
34         (WTF::CustomHashTraits::isEmptyValue):
35         * wtf/StdLibExtras.h:
36         (WTF::bitCount):
37
38 2013-10-23  Allan Sandfeld Jensen  <allan.jensen@digia.com>
39
40         Clean-up in Atomics.h
41         https://bugs.webkit.org/show_bug.cgi?id=123207
42
43         Reviewed by Anders Carlsson.
44
45         Atomics.h has two confusing and bit-rotted ifdefs with comments.
46
47         The first about CPU(SPARC64) was rendered obsolete when we switched
48         from __exchange_and_add to __sync_add_and_fetch.
49
50         The second was caused by a wrong definition that apparently only
51         caused trouble on GCC.
52
53         * wtf/Atomics.h:
54
55 2013-10-22  Andreas Kling  <akling@apple.com>
56
57         StringImpl::lower() should return a PassRef.
58         <https://webkit.org/b/123190>
59
60         Test the waters and hack enough of StringImpl to be able to return
61         a PassRef<StringImpl> from lower().
62
63         Also gave String a constructor that takes a PassRef<StringImpl>.
64
65         Reviewed by Antti Koivisto.
66
67 2013-10-22  Commit Queue  <commit-queue@webkit.org>
68
69         Unreviewed, rolling out r157835.
70         http://trac.webkit.org/changeset/157835
71         https://bugs.webkit.org/show_bug.cgi?id=123192
72
73         broke 32-bit builds (Requested by smfr on #webkit).
74
75         * wtf/MediaTime.cpp:
76         (WTF::signum):
77         * wtf/MediaTime.h:
78
79 2013-10-22  Jer Noble  <jer.noble@apple.com>
80
81         [WTF] Add a multiplication operator (and a few others) to MediaTime
82         https://bugs.webkit.org/show_bug.cgi?id=123137
83
84         Reviewed by Eric Carlson.
85
86         Add a multiplication operator and an inequality operator to the
87         MediaTime class for use by MSE.
88
89         * wtf/MediaTime.cpp:
90         (WTF::signum): Moved to top of file.
91         (WTF::MediaTime::operator*): Added.
92         (WTF::MediaTime::operator!=): Added.
93         * wtf/MediaTime.h:
94         (WTF::operator*): Added non-class version of operator*.
95
96 2013-10-21  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
97
98         Make TYPE_CASTS_BASE more flexible
99         https://bugs.webkit.org/show_bug.cgi?id=122951
100
101         Reviewed by Andreas Kling.
102
103         TYPE_CASTS_BASE is being used by node|element type casts. However, it is difficult
104         to be used by other type casts. For instance, CSSValue, Accessibility and so on.
105         This patch modifies TYPE_CASTS_BASE which can support other type casts.
106
107         Besides TYPE_CASTS_BASE body is moved from node.h to Assertions.h.
108
109         * wtf/Assertions.h:
110
111 2013-10-20  Filip Pizlo  <fpizlo@apple.com>
112
113         StructureStubInfo's usedRegisters set should be able to track all registers, not just the ones that our JIT's view as temporaries
114         https://bugs.webkit.org/show_bug.cgi?id=123076
115
116         Reviewed by Sam Weinig.
117         
118         Teach BitVector how to efficiently merge (i.e. bitvector |=).
119
120         * wtf/BitVector.cpp:
121         (WTF::BitVector::mergeSlow):
122         * wtf/BitVector.h:
123         (WTF::BitVector::merge):
124         (WTF::BitVector::cleanseInlineBits):
125
126 2013-10-19  Jer Noble  <jer.noble@apple.com>
127
128         Unreviewed roll out of r157695; broke Mac builds.
129
130         * wtf/FeatureDefines.h:
131
132 2013-10-07  Jer Noble  <jer.noble@apple.com>
133
134         [MSE] [Mac] Enable MediaSource on the Mac
135         https://bugs.webkit.org/show_bug.cgi?id=122484
136
137         Reviewed by Darin Adler.
138
139         Enable ENABLE_MEDIA_SOURCE.
140
141         * wtf/FeatureDefines.h:
142
143 2013-10-19  Andreas Kling  <akling@apple.com>
144
145         RefPtr::releaseNonNull() incorrectly increments the refcount.
146         <https://webkit.org/b/123063>
147
148         Make releaseNonNull() use adoptRef(T&), mirroring release().
149
150         Reviewed by Anders Carlsson.
151
152 2013-10-18  Andreas Kling  <akling@apple.com>
153
154         Start passing RenderStyle around with PassRef.
155         <https://webkit.org/b/123051>
156
157         Added some new PassRef tricks to make this patch possible.
158
159         Reviewed by Darin Adler.
160
161         * wtf/PassRef.h:
162         (WTF::PassRef::get):
163
164             Added a get() helper to facilitate writing functions that
165             construct a new object and call some functions on it before
166             returning it.
167
168         (WTF::PassRef::dropRef):
169
170             This will deref() the referenced object and mark the PassRef
171             as "passed." This is used in code paths where the PassRef is
172             going to go out of scope with nobody to take it over.
173
174         (WTF::PassRef::leakRef):
175
176             Renamed takeReference() to leakRef() and made it public so
177             we don't have to awkwardly sink the PassRef into a Ref for
178             e.g static locals.
179
180         * wtf/RefPtr.h:
181         (WTF::RefPtr::releaseNonNull):
182
183             Added RefPtr::releaseNonNull() for a convenient way of creating
184             a PassRef<T> from a RefPtr<T>. This function may only be called
185             if the RefPtr is known to be non-null.
186
187 2013-10-18  Filip Pizlo  <fpizlo@apple.com>
188
189         A CodeBlock's StructureStubInfos shouldn't be in a Vector that we search using code origins and machine code PCs
190         https://bugs.webkit.org/show_bug.cgi?id=122940
191
192         Reviewed by Oliver Hunt.
193
194         * GNUmakefile.list.am:
195         * WTF.vcxproj/WTF.vcxproj:
196         * WTF.xcodeproj/project.pbxproj:
197         * wtf/BagToHashMap.h: Added.
198         (WTF::toHashMap):
199         * wtf/CMakeLists.txt:
200
201 2013-10-18  Anders Carlsson  <andersca@apple.com>
202
203         Remove spaces between template angle brackets
204         https://bugs.webkit.org/show_bug.cgi?id=123040
205
206         Reviewed by Andreas Kling.
207
208         * wtf/AVLTree.h:
209         * wtf/CheckedArithmetic.h:
210         * wtf/Compression.h:
211         * wtf/Functional.h:
212         (WTF::R):
213         * wtf/HashFunctions.h:
214         * wtf/HashIterators.h:
215         * wtf/HashSet.h:
216         (WTF::::contains):
217         * wtf/ListHashSet.h:
218         (WTF::::contains):
219         * wtf/RefCountedLeakCounter.cpp:
220         * wtf/RetainPtr.h:
221         * wtf/SentinelLinkedList.h:
222         (WTF::::remove):
223         * wtf/SizeLimits.cpp:
224         * wtf/StreamBuffer.h:
225         * wtf/Vector.h:
226         * wtf/VectorTraits.h:
227         * wtf/WeakPtr.h:
228         (WTF::WeakReference::create):
229         (WTF::WeakReference::createUnbound):
230         (WTF::WeakPtr::WeakPtr):
231         (WTF::WeakPtrFactory::WeakPtrFactory):
232         * wtf/text/AtomicString.cpp:
233         (WTF::AtomicString::add):
234         (WTF::findString):
235         * wtf/text/StringConcatenate.h:
236         * wtf/text/StringImpl.h:
237         * wtf/text/StringOperators.h:
238         (WTF::operator+):
239
240 2013-10-18  Brendan Long  <b.long@cablelabs.com>
241
242         [GStreamer][GTK] Add GRefPtr::outPtr()
243         https://bugs.webkit.org/show_bug.cgi?id=122996
244
245         Reviewed by Philippe Normand.
246
247         * wtf/gobject/GRefPtr.h:
248         (WTF::GRefPtr::outPtr): Added.
249
250 2013-10-17  Geoffrey Garen  <ggaren@apple.com>
251
252         Tidied up the Vector<T> move constructor
253         https://bugs.webkit.org/show_bug.cgi?id=122998
254
255         Reviewed by Anders Carlsson.
256
257         * wtf/Vector.h:
258         (WTF::::Vector): Don't call swap() "weird". It's the way most std types
259         implement move constructors.
260
261         Do inline this function, so the compiler can optimize away a logical
262         move into a physical no-op.
263
264 2013-10-16  Filip Pizlo  <fpizlo@apple.com>
265
266         Introduce WTF::Bag and start using it for InlineCallFrameSet
267         https://bugs.webkit.org/show_bug.cgi?id=122941
268
269         Reviewed by Geoffrey Garen.
270         
271         Introduce WTF::Bag, which is basically an allocation pool. No POD restrictions. Does one
272         malloc per entry. No need to shrink afterwards.
273
274         * GNUmakefile.list.am:
275         * WTF.vcxproj/WTF.vcxproj:
276         * WTF.xcodeproj/project.pbxproj:
277         * wtf/Bag.h: Added.
278         (WTF::Bag::Bag):
279         (WTF::Bag::~Bag):
280         (WTF::Bag::add):
281         (WTF::Bag::iterator::iterator):
282         (WTF::Bag::iterator::operator!):
283         (WTF::Bag::iterator::operator*):
284         (WTF::Bag::iterator::operator++):
285         (WTF::Bag::iterator::operator==):
286         (WTF::Bag::begin):
287         (WTF::Bag::end):
288         (WTF::Bag::isEmpty):
289         * wtf/CMakeLists.txt:
290
291 2013-10-17  Andreas Kling  <akling@apple.com>
292
293         Make it possible to assign a PassRef to a RefPtr.
294         <https://webkit.org/b/122943>
295
296         We have to use std::move when constructing a RefPtr from a PassRef
297         since there is no copy constructor for the latter.
298
299         Reviewed by Antti Koivisto.
300
301 2013-10-16  Ryuan Choi  <ryuan.choi@samsung.com>
302
303         Unreviewed build fix attempt on EFL port after r157520 and r157523
304
305         * wtf/PassRef.h: includes <utility>
306
307 2013-10-16  Darin Adler  <darin@apple.com>
308
309         Add PassRef and createRefCounted so we can improve creation of RefCounted objects
310         https://bugs.webkit.org/show_bug.cgi?id=122904
311
312         Reviewed by Anders Carlsson.
313
314         * GNUmakefile.list.am: Added PassRef.h.
315         * WTF.vcxproj/WTF.vcxproj: Ditto.
316         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
317         * WTF.xcodeproj/project.pbxproj: Ditto.
318         * wtf/CMakeLists.txt: Ditto.
319
320         * wtf/Forward.h: Added PassRef. Also re-sorted and un-indented to match what
321         the style-checking script expects.
322
323         * wtf/PassRef.h: Added. Includes the createRefCounted function template, which
324         is analogous to make_unique, but is for reference counted objects, and also
325         assumes that new will never return null. Also includes an overload of adoptRef
326         that takes a reference rather than a pointer.
327
328         * wtf/PassRefPtr.h: Include "PassRef.h" so we can share the adopted function.
329         Got rid of declarations that duplicate ones in there.
330         (WTF::refIfNotNull): Use nullptr.
331         (WTF::derefIfNotNull): Use nullptr.
332         (WTF::PassRefPtr::PassRefPtr): Use nullptr. Added an overload that takes a PassRef.
333         (WTF::PassRefPtr::operator UnspecifiedBoolType): Use nullptr.
334         (WTF::PassRefPtr::operator=): Made this deleted instead of compile time assertion.
335         (WTF::PassRefPtr::PassRefPtr): Made adopting constructor use an adopt tag instead
336         of an unused boolean.
337         (WTF::PassRefPtr::leakRef): Use nullptr.
338         (WTF::adoptRef): Use the adopt tag.
339
340         * wtf/Ref.h: Use Noncopyable instead of rolling our own.
341         (WTF::Ref::Ref): Add an overload that takes a PassRef.
342         (WTF::Ref::operator=): Ditto.
343
344         * wtf/RefPtr.h: Removed unneeded forward declaration of PassRefPtr.
345         (WTF::RefPtr::RefPtr): Use nullptr. Added overload that takes a PassRef.
346         (WTF::RefPtr::release): Use nullptr.
347         (WTF::RefPtr::operator UnspecifiedBoolType): Use nullptr.
348         (WTF::RefPtr::operator=): Added overload that takes a PassRef.
349         (WTF::RefPtr::clear): Use nullptr.
350
351         * wtf/StdLibExtras.h: Added inline keyword to isPointerTypeAlignmentOkay,
352         reinterpret_cast_ptr, and make_unique. Seems like a simple oversight that these
353         were missing before.
354
355 2013-10-15  Dean Jackson  <dino@apple.com>
356
357         Add ENABLE_WEB_ANIMATIONS flag
358         https://bugs.webkit.org/show_bug.cgi?id=122871
359
360         Reviewed by Tim Horton.
361
362         Eventually might be http://dev.w3.org/fxtf/web-animations/
363         but this is just engine-internal work at the moment.
364
365         * wtf/FeatureDefines.h:
366
367 2013-10-15  Daniel Bates  <dabates@apple.com>
368
369         [iOS] Upstream JavaScriptCore support for ARM64
370         https://bugs.webkit.org/show_bug.cgi?id=122762
371
372         Reviewed by Oliver Hunt.
373
374         * Configurations/Base.xcconfig:
375         * wtf/Atomics.h:
376         (WTF::weakCompareAndSwap):
377         (WTF::armV7_dmb):
378         * wtf/FastMalloc.cpp:
379         * wtf/Platform.h:
380         * wtf/dtoa.cpp:
381         * wtf/dtoa/utils.h:
382         * wtf/text/ASCIIFastPath.h:
383         (WTF::copyLCharsFromUCharSource):
384         * wtf/text/StringImpl.h:
385
386 2013-10-14  Zan Dobersek  <zdobersek@igalia.com>
387
388         Static assertions in WTF::adoptPtr should point to using adoptRef for ref-counted objects
389         https://bugs.webkit.org/show_bug.cgi?id=122745
390
391         Reviewed by Anders Carlsson.
392
393         * wtf/PassOwnPtr.h:
394         (WTF::adoptPtr): When the object's type is convertible to the RefCountedBase or ThreadSafeRefCountedBase type,
395         the static assertion should note that adoptRef should be used instead.
396
397 2013-10-14  Anders Carlsson  <andersca@apple.com>
398
399         WebKit Nightlies broken by r157374
400         https://bugs.webkit.org/show_bug.cgi?id=122736
401
402         Reviewed by Andreas Kling.
403
404         Add back a callOnMainThread overload that Safari is using.
405
406         * wtf/MainThread.cpp:
407         (WTF::callOnMainThread):
408         * wtf/MainThread.h:
409
410 2013-10-13  Darin Adler  <darin@apple.com>
411
412         Deprecate or remove deleteAllValues functions; there are only a few call sites left
413         https://bugs.webkit.org/show_bug.cgi?id=122738
414
415         Reviewed by Anders Carlsson.
416
417         * wtf/Deque.h: Deleted deleteAllValues.
418         * wtf/HashMap.h: Ditto.
419         * wtf/HashSet.h: Ditto.
420         * wtf/ListHashSet.h: Ditto.
421         * wtf/Vector.h: Renamed deleteAllValues to deprecatedDeleteAllValues.
422
423 == Rolled over to ChangeLog-2013-10-13 ==