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