f901382a421a94976ca404cf8aeb785590823213
[WebKit-https.git] / Source / WTF / ChangeLog
1 2013-09-04  Anders Carlsson  <andersca@apple.com>
2
3         De-indent Vector.h.
4
5         Rubber-stamped by Andreas Kling.
6         
7         I'm cleaning up Vector and making it work with move-only objects, and the namespace WTF
8         indentation is driving me crazy.
9
10         * wtf/Vector.h:
11
12 2013-09-03  Filip Pizlo  <fpizlo@apple.com>
13
14         CodeBlock memory cost reporting should be rationalized
15         https://bugs.webkit.org/show_bug.cgi?id=120615
16
17         Reviewed by Darin Adler.
18
19         * wtf/RefCountedArray.h:
20         (WTF::RefCountedArray::refCount):
21
22 2013-09-03  Enrica Casucci  <enrica@apple.com>
23
24         Follow up to http://trac.webkit.org/changeset/155014
25
26         Reviewed by Alexey Proskuryakov.
27
28         In the r155014 I renamed hasLineBreakingPropertyComplexContext
29         to requiresComplexContextForWordBreaking but forgot to
30         make the same change in UnicodeWchar.h.
31
32         * wtf/unicode/wchar/UnicodeWchar.cpp:
33         (WTF::Unicode::requiresComplexContextForWordBreaking):
34         * wtf/unicode/wchar/UnicodeWchar.h:
35
36 2013-09-03  Enrica Casucci  <enrica@apple.com>
37
38         Can't select Katakana word by double-clicking.
39         <rdar://problem/14654926>
40
41         Reviewed by Alexey Proskuryakov and Ryosuke Niwa.
42
43         For some languages, like Japanese we need
44         to use more context for word breaking.
45         I've renamed the function to better reflect its use
46         and remove the unused hasLineBreakingPropertyComplexContextOrIdeographic.
47
48         * wtf/unicode/icu/UnicodeIcu.h:
49         (WTF::Unicode::requiresComplexContextForWordBreaking):
50
51 2013-09-03  Andreas Kling  <akling@apple.com>
52
53         Support Vector<Ref<T>>.
54         <https://webkit.org/b/120637>
55
56         Reviewed by Antti Koivisto.
57
58         Add a Ref(const T&) constructor to enable Vector<Ref<T>>. This looks a bit awkward
59         but is necessary for Vector::append(const T&) to find a constructor.
60
61         An alternative would be to add something like std::vector::emplace_back, but I can't
62         think of a good name for that, and it'd be nice if append() would "just work."
63
64         Also add operator->(). I initially excluded this because I felt it made for
65         unsafe-looking code. Things quickly got out of hand with .get() everywhere though.
66
67         IMO -> looks OK as long as it's only used on the first link in a dereference chain,
68         as that variable and its type will be "in context."
69
70         * wtf/Ref.h:
71         (WTF::Ref::Ref):
72         (WTF::Ref::~Ref):
73         (WTF::Ref::operator->):
74         (WTF::Ref::get):
75         * wtf/VectorTraits.h:
76
77             Add simple traits for Ref<T> so it can be moved around freely by Vector.
78
79 2013-09-03  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
80
81         Check WTF::VectorFiller template argument type size in compile time
82         https://bugs.webkit.org/show_bug.cgi?id=120631
83
84         Reviewed by Darin Adler.
85
86         The template argument's type size in WTF::VectorFiller 'memset' specialization
87         should be checked during compilation rather than in runtime.
88
89         * wtf/Vector.h:
90
91 2013-09-02  Darin Adler  <darin@apple.com>
92
93         Cut down on double hashing and code needlessly using hash table iterators
94         https://bugs.webkit.org/show_bug.cgi?id=120611
95
96         Reviewed by Andreas Kling.
97
98         Double hashing is common in code that needs to combine a remove with some
99         action to only be done if the code is removed. The only way to avoid it is
100         to write code using find and a hash table iterator. To help with this, add
101         a boolean return value to remove functions to indicate if anything was removed.
102
103         Double hashing also happens in code that does a get followed by a remove.
104         The take function is helpful in this case. To help with this, add a takeFirst
105         funciton to ListHashSet.
106
107         * wtf/HashCountedSet.h:
108         (WTF::HashCountedSet::removeAll): Added a boolean return value, analogous to the one
109         that the HashCountedSet::remove function already has.
110
111         * wtf/HashMap.h:
112         (WTF::HashMap::remove): Added a boolean return value, true if something was removed.
113         * wtf/HashSet.h:
114         (WTF::HashSet::remove): Ditto.
115         * wtf/RefPtrHashMap.h:
116         (WTF::RefPtrHashMap::remove): Ditto.
117
118         * wtf/ListHashSet.h:
119         (WTF::ListHashSet::takeFirst): Added.
120         (WTF::ListHashSet::takeLast): Added.
121         (WTF::ListHashSet::remove): Added a boolean return value, true if something was removed.
122
123         * wtf/WTFThreadData.h:
124         (JSC::IdentifierTable::remove): Use the new remove return value to get rid of most of
125         the code in this function.
126
127 2013-09-02  David Kilzer  <ddkilzer@apple.com>
128
129         Remove duplicate entries found by Xcode in WTF project
130
131         Platform.h was duplicated in r111778 after being added in
132         r111504.
133
134         A dangling reference to Ref.h was added in r154962.
135
136         * WTF.xcodeproj/project.pbxproj: Remove duplicate entries for
137         Platform.h and Ref.h.
138
139 2013-09-02  Andreas Kling  <akling@apple.com>
140
141         Actually add Ref.h
142
143 2013-09-02  Darin Adler  <darin@apple.com>
144
145         [Mac] No need for HardAutorelease, which is same as CFBridgingRelease
146         https://bugs.webkit.org/show_bug.cgi?id=120569
147
148         Reviewed by Andy Estes.
149
150         * wtf/ObjcRuntimeExtras.h: Added a FIXME about miscapitalization of ObjC.
151         Deleted HardAutorelease.
152         (wtfObjcMsgSend): Dropped the use of abbreviations in local class and argument names.
153         (wtfCallIMP): Ditto.
154
155 2013-09-01  Andreas Kling  <akling@apple.com>
156
157         Ref: A smart pointer for the reference age.
158         <https://webkit.org/b/120570>
159
160         Reviewed by Antti Koivisto.
161
162         Add a very simple simple Ref<T> smart pointer class that is never null.
163         It's initialized by passing a T& to the constructor and cannot be assigned to.
164
165         operator-> is not overloaded, to prevent unsafe-looking code.
166         The value is extracted by "T& get()", since C++ does not let you override operator.()
167
168         * wtf/Ref.h:
169
170 2013-08-30  Oliver Hunt  <oliver@apple.com>
171
172         Make JSValue bool conversion less dangerous
173         https://bugs.webkit.org/show_bug.cgi?id=120505
174
175         Reviewed by Darin Adler.
176
177         Make LIKELY and UNLIKELY macros coerce to bool before
178         passing to expect.
179
180         * wtf/Compiler.h:
181
182 2013-08-30  Antti Koivisto  <antti@apple.com>
183
184         Remove code behind ENABLE(DIALOG_ELEMENT)
185         https://bugs.webkit.org/show_bug.cgi?id=120467
186
187         Reviewed by Darin Adler.
188
189         * wtf/FeatureDefines.h:
190
191 2013-08-29  Sam Weinig  <sam@webkit.org>
192
193         Add ENABLE guards for Promises
194         https://bugs.webkit.org/show_bug.cgi?id=120488
195
196         Reviewed by Andreas Kling.
197
198         * wtf/FeatureDefines.h:
199
200 2013-08-28  Zan Dobersek  <zdobersek@igalia.com>
201
202         [GTK] Add support for building JSC with FTL JIT enabled
203         https://bugs.webkit.org/show_bug.cgi?id=120270
204
205         Reviewed by Filip Pizlo.
206
207         * wtf/Platform.h: Define ENABLE_FTL_JIT to the value of 1 for the GTK port if building for the x86-64
208         architecture with LLVM present and the define not being previously defined. This is applicable when
209         configuring the Automake build with '--enable-ftl-jit=auto'.
210
211 2013-08-27  Arunprasad Rajkumar  <arurajku@cisco.com>
212
213         Replace currentTime() with monotonicallyIncreasingTime() in WebCore
214         https://bugs.webkit.org/show_bug.cgi?id=119958
215
216         Reviewed by Alexey Proskuryakov.
217
218         WTF::currentTime() is prone to NTP and manual adjustments, so use
219         WTF::monotonicallyIncreasingTime() to measure elapsed time.
220
221         It is a continuation of r154201.
222
223         * wtf/CurrentTime.h: Edited comment.
224
225 2013-08-27  Andre Moreira Magalhaes   <andre.magalhaes@collabora.co.uk>
226
227         [gstreamer] Make sure gstreamer source element is thread-safe
228         https://bugs.webkit.org/show_bug.cgi?id=115352
229
230         Reviewed by Philippe Normand.
231
232         Add convenience class that simplifies locking and unlocking a GMutex.
233
234         * GNUmakefile.list.am:
235         * wtf/gobject/GMutexLocker.h: Added.
236         (WebCore::GMutexLocker::GMutexLocker):
237         (WebCore::GMutexLocker::~GMutexLocker):
238         (WebCore::GMutexLocker::lock):
239         (WebCore::GMutexLocker::unlock):
240         (WebCore::GMutexLocker::mutex):
241
242 2013-08-26  Andy Estes  <aestes@apple.com>
243
244         Don't leak objects in HardAutorelease when OBJC_NO_GC is undefined but
245         Objective-C GC is disabled at runtime.
246         
247         Reviewed by Darin Adler.
248
249         * wtf/ObjcRuntimeExtras.h:
250         (HardAutorelease):
251
252 2013-08-23  Andy Estes  <aestes@apple.com>
253
254         Fix issues found by the Clang Static Analyzer
255         https://bugs.webkit.org/show_bug.cgi?id=120230
256
257         Reviewed by Darin Adler.
258
259         * wtf/ObjcRuntimeExtras.h:
260         (HardAutorelease): Added a canonical implementation of HardAutorelease.
261
262 2013-08-26  Zan Dobersek  <zdobersek@igalia.com>
263
264         Undefine __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS before redefining them
265         https://bugs.webkit.org/show_bug.cgi?id=120313
266
267         Reviewed by Darin Adler.
268
269         * wtf/LLVMHeaders.h: Undefine the two macros before they are defined again.
270         This way we avoid the compilation-time warnings about the macros being invalidly redefined.
271
272 2013-08-26  Oliver Hunt  <oliver@apple.com>
273
274         Building is so overrated.
275
276         * wtf/Compression.cpp:
277         (WTF::GenericCompressedData::decompress):
278
279 2013-08-26  Oliver Hunt  <oliver@apple.com>
280
281         Disable compression under MSVC for now as we're getting
282         weird release-only failures.
283
284         * wtf/Compression.cpp:
285
286 2013-08-24  Benjamin Poulain  <benjamin@webkit.org>
287
288         Save three bytes per CStringBuffer object
289         https://bugs.webkit.org/show_bug.cgi?id=120040
290
291         Reviewed by Darin Adler.
292
293         Merge https://chromium.googlesource.com/chromium/blink/+/894ae8eafdb64912aefd8f9c809f4ccda84f3b89
294
295         sizeof(CStringBuffer) was rounded up to 8 on account of struct size and
296         alignment rules. This is clearly not what was intended.
297
298         * wtf/text/CString.cpp:
299         (WTF::CStringBuffer::createUninitialized):
300         * wtf/text/CString.h:
301         (WTF::CStringBuffer::data):
302         (WTF::CStringBuffer::mutableData):
303
304 2013-08-24  Darin Adler  <darin@apple.com>
305
306         RetainPtr lacks move constructor for case when argument is a RetainPtr of a different type
307         https://bugs.webkit.org/show_bug.cgi?id=120255
308
309         Reviewed by Andreas Kling.
310
311         * wtf/RetainPtr.h: Added missing move constructor, modeled on the other move constructor,
312         and the one from RetPtr.
313
314 2013-08-24  Oliver Hunt  <oliver@apple.com>
315
316         Make the world build.
317
318         * wtf/Compression.h:
319
320 2013-08-24  Oliver Hunt  <oliver@apple.com>
321
322         REGRESSION(r154498): Crashes on EFL, GTK, Qt on release configurations
323         https://bugs.webkit.org/show_bug.cgi?id=120246
324
325         Reviewed by Antti Koivisto.
326
327         Undestroy all the platforms that don't use the global new overload
328
329         * wtf/Compression.h:
330
331 2013-08-21  Mark Rowe  <mrowe@apple.com>
332
333         <https://webkit.org/b/120141> Make RetainPtr work with ARC.
334
335         Have RetainPtr store the object its managing as a CFTypeRef and manage its lifetime with
336         CFRetain / CFRelease. This is necessary to have explicit control over the lifetime of
337         Objective-C objects when automatic reference counting is in use. Two helper methods are
338         introduced to convert between the pointer type that the RetainPtr manages and the CFTypeRef
339         that the pointer is stored as. For CF types and Objective-C types with ARC disabled,
340         these methods are simply casts. For Objective-C types under ARC they need to use the
341         special bridging casts to keep the compiler happy.
342
343         Reviewed by Anders Carlsson.
344
345         * wtf/RetainPtr.h:
346         (WTF::RetainPtr::RetainPtr): Use the helper methods to convert to and from the storage
347         types when necessary.
348         (WTF::RetainPtr::~RetainPtr): Ditto.
349         (WTF::RetainPtr::get): Ditto.
350         (WTF::RetainPtr::operator->): Ditto.
351         (WTF::RetainPtr::operator PtrType): Ditto.
352         (WTF::::RetainPtr): Ditto.
353         (WTF::::clear): Ditto.
354         (WTF::::leakRef): Ditto.
355         (WTF::=): Ditto.
356
357         (WTF::RetainPtr::fromStorageTypeHelper): Use crazy template magic to determine whether to use
358         a bridging cast or not depending on the desired return type.
359         (WTF::RetainPtr::fromStorageType):
360         (WTF::RetainPtr::toStorageType): Overloading is sufficient here.
361
362 2013-08-21  Mark Rowe  <mrowe@apple.com>
363
364         Revert r153637.
365
366         It didn't work with ARC like it said it would. We'll need to take a slightly different approach.
367
368         Rubber-stamped by Anders Carlsson.
369
370         * wtf/RetainPtr.h:
371         (WTF::RetainPtr::RetainPtr):
372         (WTF::RetainPtr::~RetainPtr):
373         (WTF::RetainPtr::operator UnspecifiedBoolType):
374         (WTF::::RetainPtr):
375         (WTF::::clear):
376         (WTF::=):
377         (WTF::adoptCF):
378         (WTF::adoptNS):
379
380 2013-08-23  Brent Fulgham  <bfulgham@apple.com>
381
382         [Windows] Unreviewed build correction after r154513.
383
384         * WTF.vcxproj/build-generated-files.sh: Variable was missing '$' character.
385
386 2013-08-23  Darin Adler  <darin@apple.com>
387
388         Cut down repeated code in RefPtr and RetainPtr by using copy/move-and-swap for assignment operators
389         https://bugs.webkit.org/show_bug.cgi?id=120223
390
391         Reviewed by Anders Carlsson.
392
393         * wtf/RefPtr.h: Switch to copy-and-swap in the assignment operators. The move ones already were done
394         that way.
395         * wtf/RetainPtr.h: Ditto, except for the move ones too.
396
397 2013-08-23  Oliver Hunt  <oliver@apple.com>
398
399         Add more validation logic to CompressibleVector
400         https://bugs.webkit.org/show_bug.cgi?id=120227
401
402         Reviewed by Brent Fulgham.
403
404         Add a pile of assertions to try on catch whatever is going wrong
405         in the windows environment or other platforms.
406
407         * wtf/Compression.cpp:
408         (WTF::GenericCompressedData::create):
409         (WTF::GenericCompressedData::decompress):
410         * wtf/Compression.h:
411         (WTF::CompressedVector::decompress):
412
413 2013-08-23  Alex Christensen  <achristensen@apple.com>
414
415         Re-separating Win32 and Win64 builds.
416         https://bugs.webkit.org/show_bug.cgi?id=120178
417
418         Reviewed by Brent Fulgham.
419
420         * WTF.vcxproj/WTFGenerated.make:
421         Pass PlatformArchitecture as a command line parameter to bash scripts.
422         * WTF.vcxproj/build-generated-files.sh:
423         Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64).
424
425 2013-08-22  Filip Pizlo  <fpizlo@apple.com>
426
427         build-jsc --ftl-jit should work
428         https://bugs.webkit.org/show_bug.cgi?id=120194
429
430         Reviewed by Oliver Hunt.
431
432         * wtf/LLVMHeaders.h: I don't know what went wrong here. If HAVE(LLVM), then we need those headers!
433
434 2013-08-23  Brent Fulgham  <bfulgham@apple.com>
435
436         [Windows] Unreviewed build correction after r154498.
437
438         * WTF.vcxproj/WTF.vcxproj.filters: Adjust files so they show up
439         in the proper folders.
440         * WTF.vcxproj/WTFCommon.props: Add search path for zlib header and
441         include link directive.
442
443 2013-08-23  Oliver Hunt  <oliver@apple.com>
444
445         Attempt to appease windows bot.
446
447         * wtf/Compression.h:
448
449 2013-08-23  Oliver Hunt  <oliver@apple.com>
450
451         Re-sort xcode project file
452
453         * WTF.xcodeproj/project.pbxproj:
454
455 2013-08-23  Oliver Hunt  <oliver@apple.com>
456
457         Support in memory compression of rarely used data
458         https://bugs.webkit.org/show_bug.cgi?id=120143
459
460         Reviewed by Gavin Barraclough.
461
462         Adds a set of utility functions to wrap the use of zlib over a generic
463         type or a Vector<> as well as adding CompressibleVector that wraps
464         either a Vector<> or compressed data.
465
466         * GNUmakefile.list.am:
467         * WTF.pro:
468         * WTF.vcxproj/WTF.vcxproj:
469         * WTF.xcodeproj/project.pbxproj:
470         * wtf/CMakeLists.txt:
471         * wtf/CheckedArithmetic.h:
472         * wtf/Compression.cpp: Added.
473         (WTF::zAlloc):
474         (WTF::zFree):
475         (WTF::GenericCompressedData::create):
476         (WTF::GenericCompressedData::decompress):
477         * wtf/Compression.h: Added.
478         (WTF::GenericCompressedData::compressedSize):
479         (WTF::GenericCompressedData::originalSize):
480         (WTF::GenericCompressedData::GenericCompressedData):
481         (WTF::CompressedVector::create):
482         (WTF::CompressedVector::decompress):
483         (WTF::CompressedVector::size):
484         (WTF::CompressibleVector::CompressibleVector):
485         (WTF::CompressibleVector::shrinkToFit):
486         (WTF::CompressibleVector::size):
487         (WTF::CompressibleVector::operator[]):
488         (WTF::CompressibleVector::at):
489         (WTF::CompressibleVector::begin):
490         (WTF::CompressibleVector::end):
491         (WTF::CompressibleVector::data):
492         (WTF::CompressibleVector::decompressIfNecessary):
493
494 2013-08-21  Commit Queue  <commit-queue@webkit.org>
495
496         Unreviewed, rolling out r154416.
497         http://trac.webkit.org/changeset/154416
498         https://bugs.webkit.org/show_bug.cgi?id=120147
499
500         Broke Windows builds (Requested by rniwa on #webkit).
501
502         * WTF.vcxproj/WTFGenerated.make:
503         * WTF.vcxproj/build-generated-files.sh:
504
505 2013-08-21  Alex Christensen  <achristensen@apple.com>
506
507         <https://webkit.org/b/120137> Separating Win32 and Win64 builds.
508
509         Reviewed by Brent Fulgham.
510
511         * WTF.vcxproj/WTFGenerated.make:
512         Pass PlatformArchitecture as a command line parameter to bash scripts.
513         * WTF.vcxproj/build-generated-files.sh:
514         Use PlatformArchitecture from command line to determine which object directory to use (obj32 or obj64).
515
516 2013-08-21  Allan Sandfeld Jensen  <allan.jensen@digia.com>
517
518         Disable maybe-uninitialized warning in GCC 4.8
519         https://bugs.webkit.org/show_bug.cgi?id=119835
520
521         Reviewed by Anders Carlsson.
522
523         Disable the maybe-uninitialized warning.
524
525         * wtf/Compiler.h:
526
527 2013-08-20  Alex Christensen  <achristensen@apple.com>
528
529         Use PlatformArchitecture to distinguish between 32-bit and 64-bit builds on Windows.
530         https://bugs.webkit.org/show_bug.cgi?id=119512
531
532         Reviewed by Brent Fulgham.
533
534         * WTF.vcxproj/WTFGeneratedCommon.props:
535         Replaced obj32, bin32, and lib32 with macros for 64-bit build.
536
537 2013-08-20  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
538
539         <https://webkit.org/b/120056> [GTK][ARM] enable DFG_JIT
540
541         Reviewed by Martin Robinson.
542
543         Enable DFG_JIT in GTK+ platform for ARM/Thumb architecture
544
545         * wtf/Platform.h:
546
547 2013-08-19  Ryosuke Niwa  <rniwa@webkit.org>
548
549         <https://webkit.org/b/120049> Delete code for Snow Leopard
550
551         Reviewed by Benjamin Poulain.
552
553         * wtf/FastMalloc.cpp:
554         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
555         * wtf/FeatureDefines.h:
556         * wtf/Platform.h:
557
558 2013-08-19  Joseph Pecoraro  <pecoraro@apple.com>
559
560         <https://webkit.org/b/120036> [iOS] Upstream Source/WTF Xcode project for iOS
561
562         Reviewed by David Kilzer.
563
564         Include iOS only WebCoreThread.* files in an ios group, and clean up
565         the included files a bit.
566
567         * WTF.xcodeproj/project.pbxproj:
568         * wtf/ios/WebCoreThread.cpp:
569         * wtf/ios/WebCoreThread.h:
570
571 2013-08-19  Joseph Pecoraro  <pecoraro@apple.com>
572
573         <https://webkit.org/b/119905> [iOS] Upstream Source/WTF
574
575         Reviewed by Benjamin Poulain.
576
577         Upstream iOS WebKit Source/WTF.
578
579         * Configurations/Base.xcconfig:
580         JavaScriptCore.framework is a public framework.
581
582         * wtf/Assertions.h:
583         Define an export macro for iOS projects just including <wtf/Assertions.h>.
584
585         * wtf/Platform.h:
586         * wtf/FeatureDefines.h:
587         iOS ENABLE and USE defines.
588
589         * wtf/MainThread.h:
590         * wtf/mac/MainThreadMac.mm:
591         (WTF::initializeApplicationUIThreadIdentifier):
592         (WTF::initializeWebThreadIdentifier):
593         (WTF::canAccessThreadLocalDataForThread):
594         * wtf/WeakPtr.h:
595         (WTF::WeakReference::get):
596         (WTF::WeakReference::clear):
597         Shared WebThread and MainThread access to thread local data.
598
599         * wtf/WTFThreadData.cpp:
600         (WTF::WTFThreadData::WTFThreadData):
601         Shared WebThread and MainThread identifier tables.
602
603         * wtf/ThreadSpecific.h:
604         (WTF::::replace):
605         Used later on so that WebThread can share the MainThread's thread global data.
606
607         * wtf/text/StringStatics.cpp:
608         (WTF::AtomicString::init):
609         When USE(WEB_THREAD) assert AtomicString::init is initialized on the realMainThread.
610
611         * wtf/unicode/CharacterNames.h:
612         * wtf/unicode/icu/UnicodeIcu.h:
613         (WTF::Unicode::hasLineBreakingPropertyComplexContextOrIdeographic):
614         Minor iOS constants and functions used later by WebCore.
615
616 2013-08-16  Arunprasad Rajkumar  <arurajku@cisco.com>
617
618         <https://webkit.org/b/119785> Replace currentTime() with monotonicallyIncreasingTime() in WebCore
619
620         Reviewed by Alexey Proskuryakov.
621
622         WTF::currentTime() is prone to DST changes and NTP adjustments, so use
623         WTF::monotonicallyIncreasingTime() to measure elapsed time.
624
625         * wtf/CurrentTime.h:
626         (WTF::monotonicallyIncreasingTimeMS): Added mille second version of monotonic time API.
627
628 2013-08-15  Filip Pizlo  <fpizlo@apple.com>
629
630         refCount() of a StringImpl could be zero if it's static; in that case we shouldn't report extra memory cost
631         https://bugs.webkit.org/show_bug.cgi?id=119870
632
633         Reviewed by Mark Hahnenberg.
634
635         * wtf/text/StringImpl.h:
636         (WTF::StringImpl::costDuringGC):
637         (WTF::StringImpl::isStatic):
638         (WTF::StringImpl::bufferOwnership):
639
640 2013-08-14  Filip Pizlo  <fpizlo@apple.com>
641
642         Typed arrays should be rewritten
643         https://bugs.webkit.org/show_bug.cgi?id=119064
644
645         Reviewed by Oliver Hunt.
646         
647         - Added the notion of a reference counted object that can be marked Deferred,
648           which is like a special-purpose upref.
649         
650         - Added a common byte flipper.
651
652         Automake work courtesy of Zan Dobersek <zdobersek@igalia.com>.
653
654         * GNUmakefile.list.am:
655         * WTF.xcodeproj/project.pbxproj:
656         * wtf/DeferrableRefCounted.h: Added.
657         (WTF::DeferrableRefCountedBase::ref):
658         (WTF::DeferrableRefCountedBase::hasOneRef):
659         (WTF::DeferrableRefCountedBase::refCount):
660         (WTF::DeferrableRefCountedBase::isDeferred):
661         (WTF::DeferrableRefCountedBase::DeferrableRefCountedBase):
662         (WTF::DeferrableRefCountedBase::~DeferrableRefCountedBase):
663         (WTF::DeferrableRefCountedBase::derefBase):
664         (WTF::DeferrableRefCountedBase::setIsDeferredBase):
665         (WTF::DeferrableRefCounted::deref):
666         (WTF::DeferrableRefCounted::setIsDeferred):
667         (WTF::DeferrableRefCounted::DeferrableRefCounted):
668         (WTF::DeferrableRefCounted::~DeferrableRefCounted):
669         * wtf/FlipBytes.h: Added.
670         (WTF::needToFlipBytesIfLittleEndian):
671         (WTF::flipBytes):
672         (WTF::flipBytesIfLittleEndian):
673
674 2013-08-14  Julien Brianceau  <jbrianceau@nds.com>
675
676         DFG_JIT implementation for sh4 architecture.
677         https://bugs.webkit.org/show_bug.cgi?id=119737
678
679         Reviewed by Oliver Hunt.
680
681         * wtf/Platform.h:
682
683 2013-08-13  Arunprasad Rajkumar  <arurajku@cisco.com>
684
685         [WTF] [JSC] Replace currentTime() with monotonicallyIncreasingTime() in all possible places
686         https://bugs.webkit.org/show_bug.cgi?id=119762
687
688         Reviewed by Geoffrey Garen.
689
690         * wtf/MainThread.cpp:
691         (WTF::dispatchFunctionsFromMainThread):
692
693 2013-08-12  Ragner Magalhaes  <ranger.n@samsung.com>
694
695         Broken build with build-webkit --no-webgl
696         https://bugs.webkit.org/show_bug.cgi?id=119272
697
698         Reviewed by Alexandru Chiculita.
699
700         CSS_SHADERS requires WEBGL enabled.
701         Add error message to dependency failure.
702
703         * wtf/FeatureDefines.h:
704
705 2013-08-12  Joseph Pecoraro  <pecoraro@apple.com>
706
707         [iOS] isMainThread implementation with USE(WEB_THREAD)
708         https://bugs.webkit.org/show_bug.cgi?id=119644
709
710         Reviewed by Benjamin Poulain.
711
712         On iOS isMainThread() means that the current thread is either the
713         MainThread or WebThread and the current thread has the WebThreadLock.
714
715         * wtf/ios/WebCoreThread.cpp: Added.
716         * wtf/ios/WebCoreThread.h: Added.
717         * wtf/mac/MainThreadMac.mm:
718         (WTF::isMainThread):
719
720 2013-08-11  Carlos Garcia Campos  <cgarcia@igalia.com>
721
722         Unreviewed. Fix make distcheck.
723
724         * GNUmakefile.list.am: Add missing header file.
725
726 2013-08-09  Christophe Dumez  <ch.dumez@sisa.samsung.com>
727
728         Make atob() throw an InvalidCharacterError on excess padding characters
729         https://bugs.webkit.org/show_bug.cgi?id=118898
730
731         Reviewed by Darin Adler.
732
733         Add a Base64FailOnInvalidCharacterOrExcessPadding value to the Base64DecodePolicy
734         enumeration so that the caller can request strict padding validation in addition
735         to strict character validation. This is needed so that we can use
736         WTF::base64Decode() for window.atob().
737
738         * wtf/text/Base64.cpp:
739         (WTF::base64DecodeInternal):
740         * wtf/text/Base64.h:
741
742 2013-08-07  Alex Christensen  <achristensen@apple.com>
743
744         Fixed wrong definition for AppleWin port's WebGL after r153768.
745
746         Rubberstamped by Benjamin Poulain.
747
748         * wtf/Platform.h: Replaced WTF_USE_SURFACE with WTF_USE_GRAPHICS_SURFACE.
749
750 2013-08-04  Sam Weinig  <sam@webkit.org>
751
752         Remove support for HTML5 MicroData
753         https://bugs.webkit.org/show_bug.cgi?id=119480
754
755         Reviewed by Anders Carlsson.
756
757         * wtf/FeatureDefines.h:
758
759 2013-08-06  Alex Christensen  <achristensen@apple.com>
760
761         Enabled WebGL on WinCairo port.
762         https://bugs.webkit.org/show_bug.cgi?id=119502
763
764         Reviewed by Benjamin Poulain.
765
766         * wtf/FeatureDefines.h: Enabled WebGL.
767         * wtf/Platform.h: Added definitions required for WebGL on Windows.
768
769 2013-08-05  Mark Rowe  <mrowe@apple.com>
770
771         <rdar://problem/5927399> FastMalloc should support MallocStackLogging
772
773         Call the malloc stack logging function from within the various entry points to FastMalloc
774         when stack logging is enabled.
775
776         Reviewed by Oliver Hunt and Geoff Garen.
777
778         * wtf/FastMalloc.cpp:
779         Call in to MallocHook::InvokeNewHook / MallocHook::InvokeDeleteHook at the appropriate entry
780         points to FastMalloc. The naming comes from TCMalloc's existing, unused concept of malloc hooks.
781         (WTF::MallocHook::record): Call the stack logging function with appropriate argument types.
782         (WTF::MallocHook::recordAllocation): Out-of-line slow path for when stack logging is enabled
783         that calls record with the values in the right arguments.
784         (WTF::MallocHook::recordDeallocation): Ditto.
785         (WTF::MallocHook::init): Stack logging is enabled if the system allocator has enabled stack logging.
786         (WTF::MallocHook::InvokeNewHook): Call recordAllocation in the unlikely event that stack logging is
787         enabled.
788         (WTF::MallocHook::InvokeDeleteHook): Ditto for recordDeallocation.
789         (WTF::TCMalloc_ThreadCache::InitModule): Initialize the malloc hook.
790
791 2013-08-06  Brent Fulgham  <bfulgham@apple.com>
792
793         [Windows] Unreviewed build correction after r153754 and r153757.
794
795         * wtf/MathExtras.h:
796         (remainder): Provide implementation of C99 remainder for VS2010 (and earlier).
797
798 2013-07-23  David Farler  <dfarler@apple.com> 
799         Provide optional OTHER_CFLAGS, OTHER_CPPFLAGS, OTHER_LDFLAGS additions for building with ASAN
800         https://bugs.webkit.org/show_bug.cgi?id=117762
801
802         Reviewed by Mark Rowe.
803
804         * Configurations/DebugRelease.xcconfig:
805         Add ASAN_OTHER_CFLAGS, CPLUSPLUSFLAGS.
806
807 2013-08-05  Mark Rowe  <mrowe@apple.com>
808
809         Build fix for Qt Windows.
810
811         * wtf/Assertions.cpp: Include StringExtras.h rather than StdLibExtras.h, since the former is where
812         strncasecmp is declared.
813
814 2013-07-26  Mark Rowe  <mrowe@apple.com>
815
816         Logging should be configurable using human-readable channel names rather than crazy bitmasks
817         <http://webkit.org/b/119031>
818
819         Implement shared logic for initializing logging channels based on human-readable channel names in WTF,
820         and rework the WebCore, WebKit and WebKit2 logging initialization on top of it.
821
822         Logging channels may now be enabled by providing a comma-separated list of channel names, with the special
823         "all" name enabling all channels. Channel names prefixed with a leading "-" will result in the named channel
824         being disabled. For instance, specifying "all,-history,-loading" will result in all logging channels except
825         for history and loading being enabled.
826
827         For OS X developers, this also changes the name of the user defaults used to enable logging. This is done to allow
828         the old user defaults to remain set for those people that need to switch between version of WebKit before and
829         after this change. Where the old user default keys were WebCoreLogLevel, WebKitLogLevel and WebKit2LogLevel,
830         the new user default keys are WebCoreLogging, WebKitLogging and WebKit2Logging.
831
832         For GTK developers, this changes the separator used in the WEBKIT_DEBUG environment variable to a comma for
833         consistency with the other platforms and to enable more code sharing.
834
835         While doing this work I've also taken the opportunity to eliminate the need to touch multiple files when
836         adding a new logging channel. Now only the header in the relevant project needs to be updated.
837
838         Reviewed by Sam Weinig.
839
840         * wtf/Assertions.cpp:
841         (WTFLogChannelByName): Iterate over the provided array of log channels, returning the first whose name
842         matches case-insensitively.
843         (setStateOfAllChannels): Helper function to set the state of all channels to a single value.
844         (WTFInitializeLogChannelStatesFromString): Parse a string containing a case-insensitive, comma-separated list
845         of channel names to enable or disable, with the latter being prefixed by a "-".
846         * wtf/Assertions.h: Update the layout of WTFLogChannel to include only the state of the channel and its name.
847         Declare WTFLogChannelByName and WTFInitializeLogChannelStatesFromString.
848         * wtf/RefCountedLeakCounter.cpp: Update to the new format of WTFLogChannel.
849
850 2013-08-05  Benjamin Poulain  <bpoulain@apple.com>
851
852         Disable <meter> by default on iOS, it is enabled through the xconfig files
853         https://bugs.webkit.org/show_bug.cgi?id=119503
854
855         Reviewed by Alexey Proskuryakov.
856
857         * wtf/FeatureDefines.h:
858
859 2013-08-05  Oliver Hunt  <oliver@apple.com>
860
861         Move TypedArray implementation into JSC
862         https://bugs.webkit.org/show_bug.cgi?id=119489
863
864         Reviewed by Filip Pizlo.
865
866         Remove TypedArray implementation from WTF
867
868         * GNUmakefile.list.am:
869         * WTF.xcodeproj/project.pbxproj:
870         * wtf/Forward.h:
871
872 2013-08-02  Benjamin Poulain  <benjamin@webkit.org>
873
874         Remove a bunch of redundant checks for empty string in StringImpl
875         https://bugs.webkit.org/show_bug.cgi?id=118768
876
877         Reviewed by Ryosuke Niwa.
878
879         The first thing done by createUninitialized() is check if the length passed
880         is zero. Internally, there are many cases for which we know the check will never succeed.
881
882         Clang is usually really smart for those kind of things, but there are a few cases where
883         the condition to avoid returning empty() is not simply a check for the length.
884         This patch adds an internal initializer to deal with that.
885
886         * wtf/text/StringImpl.cpp:
887         (WTF::StringImpl::createUninitializedInternal):
888         (WTF::StringImpl::createUninitializedInternalNonEmpty):
889         (WTF::StringImpl::createInternal): Create internal has a special case for null pointer
890         for the characters. The test also check length, the second check for length cannot fail.
891         (WTF::StringImpl::create8BitIfPossible): ditto.
892         (WTF::StringImpl::lower): 3 of the calls cannot be reached for empty length. On an empty length,
893         the test for (noUpper && !(ored & ~0x7F)) would have caused the function to return "this".
894
895         For the last createUninitialized(), there is no guarantee the realLength is not zero.
896
897         (WTF::StringImpl::replace): The first thing we do in replace(UChar,UChar) is check if there is anything
898         to replace. The check for length will never succeed as there must be a character to replace at that point.
899         * wtf/text/StringImpl.h:
900
901 2013-08-02  Mark Lam  <mark.lam@apple.com>
902
903         Gardening: Touched a line in Platform.h to get all bots to do a clean build.
904
905         Not reviewed.
906
907         * wtf/Platform.h:
908
909 2013-08-02  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
910
911         Check WTF::Vector size with '0' inline capacity
912         https://bugs.webkit.org/show_bug.cgi?id=119397
913
914         Reviewed by Andreas Kling.
915
916         Putting in place the compile assertion that had been removed with r153514.
917
918         * wtf/SizeLimits.cpp:
919
920 2013-07-26  Mark Rowe  <mrowe@apple.com>
921
922         <http://webkit.org/b/119169> RetainPtr should support ARC for Objective-C objects.
923
924         While RetainPtr is not necessary under ARC, having it available makes it easier to transition
925         existing code from manual retain / release to ARC.
926
927         Under ARC, the object member of RetainPtr is treated as a strong reference by the compiler.
928         This means that merely assigning to the member variable is sufficient to retain the object,
929         and clearing the member variable is sufficient to release it. We still need to explicitly
930         CFRetain / CFRelease CoreFoundation types so the explicit calls to these functions are
931         moved in to helper functions and overloading is used to have the Objective-C object versions
932         of them be no-ops under ARC.
933
934         Reviewed by Anders Carlsson.
935
936         * wtf/RetainPtr.h:
937         (WTF::retain): Continue to always CFRetain / CFRelease CoreFoundation objects. Only CFRetain / CFRelease
938         Objective-C objects when using manual retain / release.
939         (WTF::release): Ditto.
940         (WTF::adoptNSReference): Adopting references will be handled automatically by the compiler
941         when possible under ARC by eliminating redundant retain / release pairs.
942         (WTF::RetainPtr::ImplicitConversionToBoolIsNotAllowed): A new method that exists only to be used by the
943         conversion to the unspecified bool type.
944         (WTF::RetainPtr::operator UnspecifiedBoolType): Switch to using a pointer to a member function as the
945         unspecified bool type to avoid warnings from the compiler when casting Objective-C object types under ARC.
946
947         (WTF::RetainPtr::RetainPtr): Switch to our retain / release helper functions.
948         (WTF::RetainPtr::~RetainPtr): Ditto.
949         (WTF::::RetainPtr): Ditto.
950         (WTF::::clear): Ditto.
951         (WTF::=): Ditto.
952         (WTF::adoptCF): Annotate the argument with CF_RELEASES_ARGUMENT on both the declaration and the definition.
953         (WTF::adoptNS): Ditto for NS_RELEASES_ARGUMENT.
954
955 2013-08-01  Mark Rowe  <mrowe@apple.com>
956
957         <rdar://problem/14235491> FastMalloc zone enumerator responding to MALLOC_PTR_REGION_RANGE_TYPE with individual allocations
958
959         Teach PageMapMemoryUsageRecorder::recordPendingRegions to only record data of the type that it's asked for.
960         This also fixes the vmmap output to associate some regions with the FastMalloc malloc zone that were previously
961         associated with it only via the VM tag, meaning they were incorrectly being omitted from the malloc statistics
962         section of the report.
963
964         Reviewed by Dan Bernstein.
965
966         * wtf/FastMalloc.cpp:
967         (WTF::PageMapMemoryUsageRecorder::recordPendingRegions): Report the individual allocations only when requested. Add
968         the ability to report the regions containing pointers separately from the allocations.
969
970 2013-08-01  Mark Rowe  <mrowe@apple.com>
971
972         <rdar://problem/14528244> False-positive leaks from FastMalloc.
973
974         A logic error in the page map enumeration code within FastMalloc could result in a subset of the memory regions
975         owned by FastMalloc being skipped by the malloc zone enumeration code used by leaks and other performance tools.
976         If the only reference to an allocated object lived within one of the skipped memory regions, leaks would believe
977         it had been leaked since it would not find any references to the object.
978
979         The logic error manifested when a FastMalloc span owned a region of memory that crossed a 16MB address space boundary,
980         and when there was one or more other spans immediately after it in the address space. Crossing the 16MB address space
981         boundary means that the start and end points of the span are in different leaf nodes of the page map trie, and the
982         code within the page map's visitValues method didn't correctly account this case when skipping to the end of the span
983         after visiting it. It would resume iterating from the start of the next leaf node rather than continuing to skip values
984         until the end of the span was passed. The value representing the end of the span would then be processed as if it were
985         the start of a new span, and more values would be skipped even though they may contain actual spans.
986
987         The solution is to rework the algorithm used in visitValues so that it will skip the correct number of values even when
988         some of the values are in different leaf nodes. This is a more involved change than it may seem since it's also necessary
989         to deal with the case where a memory region spans two separate root nodes, which can happen if the region happens to cross
990         a 64GB boundary in the address space.
991
992         Reviewed by Geoff Garen.
993
994         * wtf/TCPageMap.h:
995         (TCMalloc_PageMap3::visitValues): Use a single loop to iterate, with the loop index being the key in to the page map in the
996         same form as used by get and set. This allows us to correctly deal with the index being skipped to a different intermediate or
997         root node as a result of visiting a span that crosses a 16MB boundary in memory.
998         (TCMalloc_PageMap2::visitValues): Ditto, but without having to deal with intermediate nodes.
999
1000 2013-08-01  Ruth Fong  <ruth_fong@apple.com>
1001
1002         [Forms: color] <input type='color'> popover color well implementation
1003         <rdar://problem/14411008> and https://bugs.webkit.org/show_bug.cgi?id=119356
1004
1005         Reviewed by Benjamin Poulain.
1006
1007         * wtf/FeatureDefines.h: Added and enabled INPUT_TYPE_COLOR_POPOVER.
1008
1009 2013-08-01  Simon Fraser  <simon.fraser@apple.com>
1010
1011         REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being copied into the wrong location
1012         https://bugs.webkit.org/show_bug.cgi?id=112833
1013
1014         Reviewed by Sam Weinig.
1015         
1016         AutodrainedPool.h and SchedulePair.h should just be project headers, not
1017         private headers, so they get copied into <build dir>/usr/local/include/wtf
1018         not <build dir>/usr/local/include
1019
1020         * WTF.xcodeproj/project.pbxproj:
1021
1022 2013-07-31  Ruth Fong  <ruth_fong@apple.com>
1023
1024         <input type=color> Mac UI behaviour
1025         <rdar://problem/10269922> and https://bugs.webkit.org/show_bug.cgi?id=61276
1026
1027         Reviewed by Brady Eidson.
1028
1029         * wtf/FeatureDefines.h: Enabled INPUT_TYPE_COLOR on Mac port.
1030
1031 2013-07-31  Andreas Kling  <akling@apple.com>
1032
1033         Shrink Vectors with inline capacity.
1034         <http://webkit.org/b/119295>
1035         <rdar://problem/14598360>
1036
1037         Reviewed by Anders Carlsson.
1038
1039         Pack Vector::m_size next to VectorBufferBase::m_capacity so there's no space wasted
1040         on padding when sizeof(T) >= 8. Since m_size is not conceptually part of the buffer,
1041         I just using'ed it into Vector.
1042
1043         * wtf/SizeLimits.cpp:
1044         * wtf/Vector.h:
1045         (WTF::VectorBufferBase::VectorBufferBase):
1046         (WTF::VectorBuffer::VectorBuffer):
1047         (WTF::Vector::Vector):
1048         (WTF::::Vector):
1049
1050 2013-07-30  Patrick Gansterer  <paroga@webkit.org>
1051
1052         Move WindowsExtras.h from WebCore to WTF
1053         https://bugs.webkit.org/show_bug.cgi?id=118125
1054
1055         Reviewed by Anders Carlsson.
1056
1057         Move it to WTF to be able to use the functions in WTF too.
1058
1059         * wtf/WindowsExtras.h: Renamed from Source/WebCore/platform/win/WindowsExtras.h.
1060         (WTF::getRegistryValue):
1061         (WTF::getWindowPointer):
1062         (WTF::setWindowPointer):
1063         * wtf/win/MainThreadWin.cpp:
1064         (WTF::initializeMainThreadPlatform):
1065
1066 2013-07-29  Carlos Garcia Campos  <cgarcia@igalia.com>
1067
1068         Unreviewed. Fix make distcheck.
1069
1070         * GNUmakefile.list.am: Add missing files to compilation.
1071
1072 2013-07-29  Mark Rowe  <mrowe@apple.com>
1073
1074         <rdar://problem/14528244> Tons of FastMalloc leaks reported by leaks of objects that have already been deallocated
1075
1076         Reviewed by Sam Weinig.
1077
1078         * wtf/FastMalloc.cpp:
1079         (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects): Mark objects in the transfer cache as being free.
1080
1081 2013-07-29  Zan Dobersek  <zdobersek@igalia.com>
1082
1083         Reintroduce convenience CheckedInt*, CheckedUint* types
1084         https://bugs.webkit.org/show_bug.cgi?id=119213
1085
1086         Reviewed by Oliver Hunt.
1087
1088         Reintroduce CheckedInt* and CheckedUint* types that were previously provided for convenience
1089         through the CheckedInt header that was removed in r153095. The types are now based on the
1090         Checked class, using the RecordOverflow class as the overflow handler.
1091
1092         * wtf/CheckedArithmetic.h:
1093
1094 2013-07-27  Ryosuke Niwa  <rniwa@webkit.org>
1095
1096         REGRESSION(r153380): Can't open messages on Gmail
1097         https://bugs.webkit.org/show_bug.cgi?id=119165
1098
1099         Reviewed by Andreas Kling.
1100
1101         This bug was caused by r153380. The bug doesn't reproduce as long as WebKit is built by clang 4.2 and later
1102         or final is disabled (it could be clang 4.1 and later but we don't have information about that).
1103
1104         Fix the bug by disabling final on earlier versions of clang. Unfortunately we can only check versions of
1105         Apple clang since __clang_major__ and __clang_minor__ are vendor dependent.
1106
1107         * wtf/Compiler.h:
1108
1109 2013-07-26  Oliver Hunt <oliver@apple.com>
1110
1111         ASSERT failure in wtf/CheckedBoolean.h line 43 on Windows
1112         https://bugs.webkit.org/show_bug.cgi?id=119170
1113
1114         Reviewed by Michael Saboff.
1115
1116         Added a copy constructor to CheckedBoolean.
1117
1118         * wtf/CheckedBoolean.h:
1119         (CheckedBoolean::CheckedBoolean):
1120
1121 2013-07-25  Brent Fulgham  <bfulgham@apple.com>
1122
1123         [Windows] Unreviewed build fix.
1124
1125         * WTF.vcxproj/WTF.vcxproj: Add missing SixCharacterHash.h,.cpp files.
1126         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
1127         * wtf/NumberOfCores.h: Add export macro to numberOfProcessorCores.
1128         * wtf/PrintStream.h: Add export macro to dumpCharacter.
1129         * wtf/SixCharacterHash.h: Add export macro to sixCharacterHashStringToInteger
1130         and integerToSixCharacterHashString.
1131         * wtf/text/CString.h: Add export macro to hash and equal methods.
1132         (WTF::CStringHash::hash): Add export macro.
1133
1134 2013-07-25  peavo@outlook.com  <peavo@outlook.com>
1135
1136         [Windows] Provide ASM implemenation of 8-bit compare-and-swap
1137         https://bugs.webkit.org/show_bug.cgi?id=119084
1138
1139         Reviewed by Brent Fulgham.
1140
1141         * wtf/Atomics.h:
1142         (WTF::weakCompareAndSwap): Add a 32-bit X86 Assembly path for
1143         Windows build.
1144
1145 2013-07-25  Brent Fulgham  <bfulgham@apple.com>
1146
1147         [Windows] Unreviewed build fix.
1148
1149         * WTF.vcxproj/WTF.vcxproj: Add missing CompilationThread.h,.cpp
1150         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
1151
1152 2013-07-25  Michael Brüning  <michael.bruning@digia.com>
1153
1154         Fix Windows build after r153134.
1155         https://bugs.webkit.org/show_bug.cgi?id=119090
1156
1157         Reviewed by Oliver Hunt.
1158
1159         Add USE(PTHREADS) guards around pthread specific code
1160         for now. This will cause isCompilationThread to always
1161         return false on non pthread platforms such as Windows.
1162
1163         We might be able to use the Windows one-time initialization
1164         for this, but this is only available from Windows Vista on.
1165
1166         * wtf/CompilationThread.cpp:
1167         (WTF::initializeCompilationThreads):
1168
1169 2013-07-25  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1170
1171         Fix windows build after FTL upstream
1172
1173         Unreviewed build fix.
1174
1175         * wtf/Atomics.h:
1176         (WTF::weakCompareAndSwap):
1177
1178 2013-07-25  Ryuan Choi  <ryuan.choi@samsung.com>
1179
1180         Unreviewed, build fix on the EFL port.
1181
1182         * wtf/CMakeLists.txt: Added SixCharacterHash.cpp
1183
1184 2013-07-25  Gabor Rapcsanyi  <rgabor@webkit.org>
1185
1186         Unreviewed, build fix on the Qt port.
1187
1188         * WTF.pro: Add additional build files for the FTL.
1189
1190 2013-07-25  Zan Dobersek  <zdobersek@igalia.com>
1191
1192         Unreviewed, further GTK build fixing.
1193
1194         * GNUmakefile.am: Make libWTF.la depend on any changes made to the build targets list.
1195         * GNUmakefile.list.am: Add SixCharacterHash source files to the build.
1196
1197 2013-07-25  Csaba Osztrogonác  <ossy@webkit.org>
1198
1199         [GTK] Similar fix to r153304.
1200
1201         * GNUmakefile.list.am:
1202
1203 2013-07-25  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
1204
1205         Build break in debug after r153134: StringImpl.h:640: undefined reference to `WTF::isCompilationThread()
1206         https://bugs.webkit.org/show_bug.cgi?id=119077
1207
1208         Reviewed by Christophe Dumez.
1209
1210         * wtf/CMakeLists.txt:
1211         Added CompilationThread.{h/cpp}.
1212
1213 2013-07-24  Filip Pizlo  <fpizlo@apple.com>
1214
1215         fourthTier: DFG IR dumps should be easier to read
1216         https://bugs.webkit.org/show_bug.cgi?id=119050
1217
1218         Reviewed by Mark Hahnenberg.
1219         
1220         Added support for dumping values within a context. By default, if you say
1221         print(inContext(value, context)) it calls value.dumpInContext(out, context)
1222         instead of value.dump(out).
1223         
1224         Hoisted the support for six-character hashes out of JSC::CodeBlockHash into
1225         WTF, in the form of SixCharacterHash.h.
1226         
1227         Added a helper for creating dump contexts where the inContext() dump will
1228         just use a short string hash to "name" the object being dumped, and then
1229         will print out the full dumps in an endnote to your dump.
1230         
1231         Added support for using CString as a hashtable key.
1232
1233         * WTF.xcodeproj/project.pbxproj:
1234         * wtf/PrintStream.h:
1235         (WTF):
1236         (ValueInContext):
1237         (WTF::ValueInContext::ValueInContext):
1238         (WTF::ValueInContext::dump):
1239         (WTF::inContext):
1240         * wtf/SixCharacterHash.cpp: Added.
1241         (WTF):
1242         (WTF::sixCharacterHashStringToInteger):
1243         (WTF::integerToSixCharacterHashString):
1244         * wtf/SixCharacterHash.h: Added.
1245         (WTF):
1246         * wtf/StringHashDumpContext.h: Added.
1247         (WTF):
1248         (StringHashDumpContext):
1249         (WTF::StringHashDumpContext::StringHashDumpContext):
1250         (WTF::StringHashDumpContext::getID):
1251         (WTF::StringHashDumpContext::dumpBrief):
1252         (WTF::StringHashDumpContext::brief):
1253         (WTF::StringHashDumpContext::isEmpty):
1254         (WTF::StringHashDumpContext::dump):
1255         * wtf/text/CString.cpp:
1256         (WTF::CString::hash):
1257         (WTF):
1258         (WTF::operator<):
1259         (WTF::CStringHash::equal):
1260         * wtf/text/CString.h:
1261         (WTF::CString::CString):
1262         (CString):
1263         (WTF::CString::isHashTableDeletedValue):
1264         (WTF):
1265         (WTF::CStringHash::hash):
1266         (CStringHash):
1267
1268 2013-07-21  Filip Pizlo  <fpizlo@apple.com>
1269
1270         fourthTier: DFG Nodes should be able to abstractly tell you what they read and what they write
1271         https://bugs.webkit.org/show_bug.cgi?id=118910
1272
1273         Reviewed by Sam Weinig.
1274         
1275         Fix compile goof in sortedListDump().
1276
1277         * wtf/ListDump.h:
1278         (WTF::sortedListDump):
1279
1280 2013-07-16  Filip Pizlo  <fpizlo@apple.com>
1281
1282         fourthTier: NaturalLoops should be able to quickly answer questions like "what loops own this basic block"
1283         https://bugs.webkit.org/show_bug.cgi?id=118750
1284
1285         Reviewed by Mark Hahnenberg.
1286         
1287         Add a utility function for inserting an element into a vector that has bounded size,
1288         and where the insertion causes things to drop off the end.
1289
1290         * wtf/StdLibExtras.h:
1291         (WTF):
1292         (WTF::insertIntoBoundedVector):
1293
1294 2013-07-12  Filip Pizlo  <fpizlo@apple.com>
1295
1296         fourthTier: DFG should have an SSA form for use by FTL
1297         https://bugs.webkit.org/show_bug.cgi?id=118338
1298
1299         Reviewed by Mark Hahnenberg.
1300         
1301         - Extend variadicity of PrintStream and dataLog.
1302         
1303         - Give HashSet the ability to add a span of things.
1304         
1305         - Give HashSet the ability to == another HashSet.
1306         
1307         - Note FIXME's in HashTable concerning copying performance, that affects
1308           the way that the DFG now uses HashSets and HashMaps.
1309         
1310         - Factor out the bulk-insertion logic of JSC::DFG::InsertionSet into
1311           WTF::Insertion, so that it can be used in more places.
1312         
1313         - Create a dumper for lists and maps.
1314
1315         * WTF.xcodeproj/project.pbxproj:
1316         * wtf/DataLog.h:
1317         (WTF):
1318         (WTF::dataLog):
1319         * wtf/HashSet.h:
1320         (HashSet):
1321         (WTF):
1322         (WTF::::add):
1323         (WTF::=):
1324         * wtf/HashTable.h:
1325         (WTF::::HashTable):
1326         (WTF::=):
1327         * wtf/Insertion.h: Added.
1328         (WTF):
1329         (Insertion):
1330         (WTF::Insertion::Insertion):
1331         (WTF::Insertion::index):
1332         (WTF::Insertion::element):
1333         (WTF::Insertion::operator<):
1334         (WTF::executeInsertions):
1335         * wtf/ListDump.h: Added.
1336         (WTF):
1337         (ListDump):
1338         (WTF::ListDump::ListDump):
1339         (WTF::ListDump::dump):
1340         (MapDump):
1341         (WTF::MapDump::MapDump):
1342         (WTF::MapDump::dump):
1343         (WTF::listDump):
1344         (WTF::sortedListDump):
1345         (WTF::lessThan):
1346         (WTF::mapDump):
1347         (WTF::sortedMapDump):
1348         * wtf/PrintStream.h:
1349         (PrintStream):
1350         (WTF::PrintStream::print):
1351
1352 2013-07-02  Filip Pizlo  <fpizlo@apple.com>
1353
1354         Unreviewed, fix 32-bit build.
1355
1356         * wtf/Platform.h:
1357
1358 2013-07-02  Filip Pizlo  <fpizlo@apple.com>
1359
1360         fourthTier: FTL should use the equivalent of llvm opt -O2 by default
1361         https://bugs.webkit.org/show_bug.cgi?id=118311
1362
1363         Reviewed by Mark Hahnenberg.
1364         
1365         * wtf/LLVMHeaders.h:
1366
1367 2013-06-27  Filip Pizlo  <fpizlo@apple.com>
1368
1369         fourthTier: JSC's disassembly infrastructure should be able to disassemble the code that LLVM generates
1370         https://bugs.webkit.org/show_bug.cgi?id=118148
1371
1372         Reviewed by Anders Carlsson.
1373         
1374         We now use LLVM for two things: disassembler and FTL. Separate out the question
1375         of whether we have LLVM (HAVE(LLVM)) from whether we want to use the LLVM
1376         disassembler (USE(LLVM_DISASSEMBLER)) and whether we enable the FTL
1377         (ENABLE(FTL_JIT)).
1378         
1379         Also move the cruft for including LLVM headers into WTF since now we use it in
1380         a bunch of places, not all related to FTL. There's no obvious place to put that
1381         file in JSC so I put it in WTF.
1382
1383         * WTF.xcodeproj/project.pbxproj:
1384         * wtf/LLVMHeaders.h: Copied from Source/JavaScriptCore/ftl/FTLLLVMHeaders.h.
1385         * wtf/Platform.h:
1386
1387 2013-06-25  Filip Pizlo  <fpizlo@apple.com>
1388
1389         fourthTier: DFG should support switch_string
1390         https://bugs.webkit.org/show_bug.cgi?id=117967
1391
1392         Reviewed by Sam Weinig.
1393         
1394         Make it possible to compare a RefPtr<StringImpl> and a StringImpl* without
1395         having to ref the StringImpl.
1396
1397         * wtf/text/StringHash.h:
1398         (WTF::StringHash::equal):
1399
1400 2013-06-24  Filip Pizlo  <fpizlo@apple.com>
1401
1402         fourthTier: Count external memory usage towards heap footprint
1403         https://bugs.webkit.org/show_bug.cgi?id=117948
1404
1405         Reviewed by Geoffrey Garen.
1406
1407         Expose some functionality needed for properly measuring StringImpl footprint.
1408
1409         * wtf/Atomics.h:
1410         (WTF::weakCompareAndSwapSize):
1411         (WTF):
1412         * wtf/MathExtras.h:
1413         (divideRoundedUp):
1414         * wtf/text/StringImpl.h:
1415         (WTF::StringImpl::cost):
1416         (StringImpl):
1417         (WTF::StringImpl::costDuringGC):
1418         (WTF::StringImpl::refCount):
1419
1420 2013-06-23  Filip Pizlo  <fpizlo@apple.com>
1421
1422         fourthTier: DFG should optimize identifier string equality
1423         https://bugs.webkit.org/show_bug.cgi?id=117920
1424
1425         Reviewed by Sam Weinig.
1426
1427         Note that this ChangeLog was supposed to be committed in r151890.
1428         
1429         Expose the IsIdentifier bit to the JIT.
1430         
1431         * wtf/text/StringImpl.h:
1432         (WTF::StringImpl::flagIsIdentifier):
1433
1434 2013-06-18  Filip Pizlo  <fpizlo@apple.com>
1435
1436         fourthTier: DFG should have switch_char
1437         https://bugs.webkit.org/show_bug.cgi?id=117710
1438
1439         Reviewed by Michael Saboff.
1440         
1441         I wanted to be able to say stringImpl->at(index), and now I can!
1442
1443         Also made it possible to convert a UChar to a utf8 CString without
1444         allocating a StringImpl.
1445
1446         * wtf/text/StringImpl.cpp:
1447         (WTF::StringImpl::utf8Impl):
1448         (WTF):
1449         (WTF::StringImpl::utf8ForCharacters):
1450         (WTF::StringImpl::utf8ForRange):
1451         * wtf/text/StringImpl.h:
1452         (StringImpl):
1453         (WTF::StringImpl::at):
1454         (WTF::StringImpl::operator[]):
1455
1456 2013-06-15  Filip Pizlo  <fpizlo@apple.com>
1457
1458         fourthTier: Add CFG simplification for Switch
1459         https://bugs.webkit.org/show_bug.cgi?id=117677
1460
1461         Reviewed by Mark Hahnenberg.
1462
1463         * wtf/TriState.h:
1464         * wtf/text/StringImpl.h:
1465
1466 2013-06-15  Filip Pizlo  <fpizlo@apple.com>
1467
1468         Printing a StringImpl* should really guard against NULL
1469         https://bugs.webkit.org/show_bug.cgi?id=117675
1470
1471         Reviewed by Mark Hahnenberg.
1472
1473         * wtf/PrintStream.cpp:
1474         (WTF::printInternal):
1475
1476 2013-06-11  Filip Pizlo  <fpizlo@apple.com>
1477
1478         fourthTier: DFG should support op_in and it should use patching to make it fast
1479         https://bugs.webkit.org/show_bug.cgi?id=117385
1480
1481         Reviewed by Geoffrey Garen.
1482         
1483         Now if you pass a null StringImpl* then something will still get printed instead
1484         of crashing. I figure that this is broadly useful for debug code, and I make use
1485         of it in the JSC portion of this patch.
1486
1487         * wtf/PrintStream.cpp:
1488         (WTF::printInternal):
1489
1490 2013-06-09  Filip Pizlo  <fpizlo@apple.com>
1491
1492         Unreviewed, fix build. On some compilers the automatic coercion from WTF::String to NSString*
1493         causes operator[] to appear ambiguous. One way around this is to make WTF::String behave like
1494         most of our other classes: at(unsigned) is always a valid synonym for operator[](unsigned).
1495
1496         * wtf/text/WTFString.h:
1497         (WTF::String::at):
1498         (WTF::String::operator[]):
1499
1500 2013-06-08  Filip Pizlo  <fpizlo@apple.com>
1501
1502         fourthTier: Recursive deadlock in DFG::ByteCodeParser
1503         https://bugs.webkit.org/show_bug.cgi?id=117376
1504
1505         Reviewed by Mark Hahnenberg.
1506         
1507         I've often wanted to leave a lock early. Now I have that power!
1508
1509         * wtf/Locker.h:
1510         (WTF::Locker::Locker):
1511         (WTF::Locker::~Locker):
1512         (Locker):
1513         (WTF::Locker::unlockEarly):
1514         (WTF::Locker::lock):
1515
1516 2013-05-27  Filip Pizlo  <fpizlo@apple.com>
1517
1518         It should be possible to record heap operations (both FastMalloc and JSC GC)
1519         https://bugs.webkit.org/show_bug.cgi?id=116848
1520
1521         Reviewed by Mark Hahnenberg.
1522
1523         * WTF.xcodeproj/project.pbxproj:
1524         * wtf/DataLog.cpp:
1525         (WTF):
1526         (WTF::initializeLogFileOnce):
1527         * wtf/FastMalloc.cpp:
1528         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
1529         * wtf/Platform.h:
1530
1531 2013-05-21  Filip Pizlo  <fpizlo@apple.com>
1532
1533         fourthTier: DFG should be able to run on a separate thread
1534         https://bugs.webkit.org/show_bug.cgi?id=112839
1535
1536         Reviewed by Geoffrey Garen.
1537         
1538         * wtf/ByteSpinLock.h:
1539         Make it non-copyable. We previously had bugs where we used ByteSpinLock as a locker.
1540         Clearly that's bad.
1541
1542         * wtf/MetaAllocatorHandle.h:
1543         Make it thread-safe ref-counted, since we may now be passing them between the
1544         concurrent JIT thread and the main thread.
1545
1546         * wtf/Vector.h:
1547         (WTF::Vector::takeLast):
1548         I've wanted this method for ages, and now I finally added.
1549
1550 2013-04-30  Filip Pizlo  <fpizlo@apple.com>
1551
1552         fourthTier: DFG tries to ref/deref StringImpls in a ton of places
1553         https://bugs.webkit.org/show_bug.cgi?id=115300
1554
1555         Reviewed by Geoffrey Garen.
1556         
1557         Make it possible to do more things directly to StringImpl*'s, including being
1558         able to directly do utf8 conversion on a substring without creating the
1559         substring first.
1560         
1561         Add assertions to StringImpl that it isn't being ref/deref'd from the
1562         compilation thread.
1563
1564         * wtf/PrintStream.cpp:
1565         (WTF::printInternal):
1566         (WTF):
1567         * wtf/PrintStream.h:
1568         (WTF):
1569         (WTF::printInternal):
1570         * wtf/StringPrintStream.h:
1571         (WTF):
1572         (WTF::toCString):
1573         * wtf/text/StringImpl.cpp:
1574         (WTF::StringImpl::utf8ForRange):
1575         (WTF::StringImpl::utf8):
1576         (WTF):
1577         * wtf/text/StringImpl.h:
1578         (StringImpl):
1579         (WTF::StringImpl::hasAtLeastOneRef):
1580         (WTF::StringImpl::ref):
1581         (WTF::StringImpl::deref):
1582
1583 2013-04-29  Filip Pizlo  <fpizlo@apple.com>
1584
1585         fourthTier: String::utf8() should also be available as StringImpl::utf8() so that you don't have to ref() a StringImpl just to get its utf8()
1586         https://bugs.webkit.org/show_bug.cgi?id=115393
1587
1588         Reviewed by Geoffrey Garen.
1589
1590         * WTF.xcodeproj/project.pbxproj:
1591         * wtf/text/ConversionMode.h: Added.
1592         (WTF):
1593         * wtf/text/StringImpl.cpp:
1594         (WTF):
1595         (WTF::putUTF8Triple):
1596         (WTF::StringImpl::utf8):
1597         * wtf/text/StringImpl.h:
1598         (StringImpl):
1599         * wtf/text/WTFString.cpp:
1600         (WTF):
1601         (WTF::String::utf8):
1602         * wtf/text/WTFString.h:
1603         (String):
1604
1605 2013-07-16  Oliver Hunt <oliver@apple.com>
1606
1607         Merge dfgFourthTier r149301
1608
1609     2013-04-28  Filip Pizlo  <fpizlo@apple.com>
1610
1611         fourthTier: ASSERT that commonly used not-thread-safe methods in the runtime are not being called during compilation
1612         https://bugs.webkit.org/show_bug.cgi?id=115297
1613
1614         Reviewed by Geoffrey Garen.
1615         
1616         Taught WTF the notion of compilation threads. This allows all parts of our stack
1617         to assert that we're not being called from a JSC compilation thread. This is in
1618         WTF because it will probably end up being used in StringImpl and WTFString.
1619
1620         * WTF.xcodeproj/project.pbxproj:
1621         * wtf/CompilationThread.cpp: Added.
1622         (WTF):
1623         (WTF::initializeCompilationThreadsOnce):
1624         (WTF::initializeCompilationThreads):
1625         (WTF::isCompilationThread):
1626         (WTF::exchangeIsCompilationThread):
1627         * wtf/CompilationThread.h: Added.
1628         (WTF):
1629         (CompilationScope):
1630         (WTF::CompilationScope::CompilationScope):
1631         (WTF::CompilationScope::~CompilationScope):
1632         (WTF::CompilationScope::leaveEarly):
1633
1634 2013-07-16  Oliver Hunt <oliver@apple.com>
1635
1636         Merge dfgFourthTier r148836
1637
1638     2013-04-21  Filip Pizlo  <fpizlo@apple.com>
1639
1640         fourthTier: It should be possible to query WatchpointSets, and add Watchpoints, even if the compiler is running in another thread
1641         https://bugs.webkit.org/show_bug.cgi?id=114909
1642
1643         Reviewed by Oliver Hunt.
1644         
1645         Harden our notions of memory fences, now that we're doing racy algorithms.
1646
1647         * wtf/Atomics.h:
1648         (WTF):
1649         (WTF::compilerFence):
1650         (WTF::armV7_dmb):
1651         (WTF::armV7_dmb_st):
1652         (WTF::loadLoadFence):
1653         (WTF::loadStoreFence):
1654         (WTF::storeLoadFence):
1655         (WTF::storeStoreFence):
1656         (WTF::memoryBarrierAfterLock):
1657         (WTF::memoryBarrierBeforeUnlock):
1658         (WTF::x86_mfence):
1659
1660 2013-07-16  Oliver Hunt <oliver@apple.com>
1661
1662         Merge dfgFourthTier r148804
1663
1664     2013-04-20  Filip Pizlo  <fpizlo@apple.com>
1665
1666         fourthTier: value profiles and array profiles should be thread-safe enough to be accessible in a concurrent compilation thread
1667         https://bugs.webkit.org/show_bug.cgi?id=114906
1668
1669         Reviewed by Oliver Hunt.
1670         
1671         Add ability to abstract whether or not the CodeBlock requires locking at all,
1672         since some platforms may not support the byte spin-locking and/or may not want
1673         to, if they turn off concurrent JIT.
1674
1675         * WTF.xcodeproj/project.pbxproj:
1676         * wtf/ByteSpinLock.h:
1677         * wtf/NoLock.h: Added.
1678         (WTF):
1679         (NoLock):
1680         (WTF::NoLock::lock):
1681         (WTF::NoLock::unlock):
1682         (WTF::NoLock::isHeld):
1683         * wtf/Platform.h:
1684
1685 2013-04-17  Filip Pizlo  <fpizlo@apple.com>
1686
1687         fourthTier: all inline caches should thread-safe enough to allow a concurrent compilation thread to read them safely
1688         https://bugs.webkit.org/show_bug.cgi?id=114762
1689
1690         Reviewed by Mark Hahnenberg.
1691         
1692         Implemented a new spinlock that is optimized for compactness, by using just a byte.
1693         This will be useful as we start using fine-grained locking on a bunch of places.
1694         
1695         At some point I'll make these byte-sized spinlocks into adaptive mutexes, but for
1696         now I think it's fine to do the evil thing and use spinning particularly since we
1697         only use them for short critical sections.
1698
1699         * WTF.xcodeproj/project.pbxproj:
1700         * wtf/Atomics.h:
1701         (WTF):
1702         (WTF::weakCompareAndSwap):
1703         * wtf/ByteSpinLock.h: Added.
1704         (WTF):
1705         (ByteSpinLock):
1706         (WTF::ByteSpinLock::ByteSpinLock):
1707         (WTF::ByteSpinLock::lock):
1708         (WTF::ByteSpinLock::unlock):
1709         (WTF::ByteSpinLock::isHeld):
1710         * wtf/ThreadingPrimitives.h:
1711         (WTF::pauseBriefly):
1712         (WTF):
1713
1714 2013-04-12  Filip Pizlo  <fpizlo@apple.com>
1715
1716         fourthTier: FTL should have OSR exit
1717         https://bugs.webkit.org/show_bug.cgi?id=113623
1718
1719         Reviewed by Oliver Hunt.
1720         
1721         Finally make toCString() somewhat variadic.
1722
1723         * wtf/StringPrintStream.h:
1724         (WTF):
1725         (WTF::toCString):
1726
1727 2013-03-31  Filip Pizlo  <fpizlo@apple.com>
1728
1729         https://bugs.webkit.org/show_bug.cgi?id=113656
1730         Fix Sam's nits.
1731
1732         Unreviewed.
1733         
1734         Forgot to land these as part of http://trac.webkit.org/changeset/147299.
1735
1736         * wtf/MathExtras.h:
1737         (isGreaterThanNonZeroPowerOfTwo):
1738
1739 2013-03-29  Filip Pizlo  <fpizlo@apple.com>
1740
1741         fourthTier: FTL JIT should be able run some simple function
1742         https://bugs.webkit.org/show_bug.cgi?id=113481
1743
1744         Reviewed by Geoffrey Garen.
1745
1746         * wtf/Platform.h:
1747
1748 2013-07-22  Benjamin Poulain  <benjamin@webkit.org>
1749
1750         String::lower() - Skip to slow path on the first failure
1751         https://bugs.webkit.org/show_bug.cgi?id=118885
1752
1753         Reviewed by Andreas Kling.
1754
1755         In the 8 bits case, we don't need to know the state of the full string before changing characters
1756         to their lowercase variant.
1757         Just fail immediately and start transforming characters from the point of failure.
1758
1759         This avoid reading the string twice when the uppercase character is not at the end of the string.
1760
1761         * wtf/text/StringImpl.cpp:
1762         (WTF::StringImpl::lower):
1763
1764 2013-07-22  Brent Fulgham  <bfulgham@apple.com>
1765
1766         [Windows] Unreviewed build fix.
1767
1768         * WTF.vcxproj/WTFGenerated.make: Stop triggering a "Build All" when things have not changed.
1769
1770 2013-07-19  Alex Christensen  <achristensen@apple.com>
1771
1772         Added x64 configuration to Visual Studio build.
1773         https://bugs.webkit.org/show_bug.cgi?id=118888
1774
1775         Reviewed by Brent Fulgham.
1776
1777         * WTF.vcxproj/WTF.vcxproj:
1778         * WTF.vcxproj/WTF.vcxproj.filters:
1779         * WTF.vcxproj/WTFGenerated.vcxproj:
1780
1781 2013-07-18  Benjamin Poulain  <benjamin@webkit.org>
1782
1783         Fix the build after r152881
1784
1785         * wtf/text/StringImpl.cpp:
1786         (WTF::StringImpl::lower):
1787
1788 2013-07-18  Benjamin Poulain  <benjamin@webkit.org>
1789
1790         Little cleaning of StringImpl::lower() and StringImpl::upper() for ARM
1791         https://bugs.webkit.org/show_bug.cgi?id=118831
1792
1793         Reviewed by Gavin Barraclough.
1794
1795         Clean lower() and upper() before trying some optimizations:
1796         -Prefix the code with the empty() case. Otherwise, each descending loop starts with
1797          a check for length == 0.
1798         -Change ored to a 32 bits registers. ARM only has 32 bits registers and access to full word.
1799          To keep the value a UChar, the compiler is adding a bunch of useless value & 0xffff in the loops.
1800         -Change the pointer based loops for index based loops. The compiler does a mighty job at optimizing
1801          those for each architecture. No need to make the code more complex.
1802         -Don't perform the check for int32 unless we need to. The only code limited to int is Unicode::toLower.
1803
1804         * wtf/text/StringImpl.cpp:
1805         (WTF::StringImpl::lower):
1806         (WTF::StringImpl::upper):
1807
1808 2013-07-18  Andreas Kling  <akling@apple.com>
1809
1810         CodeBlock::m_argumentValueProfiles wastes a lot of memory.
1811         <http://webkit.org/b/118852>
1812         <rdar://problem/14481659>
1813
1814         Reviewed by Anders Carlsson.
1815
1816         Add Vector::resizeToFit(size), like resize() but without growth padding.
1817
1818         * wtf/Vector.h:
1819         (WTF::::resizeToFit):
1820
1821 2013-07-17  Benjamin Poulain  <benjamin@webkit.org>
1822
1823         Add a thread safety assertion when creating an AtomicString from a StringImpl
1824         https://bugs.webkit.org/show_bug.cgi?id=118637
1825
1826         Reviewed by Sam Weinig.
1827
1828         The goal is to prevent this kind of use:
1829         -Someone create a String from a StringImpl.
1830         -At some point, the string becomes atomic.
1831         -Later, when the string only has one ref, its ownership is 'passed' to an other thread
1832          without checking String::isSafeToSendToAnotherThread().
1833         -In the thread B, an AtomicString is created from the String.
1834         ->The AtomicString's StringImpl returned is not in the current thread string table.
1835
1836         * wtf/text/AtomicString.cpp:
1837         (WTF::AtomicString::isInAtomicStringTable):
1838         * wtf/text/AtomicString.h:
1839         (WTF::AtomicString::add):
1840
1841 2013-07-17  Benjamin Poulain  <benjamin@webkit.org>
1842
1843         Simplify AtomicString::lower()
1844         https://bugs.webkit.org/show_bug.cgi?id=118719
1845         <rdar://problem/14452883>
1846
1847         Reviewed by Gavin Barraclough.
1848
1849         * wtf/text/AtomicString.cpp:
1850         (WTF::AtomicString::lower): Previously, the code was using a copy constructor for two path
1851         and one regular construction in another path.
1852         Just put the StringImpl where it needs to be instead.
1853
1854 2013-07-15  Benjamin Poulain  <benjamin@webkit.org>
1855
1856         Add a threading assertion to AtomicString::remove
1857         https://bugs.webkit.org/show_bug.cgi?id=118695
1858
1859         Reviewed by Sam Weinig.
1860
1861         * wtf/text/AtomicString.cpp:
1862         (WTF::AtomicString::remove): The destructor of StringImpl remove
1863         the string from the string table if it is atomic. This needs to be done
1864         on the same thread as the one on which the string was added (otherwise the original
1865         table would keep a dangling pointer to a dead string).
1866
1867 2013-07-15  Benjamin Poulain  <benjamin@webkit.org>
1868
1869         Minor cleaning of AtomicString::addSlowCase
1870         https://bugs.webkit.org/show_bug.cgi?id=118615
1871
1872         Reviewed by Geoffrey Garen.
1873
1874         Give the variable a proper name.
1875         Add assertions to clarify the in and out states.
1876
1877         * wtf/text/AtomicString.cpp:
1878         (WTF::AtomicString::addSlowCase):
1879
1880 2013-07-12  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
1881
1882         Improve StringImpl::constructInternal() method
1883         https://bugs.webkit.org/show_bug.cgi?id=118503
1884
1885         Reviewed by Benjamin Poulain.
1886
1887         StringImpl::constructInternal used 'if ()' statement to decide which constructor
1888         to invoke hence compiler had to compile both branches even though optimizer would
1889         have then removed one of those, and as the function is inline it could affect
1890         slightly the compilation time.
1891
1892         The problem is solved via template specialization.
1893
1894         * wtf/text/StringImpl.h:
1895         (WTF::LChar):
1896         (WTF::UChar):
1897
1898 2013-07-11  Patrick Gansterer  <paroga@webkit.org>
1899
1900         Remove unused Windows CE files
1901         https://bugs.webkit.org/show_bug.cgi?id=118557
1902
1903         Reviewed by Andreas Kling.
1904
1905         * wtf/wince/FastMallocWinCE.h: Removed.
1906         * wtf/wince/MemoryManager.cpp: Removed.
1907         * wtf/wince/MemoryManager.h: Removed.
1908
1909 2013-07-10  Michael Brüning  <michael.bruning@digia.com>
1910
1911         Workaround for x86 optimizer bug in MSVC 2012.
1912         https://bugs.webkit.org/show_bug.cgi?id=118478
1913
1914         Reviewed by Benjamin Poulain.
1915
1916         This is a workaround for a bug in the x86 MSVC 2012 optimizer.
1917
1918         The problem is that the range comparison gets optimized out when
1919         the templated inline function toASCIIUpper. Copying the methods 
1920         content fixes the problem. 
1921
1922         This is unfortunately not the nicest fix, but the alternative would
1923         be to turn off optimization for StringImpl::upper on the x86 MSVC 2012
1924         build, which might impact overall performance negatively.
1925
1926         * wtf/text/StringImpl.cpp:
1927         (WTF::StringImpl::upper):
1928
1929 2013-07-08  Carlos Garcia Campos  <cgarcia@igalia.com>
1930
1931         Unreviewed. Fix make distcheck.
1932
1933         * GNUmakefile.list.am: Add missing header files.
1934
1935 2013-07-08  Antti Koivisto  <antti@apple.com>
1936
1937         Add Deque::removeLast
1938         https://bugs.webkit.org/show_bug.cgi?id=118466
1939
1940         Reviewed by Andreas Kling.
1941         
1942         Deque can remove both the first and the last element efficiently.
1943         
1944         Test: TestWebKitAPI/Tests/WTF/Deque.cpp
1945
1946         * wtf/Deque.h:
1947         (WTF::::takeLast):
1948         (WTF::::removeLast):
1949
1950 2013-07-08  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
1951
1952         [Qt][Windows] Buildfix after r152426.
1953
1954         Reviewed by Csaba Osztrogonác.
1955
1956         * wtf/Platform.h: Do not include WTFHeaderDetection.h on Qt build.
1957
1958 2013-07-06  Benjamin Poulain  <benjamin@webkit.org>
1959
1960         Fix the performance regressions introduced by r152418
1961         https://bugs.webkit.org/show_bug.cgi?id=118438
1962
1963         Reviewed by Sam Weinig.
1964
1965         * wtf/text/StringImpl.h:
1966         (WTF::equal):
1967         Looping between two arbitrary pointers prevents important loop
1968         optimizations.
1969
1970 2013-07-05  Brent Fulgham  <bfulgham@apple.com>
1971
1972         [Windows] Unreviewed build correction.
1973
1974         * WTF.vcxproj/WTFGenerated.make: Avoid syntax error in generated
1975         file in cases where Legible Output support is not present.
1976
1977 2013-07-05  Brent Fulgham  <bfulgham@apple.com>
1978
1979         [Windows] Unreviewed build correction.
1980
1981         * WTF.vcxproj/WTFGenerated.make: Use space (rather than double
1982         quotes) when handling the no-Legible-Output case.
1983
1984 2013-07-05  Brent Fulgham  <bfulgham@apple.com>
1985
1986         [Windows] Identify OS-level at build-time.
1987         https://bugs.webkit.org/show_bug.cgi?id=118428
1988
1989         Reviewed by Anders Carlsson.
1990
1991         * WTF.vcxproj/WTFGenerated.make: Check for Legible Output featurs
1992         and set build environment as appropriate.
1993         * wtf/Platform.h: Activate Legible Output features if present.
1994
1995 2013-07-05  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
1996
1997         A lot of code duplication within StringImpl 'equal' functions
1998         https://bugs.webkit.org/show_bug.cgi?id=118415
1999
2000         Reviewed by Anders Carlsson.
2001
2002         There has been a lot of code duplication within StringImpl 'equal' functions:
2003         the whole logic was copied to every overloaded 'equal' function.
2004         Fixed now using templates and std::equal.
2005
2006         * wtf/text/StringImpl.cpp:
2007         (WTF::equalInternal):
2008         (WTF::equal):
2009         * wtf/text/StringImpl.h:
2010         (WTF::arraysEqual):
2011         (WTF::equal):
2012
2013 2013-07-05  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2014
2015         Remove code duplication from StringImpl create()/reallocate() methods
2016         https://bugs.webkit.org/show_bug.cgi?id=118355
2017
2018         Reviewed by Andreas Kling.
2019
2020         StringImpl create()/reallocate() methods accepting LChar and UChar used to have
2021         duplicated code. The code duplication is removed now via used templates.
2022
2023         * wtf/text/StringImpl.cpp:
2024         (WTF::StringImpl::constructInternal):
2025         (WTF::LChar):
2026         (WTF::StringImpl::createUninitializedInternal):
2027         (WTF::StringImpl::createUninitialized):
2028         (WTF::StringImpl::reallocateInternal):
2029         (WTF::StringImpl::reallocate):
2030         (WTF::StringImpl::createInternal):
2031         (WTF::StringImpl::create):
2032         * wtf/text/StringImpl.h:
2033
2034 2013-07-03  Brent Fulgham  <bfulgham@apple.com>
2035
2036         [Windows] Unreviewed build correction.
2037
2038         * WTF.vcxproj/copy-files.cmd: Limit path (for this file) to DOS-only to avoid
2039         the Cygwin variant of rmdir from being used.
2040
2041 2013-07-03  Commit Queue  <commit-queue@webkit.org>
2042
2043         Unreviewed, rolling out r152356.
2044         http://trac.webkit.org/changeset/152356
2045         https://bugs.webkit.org/show_bug.cgi?id=118361
2046
2047         Broke JSCore tests (Requested by andersca on #webkit).
2048
2049         * wtf/text/StringImpl.cpp:
2050         (WTF::StringImpl::createUninitialized):
2051         (WTF::StringImpl::reallocate):
2052         (WTF::StringImpl::create):
2053         * wtf/text/StringImpl.h:
2054
2055 2013-07-03  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2056
2057         Remove code duplication from StringImpl create()/reallocate() methods
2058         https://bugs.webkit.org/show_bug.cgi?id=118355
2059
2060         Reviewed by Anders Carlsson.
2061
2062         StringImpl create()/reallocate() methods accepting LChar and UChar used to have
2063         duplicated code. The code duplication is removed now via used templates.
2064
2065         * wtf/text/StringImpl.cpp:
2066         (WTF::StringImpl::constructInternal):
2067         (WTF::LChar):
2068         (WTF::StringImpl::createUninitializedInternal):
2069         (WTF::StringImpl::createUninitialized):
2070         (WTF::StringImpl::reallocateInternal):
2071         (WTF::StringImpl::reallocate):
2072         (WTF::StringImpl::createInternal):
2073         (WTF::StringImpl::create):
2074         * wtf/text/StringImpl.h:
2075
2076 2013-07-03  Csaba Osztrogonác  <ossy@webkit.org>
2077
2078         Fix cast-align warnings in FastMalloc.cpp
2079         https://bugs.webkit.org/show_bug.cgi?id=117991
2080
2081         Reviewed by Mark Hahnenberg.
2082
2083         * wtf/FastMalloc.cpp:
2084
2085 2013-07-02  Geoffrey Garen  <ggaren@apple.com>
2086
2087         plainText() is O(N^2)
2088         https://bugs.webkit.org/show_bug.cgi?id=118282
2089         <rdar://problem/14284360>
2090
2091         Reviewed by Alexey Proskuryakov.
2092
2093         * wtf/text/StringBuilder.cpp:
2094         (WTF::expandCapacity): Factored out this helper function to simplify
2095         some code that was duplicated in four places.
2096
2097         (WTF::StringBuilder::appendUninitializedSlow):
2098         (WTF::StringBuilder::append): Use expandCapacity(). One of the cases
2099         was not doing anything special, and so was O(N^2).
2100
2101         Also, always call expandCapacity() it in a standard way, calling
2102         capacity() first, so it's easy to tell at a glance that you got it right.
2103
2104 2013-07-02  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2105
2106         Avoid code duplication inside String::append()
2107         https://bugs.webkit.org/show_bug.cgi?id=118290
2108
2109         Reviewed by Anders Carlsson.
2110
2111         The implementation of 'append(UChar)' had been repeated inside 'append(LChar)',
2112         this duplication is obviated now.
2113
2114         * wtf/text/WTFString.cpp:
2115         (WTF::String::appendInternal):
2116         (WTF::String::append):
2117         * wtf/text/WTFString.h:
2118
2119 2013-06-28  Anders Carlsson  <andersca@apple.com>
2120
2121         Remove String::deprecatedCharactersWithNullTermination() and related code
2122         https://bugs.webkit.org/show_bug.cgi?id=118211
2123
2124         Reviewed by Benjamin Poulain.
2125
2126         Remove String::deprecatedCharactersWithNullTermination, StringImpl::createWithTerminatingNullCharacter
2127         and the s_hashFlagHasTerminatingNullCharacter flag. We no longer care about whether strings have a
2128         terminating null character.
2129
2130         * wtf/text/StringImpl.cpp:
2131         (WTF::StringImpl::createFromLiteral):
2132         (WTF::StringImpl::createWithoutCopying):
2133         (WTF::StringImpl::getData16SlowCase):
2134         (WTF::StringImpl::sizeInBytes):
2135         * wtf/text/StringImpl.h:
2136         (WTF::StringImpl::StringImpl):
2137         (WTF::StringImpl::createFromLiteral):
2138         (WTF::StringImpl::isolatedCopy):
2139         * wtf/text/WTFString.cpp:
2140         * wtf/text/WTFString.h:
2141
2142 2013-06-27  Anders Carlsson  <andersca@apple.com>
2143
2144         Add a new String::charactersWithNullTermination() function that returns a vector
2145         https://bugs.webkit.org/show_bug.cgi?id=118155
2146
2147         Reviewed by Andreas Kling.
2148
2149         This new String::charactersWithNullTermination() function returns a new Vector<UChar>
2150         and does not modify the underlying string data.
2151
2152         * wtf/text/WTFString.cpp:
2153         (WTF::String::charactersWithNullTermination):
2154         * wtf/text/WTFString.h:
2155
2156 2013-06-26  Anders Carlsson  <andersca@apple.com>
2157
2158         Deprecate StringImpl::charactersWithNullTermination
2159         https://bugs.webkit.org/show_bug.cgi?id=118108
2160
2161         Reviewed by Beth Dakin.
2162
2163         The optimization in String and StringImpl to keep track of whether a string
2164         has a null terminator isn't worth it; in most cases we call charactersWithNullTermination() on
2165         temporary strings which ends up copying strings anyway.
2166         
2167         A better solution is to have a charactersWithNullTermination() function that returns a Vector<UChar>,
2168         which is similar to what we have for String::utf8() and String::ascii(). This will be done in a follow-up patch.
2169
2170         * wtf/text/WTFString.cpp:
2171         (WTF::String::deprecatedCharactersWithNullTermination):
2172         * wtf/text/WTFString.h:
2173
2174 2013-06-26  Anders Carlsson  <andersca@apple.com>
2175
2176         Add JSStringCreateWithCharactersNoCopy SPI
2177         https://bugs.webkit.org/show_bug.cgi?id=118074
2178         <rdar://problem/14279905>
2179
2180         Reviewed by Geoffrey Garen.
2181
2182         * wtf/text/StringImpl.cpp:
2183         (WTF::StringImpl::createFromLiteral):
2184         Use the new ConstructWithoutCopying constructor, passing DoesHaveTerminatingNullCharacter to it.
2185         Change the other createFromLiteral overload to just call the first.
2186
2187         (WTF::StringImpl::createWithoutCopying):
2188         Add helper functions for creating strings that shouldn't copy their underlying data.
2189
2190         * wtf/text/StringImpl.h:
2191         (WTF::StringImpl::StringImpl):
2192         Rename the ConstructFromLiteralTag constructor enum to ConstructWithoutCopyingTag. Change the constructor
2193         to take an enum that states whether the string has a terminating null character or not.
2194
2195         (WTF::StringImpl::createFromLiteral):
2196         Call createWithoutCopying.
2197
2198         (WTF::StringImpl::requiresCopy):
2199         Rename this from isASCIILiteral() and make it more generic so it can handle 16-bit strings as well.
2200
2201         (WTF::StringImpl::isolatedCopy):
2202         If this string doesn't have to be copied, just create a new StringImpl object that references the current data.
2203
2204 2013-06-26  Jer Noble  <jer.noble@apple.com>
2205
2206         Potential use-after-free after neutering AudioBuffer's underlying ArrayBuffer.
2207         https://bugs.webkit.org/show_bug.cgi?id=118040
2208
2209         Reviewed by Filip Pizlo.
2210
2211         Add support for 'unneuterable' ArrayBufferViews. Views marked as such will have their underlying
2212         ArrayBuffer objects copied rather than transferred to a new view.
2213
2214         * wtf/ArrayBuffer.cpp:
2215         (WTF::ArrayBuffer::transfer): Check whether the associated views are neuterable, and if not
2216                 clone the ArrayBuffer rather than transferring it.
2217         * wtf/ArrayBuffer.h:
2218         (WTF::ArrayBufferContents::copyTo): Added. Utility function.
2219         * wtf/ArrayBufferView.cpp:
2220         (WTF::ArrayBufferView::ArrayBufferView):
2221         (WTF::ArrayBufferView::neuter):
2222         * wtf/ArrayBufferView.h:
2223         (WTF::ArrayBufferView::setNeuterable):
2224         (WTF::ArrayBufferView::isNeuterable):
2225
2226 2013-06-26  Brent Fulgham  <bfulgham@apple.com>
2227
2228         [Windows] Enable CaptionUserPreferenceMediaAF on Windows.
2229         https://bugs.webkit.org/show_bug.cgi?id=118076
2230
2231         Reviewed by Eric Carlson.
2232
2233         * wtf/Platform.h: Enable Media Accessibility Framework in Windows build environments
2234           that support it.
2235
2236 2013-06-24  Roger Fong  <roger_fong@apple.com>
2237
2238         Unreviewed. AppleWin build fix, followup to r151915.
2239
2240         * WTF.vcxproj/WTFProduction.props:
2241
2242 2013-06-24  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2243
2244         HashMap: reverse the order of the template arguments at alternate 'find', 'contains' and 'add' methods
2245         https://bugs.webkit.org/show_bug.cgi?id=117911
2246
2247         Reviewed by Anders Carlsson.
2248
2249         The order of the template arguments at HashMap alternate 'find', 'contains' and
2250         'add' methods is reversed so that callers can just pass the translator
2251         and let the compiler deduce input argument type.
2252
2253         Another rational is consistency with HashSet class.
2254
2255         * wtf/HashMap.h:
2256
2257 2013-06-24  peavo@outlook.com  <peavo@outlook.com>
2258
2259         [WinCairo] WTF.dll is linking with CoreFoundation.lib in VS2010.
2260         https://bugs.webkit.org/show_bug.cgi?id=117294
2261
2262         Reviewed by Brent Fulgham.
2263
2264         WinCairo build should not use CoreFoundation.
2265
2266         * WTF.vcxproj/WTFCFLite.props: Added.
2267         * WTF.vcxproj/WTFCommon.props: Remove CoreFoundation.lib from depencency list.
2268         * WTF.vcxproj/WTFCoreFoundation.props: Added.
2269         * WTF.vcxproj/WTFDebug.props: Import WTFCoreFoundation.props for WinApple.
2270         * WTF.vcxproj/WTFDebugWinCairo.props: Import WTFCFLite.props for WinCairo.
2271         * WTF.vcxproj/WTFRelease.props: Import WTFCoreFoundation.props for WinApple.
2272         * WTF.vcxproj/WTFReleaseWinCairo.props: Import WTFCFLite.props for WinCairo.
2273
2274 2013-06-17  Darin Adler  <darin@apple.com>
2275
2276         Sort all the Xcode project files
2277         https://bugs.webkit.org/show_bug.cgi?id=117696
2278
2279         Reviewed by Anders Carlsson.
2280
2281         * WTF.xcodeproj/project.pbxproj: Ran the sort-Xcode-project-file script.
2282
2283 2013-06-20  Sergio Correia  <sergio.correia@openbossa.org>
2284
2285         [WK2] Looping for EINTR on close() is incorrect for Linux, at least
2286         https://bugs.webkit.org/show_bug.cgi?id=117266
2287
2288         Reviewed by Darin Adler.
2289
2290         Added file UniStdExtras with a closeWithRetry() function that works around
2291         the EINTR behavior on Linux during a close() call: it closes the descriptor
2292         unconditionally even when the call is interrupted.
2293
2294         * wtf/UniStdExtras.h: Added.
2295         (WTF::closeWithRetry): Wrapper around POSIX close() that handles EINTR
2296         correctly.
2297
2298 2013-06-20  Mark Lam  <mark.lam@apple.com>
2299
2300         Refine the StackBounds computation for Windows.
2301         https://bugs.webkit.org/show_bug.cgi?id=117854.
2302
2303         Reviewed by Brent Fulgham.
2304
2305         * wtf/StackBounds.cpp:
2306         (WTF::StackBounds::initialize):
2307
2308 2013-06-20  Mark Lam  <mark.lam@apple.com>
2309
2310         [Windows] Undoing r150621 to roll r150600 back in as the jsc test
2311         failures have been fixed in r151808.
2312         https://bugs.webkit.org/show_bug.cgi?id=116661.
2313
2314         Reviewed by Brent Fulgham.
2315
2316         * wtf/StackBounds.cpp:
2317         (WTF::StackBounds::initialize):
2318
2319 2013-06-20  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2320
2321         HashSet: reverse the order of the template arguments at alternate 'find', 'contains' and 'add' methods
2322         https://bugs.webkit.org/show_bug.cgi?id=117830
2323
2324         Reviewed by Anders Carlsson.
2325
2326         The order of the template arguments at HashSet alternate 'find', 'contains' and
2327         'add' methods is reversed so that callers can just pass the translator
2328         and let the compiler deduce input argument type.
2329
2330         * wtf/HashSet.h:
2331         * wtf/text/AtomicString.cpp:
2332         (WTF::addToStringTable):
2333         (WTF::findString):
2334
2335 2013-06-20  Roger Fong  <roger_fong@apple.com>
2336
2337         Make Windows makefile copy build output to a different folder.
2338         <rdar://problem/14219184>.
2339
2340         * WTF.vcxproj/WTF.make:
2341
2342 2013-06-19  Geoffrey Garen  <ggaren@apple.com>
2343
2344         Remove the SegmentedVector inline segment to shrink CodeBlock by 6X
2345         https://bugs.webkit.org/show_bug.cgi?id=117808
2346
2347         Reviewed by Oliver Hunt.
2348
2349         SegmentedVector allocation isn't super hot, but we do tend to have many
2350         live SegmentedVectors at runtime, particularly in CodeBlocks, so the
2351         right tradeoff is to allocate segments out-of-line as needed.
2352
2353         This reduces startup memory usage @ google.com by about 6MB.
2354
2355         No regression on SunSpider.
2356
2357         * wtf/SegmentedVector.h:
2358         (WTF::SegmentedVector::SegmentedVector):
2359         (WTF::SegmentedVector::at):
2360         (WTF::SegmentedVector::append):
2361         (WTF::SegmentedVector::removeLast):
2362         (WTF::SegmentedVector::clear):
2363         (WTF::SegmentedVector::deleteAllSegments): No more inline segment.
2364
2365         (WTF::SegmentedVector::ensureSegmentsFor): This code used to assume
2366         that there was always a 0 segment, so the math would underflow if there
2367         were no 0 segment. I udpated the math to account for having no segments.
2368
2369 2013-06-19  David Kilzer  <ddkilzer@apple.com>
2370
2371         BUILD FIX (r151663): Fix build for iOS WebKit
2372
2373         * wtf/text/AtomicStringTable.cpp: Include MainThread.h.
2374         (WTF::AtomicStringTable::create): Use AtomicStringTable::destroy
2375         instead of non-existent destroyAtomicStringTable function.
2376
2377 2013-06-18  Roger Fong  <roger_fong@apple.com>
2378
2379         Replace tools32 folder with tools and update WebKit Windows solution accordingly.
2380         <rdar://problem/14118143>.
2381
2382         Rubberstamped by Brent Fulgham.
2383
2384         * WTF.vcxproj/WTF.vcxproj:
2385         * WTF.vcxproj/WTFDebug.props:
2386         * WTF.vcxproj/WTFDebugWinCairo.props:
2387         * WTF.vcxproj/WTFGenerated.vcxproj:
2388         * WTF.vcxproj/WTFGeneratedDebug.props:
2389         * WTF.vcxproj/WTFGeneratedProduction.props:
2390         * WTF.vcxproj/WTFGeneratedRelease.props:
2391         * WTF.vcxproj/WTFProduction.props:
2392         * WTF.vcxproj/WTFRelease.props:
2393         * WTF.vcxproj/WTFReleaseWinCairo.props:
2394         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
2395         (react_to_vsprops_changes):
2396
2397 2013-06-18  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
2398
2399         PackedIntVector: check template arguments at compile time
2400         https://bugs.webkit.org/show_bug.cgi?id=117737
2401
2402         Use 'COMPILE_ASSERT' instead of 'ASSERT' in PackedIntVector class
2403         constructor.
2404
2405         Reviewed by Sam Weinig.
2406
2407         * wtf/PackedIntVector.h:
2408         (WTF::PackedIntVector::PackedIntVector):
2409
2410 2013-06-17  Andy Estes  <aestes@apple.com>
2411
2412         A static_assert() in RetainPtr.h sometimes causes the build to fail.
2413
2414         Wrap the first argument to a static_assert() in parentheses since it
2415         contains a comma, which sometimes tricks the preprocessor into thinking
2416         the macro is being passed three arguments rather than two.
2417
2418         Reviewed by Brian Weinstein.
2419
2420         * wtf/RetainPtr.h:
2421         (WTF::RetainPtr::RetainPtr):
2422
2423 2013-06-17  Zan Dobersek  <zdobersek@igalia.com>
2424
2425         REGRESSION (r149184): Build errors in RefPtr.h when building with Clang, C++98 standard
2426         https://bugs.webkit.org/show_bug.cgi?id=116352
2427
2428         Reviewed by Anders Carlsson.
2429
2430         Use the __has_feature macro instead of the __has_extension one when detecting what features the Clang compiler
2431         that's being used is capable to provide. With the project moving onto using C++11 throughout its components,
2432         there currently exist cases where C++11-specific functionality (for instance std::move) is used despite being
2433         guarded by compiler-specific feature guards that still get enabled even when compiling in C++98 with Clang.
2434         The problematic features are enabled because they're available as C++98 language extensions by Clang.
2435
2436         Using __has_feature instead enables the feature guard only if the tested feature is actually standardized in
2437         the currently used language standard.
2438
2439         * wtf/Compiler.h:
2440
2441 2013-06-17  Ryosuke Niwa  <rniwa@webkit.org>
2442
2443         Initialize AtomicStringTable in WTFThreadData's constructor
2444         https://bugs.webkit.org/show_bug.cgi?id=117671
2445
2446         Reviewed by Geoffrey Garen.
2447
2448         Extracted AtomicStringTable from AtomicString.cpp into AtomicStringTable.h/cpp
2449         and made WTFThreadDada::WTFThreadData create the atomic string table for the thread.
2450
2451         This eliminates a branch from stringTable() in AtomicString.cpp.
2452
2453         * GNUmakefile.list.am:
2454         * WTF.pro:
2455         * WTF.vcxproj/WTF.vcxproj:
2456         * WTF.vcxproj/WTF.vcxproj.filters:
2457         * WTF.xcodeproj/project.pbxproj:
2458         * wtf/CMakeLists.txt:
2459         * wtf/WTFThreadData.cpp:
2460         (WTF::WTFThreadData::WTFThreadData):
2461         * wtf/text/AtomicString.cpp:
2462         (WTF::stringTable):
2463         * wtf/text/AtomicStringTable.cpp: Added.
2464         (WTF::AtomicStringTable::create):
2465         (WTF::AtomicStringTable::destroy):
2466         * wtf/text/AtomicStringTable.h: Added.
2467         (WTF::AtomicStringTable::table):
2468
2469 2013-06-17  Roger Fong  <roger_fong@apple.com>
2470
2471         Modify Windows makefiles to copy some bin output into Program Files.
2472         https://bugs.webkit.org/show_bug.cgi?id=117714.
2473         <rdar://problem/14179054>
2474
2475         Reviewed by Brent Fulgham.
2476
2477         * WTF.vcxproj/WTF.make:
2478
2479 2013-06-17  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
2480
2481         Unreviewed, rolling out r151632.
2482         http://trac.webkit.org/changeset/151632
2483         https://bugs.webkit.org/show_bug.cgi?id=117585
2484
2485         Debug build error ASSERT(WTF_USE_GRAMMAR_CHECKING) for non MAC
2486         platforms
2487
2488         * wtf/Platform.h:
2489
2490 2013-06-14  Grzegorz Czajkowski  <g.czajkowski@samsung.com>
2491
2492         Context menu grammar checking items are available when GRAMMAR_CHECKING macro is off
2493         https://bugs.webkit.org/show_bug.cgi?id=117585
2494
2495         Reviewed by Anders Carlsson.
2496
2497         Enable GRAMMAR_CHECKING for WebKit ports that use/implement it.
2498
2499         * wtf/Platform.h:
2500
2501 2013-06-14  Patrick Gansterer  <paroga@webkit.org>
2502
2503         Introduce USE(WINGDI) for the Windows port
2504         https://bugs.webkit.org/show_bug.cgi?id=116138
2505
2506         Reviewed by Ryosuke Niwa.
2507
2508         Using USE(WINGDI) instead of OS(WINCE) will allow us to
2509         compile the GDI based Windows port on WinNT too.
2510
2511         * wtf/Platform.h:
2512
2513 2013-06-13  Ryosuke Niwa  <rniwa@webkit.org>
2514
2515         Remove LiteralIdentifierTable
2516         https://bugs.webkit.org/show_bug.cgi?id=117613
2517
2518         Reviewed by Geoffrey Garen.
2519
2520         Removed LiteralIdentifierTable since it doesn't seem to have any perf. impact now.
2521
2522         * wtf/WTFThreadData.h:
2523
2524 2013-06-13  Brent Fulgham  <bfulgham@apple.com>
2525
2526         [WinCairo] Correct FeatureDefines.h Default for ENABLE_VIEW_MODE_CSS_MEDIA
2527         https://bugs.webkit.org/show_bug.cgi?id=114396
2528
2529         Reviewed by Dean Jackson.
2530
2531         * wtf/FeatureDefines.h: The WinCairo port does not (currently) support Media elements,
2532         so make sure we do not enable this feature by default for that port.
2533
2534 2013-06-13  Brent Fulgham  <bfulgham@apple.com>
2535
2536         [Windows] Unreviewed gardening.
2537
2538         * WTF.vcxproj/WTF.vcxproj: Add FeatureDefines.h to visible files.
2539         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
2540
2541 2013-06-13  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2542
2543         Optimize String::fromUTF8 for ASCII
2544         https://bugs.webkit.org/show_bug.cgi?id=117586
2545
2546         Reviewed by Brent Fulgham.
2547
2548         From Blink r152243 by <abarth@chromium.org>
2549
2550         Current String::fromUTF8() implementation converts 8 bit ASCII character into 16 bit.
2551         Instead of always trying to convert into a 16 bit buffer, we can add a call to charactersAreAllASCII.
2552         In the common case when characters are ASCII, we directly copy it into an 8 bit string buffer.
2553
2554         * wtf/text/WTFString.cpp:
2555         (WTF::String::fromUTF8):
2556
2557 2013-06-12  Brent Fulgham  <bfulgham@apple.com>
2558
2559         [Windows] Activate supported C++11 Features for VS2010
2560         https://bugs.webkit.org/show_bug.cgi?id=117569
2561
2562         Reviewed by Anders Carlsson.
2563
2564         * wtf/Compiler.h: Turn on rvalue references and static_assert
2565         when compiling with VS2010 (or newer)
2566
2567 2013-06-07  Roger Fong  <roger_fong@apple.com>
2568
2569         Unreviewed. Makefile fix. Copy WTF.dll over as well.
2570
2571         * WTF.vcxproj/WTF.make:
2572
2573 2013-06-07  Commit Queue  <commit-queue@webkit.org>
2574
2575         Unreviewed, rolling out r151318.
2576         http://trac.webkit.org/changeset/151318
2577         https://bugs.webkit.org/show_bug.cgi?id=117356
2578
2579         Broke Windows Release Build (Requested by bfulgham on
2580         #webkit).
2581
2582         * WTF.vcxproj/WTF.vcxproj:
2583         * WTF.vcxproj/WTFCommon.props:
2584         * WTF.vcxproj/WTFCoreFoundation.props: Removed.
2585         * WTF.vcxproj/WTFDebug.props:
2586         * WTF.vcxproj/WTFRelease.props:
2587
2588 2013-06-07  peavo@outlook.com  <peavo@outlook.com>
2589
2590         [WinCairo] WTF.dll is linking with CoreFoundation.lib in VS2010.
2591         https://bugs.webkit.org/show_bug.cgi?id=117294
2592
2593         Reviewed by Darin Adler.
2594
2595         WinCairo build should not use CoreFoundation.
2596
2597         * WTF.vcxproj/WTF.vcxproj: Exclude unneeded file from WinCairo build.
2598         * WTF.vcxproj/WTFCommon.props: Removed CoreFoundation.lib from common props.
2599         * WTF.vcxproj/WTFCoreFoundation.props: Added.
2600         * WTF.vcxproj/WTFDebug.props: Inherit from WTFCoreFoundations.props.
2601         * WTF.vcxproj/WTFRelease.props: Inherit from WTFCoreFoundations.props.
2602
2603 2013-06-06  Roger Fong  <roger_fong@apple.com>
2604
2605         Unreviewed. Fix typo with winmm linker input.
2606
2607         * WTF.vcxproj/WTFCommon.props:
2608
2609 2013-06-05  Benjamin Poulain  <bpoulain@apple.com>
2610
2611         WebSQL forces 16-bit strings
2612         https://bugs.webkit.org/show_bug.cgi?id=116935
2613
2614         Reviewed by Darin Adler.
2615
2616         Merge chromium 49c9632ac135f6f06e623a7a81d9da1f6bb7196f.
2617         https://chromium.googlesource.com/chromium/blink/+/49c9632ac135f6f06e623a7a81d9da1f6bb7196f
2618
2619         * wtf/text/StringImpl.cpp:
2620         (WTF::StringImpl::create8BitIfPossible):
2621         * wtf/text/StringImpl.h:
2622         (WTF::lengthOfNullTerminatedString):
2623         * wtf/text/WTFString.cpp:
2624         (WTF::String::String):
2625
2626 2013-06-03  Roger Fong  <roger_fong@apple.com>
2627
2628         Nuke VS2005 files from the tree.
2629         <rdar://problem/14042021>.
2630
2631         Rubberstamped by Brent Fulgham.
2632
2633         * WTF.vcproj: Removed.
2634         * WTF.vcproj/WTF.make: Removed.
2635         * WTF.vcproj/WTF.sln: Removed.
2636         * WTF.vcproj/WTF.vcproj: Removed.
2637         * WTF.vcproj/WTFCommon.vsprops: Removed.
2638         * WTF.vcproj/WTFDebug.vsprops: Removed.
2639         * WTF.vcproj/WTFDebugAll.vsprops: Removed.
2640         * WTF.vcproj/WTFDebugCairoCFLite.vsprops: Removed.
2641         * WTF.vcproj/WTFGenerated.make: Removed.
2642         * WTF.vcproj/WTFGenerated.vcproj: Removed.
2643         * WTF.vcproj/WTFGeneratedCommon.vsprops: Removed.
2644         * WTF.vcproj/WTFGeneratedDebug.vsprops: Removed.
2645         * WTF.vcproj/WTFGeneratedDebugAll.vsprops: Removed.
2646         * WTF.vcproj/WTFGeneratedDebugCairoCFLite.vsprops: Removed.
2647         * WTF.vcproj/WTFGeneratedProduction.vsprops: Removed.
2648         * WTF.vcproj/WTFGeneratedRelease.vsprops: Removed.
2649         * WTF.vcproj/WTFGeneratedReleaseCairoCFLite.vsprops: Removed.
2650         * WTF.vcproj/WTFPostBuild.cmd: Removed.
2651         * WTF.vcproj/WTFPreBuild.cmd: Removed.
2652         * WTF.vcproj/WTFProduction.vsprops: Removed.
2653         * WTF.vcproj/WTFRelease.vsprops: Removed.
2654         * WTF.vcproj/WTFReleaseCairoCFLite.vsprops: Removed.
2655         * WTF.vcproj/build-generated-files.sh: Removed.
2656         * WTF.vcproj/copy-files.cmd: Removed.
2657         * WTF.vcproj/work-around-vs-dependency-tracking-bugs.py: Removed.
2658
2659 2013-06-03  Patrick Gansterer  <paroga@webkit.org>
2660
2661         Unreviewed WinCE build fix after r150833.
2662
2663         * wtf/DateMath.cpp:
2664         (WTF::calculateDSTOffset):
2665
2666 2013-06-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2667
2668         [WTF] Add OwnArrayPtr vectortraits template 
2669         https://bugs.webkit.org/show_bug.cgi?id=117131
2670
2671         Reviewed by Darin Adler.
2672
2673         To support Vector<OwnArrayPtr<P>>, which will be used by EFL port.
2674
2675         * wtf/VectorTraits.h:
2676
2677 2013-05-31  Rafael Brandao  <rafael.lobo@openbossa.org>
2678
2679         Fix double hash lookup in PageMapMemoryUsageRecorder::visit
2680         https://bugs.webkit.org/show_bug.cgi?id=117071
2681
2682         Reviewed by Andreas Kling.
2683
2684         * wtf/FastMalloc.cpp:
2685         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2686
2687 2013-05-31  Brent Fulgham  <bfulgham@apple.com>
2688
2689         [Windows] Speculative build fix for pre-VS2010 compilers
2690
2691         * wtf/Platform.h: Only treat WTF as DLL for VS2010 builds
2692
2693 2013-05-31  Zan Dobersek  <zdobersek@igalia.com>
2694
2695         Move MD5, SHA1 unit tests from WTF to TestWebKitAPI
2696         https://bugs.webkit.org/show_bug.cgi?id=116445
2697
2698         Reviewed by Benjamin Poulain.
2699
2700         Remove the MD5 and SHA1 test cases from the WTF code. The same cases are now built and run under TestWebKitAPI.
2701
2702         * wtf/MD5.cpp:
2703         (WTF::MD5::MD5):
2704         * wtf/SHA1.cpp:
2705         (WTF::SHA1::SHA1):
2706
2707 2013-05-30  Roger Fong  <roger_fong@apple.com>
2708
2709         Another unreviewed build fix for Mac.
2710
2711         * wtf/text/WTFString.h:
2712         (WTF::String::fromUTF8WithLatin1Fallback):
2713
2714 2013-05-30  Roger Fong  <roger_fong@apple.com>
2715
2716         Unreviewed build fix for Mac.
2717
2718         * wtf/OSAllocator.h:
2719         * wtf/text/WTFString.h:
2720         (WTF::String::fromUTF8):
2721
2722 2013-05-30  Roger Fong  <roger_fong@apple.com>
2723
2724         Get rid of JavaScript exports file on AppleWin port.
2725         https://bugs.webkit.org/show_bug.cgi?id=117050.
2726
2727         Reviewed by Darin Adler.
2728
2729         This requires turning WTF into a shared library and adding the WTF_EXPORT_PRIVATE to some methods where it was missed.
2730
2731         * WTF.vcxproj/WTF.vcxproj:
2732         * WTF.vcxproj/WTFCommon.props:
2733         * wtf/DateMath.h:
2734         * wtf/ExportMacros.h:
2735         * wtf/FilePrintStream.h:
2736         * wtf/OSAllocator.h:
2737         * wtf/PageAllocationAligned.h:
2738         * wtf/Platform.h:
2739         * wtf/PrintStream.h:
2740         * wtf/StackBounds.h:
2741         * wtf/StringPrintStream.h:
2742         * wtf/ThreadSpecific.h:
2743         * wtf/WTFThreadData.h:
2744         * wtf/dtoa/cached-powers.h:
2745         * wtf/dtoa/double-conversion.h:
2746         * wtf/text/WTFString.h:
2747         * wtf/unicode/Collator.h:
2748         * wtf/unicode/UTF8.h:
2749
2750 2013-05-29  Kent Tamura  <tkent@chromium.org>
2751
2752         Remove ENABLE_INPUT_MULTIPLE_FIELDS_UI.
2753         https://bugs.webkit.org/show_bug.cgi?id=116796
2754
2755         Reviewed by Ryosuke Niwa.
2756
2757         * wtf/FeatureDefines.h:
2758
2759 2013-05-27  Gavin Barraclough  <barraclough@apple.com>
2760
2761         String(new Date(2010,10,1)) is wrong in KRAT, YAKT
2762         https://bugs.webkit.org/show_bug.cgi?id=106750
2763
2764         Reviewed by Darin Adler.
2765
2766         First part of a fix, simplfy date handling code, instead of operating separately
2767         on the UTC-standard and standard-DST offsets, just generate a combined UTC-local
2768         offset (this is what we actually need, and what the OS gives us).
2769
2770         * wtf/DateMath.cpp:
2771         (WTF::calculateUTCOffset):
2772         (WTF::calculateDSTOffset):
2773             - made static, now not called from outside of this file.
2774         (WTF::calculateLocalTimeOffset):
2775             - This combines the 2038 related adjustment from calculateDSTOffset with the
2776               maxUnixTime adjustment from calculateDSTOffsetSimple. Then, if HAVE(TM_GMTOFF)
2777               just call getLocalTime, if not use calculateUTCOffset/calculateDSTOffset.
2778         (WTF::parseDateFromNullTerminatedCharacters):
2779             - call calculateLocalTimeOffset instead of calculateUTCOffset/calculateDSTOffset
2780         * wtf/DateMath.h:
2781         (WTF::LocalTimeOffset::LocalTimeOffset):
2782         (LocalTimeOffset):
2783         (WTF::LocalTimeOffset::operator==):
2784             - new struct type, a tuple of UTC-local offset & isDST flag.
2785             - replaced calculateUTCOffset/calculateDSTOffset with calculateLocalTimeOffset
2786         * wtf/GregorianDateTime.cpp:
2787         (WTF::GregorianDateTime::setToCurrentLocalTime):
2788             - call calculateLocalTimeOffset instead of calculateUTCOffset/calculateDSTOffset
2789
2790 2013-05-27  Patrick Gansterer  <paroga@webkit.org>
2791
2792         Use correct stack size on Solaris and OpenBSD
2793         https://bugs.webkit.org/show_bug.cgi?id=114978
2794
2795         Recommit after wrong rollout in r150621.
2796
2797         * wtf/StackBounds.cpp:
2798         (WTF):
2799         (WTF::StackBounds::initialize):
2800
2801 2013-05-27  Patrick Gansterer  <paroga@webkit.org>
2802
2803         Use ICU_INCLUDE_DIRS in BlackBerry CMake files
2804         https://bugs.webkit.org/show_bug.cgi?id=116210
2805
2806         Reviewed by Rob Buis.
2807
2808         Set and use the ICU_INCLUDE_DIRS variable to avoid
2809         duplicated adding of the ICU include directory.
2810
2811         * wtf/PlatformBlackBerry.cmake:
2812
2813 2013-05-27  Ádám Kallai  <kadam@inf.u-szeged.hu>
2814
2815         [Qt] Enable parallel GC. Probably it has been fixed in r131791.
2816         https://bugs.webkit.org/show_bug.cgi?id=90957
2817
2818         Reviewed by Csaba Osztrogonác.
2819
2820         * wtf/Platform.h:
2821
2822 2013-05-26  Patrick Gansterer  <paroga@webkit.org>
2823
2824         [WINCE] Add wtf_bsearch()
2825         https://bugs.webkit.org/show_bug.cgi?id=116528
2826
2827         Reviewed by Darin Adler.
2828
2829         r149833 introduced usage of ::bsearch(), which does not exist on Windwos CE.
2830         Add our own implementation of this function as wtf_bsearch and define
2831         bsearch as wtf_bsearch to fix compilation on Windwos CE.
2832
2833         * wtf/StdLibExtras.h:
2834         (wtf_bsearch):
2835
2836 2013-05-26  Kent Tamura  <tkent@chromium.org>
2837
2838         Remove ENABLE_CALENDAR_PICKER
2839         https://bugs.webkit.org/show_bug.cgi?id=116795
2840
2841         Reviewed by Ryosuke Niwa.
2842
2843         * wtf/FeatureDefines.h:
2844
2845 2013-05-24  Benjamin Poulain  <bpoulain@apple.com>
2846
2847         Inline TCMalloc_Central_FreeList's RemoveRange and FetchFromSpansSafe
2848         https://bugs.webkit.org/show_bug.cgi?id=116700
2849
2850         Reviewed by Darin Adler.
2851
2852         The two functions only have one call site each.
2853
2854         * wtf/FastMalloc.cpp:
2855         (WTF::TCMalloc_Central_FreeList::RemoveRange):
2856         (WTF::TCMalloc_Central_FreeList::FetchFromSpansSafe):
2857
2858 2013-05-24  Filip Pizlo  <fpizlo@apple.com>
2859
2860         We broke !(0/0)
2861         https://bugs.webkit.org/show_bug.cgi?id=116736
2862
2863         Reviewed by Gavin Barraclough.
2864
2865         * wtf/MathExtras.h:
2866         (isNotZeroAndOrdered):
2867         (isZeroOrUnordered):
2868
2869 2013-05-24  Anders Carlsson  <andersca@apple.com>
2870
2871         Remove PagePopup code
2872         https://bugs.webkit.org/show_bug.cgi?id=116732
2873
2874         Reviewed by Andreas Kling.
2875
2876         Remove ENABLE_PAGE_POPUP.
2877
2878         * wtf/FeatureDefines.h:
2879
2880 2013-05-25  Jer Noble  <jer.noble@apple.com>
2881
2882         Mac: Set the default audio buffer size to a large value for <video> elements.
2883         https://bugs.webkit.org/show_bug.cgi?id=116342
2884
2885         Reviewed by Eric Carlson.
2886
2887         * wtf/Platform.h: Add a WTF_USE_AUDIO_SESSION setting.
2888
2889 2013-05-23  Brent Fulgham  <bfulgham@apple.com>
2890
2891         [Windows] Rolling back r150600 as it breaks the VS2010 builds.
2892
2893         * wtf/StackBounds.cpp: Rollback.
2894
2895 2013-05-23 Patrick Gansterer <paroga@webkit.org>
2896
2897         Use correct stack size on Solaris and OpenBSD
2898         https://bugs.webkit.org/show_bug.cgi?id=114978
2899
2900         Reviewed by Oliver Hunt.
2901
2902         Original patch by David Hill <david@wmol.com>.
2903
2904         Use stack_t.ss_size for getting the size of the stack.
2905
2906         * wtf/Platform.h:
2907         * wtf/StackBounds.cpp:
2908         (WTF):
2909         (WTF::StackBounds::initialize):
2910
2911 2013-05-23  Patrick Gansterer  <paroga@webkit.org>
2912
2913         [WIN] Implement correct detection of stack size
2914         https://bugs.webkit.org/show_bug.cgi?id=116661
2915
2916         Reviewed by Oliver Hunt.
2917
2918         * wtf/StackBounds.cpp:
2919         (WTF):
2920         (WTF::StackBounds::initialize):
2921
2922 2013-05-22  Dean Jackson  <dino@apple.com>
2923
2924         Rolling out r150555. It borked about 30 media tests.
2925
2926         * wtf/Platform.h:
2927
2928 2013-05-21  Anders Carlsson  <andersca@apple.com>
2929
2930         Build fix.
2931
2932         * wtf/NeverDestroyed.h:
2933         (NeverDestroyed):
2934
2935 2013-05-20  Anders Carlsson  <andersca@apple.com>
2936
2937         Add WTF::NeverDestroyed and start using it in WTF
2938         https://bugs.webkit.org/show_bug.cgi?id=116472
2939
2940         Reviewed by Benjamin Poulain.
2941
2942         NeverDestroyed is a class template that can be used for singletons and other objects that we never
2943         want to destroy. It's intended as a replacement for WTF_STATIC_LOCAL with the advantage that it doesn't
2944         fragment the heap.
2945
2946         * GNUmakefile.list.am:
2947         * WTF.vcproj/WTF.vcproj:
2948         * WTF.vcxproj/WTF.vcxproj:
2949         * WTF.vcxproj/WTF.vcxproj.filters:
2950         * WTF.xcodeproj/project.pbxproj:
2951         Add NeverDestroyed.h
2952
2953         * wtf/Compiler.h:
2954         Add a helper macro, WTF_DELETED_FUNCTION.
2955
2956         * wtf/CryptographicallyRandomNumber.cpp:
2957         Use NeverDestroyed.
2958
2959         * wtf/NeverDestroyed.h: Added.
2960
2961         * wtf/Noncopyable.h:
2962         Use WTF_DELETED_FUNCTION.
2963
2964         * wtf/text/WTFString.cpp:
2965         (WTF::emptyString):
2966         Use 
2967
2968 2013-05-20  Zan Dobersek  <zdobersek@igalia.com>
2969
2970         Use '__typeof__' keyword to avoid problems when compiling in C++11 standard compliance
2971         https://bugs.webkit.org/show_bug.cgi?id=116447
2972
2973         Reviewed by Darin Adler.
2974
2975         The 'typeof' keyword is a GNU C extension which becomes unavailable when compiling in ANSI or specific standard mode
2976         (such as -std=c++11). The '__typeof__' keyword should be used instead as it's available in all modes both under GCC and Clang.
2977
2978         * wtf/FastMalloc.cpp:
2979         (WTF): Replace the 'typeof' keyword with '__typeof__'.
2980
2981 2013-05-19  Anders Carlsson  <andersca@apple.com>
2982
2983         Remove link prerendering code
2984         https://bugs.webkit.org/show_bug.cgi?id=116415
2985
2986         Reviewed by Darin Adler.
2987
2988         This code was only used by Chromium and is dead now.
2989
2990         * wtf/FeatureDefines.h:
2991
2992 2013-05-18  Patrick Gansterer  <paroga@webkit.org>
2993
2994         [CMake] Replace *_LIBRARY_NAME with *_OUTPUT_NAME
2995         https://bugs.webkit.org/show_bug.cgi?id=114554
2996
2997         Reviewed by Gyuyoung Kim.
2998
2999         Using variables as target names is very uncommon in CMake.
3000         The usual way to specify the name of the resulting binary
3001         is to set the OUTPUT_NAME target property.
3002
3003         * wtf/CMakeLists.txt:
3004
3005 2013-05-17  Andreas Kling  <akling@apple.com>
3006
3007         Re-align the OS(AIX) macro...
3008         ...in the hopes that the resulting world rebuild will fix failures after r150294.
3009
3010         * wtf/Platform.h:
3011
3012 2013-05-17  Anders Carlsson  <andersca@apple.com>
3013
3014         WKKeyValueStorageManagerGetKeyValueStorageOrigins should get origins from the UI process
3015         https://bugs.webkit.org/show_bug.cgi?id=116346
3016         <rdar://problem/13852829>
3017
3018         Reviewed by Andreas Kling.
3019
3020         Add forward declaration for Function.
3021
3022         * wtf/Forward.h:
3023
3024 2013-05-17  Patrick Gansterer  <paroga@webkit.org>
3025
3026         [CMake] Remove invalid include paths
3027         https://bugs.webkit.org/show_bug.cgi?id=116213
3028
3029         Reviewed by Gyuyoung Kim.
3030
3031         Since "${JAVASCRIPTCORE_DIR}/wtf" does not exist, it is safe
3032         to remove them from the list of include directories.
3033
3034         * wtf/PlatformEfl.cmake:
3035         * wtf/PlatformGTK.cmake:
3036
3037 2013-05-16  Benjamin Poulain  <bpoulain@apple.com>
3038
3039         Add the symbol WTFInvokeCrashHook back for binary compatibility.
3040
3041         Reviewed by Ryosuke Niwa.
3042
3043         * wtf/Assertions.cpp:
3044         * wtf/Assertions.h:
3045
3046 2013-05-16  Seokju Kwon  <seokju.kwon@gmail.com>
3047
3048         [CMAKE] Need to set WTF_LIBRARIES in wtf/CMakeLists.txt
3049         https://bugs.webkit.org/show_bug.cgi?id=116209
3050
3051         Reviewed by Gyuyoung Kim.
3052
3053         * wtf/CMakeLists.txt: Replace list with set.
3054
3055 2013-05-16  Benjamin Poulain  <benjamin@webkit.org>
3056
3057         Crash properly on iOS
3058         https://bugs.webkit.org/show_bug.cgi?id=115782
3059
3060         Reviewed by Darin Adler.
3061
3062         Improve crash handling. <rdar://problem/13842771>
3063
3064         * wtf/Assertions.cpp:
3065         * wtf/Assertions.h:
3066
3067 2013-05-15  Ryuan Choi  <ryuan.choi@samsung.com>
3068
3069         Unreviewed build fix after r150123
3070
3071         * wtf/CMakeLists.txt: 
3072
3073 2013-05-15  Oliver Hunt  <oliver@apple.com>
3074
3075         RefCountedArray needs to use vector initialisers for its backing store
3076         https://bugs.webkit.org/show_bug.cgi?id=116194
3077
3078         Reviewed by Gavin Barraclough.
3079
3080         Use VectorOperations to operate on the backing store
3081
3082         * wtf/RefCountedArray.h:
3083         (WTF::RefCountedArray::RefCountedArray):
3084         (WTF::RefCountedArray::operator=):
3085         (WTF::RefCountedArray::~RefCountedArray):
3086
3087 2013-05-15  Nico Weber  <thakis@chromium.org>
3088
3089         WebKit doesn't support MSVS2003 any more, remove preprocessor checks for older versions.
3090         https://bugs.webkit.org/show_bug.cgi?id=116157
3091
3092         Reviewed by Anders Carlsson.
3093
3094         Also remove a gcc3.2 workaround.
3095
3096         Merges parts of these two commits by the talented Nico Weber:
3097         https://chromium.googlesource.com/chromium/blink/+/3677e2f47348daeff405a40b6f90fbdf0654c2f5
3098         https://chromium.googlesource.com/chromium/blink/+/0fcd96c448dc30be1416dcc15713c53710c1a312
3099
3100         * wtf/Alignment.h:
3101         (WTF):
3102         * wtf/Assertions.h:
3103         * wtf/Atomics.h:
3104         (WTF):
3105         * wtf/Compiler.h:
3106         * wtf/DateMath.cpp:
3107         (WTF::getLocalTime):
3108         * wtf/MathExtras.h:
3109         * wtf/RefCountedLeakCounter.h:
3110         (RefCountedLeakCounter):
3111         * wtf/StaticConstructors.h:
3112
3113 2013-05-15  Patrick Gansterer  <paroga@webkit.org>
3114
3115         Consolidate lists in WTF CMake files
3116         https://bugs.webkit.org/show_bug.cgi?id=116142
3117
3118         Reviewed by Martin Robinson.
3119
3120         Move common files into the CMakeLists.txt to avoid duplicating the list of files.
3121         Also rebase the recently added GTK files to match the other CMake ports, since
3122         the submitted patch was based on an older version of the source tree.
3123
3124         * wtf/CMakeLists.txt:
3125         * wtf/PlatformBlackBerry.cmake:
3126         * wtf/PlatformEfl.cmake:
3127         * wtf/PlatformGTK.cmake:
3128         * wtf/PlatformWinCE.cmake:
3129
3130 2013-05-14  Carlos Garcia Campos  <cgarcia@igalia.com>
3131
3132         Remove WTF_USE_PLATFORM_STRATEGIES
3133         https://bugs.webkit.org/show_bug.cgi?id=114431
3134
3135         Reviewed by Darin Adler.
3136
3137         * wtf/Platform.h:
3138
3139 2013-05-14  Carlos Garcia Campos  <cgarcia@igalia.com>
3140
3141         [BlackBerry] Use requestAnimationFrame for animations
3142         https://bugs.webkit.org/show_bug.cgi?id=115896
3143
3144         Reviewed by Rob Buis.
3145
3146         * wtf/Platform.h: Disable REQUEST_ANIMATION_FRAME_TIMER and
3147         WTF_USE_REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR for BlackBerry
3148         port.
3149
3150 2013-05-14  Carlos Garcia Campos  <cgarcia@igalia.com>
3151
3152         [BlackBerry] Implement platform strategies
3153         https://bugs.webkit.org/show_bug.cgi?id=112162
3154
3155         Reviewed by Rob Buis.
3156
3157         * wtf/Platform.h: Add BlackBerry platform to the list of platforms
3158         using platform strategies.
3159
3160 2013-05-13  Benjamin Poulain  <benjamin@webkit.org>
3161
3162         Improve stringProtoFuncLastIndexOf for the prefix case
3163         https://bugs.webkit.org/show_bug.cgi?id=115952
3164
3165         Reviewed by Geoffrey Garen.
3166
3167         Add an optimized version of StringImpl::startsWith() for JavaScriptCore.
3168
3169         * wtf/text/StringImpl.cpp:
3170         (WTF::StringImpl::startsWith):
3171         * wtf/text/StringImpl.h:
3172         (StringImpl):
3173         (WTF::StringImpl::startsWith):
3174         * wtf/text/WTFString.h:
3175         (WTF::String::startsWith):
3176
3177 2013-05-13  Carlos Garcia Campos  <cgarcia@igalia.com>
3178
3179         Unreviewed. Fix Qt Linux MIPS32R2 build after r149879.
3180
3181         Bring back GLIB_CHECK_VERSION for GBytes since Qt Linux MIPS32R2
3182         depends on glib 2.24.2.
3183
3184         * wtf/gobject/GRefPtr.cpp:
3185         (_GBytes):
3186         (WTF::refGPtr):
3187         (WTF::derefGPtr):
3188
3189 2013-05-13  Anders Carlsson  <andersca@apple.com>
3190
3191         Remove UnusedParam.h
3192         https://bugs.webkit.org/show_bug.cgi?id=116029
3193
3194         Reviewed by Andreas Kling.
3195
3196         Remove UnusedParam.h, it's empty now.
3197
3198         * GNUmakefile.list.am:
3199         * WTF.pro:
3200         * WTF.vcproj/WTF.vcproj:
3201         * WTF.vcxproj/WTF.vcxproj:
3202         * WTF.vcxproj/WTF.vcxproj.filters:
3203         * WTF.xcodeproj/project.pbxproj:
3204         * wtf/CMakeLists.txt:
3205         * wtf/UnusedParam.h: Removed.
3206
3207 2013-05-13  Zalan Bujtas  <zalan@apple.com>
3208
3209         WebProcess consuming very high CPU on linkedin.com
3210         https://bugs.webkit.org/show_bug.cgi?id=115601
3211
3212         Reviewed by Andreas Kling.
3213
3214         Disable WEB_TIMING_MINIMAL.
3215         Turn off window.performance and performance.now(). Some JS frameworks expect
3216         additional Web Timing APIs, when performance.now() is available.
3217
3218         * wtf/FeatureDefines.h:
3219
3220 2013-05-12  Anders Carlsson  <andersca@apple.com>
3221
3222         Stop including UnusedParam.h
3223         https://bugs.webkit.org/show_bug.cgi?id=116003
3224
3225         Reviewed by Sam Weinig.
3226
3227         UnusedParam.h is empty now so there's no need to include it anymore.
3228
3229         * wtf/Atomics.h:
3230         * wtf/BoundsCheckedPointer.h:
3231         * wtf/DateMath.h:
3232         * wtf/FastMalloc.cpp:
3233         * wtf/NumberOfCores.cpp:
3234         * wtf/OSAllocator.h:
3235         * wtf/OSAllocatorPosix.cpp:
3236         * wtf/PageAllocation.h:
3237         * wtf/RefCounted.h:
3238         * wtf/TCSystemAlloc.cpp:
3239         * wtf/ThreadingPthreads.cpp:
3240         * wtf/Vector.h:
3241         * wtf/dtoa/cached-powers.cc:
3242         * wtf/dtoa/fixed-dtoa.cc:
3243
3244 2013-05-12  Anders Carlsson  <andersca@apple.com>
3245
3246         Move UNUSED_PARAM and UNUSED_LABEL macros to Compiler.h
3247         https://bugs.webkit.org/show_bug.cgi?id=115997
3248
3249         Reviewed by Benjamin Poulain.
3250
3251         UnusedParam.h predates Compiler.h and the macros defined there should just go into Compiler.h
3252
3253         * wtf/Compiler.h:
3254         (unusedParam):
3255         * wtf/UnusedParam.h:
3256
3257 2013-05-12  Anders Carlsson  <andersca@apple.com>
3258
3259         Remove Complex.h from WTF
3260         https://bugs.webkit.org/show_bug.cgi?id=115989
3261
3262         Reviewed by Beth Dakin.
3263
3264         Complex.h contains a typedef and a single function (that already has an equivalent in the STL).
3265         The header is used by three files in WebCore, so just use std::complex<double> and std::polar directly.
3266
3267         * GNUmakefile.list.am:
3268         * WTF.vcproj/WTF.vcproj:
3269         * WTF.vcxproj/WTF.vcxproj:
3270         * WTF.vcxproj/WTF.vcxproj.filters:
3271         * WTF.xcodeproj/project.pbxproj:
3272         * wtf/CMakeLists.txt:
3273         * wtf/Complex.h: Removed.
3274
3275 2013-05-11  Martin Robinson  <mrobinson@igalia.com>
3276
3277         [GTK] Add a basic cmake build for WTF and JavaScriptCore
3278         https://bugs.webkit.org/show_bug.cgi?id=115967
3279
3280         Reviewed by Laszlo Gombos.
3281
3282         * wtf/PlatformGTK.cmake: Added.
3283
3284 2013-05-11  Martin Robinson  <mrobinson@igalia.com>
3285
3286         Move defines to platform
3287
3288         [GTK] Move defines that will never be configured to Platform.h
3289         https://bugs.webkit.org/show_bug.cgi?id=115965
3290
3291         Reviewed by Andreas Kling.
3292
3293         * wtf/Platform.h: Add new defines that were previously in the autoconf header.
3294
3295 2013-05-12  Anders Carlsson  <andersca@apple.com>
3296
3297         Simplify AutodrainedPool
3298         https://bugs.webkit.org/show_bug.cgi?id=115986
3299
3300         Reviewed by Andreas Kling.
3301
3302         Remove the ability to cycle an AutodrainedPool, as well as the iteration count.
3303         Creating and draining pools is fast enough now that we don't need to try to be clever about it.
3304
3305         * wtf/AutodrainedPool.h:
3306         (AutodrainedPool):
3307         (WTF::AutodrainedPool::AutodrainedPool):
3308         * wtf/AutodrainedPoolMac.mm:
3309         (WTF::AutodrainedPool::AutodrainedPool):
3310
3311 2013-05-12  Anders Carlsson  <andersca@apple.com>
3312
3313         Move RemoteMemoryReader into FastMalloc.cpp
3314         https://bugs.webkit.org/show_bug.cgi?id=115985
3315
3316         Reviewed by Andreas Kling.
3317
3318         RemoteMemoryReader is only used in FastMalloc.cpp, and even had one of its member functions
3319         implemented there, so move the entire class template there and remove MallocZoneSupport.h.
3320
3321         * GNUmakefile.list.am:
3322         * WTF.pro:
3323         * WTF.vcproj/WTF.vcproj:
3324         * WTF.vcxproj/WTF.vcxproj:
3325         * WTF.vcxproj/WTF.vcxproj.filters:
3326         * WTF.xcodeproj/project.pbxproj:
3327         * wtf/CMakeLists.txt:
3328         * wtf/FastMalloc.cpp:
3329         (WTF):
3330         (PageHeapAllocator):
3331         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
3332         * wtf/MallocZoneSupport.h: Removed.
3333
3334 2013-05-10  Laszlo Gombos  <l.gombos@samsung.com>
3335
3336         Remove USE(OS_RANDOMNESS)
3337         https://bugs.webkit.org/show_bug.cgi?id=108095
3338
3339         Reviewed by Darin Adler.
3340
3341         Remove the USE(OS_RANDOMNESS) guard as it is turned on for all
3342         ports.
3343
3344         * wtf/CryptographicallyRandomNumber.cpp:
3345         (WTF::cryptographicallyRandomValues):
3346         * wtf/CryptographicallyRandomNumber.h:
3347         * wtf/OSRandomSource.cpp:
3348         (WTF::cryptographicallyRandomValuesFromOS):
3349         * wtf/OSRandomSource.h:
3350         * wtf/Platform.h:
3351         * wtf/RandomNumber.cpp:
3352         (WTF::randomNumber):
3353         * wtf/RandomNumber.h:
3354         * wtf/RandomNumberSeed.h:
3355         (WTF::initializeRandomNumberGenerator):
3356
3357 2013-05-10  Carlos Garcia Campos  <cgarcia@igalia.com>
3358
3359         [GTK] Remove unnecessary GLIB_CHECK_VERSION #ifdefs
3360         https://bugs.webkit.org/show_bug.cgi?id=115904
3361
3362         Reviewed by Martin Robinson.
3363
3364         * wtf/gobject/GRefPtr.cpp:
3365
3366 2013-05-09  Darin Adler  <darin@apple.com>
3367
3368         RenderQuote has giant function for language to quotes map
3369         https://bugs.webkit.org/show_bug.cgi?id=115807
3370
3371         Reviewed by Anders Carlsson.
3372
3373         * wtf/unicode/CharacterNames.h: Added a couple of character names.
3374
3375 2013-05-08  Michael Saboff  <msaboff@apple.com>
3376
3377         JSC: There should be a disassembler for ARM Thumb 2
3378         https://bugs.webkit.org/show_bug.cgi?id=115827
3379
3380         Reviewed by Filip Pizlo.
3381
3382         Added a new disassembler for ARMv7 Thumb2 instructions for use by the JSC debugging
3383         and profiling code.  Enabled the disassembler for IOS bulds.
3384
3385         * wtf/Platform.h:
3386
3387 2013-05-08  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3388
3389         Simplify RetainPtrObjectHashTraits
3390         https://bugs.webkit.org/show_bug.cgi?id=115822
3391
3392         Reviewed by Benjamin Poulain.
3393
3394         RetainPtrObjectHashTraits is inherited from SimpleClassHashTraits
3395         instead of GenericHashTraits re-using more shared functionality.
3396
3397         * wtf/RetainPtr.h:
3398         (WTF::RetainPtrObjectHashTraits::emptyValue):
3399
3400 2013-05-08  Anders Carlsson  <andersca@apple.com>
3401
3402         Assert at compile time that we don't pass Objective-C object pointers to adoptCF
3403         https://bugs.webkit.org/show_bug.cgi?id=115823
3404
3405         Reviewed by Geoffrey Garen.
3406
3407         static_assert in adoptCF that the object passed in is not an Objective-C object.
3408         * wtf/RetainPtr.h:
3409
3410 2013-05-08  Anders Carlsson  <andersca@apple.com>
3411
3412         Remove RetainPtr::adoptNS and RetainPtr::adoptCF
3413         https://bugs.webkit.org/show_bug.cgi?id=115817
3414
3415         Reviewed by Jessie Berlin.
3416
3417         These functions are now unused so remove them. The preferred way to create a RetainPtr with an
3418         adopted reference is to use the adoptNS/adoptCF free functions.
3419         
3420         Rewrite the move assignment operators to just call CFRelease explicitly.
3421
3422         * wtf/RetainPtr.h:
3423
3424 2013-05-08  Anders Carlsson  <andersca@apple.com>
3425
3426         Remove ThreadingNone.cpp
3427
3428         Rubber-stamped by Beth Dakin.
3429
3430         ThreadingNone.cpp is empty and not used anywhere.
3431
3432         * wtf/ThreadingNone.cpp: Removed.
3433
3434 2013-05-08  Anders Carlsson  <andersca@apple.com>
3435
3436         Remove HashMap::deleteAllKeys
3437         https://bugs.webkit.org/show_bug.cgi?id=115806
3438
3439         Reviewed by Brent Fulgham.
3440
3441         This function was not used anywhere so let's get rid of it.
3442
3443         * wtf/HashMap.h:
3444
3445 2013-05-08  Eric Carlson  <eric.carlson@apple.com>
3446
3447         [Mac] Inband text tracks are not in track menu on Lion
3448         https://bugs.webkit.org/show_bug.cgi?id=115740
3449
3450         Reviewed by Dean Jackson.
3451
3452         * wtf/Platform.h: AVFOUNDATION_TEXT_TRACK_SUPPORT -> AVFOUNDATION_MEDIA_SELECTION_GROUP
3453
3454 2013-05-08  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3455
3456         HashTraits<RefPtr<P> >::peek should consider empty value
3457         https://bugs.webkit.org/show_bug.cgi?id=115799
3458
3459         Reviewed by Darin Adler.
3460
3461         HashTraits<RefPtr<P> >::peek() should consider passing of empty value which is
3462         raw pointer equal to '0', and return it right away instead of converting it to RefPtr
3463         and invoking get().
3464
3465         * wtf/HashTraits.h:
3466
3467 2013-05-08  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3468
3469         Avoid unnecessary arguments copying inside GenericHashTraits methods
3470         https://bugs.webkit.org/show_bug.cgi?id=115733
3471
3472         Reviewed by Darin Adler.
3473
3474         Before the change both WTF::GenericHashTraits::passOut and WTF::GenericHashTraits::passOut
3475         used to return the given argument always by value and that caused implicit extra
3476         copying of the argument. It was OK as long as argument type T was POD, as compiler
3477         could optimize it, but in case T was a class having non-trivial copy constructor the
3478         extra copying of the argument could not have been obviated.
3479
3480         The proposed solution is to provide overloaded functions that accept non-temporary
3481         values and return them by reference thus avoiding extra copying.
3482
3483         The proposed solution made an impact on the size of libjavascriptcore_efl.so (EFL
3484         release build): the size decreased from 6554992 bytes to 6554560 bytes.
3485
3486         * wtf/HashTraits.h:
3487         (WTF::GenericHashTraits::passOut): 
3488         (WTF::GenericHashTraits::peek):
3489
3490 2013-05-07  Anders Carlsson  <andersca@apple.com>
3491
3492         Remove AlwaysInline.h from WTF
3493         https://bugs.webkit.org/show_bug.cgi?id=115727
3494
3495         Reviewed by Brent Fulgham.
3496
3497         The macro that used to be in AlwaysInline.h is now in Compiler.h so there's no reason
3498         to keep AlwaysInline.h around anymore.
3499
3500         * WTF.vcproj/WTF.vcproj:
3501         * WTF.vcxproj/WTF.vcxproj:
3502         * WTF.vcxproj/WTF.vcxproj.filters:
3503         * WTF.xcodeproj/project.pbxproj:
3504         * wtf/AlwaysInline.h: Removed.
3505         * wtf/BloomFilter.h:
3506         * wtf/FastMalloc.cpp:
3507         * wtf/PassRefPtr.h:
3508         * wtf/dtoa.cpp:
3509         * wtf/gobject/GRefPtr.h:
3510
3511 2013-05-07  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3512
3513         HashTraits<RefPtr<P> >::PeekType should be raw pointer for better performance
3514         https://bugs.webkit.org/show_bug.cgi?id=115646
3515
3516         Reviewed by Darin Adler.
3517
3518         HashTraits<RefPtr<P> >::PeekType should be raw pointer so that we
3519         can obviate multiple RefPtr copying when invoking HashMap<.., RefPtr>::get()
3520         method.
3521
3522         * wtf/HashTraits.h:
3523
3524 2013-05-06  Cosmin Truta  <ctruta@blackberry.com>
3525
3526         Cherry-pick fixes to bignum from upstream
3527         https://bugs.webkit.org/show_bug.cgi?id=115658
3528
3529         Reviewed by Darin Adler.
3530
3531         Cherry-picked the following change lists:
3532
3533         Fix bug in bignum implementation
3534         http://codereview.chromium.org/13454019
3535
3536         Make VS2005 project files compile without errors
3537         http://codereview.chromium.org/6286135
3538
3539         * wtf/dtoa/bignum.cc:
3540
3541 2013-05-06  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3542
3543         Change HashTraits<RefPtr<P> >::PassOutType to PassRefPtr for better performance
3544         https://bugs.webkit.org/show_bug.cgi?id=115410
3545
3546         Reviewed by Darin Adler.
3547
3548         The type HashTraits<RefPtr<P> >::PassOutType is PassRefPtr now to
3549         avoid extra ref/unrefing on return from HashMap methods that transfer
3550         ownership, such as take.
3551
3552         * wtf/HashTable.h:
3553         (WTF::IdentityHashTranslator::equal):
3554         * wtf/HashTraits.h:
3555
3556 2013-05-05  Anders Carlsson  <andersca@apple.com>
3557
3558         Remove Vector::prepend
3559         https://bugs.webkit.org/show_bug.cgi?id=115618
3560
3561         Reviewed by Geoffrey Garen.
3562
3563         Given the performance characteristics of prepending something to a Vector, not having prepend
3564         will hopefully make developers think about whether prepending is necessary at all. For example,
3565         the functions in HexNumber.h were easily converted to using Vector::append and then Vector::reverse.
3566
3567         * wtf/HexNumber.h:
3568         (WTF::appendUnsignedAsHex):
3569         (WTF::appendUnsignedAsHexFixedSize):
3570         * wtf/Vector.h:
3571         (Vector):
3572
3573 2013-05-05  Anders Carlsson  <andersca@apple.com>
3574
3575         Remove the Vector::append overload that takes a Vector
3576         https://bugs.webkit.org/show_bug.cgi?id=115535
3577
3578         Reviewed by Andreas Kling.
3579
3580         The Vector::append overload that takes a Vector conflicts with rvalues in C++11, so remove it and
3581         replace calls to it with calls to appendVector.
3582
3583         * wtf/Vector.h:
3584         (Vector):
3585
3586 2013-05-04  Andreas Kling  <akling@apple.com>
3587
3588         Unreviewed, rolling out r149563.
3589         http://trac.webkit.org/changeset/149563
3590         https://bugs.webkit.org/show_bug.cgi?id=115587
3591
3592         Broke LLInt build.
3593
3594         * wtf/text/StringImpl.h:
3595         (StringImpl):
3596
3597 2013-05-04  Xan Lopez  <xlopez@igalia.com>
3598
3599         No need to declare JSC::LLInt::Data as friend class of WTF::StringImpl
3600         https://bugs.webkit.org/show_bug.cgi?id=115587
3601
3602         Reviewed by Andreas Kling.
3603
3604         No need to declare LLInt::Data as friend class of WTF::StringImpl,
3605         it does not use any private method/data member of the latter.
3606
3607         * wtf/text/StringImpl.h:
3608         (StringImpl):
3609
3610 2013-05-03  Brent Fulgham  <bfulgham@webkit.org>
3611
3612         Make ThreadFunctionInvocation fast allocated.
3613         https://bugs.webkit.org/show_bug.cgi?id=115552
3614
3615         Reviewed by Benjamin Poulain.
3616
3617         * wtf/ThreadFunctionInvocation.h:
3618         (ThreadFunctionInvocation): Make Fast-allocated.
3619
3620 2013-05-03  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3621
3622         Remove WTF::ListRefPtr class
3623         https://bugs.webkit.org/show_bug.cgi?id=115516
3624
3625         Reviewed by Anders Carlsson.
3626
3627         ListRefPtr was used only by FontFamily class, besides it strongly depended
3628         on FontFamily class semantics which made it non-generic and inappropriate
3629         for being present inside WTF.
3630
3631         This patch removes WTF::ListRefPtr class and moves its the functionality
3632         into FontFamily class.
3633
3634         * GNUmakefile.list.am:
3635         * WTF.pro:
3636         * WTF.vcproj/WTF.vcproj:
3637         * WTF.vcxproj/WTF.vcxproj:
3638         * WTF.vcxproj/WTF.vcxproj.filters:
3639         * WTF.xcodeproj/project.pbxproj:
3640         * wtf/CMakeLists.txt:
3641         * wtf/Forward.h:
3642         (WTF):
3643         * wtf/ListRefPtr.h: Removed.
3644
3645 2013-05-02  Brent Fulgham  <bfulgham@webkit.org>
3646
3647         [WinCairo] Unreviewed build fix.
3648
3649         * WTF.vcxproj/WTF.vcxproj: Use WinCairo FeatureDefines
3650         * WTF.vcxproj/WTF.vcxproj.filters: Use WinCairo FeatureDefines
3651         * WTF.vcxproj/WTFDebugWinCairo.props: Added.
3652         * WTF.vcxproj/WTFReleaseWinCairo.props: Added.
3653
3654 2013-05-02  Brent Fulgham  <bfulgham@webkit.org>
3655
3656         [Windows, WinCairo] Fix crash in fast/js/create-lots-of-workers.html
3657         https://bugs.webkit.org/show_bug.cgi?id=115130
3658
3659         Reviewed by Tim Horton.
3660
3661         Windows is suffering from mismatched allocation/deallocation
3662         between the system allocator and fastMalloc/fastFree.  By turning
3663         off the global switch to fastMalloc, only classes specified to
3664         honor fastMalloc/fastFree are affected, and other memory allocation
3665         and freeing is done with consistent library calls.
3666
3667         * wtf/Platform.h: Deactivate ENABLE_GLOBAL_FASTMALLOC_NEW for
3668         the Windows build.
3669
3670 2013-05-02  Eric Carlson  <eric.carlson@apple.com>
3671
3672         Caption menu does not include in-band captions
3673         https://bugs.webkit.org/show_bug.cgi?id=111934
3674
3675         Reviewed by Dean Jackson.
3676
3677         * wtf/Platform.h: Define HAVE_AVFOUNDATION_TEXT_TRACK_SUPPORT on 10.8 and higher. Added
3678             HAVE_AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT.
3679
3680 2013-05-02  Brent Fulgham  <bfulgham@webkit.org>
3681
3682         Make BloomFilter fast allocated.
3683         https://bugs.webkit.org/show_bug.cgi?id=115519
3684
3685         Reviewed by Benjamin Poulain.
3686
3687         * wtf/BloomFilter.h:
3688         (BloomFilter): Make BloomFilter Fast-allocated.
3689
3690 2013-05-01  Michael Saboff  <msaboff@apple.com>
3691
3692         FastMalloc.cpp should use system defined page size instead of literal constant
3693         https://bugs.webkit.org/show_bug.cgi?id=115502
3694
3695         Reviewed by Geoffrey Garen.
3696
3697         Updated kPageShift to be PAGE_SHIFT for Mac.  Changed kMaxSize to be fixed at 32K.
3698         Updated kNumClasses for 4K and 16K page sizes.
3699
3700         * wtf/FastMalloc.cpp:
3701         kPageShift: Changed this to be PAGE_SHIFT on mac.
3702
3703 2013-05-01  Roger Fong  <roger_fong@apple.com>
3704
3705         Set Path in makefile for AppleWin.
3706
3707         * WTF.vcxproj/WTF.make:
3708
3709 2013-05-01  Anders Carlsson  <andersca@apple.com>
3710
3711         Add FunctionDispatcher class and make RunLoop derive from it
3712         https://bugs.webkit.org/show_bug.cgi?id=115480
3713
3714         Reviewed by Sam Weinig.
3715
3716         Add FunctionDispatcher files.
3717
3718         * WTF.pro:
3719         * WTF.vcproj/WTF.vcproj:
3720         * WTF.vcxproj/WTF.vcxproj:
3721         * WTF.xcodeproj/project.pbxproj:
3722         * wtf/FunctionDispatcher.cpp: Added.
3723         (WTF::FunctionDispatcher::FunctionDispatcher):
3724         (WTF::FunctionDispatcher::~FunctionDispatcher):
3725         * wtf/FunctionDispatcher.h: Added.
3726
3727 2013-05-01  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
3728
3729         [Qt][Win] Fix build after r149416.
3730         https://bugs.webkit.org/show_bug.cgi?id=115474
3731
3732         Reviewed by Anders Carlsson.
3733
3734         * WTF.pro:
3735         * wtf/threads/BinarySemaphore.h:
3736         (BinarySemaphore):
3737
3738 2013-05-01  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
3739
3740         [Qt] Unreviewed buildfix after r149416.
3741
3742         * WTF.pro:
3743
3744 2013-04-30  Anders Carlsson  <andersca@apple.com>
3745
3746         Remove the WebKit2 BinarySemaphore class
3747         https://bugs.webkit.org/show_bug.cgi?id=115458
3748
3749         Reviewed by Benjamin Poulain.
3750
3751         * wtf/Forward.h:
3752         Add BinarySemaphore forward declaration.
3753
3754         * wtf/threads/BinarySemaphore.h:
3755         Add WTF_EXPORT_PRIVATE to declarations.
3756
3757 2013-04-30  Commit Queue  <rniwa@webkit.org>
3758
3759         Unreviewed, rolling out r149408.
3760         http://trac.webkit.org/changeset/149408
3761         https://bugs.webkit.org/show_bug.cgi?id=115453
3762
3763         Broke Windows Build (Requested by bfulgham on #webkit).
3764
3765         * wtf/Platform.h:
3766
3767 2013-04-30  Brent Fulgham  <bfulgham@webkit.org>
3768
3769         [Windows, WinCairo] Fix crash in fast/js/create-lots-of-workers.html
3770         https://bugs.webkit.org/show_bug.cgi?id=115130
3771
3772         Reviewed by Tim Horton.
3773
3774         Windows is suffering from mismatched allocation/deallocation
3775         between the system allocator and fastMalloc/fastFree.  By turning
3776         off the global switch to fastMalloc, only classes specified to
3777         honor fastMalloc/fastFree are affected, and other memory allocation
3778         and freeing is done with consistent library calls.
3779
3780         * wtf/Platform.h: Deactivate ENABLE_GLOBAL_FASTMALLOC_NEW for
3781         the Windows build.
3782
3783 2013-04-30  Commit Queue  <rniwa@webkit.org>
3784
3785         Unreviewed, rolling out r149349 and r149354.
3786         http://trac.webkit.org/changeset/149349
3787         http://trac.webkit.org/changeset/149354
3788         https://bugs.webkit.org/show_bug.cgi?id=115444
3789
3790          The Thumb version of compileSoftModulo make invalid use of
3791         registers (Requested by benjaminp on #webkit).
3792
3793         * wtf/Platform.h:
3794
3795 2013-04-30  Darin Adler  <darin@apple.com>
3796
3797         [Mac] Make adoptNS faster on platforms without garbage collection by skipping a CFRetain/NSRelease pair
3798         https://bugs.webkit.org/show_bug.cgi?id=115424
3799
3800         Reviewed by Eric Carlson.
3801
3802         * wtf/RetainPtr.h:
3803         (WTF::adoptNSReference): When OBJC_NO_GC is set, make this an empty function, because in that case
3804         CFRetain and -[NSObject retain] are the same thing and there is no need to call CFRetain and
3805         -[NSObject release] to adopt an Objective-C object.
3806
3807 2013-04-30  Anders Carlsson  <andersca@apple.com>
3808
3809         String::isolatedCopy() can avoid a copy if the original is a temporary
3810         https://bugs.webkit.org/show_bug.cgi?id=115425
3811
3812         Reviewed by Darin Adler.
3813
3814         * wtf/Compiler.h:
3815         Add WTF_COMPILER_SUPPORTS_CXX_REFERENCE_QUALIFIED_FUNCTIONS define.
3816
3817         * wtf/text/WTFString.cpp:
3818         (WTF::String::isolatedCopy):
3819         * wtf/text/WTFString.h:
3820         If COMPILER_SUPPORTS(CXX_REFERENCE_QUALIFIED_FUNCTIONS) is true, add two overloads of String::isolatedCopy().
3821         One is used if *this is an lvalue, and one is used if *this is an rvalue. In the latter case, we know that the original
3822         String object is a temporary and will be going away, so if it's safe to send it to another thread (if it's not an AtomicString,
3823         and if it's refcount is 1), then we can just steal the StringImpl from the original and avoid a copy altogether.
3824
3825 2013-04-30  Zalan Bujtas  <zalan@apple.com>
3826
3827         Animations fail to start on http://www.google.com/insidesearch/howsearchworks/thestory/
3828         https://bugs.webkit.org/show_bug.cgi?id=111244
3829
3830         Reviewed by David Kilzer.
3831         
3832         Enable performance.now() as a minimal subset of Web Timing API. 
3833         It returns DOMHighResTimeStamp, a monotonically increasing value representing the 
3834         number of milliseconds from the start of the navigation of the current document.
3835         JS libraries use this API to check against the requestAnimationFrame() timestamp.
3836
3837         * wtf/FeatureDefines.h:
3838
3839 2013-04-29  Cosmin Truta  <ctruta@blackberry.com>
3840
3841         [ARM] Expand the use of integer division
3842         https://bugs.webkit.org/show_bug.cgi?id=115138
3843
3844         Reviewed by Benjamin Poulain.
3845
3846         * wtf/Platform.h: Added ENABLE_ARM_INTEGER_DIV.
3847
3848 2013-04-29  Anders Carlsson  <andersca@apple.com>
3849
3850         It should be an error to use adoptPtr with RefCounted subclasses
3851         https://bugs.webkit.org/show_bug.cgi?id=115389
3852
3853         Reviewed by Benjamin Poulain.
3854
3855         * wtf/PassOwnPtr.h:
3856         (WTF::adoptPtr):
3857         Add COMPILE_ASSERTs.
3858
3859 2013-04-29  Patrick Gansterer  <paroga@webkit.org>
3860
3861         [WIN] Add workaround for UNUSED_PARAM()
3862         https://bugs.webkit.org/show_bug.cgi?id=115350
3863
3864         Reviewed by Andreas Kling.
3865
3866         r147882 added an workaround for the MSVC compiler on Windows CE.
3867         Extend this workaround to whole MSVC compiler, since the same
3868         problem occurs with the Visual Studio 10 compiler too.
3869
3870         * wtf/UnusedParam.h:
3871
3872 2013-04-29  Patrick Gansterer  <paroga@webkit.org>
3873
3874         [WIN] Add WTF_USE_IMLANG_FONT_LINK2
3875         https://bugs.webkit.org/show_bug.cgi?id=115198
3876
3877         Reviewed by Andreas Kling.
3878
3879         * wtf/Platform.h:
3880
3881 2013-04-29  Patrick Gansterer  <paroga@webkit.org>
3882
3883         Define USE(ICU_UNICODE) if USE(WCHAR_UNICODE) is false
3884         https://bugs.webkit.org/show_bug.cgi?id=115349
3885
3886         Reviewed by Andreas Kling.
3887
3888         Since we support only ICU and WCHAR as Unicode backend (ICU is the default)
3889         automatically use ICU if WCHAR was not selected via compiler defines.
3890
3891         * wtf/Platform.h:
3892
3893 2013-04-29  Patrick Gansterer  <paroga@webkit.org>
3894
3895         Build fix for WinCE after r148888 and r149097
3896         https://bugs.webkit.org/show_bug.cgi?id=115168
3897
3898         Reviewed by Anders Carlsson.
3899
3900         When using compiler intrinsics on Windows CE the compiler complains
3901         about wrong linkage specification of replaced CRT functions defined
3902         in math.h. This is because the compiler has intrinsics for this
3903         functions defined, and requires them to have extern "C" linkage.
3904
3905         * wtf/MathExtras.h:
3906         (wtf_atan2): Added extern "C" to function signature.
3907         (wtf_fmod): Ditto.
3908         (wtf_pow): Ditto.
3909
3910 2013-04-29  Carlos Garcia Campos  <cgarcia@igalia.com>
3911
3912         Unreviewed. Fix make distcheck.
3913
3914         * GNUmakefile.list.am: Add missing header file to compilation.
3915
3916 2013-04-27  Darin Adler  <darin@apple.com>
3917
3918         Move from constructor and member function adoptCF/NS to free function adoptCF/NS.
3919         https://bugs.webkit.org/show_bug.cgi?id=115307
3920
3921         Reviewed by Geoffrey Garen.
3922
3923         * wtf/RunLoopTimerCF.cpp:
3924         (WTF::RunLoopTimerBase::start):
3925         * wtf/SchedulePair.h:
3926         (WTF::SchedulePair::SchedulePair):
3927         * wtf/SchedulePairMac.mm:
3928         (WTF::SchedulePair::SchedulePair):
3929         * wtf/unicode/icu/CollatorICU.cpp:
3930         (WTF::Collator::userDefault):
3931         Use adoptCF free function.
3932
3933 2013-04-26  Geoffrey Garen  <ggaren@apple.com>
3934
3935         Filled out more cases of branch folding in bytecode when emitting expressions into a branching context
3936         https://bugs.webkit.org/show_bug.cgi?id=115057
3937
3938         Reviewed by Filip Pizlo.
3939
3940         Added a helper constructor for TriState so clients can make one without
3941         branching or making assumptions about the integer values of TriStates.
3942
3943         * wtf/TriState.h:
3944         (WTF::triState):
3945         (WTF):
3946
3947 2013-04-26  Roger Fong  <roger_fong@apple.com>
3948
3949         Make Apple Windows VS2010 build results into and get dependencies from __32 suffixed folders.
3950         Make the DebugSuffix configuration use _debug dependencies.
3951
3952         * WTF.vcxproj/WTF.make:
3953         * WTF.vcxproj/WTF.vcxproj:
3954         * WTF.vcxproj/WTFCommon.props:
3955         * WTF.vcxproj/WTFDebug.props:
3956         * WTF.vcxproj/WTFGenerated.make:
3957         * WTF.vcxproj/WTFGenerated.vcxproj:
3958         * WTF.vcxproj/WTFGeneratedCommon.props:
3959         * WTF.vcxproj/WTFGeneratedDebug.props:
3960         * WTF.vcxproj/WTFGeneratedProduction.props:
3961         * WTF.vcxproj/WTFGeneratedRelease.props:
3962         * WTF.vcxproj/WTFProduction.props:
3963         * WTF.vcxproj/WTFRelease.props:
3964         * WTF.vcxproj/build-generated-files.sh:
3965         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
3966         (react_to_vsprops_changes):
3967
3968 2013-04-26  Martin Robinson  <mrobinson@igalia.com>
3969
3970         Remove the remaining Skia #ifdefs
3971         https://bugs.webkit.org/show_bug.cgi?id=114886
3972
3973         Reviewed by Benjamin Poulain.
3974
3975         * wtf/Platform.h:
3976
3977 2013-04-26  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3978
3979         Add move semantics to RefPtr
3980         https://bugs.webkit.org/show_bug.cgi?id=115033
3981
3982         Reviewed by Anders Carlsson.
3983
3984         Add move constructors and move assignment operators to RefPtr when
3985         COMPILER_SUPPORTS(CXX_RVALUE_REFERENCES).
3986         This obviates unnecessary reffing/ureffing when RefPtr is created
3987         or assigned from rvalue references.
3988
3989         * wtf/RefPtr.h:
3990         (RefPtr):
3991         (WTF::RefPtr::RefPtr):
3992         (WTF::RefPtr::operator=):
3993
3994 2013-04-26  Andreas Kling  <akling@apple.com>
3995
3996         Remove wxWebKit from WTF.
3997         <http://webkit.org/b/115249>
3998
3999         Reviewed by Antti Koivisto.
4000
4001         * wscript: Removed.
4002         * wtf/ArrayBufferView.h:
4003         (ArrayBufferView):
4004         * wtf/CurrentTime.cpp:
4005         * wtf/DisallowCType.h:
4006         * wtf/ExportMacros.h:
4007         * wtf/FeatureDefines.h:
4008         * wtf/Platform.h:
4009         * wtf/text/WTFString.h:
4010         (String):
4011         * wtf/wx/MainThreadWx.cpp: Removed.
4012         * wtf/wx/StringWx.cpp: Removed.
4013
4014 2013-04-25  Filip Pizlo  <fpizlo@apple.com>
4015
4016         Unreviewed, roll out http://trac.webkit.org/changeset/148999
4017         It broke http://kripken.github.io/ammo.js/examples/new/ammo.html
4018
4019         * wtf/TriState.h:
4020
4021 2013-04-25  Oliver Hunt  <oliver@apple.com>
4022
4023         Fix 32bit build
4024
4025         * wtf/StackBounds.cpp:
4026         (WTF::StackBounds::initialize):
4027
4028 2013-04-25  Oliver Hunt  <oliver@apple.com>
4029
4030         Stack guards are too conservative
4031         https://bugs.webkit.org/show_bug.cgi?id=115147
4032
4033         Reviewed by Mark Hahnenberg.
4034
4035         Use getrlimit on darwin to get the stack size for the main thread.
4036
4037         * wtf/StackBounds.cpp:
4038         (WTF::StackBounds::initialize):
4039
4040 2013-04-25  Andreas Kling  <akling@apple.com>
4041
4042         Remove ENABLE(PARSED_STYLE_SHEET_CACHING) and make it always-on.
4043
4044         Rubber-stamped by Anders Koivisto.
4045
4046         * wtf/FeatureDefines.h:
4047
4048 2013-04-25  peavo@outlook.com  <peavo@outlook.com>
4049
4050         [Windows] Compile fix.
4051         https://bugs.webkit.org/show_bug.cgi?id=115170
4052
4053         Reviewed by Filip Pizlo.
4054
4055         Forward declare function, instead of including intrin.h.
4056
4057         * wtf/Atomics.h:
4058
4059 2013-04-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
4060
4061         Use std::move in AtomicString
4062         https://bugs.webkit.org/show_bug.cgi?id=115102
4063
4064         Reviewed by Anders Carlsson.
4065
4066         Use std::move in AtomicString instead of direct casting to rvalue references.
4067
4068         * wtf/text/AtomicString.h:
4069         (AtomicString):
4070         (WTF::AtomicString::AtomicString):
4071         (WTF::AtomicString::operator=):
4072
4073 2013-04-25  Patrick Gansterer  <paroga@webkit.org>
4074
4075         Unreviewed WinCE build fix after r148888.
4076
4077         * wtf/Atomics.h: WinCE version of intrin.h is called cmnintrin.h.
4078
4079 2013-04-24  Roger Fong  <roger_fong@apple.com>
4080
4081         Have VS2010 WebKit solution look in WebKit_Libraries/lib32 for dependencies.
4082
4083         * WTF.vcxproj/build-generated-files.sh:
4084
4085 2013-04-24  Benjamin Poulain  <benjamin@webkit.org>
4086
4087         Use post-branch store for RefCountedBase::derefBase
4088         https://bugs.webkit.org/show_bug.cgi?id=115078
4089
4090         Reviewed by Andreas Kling.
4091
4092         * wtf/RefCounted.h:
4093         (WTF::RefCountedBase::derefBase): This makes the assembly easier to follow.
4094
4095 2013-04-23  Geoffrey Garen  <ggaren@apple.com>
4096
4097         Filled out more cases of branch folding in bytecode when emitting expressions into a branching context
4098         https://bugs.webkit.org/show_bug.cgi?id=115057
4099
4100         Reviewed by Filip Pizlo.
4101
4102         Added a helper constructor for TriState so clients can make one without
4103         branching or making assumptions about the integer values of TriStates.
4104
4105         * wtf/TriState.h:
4106         (WTF::triState):
4107         (WTF):
4108
4109 2013-04-23  Roger Fong  <roger_fong@apple.com>
4110
4111         AppleWin build fix.
4112
4113         * WTF.vcproj/WTF.vcproj:
4114
4115 2013-04-23  Benjamin Poulain  <bpoulain@apple.com>
4116
4117         Remove unused code of RefCounted after chromium removal
4118         https://bugs.webkit.org/show_bug.cgi?id=115009
4119
4120         Reviewed by Ryosuke Niwa.
4121
4122         * wtf/RefCounted.h:
4123         (WTF::RefCountedBase::refCount):
4124         (RefCountedBase):
4125         It looks like addressOfCount() is no longer needed.
4126         Also change the type back to unsigned as it make more sense.
4127
4128 2013-04-23  David Kilzer  <ddkilzer@apple.com>
4129
4130         RetainPtr.h should compile with -Wshorten-64-to-32
4131         <http://webkit.org/b/115047>
4132
4133         Reviewed by Anders Carlsson.
4134
4135         Fixes the following warning:
4136
4137             RetainPtr.h:318:20: error: implicit conversion loses integer precision: 'CFHashCode' (aka 'unsigned long') to 'unsigned int' [-Werror,-Wshorten-64-to-32]
4138                         return CFHash(o.get());
4139                         ~~~~~~ ^~~~~~~~~~~~~~~
4140
4141         * wtf/RetainPtr.h:
4142         (WTF::RetainPtrObjectHash::hash): Cast return value of CFHash()
4143         to unsigned.  This has no effect on 32-bit architectures, but
4144         takes the lower 32-bits of the CFHashCode (unsigned long) on
4145         64-bit architectures, which is what happens implicitly now.
4146
4147 2013-04-22  Patrick Gansterer  <paroga@webkit.org>
4148
4149         [CMake] Move NullPtr.cpp from PlatformWinCE.cmake to CMakeLists.txt
4150         https://bugs.webkit.org/show_bug.cgi?id=114557
4151
4152         Reviewed by Laszlo Gombos.
4153
4154         This file is not specific to Windwos CE. Move it the the general
4155         CMakeLists.txt so other ports can use it to. It does not affect
4156         ports which do not need it, since it contains a preprocessor guard.
4157
4158         * wtf/CMakeLists.txt:
4159         * wtf/PlatformWinCE.cmake:
4160
4161 2013-04-22  Benjamin Poulain  <benjamin@webkit.org>
4162
4163         Remove the memory instrumentation code
4164         https://bugs.webkit.org/show_bug.cgi?id=114931
4165
4166         Reviewed by Andreas Kling.
4167
4168         On Mac x86_64, the code removal cause the binary to be
4169         9224 bytes smaller.
4170
4171         * GNUmakefile.list.am:
4172         * WTF.pro:
4173         * WTF.vcproj/WTF.vcproj:
4174         * WTF.vcxproj/WTF.vcxproj:
4175         * WTF.vcxproj/WTF.vcxproj.filters:
4176         * WTF.xcodeproj/project.pbxproj:
4177         * wtf/CMakeLists.txt:
4178         * wtf/Forward.h:
4179         * wtf/ListHashSet.h:
4180         (ListHashSet):
4181         (ListHashSetNodeAllocator):
4182         (WTF::ListHashSetNodeAllocator::pool):
4183         (WTF::ListHashSetNodeAllocator::pastPool):
4184         * wtf/MemoryInstrumentation.cpp: Removed.
4185         * wtf/MemoryInstrumentation.h: Removed.
4186         * wtf/MemoryInstrumentationArrayBufferView.h: Removed.
4187         * wtf/MemoryInstrumentationHashCountedSet.h: Removed.
4188         * wtf/MemoryInstrumentationHashMap.h: Removed.
4189         * wtf/MemoryInstrumentationHashSet.h: Removed.
4190         * wtf/MemoryInstrumentationListHashSet.h: Removed.
4191         * wtf/MemoryInstrumentationSequence.h: Removed.
4192         * wtf/MemoryInstrumentationString.h: Removed.
4193         * wtf/MemoryInstrumentationVector.h: Removed.
4194         * wtf/MemoryObjectInfo.h: Removed.
4195         * wtf/text/AtomicString.h:
4196         * wtf/text/StringImpl.h:
4197         (WTF::StringImpl::isASCIILiteral):
4198         * wtf/text/WTFString.h:
4199
4200 2013-04-22  David Kilzer  <ddkilzer@apple.com>
4201
4202         StringImpl.h should compile with -Wshorten-64-to-32
4203         <http://webkit.org/b/114970>
4204
4205         Reviewed by Darin Adler.
4206
4207         Fixes the following warnings with -Wshorten-64-to-32:
4208
4209             StringImpl.h:317:25: error: implicit conversion loses integer precision: 'uintptr_t' (aka 'unsigned long') to 'unsigned int' [-Werror,-Wshorten-64-to-32]
4210                     unsigned hash = reinterpret_cast<uintptr_t>(this);
4211                              ~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
4212
4213         * wtf/text/StringImpl.h:
4214         (WTF::StringImpl::StringImpl): Add static_cast<uint32_t>() to
4215         formalize taking the lower 32-bits of the pointer value on
4216         64-bit architectures.
4217
4218 2013-04-22  Andreas Kling  <akling@apple.com>
4219
4220         Shrink baseline size of WTF::Vector on 64-bit by switching to unsigned capacity and size.
4221         <http://webkit.org/b/97268>
4222         <rdar://problem/12376519>
4223
4224         Reviewed by Sam Weinig.
4225
4226         Shrink Vector by 8 bytes on 64-bit by using 32-bit capacity and size.
4227         Vector now inherits from VectorBuffer instead of having a VectorBuffer member;
4228         this is necessary for m_size to fall into the padding after the base class members.
4229
4230         The WTF::Vector API still uses size_t.
4231
4232         Based on Blink r148313 by <cevans@chromium.org>.
4233
4234         * wtf/SizeLimits.cpp:
4235         * wtf/Vector.h:
4236         (WTF::VectorBufferBase::allocateBuffer):
4237         (WTF::VectorBufferBase::tryAllocateBuffer):
4238         (VectorBufferBase):
4239         (WTF::VectorBuffer::shouldReallocateBuffer):
4240         (Vector):
4241         (WTF::Vector::Vector):
4242         (WTF::Vector::capacity):
4243         (WTF::Vector::at):
4244         (WTF::Vector::data):
4245         (WTF::Vector::swap):
4246         (WTF::::Vector):
4247         (WTF::::reserveCapacity):
4248         (WTF::::tryReserveCapacity):
4249         (WTF::::reserveInitialCapacity):
4250         (WTF::::shrinkCapacity):
4251         (WTF::::releaseBuffer):
4252
4253 2013-04-21  Filip Pizlo  <fpizlo@apple.com>
4254
4255         Memory barrier support should also ensure that we always do a compiler fence
4256         https://bugs.webkit.org/show_bug.cgi?id=114934
4257
4258         Reviewed by Michael Saboff.
4259         
4260         This is a cherry-pick merge of the WTF part of r148836 from the dfgFourthTier
4261         branch. It fixes a memory ordering bug that is likely asymptomatic, but
4262         nonetheless real: TCSpinLock expects that using a memoryBarrierBeforeUnlock()
4263         prior to setting lockword_ to 0 will ensure that the assignment to lockword_
4264         won't get floated above any of the stores in the critical section. While that
4265         memory barrier does indeed do the right thing on ARM, it doesn't do the right
4266         thing on other architectures: it turns into empty code that the compiler blows
4267         away, which is fine for the hardware since X86 won't reorder that store - but
4268         it's not fine for the compiler, which may still do its own reorderings.
4269         
4270         The WTF part of r148836 fixes this by using a compiler fence: an empty asm
4271         volatile block that is marked as clobbering memory.
4272         
4273         Instead of doing a separate surgical fix in trunk, I decided to merge the
4274         whole WTF change over, to make merging easier in the future.
4275         
4276         Performance testing of this change in dfgFourthTier showed no regression.
4277
4278         * wtf/Atomics.h:
4279         (WTF::compilerFence):
4280         (WTF::armV7_dmb):
4281         (WTF::armV7_dmb_st):
4282         (WTF::loadLoadFence):
4283         (WTF::loadStoreFence):
4284         (WTF::storeLoadFence):
4285         (WTF::storeStoreFence):
4286         (WTF::memoryBarrierAfterLock):
4287         (WTF::memoryBarrierBeforeUnlock):
4288         (WTF::x86_mfence):
4289
4290 2013-04-22  David Kilzer  <ddkilzer@apple.com>
4291
4292         WTF::AtomicString::find() should take unsigned 'start' argument
4293         <http://webkit.org/b/114958>
4294
4295         Reviewed by Darin Adler.
4296
4297         Fixes the following warnings with -Wshorten-64-to-32:
4298
4299             AtomicString.h:113:76: error: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Werror,-Wshorten-64-to-32]
4300                 size_t find(UChar c, size_t start = 0) const { return m_string.find(c, start); }
4301                                                                       ~~~~~~~~         ^~~~~
4302             AtomicString.h:115:35: error: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Werror,-Wshorten-64-to-32]
4303                     { return m_string.find(s, start, caseSentitive); }
4304                              ~~~~~~~~         ^~~~~
4305             AtomicString.h:117:35: error: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Werror,-Wshorten-64-to-32]
4306                     { return m_string.find(s, start, caseSentitive); }
4307                              ~~~~~~~~         ^~~~~
4308
4309         * wtf/text/AtomicString.h:
4310         (WTF::AtomicString::find): Change type of 'start' argument from
4311         size_t to unsigned.
4312
4313 2013-04-21  Benjamin Poulain  <benjamin@webkit.org>
4314
4315         Improve StringImpl code density for older ARM hardware
4316         https://bugs.webkit.org/show_bug.cgi?id=114898
4317
4318         Reviewed by Geoffrey Garen.
4319
4320         Reduce the number of instructions needed for StringImpl::deref
4321         on older ARM hardware.
4322
4323         The extra indirection should have a negligible impact on x86_64.
4324
4325         * wtf/text/StringImpl.cpp:
4326         (WTF::StringImpl::destroy):
4327         * wtf/text/StringImpl.h:
4328         (StringImpl):
4329         (WTF::StringImpl::deref):
4330
4331 2013-04-20  Allan Sandfeld Jensen  <allan.jensen@digia.com>
4332
4333         LLint should be able to use x87 instead of SSE for floating pointe