1ffaa47ad98cbabbd6db041d67b8e92fe4b347ac
[WebKit-https.git] / Source / WTF / ChangeLog
1 2013-05-09  Darin Adler  <darin@apple.com>
2
3         RenderQuote has giant function for language to quotes map
4         https://bugs.webkit.org/show_bug.cgi?id=115807
5
6         Reviewed by Anders Carlsson.
7
8         * wtf/unicode/CharacterNames.h: Added a couple of character names.
9
10 2013-05-08  Michael Saboff  <msaboff@apple.com>
11
12         JSC: There should be a disassembler for ARM Thumb 2
13         https://bugs.webkit.org/show_bug.cgi?id=115827
14
15         Reviewed by Filip Pizlo.
16
17         Added a new disassembler for ARMv7 Thumb2 instructions for use by the JSC debugging
18         and profiling code.  Enabled the disassembler for IOS bulds.
19
20         * wtf/Platform.h:
21
22 2013-05-08  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
23
24         Simplify RetainPtrObjectHashTraits
25         https://bugs.webkit.org/show_bug.cgi?id=115822
26
27         Reviewed by Benjamin Poulain.
28
29         RetainPtrObjectHashTraits is inherited from SimpleClassHashTraits
30         instead of GenericHashTraits re-using more shared functionality.
31
32         * wtf/RetainPtr.h:
33         (WTF::RetainPtrObjectHashTraits::emptyValue):
34
35 2013-05-08  Anders Carlsson  <andersca@apple.com>
36
37         Assert at compile time that we don't pass Objective-C object pointers to adoptCF
38         https://bugs.webkit.org/show_bug.cgi?id=115823
39
40         Reviewed by Geoffrey Garen.
41
42         static_assert in adoptCF that the object passed in is not an Objective-C object.
43         * wtf/RetainPtr.h:
44
45 2013-05-08  Anders Carlsson  <andersca@apple.com>
46
47         Remove RetainPtr::adoptNS and RetainPtr::adoptCF
48         https://bugs.webkit.org/show_bug.cgi?id=115817
49
50         Reviewed by Jessie Berlin.
51
52         These functions are now unused so remove them. The preferred way to create a RetainPtr with an
53         adopted reference is to use the adoptNS/adoptCF free functions.
54         
55         Rewrite the move assignment operators to just call CFRelease explicitly.
56
57         * wtf/RetainPtr.h:
58
59 2013-05-08  Anders Carlsson  <andersca@apple.com>
60
61         Remove ThreadingNone.cpp
62
63         Rubber-stamped by Beth Dakin.
64
65         ThreadingNone.cpp is empty and not used anywhere.
66
67         * wtf/ThreadingNone.cpp: Removed.
68
69 2013-05-08  Anders Carlsson  <andersca@apple.com>
70
71         Remove HashMap::deleteAllKeys
72         https://bugs.webkit.org/show_bug.cgi?id=115806
73
74         Reviewed by Brent Fulgham.
75
76         This function was not used anywhere so let's get rid of it.
77
78         * wtf/HashMap.h:
79
80 2013-05-08  Eric Carlson  <eric.carlson@apple.com>
81
82         [Mac] Inband text tracks are not in track menu on Lion
83         https://bugs.webkit.org/show_bug.cgi?id=115740
84
85         Reviewed by Dean Jackson.
86
87         * wtf/Platform.h: AVFOUNDATION_TEXT_TRACK_SUPPORT -> AVFOUNDATION_MEDIA_SELECTION_GROUP
88
89 2013-05-08  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
90
91         HashTraits<RefPtr<P> >::peek should consider empty value
92         https://bugs.webkit.org/show_bug.cgi?id=115799
93
94         Reviewed by Darin Adler.
95
96         HashTraits<RefPtr<P> >::peek() should consider passing of empty value which is
97         raw pointer equal to '0', and return it right away instead of converting it to RefPtr
98         and invoking get().
99
100         * wtf/HashTraits.h:
101
102 2013-05-08  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
103
104         Avoid unnecessary arguments copying inside GenericHashTraits methods
105         https://bugs.webkit.org/show_bug.cgi?id=115733
106
107         Reviewed by Darin Adler.
108
109         Before the change both WTF::GenericHashTraits::passOut and WTF::GenericHashTraits::passOut
110         used to return the given argument always by value and that caused implicit extra
111         copying of the argument. It was OK as long as argument type T was POD, as compiler
112         could optimize it, but in case T was a class having non-trivial copy constructor the
113         extra copying of the argument could not have been obviated.
114
115         The proposed solution is to provide overloaded functions that accept non-temporary
116         values and return them by reference thus avoiding extra copying.
117
118         The proposed solution made an impact on the size of libjavascriptcore_efl.so (EFL
119         release build): the size decreased from 6554992 bytes to 6554560 bytes.
120
121         * wtf/HashTraits.h:
122         (WTF::GenericHashTraits::passOut): 
123         (WTF::GenericHashTraits::peek):
124
125 2013-05-07  Anders Carlsson  <andersca@apple.com>
126
127         Remove AlwaysInline.h from WTF
128         https://bugs.webkit.org/show_bug.cgi?id=115727
129
130         Reviewed by Brent Fulgham.
131
132         The macro that used to be in AlwaysInline.h is now in Compiler.h so there's no reason
133         to keep AlwaysInline.h around anymore.
134
135         * WTF.vcproj/WTF.vcproj:
136         * WTF.vcxproj/WTF.vcxproj:
137         * WTF.vcxproj/WTF.vcxproj.filters:
138         * WTF.xcodeproj/project.pbxproj:
139         * wtf/AlwaysInline.h: Removed.
140         * wtf/BloomFilter.h:
141         * wtf/FastMalloc.cpp:
142         * wtf/PassRefPtr.h:
143         * wtf/dtoa.cpp:
144         * wtf/gobject/GRefPtr.h:
145
146 2013-05-07  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
147
148         HashTraits<RefPtr<P> >::PeekType should be raw pointer for better performance
149         https://bugs.webkit.org/show_bug.cgi?id=115646
150
151         Reviewed by Darin Adler.
152
153         HashTraits<RefPtr<P> >::PeekType should be raw pointer so that we
154         can obviate multiple RefPtr copying when invoking HashMap<.., RefPtr>::get()
155         method.
156
157         * wtf/HashTraits.h:
158
159 2013-05-06  Cosmin Truta  <ctruta@blackberry.com>
160
161         Cherry-pick fixes to bignum from upstream
162         https://bugs.webkit.org/show_bug.cgi?id=115658
163
164         Reviewed by Darin Adler.
165
166         Cherry-picked the following change lists:
167
168         Fix bug in bignum implementation
169         http://codereview.chromium.org/13454019
170
171         Make VS2005 project files compile without errors
172         http://codereview.chromium.org/6286135
173
174         * wtf/dtoa/bignum.cc:
175
176 2013-05-06  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
177
178         Change HashTraits<RefPtr<P> >::PassOutType to PassRefPtr for better performance
179         https://bugs.webkit.org/show_bug.cgi?id=115410
180
181         Reviewed by Darin Adler.
182
183         The type HashTraits<RefPtr<P> >::PassOutType is PassRefPtr now to
184         avoid extra ref/unrefing on return from HashMap methods that transfer
185         ownership, such as take.
186
187         * wtf/HashTable.h:
188         (WTF::IdentityHashTranslator::equal):
189         * wtf/HashTraits.h:
190
191 2013-05-05  Anders Carlsson  <andersca@apple.com>
192
193         Remove Vector::prepend
194         https://bugs.webkit.org/show_bug.cgi?id=115618
195
196         Reviewed by Geoffrey Garen.
197
198         Given the performance characteristics of prepending something to a Vector, not having prepend
199         will hopefully make developers think about whether prepending is necessary at all. For example,
200         the functions in HexNumber.h were easily converted to using Vector::append and then Vector::reverse.
201
202         * wtf/HexNumber.h:
203         (WTF::appendUnsignedAsHex):
204         (WTF::appendUnsignedAsHexFixedSize):
205         * wtf/Vector.h:
206         (Vector):
207
208 2013-05-05  Anders Carlsson  <andersca@apple.com>
209
210         Remove the Vector::append overload that takes a Vector
211         https://bugs.webkit.org/show_bug.cgi?id=115535
212
213         Reviewed by Andreas Kling.
214
215         The Vector::append overload that takes a Vector conflicts with rvalues in C++11, so remove it and
216         replace calls to it with calls to appendVector.
217
218         * wtf/Vector.h:
219         (Vector):
220
221 2013-05-04  Andreas Kling  <akling@apple.com>
222
223         Unreviewed, rolling out r149563.
224         http://trac.webkit.org/changeset/149563
225         https://bugs.webkit.org/show_bug.cgi?id=115587
226
227         Broke LLInt build.
228
229         * wtf/text/StringImpl.h:
230         (StringImpl):
231
232 2013-05-04  Xan Lopez  <xlopez@igalia.com>
233
234         No need to declare JSC::LLInt::Data as friend class of WTF::StringImpl
235         https://bugs.webkit.org/show_bug.cgi?id=115587
236
237         Reviewed by Andreas Kling.
238
239         No need to declare LLInt::Data as friend class of WTF::StringImpl,
240         it does not use any private method/data member of the latter.
241
242         * wtf/text/StringImpl.h:
243         (StringImpl):
244
245 2013-05-03  Brent Fulgham  <bfulgham@webkit.org>
246
247         Make ThreadFunctionInvocation fast allocated.
248         https://bugs.webkit.org/show_bug.cgi?id=115552
249
250         Reviewed by Benjamin Poulain.
251
252         * wtf/ThreadFunctionInvocation.h:
253         (ThreadFunctionInvocation): Make Fast-allocated.
254
255 2013-05-03  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
256
257         Remove WTF::ListRefPtr class
258         https://bugs.webkit.org/show_bug.cgi?id=115516
259
260         Reviewed by Anders Carlsson.
261
262         ListRefPtr was used only by FontFamily class, besides it strongly depended
263         on FontFamily class semantics which made it non-generic and inappropriate
264         for being present inside WTF.
265
266         This patch removes WTF::ListRefPtr class and moves its the functionality
267         into FontFamily class.
268
269         * GNUmakefile.list.am:
270         * WTF.pro:
271         * WTF.vcproj/WTF.vcproj:
272         * WTF.vcxproj/WTF.vcxproj:
273         * WTF.vcxproj/WTF.vcxproj.filters:
274         * WTF.xcodeproj/project.pbxproj:
275         * wtf/CMakeLists.txt:
276         * wtf/Forward.h:
277         (WTF):
278         * wtf/ListRefPtr.h: Removed.
279
280 2013-05-02  Brent Fulgham  <bfulgham@webkit.org>
281
282         [WinCairo] Unreviewed build fix.
283
284         * WTF.vcxproj/WTF.vcxproj: Use WinCairo FeatureDefines
285         * WTF.vcxproj/WTF.vcxproj.filters: Use WinCairo FeatureDefines
286         * WTF.vcxproj/WTFDebugWinCairo.props: Added.
287         * WTF.vcxproj/WTFReleaseWinCairo.props: Added.
288
289 2013-05-02  Brent Fulgham  <bfulgham@webkit.org>
290
291         [Windows, WinCairo] Fix crash in fast/js/create-lots-of-workers.html
292         https://bugs.webkit.org/show_bug.cgi?id=115130
293
294         Reviewed by Tim Horton.
295
296         Windows is suffering from mismatched allocation/deallocation
297         between the system allocator and fastMalloc/fastFree.  By turning
298         off the global switch to fastMalloc, only classes specified to
299         honor fastMalloc/fastFree are affected, and other memory allocation
300         and freeing is done with consistent library calls.
301
302         * wtf/Platform.h: Deactivate ENABLE_GLOBAL_FASTMALLOC_NEW for
303         the Windows build.
304
305 2013-05-02  Eric Carlson  <eric.carlson@apple.com>
306
307         Caption menu does not include in-band captions
308         https://bugs.webkit.org/show_bug.cgi?id=111934
309
310         Reviewed by Dean Jackson.
311
312         * wtf/Platform.h: Define HAVE_AVFOUNDATION_TEXT_TRACK_SUPPORT on 10.8 and higher. Added
313             HAVE_AVFOUNDATION_LEGIBLE_OUTPUT_SUPPORT.
314
315 2013-05-02  Brent Fulgham  <bfulgham@webkit.org>
316
317         Make BloomFilter fast allocated.
318         https://bugs.webkit.org/show_bug.cgi?id=115519
319
320         Reviewed by Benjamin Poulain.
321
322         * wtf/BloomFilter.h:
323         (BloomFilter): Make BloomFilter Fast-allocated.
324
325 2013-05-01  Michael Saboff  <msaboff@apple.com>
326
327         FastMalloc.cpp should use system defined page size instead of literal constant
328         https://bugs.webkit.org/show_bug.cgi?id=115502
329
330         Reviewed by Geoffrey Garen.
331
332         Updated kPageShift to be PAGE_SHIFT for Mac.  Changed kMaxSize to be fixed at 32K.
333         Updated kNumClasses for 4K and 16K page sizes.
334
335         * wtf/FastMalloc.cpp:
336         kPageShift: Changed this to be PAGE_SHIFT on mac.
337
338 2013-05-01  Roger Fong  <roger_fong@apple.com>
339
340         Set Path in makefile for AppleWin.
341
342         * WTF.vcxproj/WTF.make:
343
344 2013-05-01  Anders Carlsson  <andersca@apple.com>
345
346         Add FunctionDispatcher class and make RunLoop derive from it
347         https://bugs.webkit.org/show_bug.cgi?id=115480
348
349         Reviewed by Sam Weinig.
350
351         Add FunctionDispatcher files.
352
353         * WTF.pro:
354         * WTF.vcproj/WTF.vcproj:
355         * WTF.vcxproj/WTF.vcxproj:
356         * WTF.xcodeproj/project.pbxproj:
357         * wtf/FunctionDispatcher.cpp: Added.
358         (WTF::FunctionDispatcher::FunctionDispatcher):
359         (WTF::FunctionDispatcher::~FunctionDispatcher):
360         * wtf/FunctionDispatcher.h: Added.
361
362 2013-05-01  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
363
364         [Qt][Win] Fix build after r149416.
365         https://bugs.webkit.org/show_bug.cgi?id=115474
366
367         Reviewed by Anders Carlsson.
368
369         * WTF.pro:
370         * wtf/threads/BinarySemaphore.h:
371         (BinarySemaphore):
372
373 2013-05-01  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
374
375         [Qt] Unreviewed buildfix after r149416.
376
377         * WTF.pro:
378
379 2013-04-30  Anders Carlsson  <andersca@apple.com>
380
381         Remove the WebKit2 BinarySemaphore class
382         https://bugs.webkit.org/show_bug.cgi?id=115458
383
384         Reviewed by Benjamin Poulain.
385
386         * wtf/Forward.h:
387         Add BinarySemaphore forward declaration.
388
389         * wtf/threads/BinarySemaphore.h:
390         Add WTF_EXPORT_PRIVATE to declarations.
391
392 2013-04-30  Commit Queue  <rniwa@webkit.org>
393
394         Unreviewed, rolling out r149408.
395         http://trac.webkit.org/changeset/149408
396         https://bugs.webkit.org/show_bug.cgi?id=115453
397
398         Broke Windows Build (Requested by bfulgham on #webkit).
399
400         * wtf/Platform.h:
401
402 2013-04-30  Brent Fulgham  <bfulgham@webkit.org>
403
404         [Windows, WinCairo] Fix crash in fast/js/create-lots-of-workers.html
405         https://bugs.webkit.org/show_bug.cgi?id=115130
406
407         Reviewed by Tim Horton.
408
409         Windows is suffering from mismatched allocation/deallocation
410         between the system allocator and fastMalloc/fastFree.  By turning
411         off the global switch to fastMalloc, only classes specified to
412         honor fastMalloc/fastFree are affected, and other memory allocation
413         and freeing is done with consistent library calls.
414
415         * wtf/Platform.h: Deactivate ENABLE_GLOBAL_FASTMALLOC_NEW for
416         the Windows build.
417
418 2013-04-30  Commit Queue  <rniwa@webkit.org>
419
420         Unreviewed, rolling out r149349 and r149354.
421         http://trac.webkit.org/changeset/149349
422         http://trac.webkit.org/changeset/149354
423         https://bugs.webkit.org/show_bug.cgi?id=115444
424
425          The Thumb version of compileSoftModulo make invalid use of
426         registers (Requested by benjaminp on #webkit).
427
428         * wtf/Platform.h:
429
430 2013-04-30  Darin Adler  <darin@apple.com>
431
432         [Mac] Make adoptNS faster on platforms without garbage collection by skipping a CFRetain/NSRelease pair
433         https://bugs.webkit.org/show_bug.cgi?id=115424
434
435         Reviewed by Eric Carlson.
436
437         * wtf/RetainPtr.h:
438         (WTF::adoptNSReference): When OBJC_NO_GC is set, make this an empty function, because in that case
439         CFRetain and -[NSObject retain] are the same thing and there is no need to call CFRetain and
440         -[NSObject release] to adopt an Objective-C object.
441
442 2013-04-30  Anders Carlsson  <andersca@apple.com>
443
444         String::isolatedCopy() can avoid a copy if the original is a temporary
445         https://bugs.webkit.org/show_bug.cgi?id=115425
446
447         Reviewed by Darin Adler.
448
449         * wtf/Compiler.h:
450         Add WTF_COMPILER_SUPPORTS_CXX_REFERENCE_QUALIFIED_FUNCTIONS define.
451
452         * wtf/text/WTFString.cpp:
453         (WTF::String::isolatedCopy):
454         * wtf/text/WTFString.h:
455         If COMPILER_SUPPORTS(CXX_REFERENCE_QUALIFIED_FUNCTIONS) is true, add two overloads of String::isolatedCopy().
456         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
457         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,
458         and if it's refcount is 1), then we can just steal the StringImpl from the original and avoid a copy altogether.
459
460 2013-04-30  Zalan Bujtas  <zalan@apple.com>
461
462         Animations fail to start on http://www.google.com/insidesearch/howsearchworks/thestory/
463         https://bugs.webkit.org/show_bug.cgi?id=111244
464
465         Reviewed by David Kilzer.
466         
467         Enable performance.now() as a minimal subset of Web Timing API. 
468         It returns DOMHighResTimeStamp, a monotonically increasing value representing the 
469         number of milliseconds from the start of the navigation of the current document.
470         JS libraries use this API to check against the requestAnimationFrame() timestamp.
471
472         * wtf/FeatureDefines.h:
473
474 2013-04-29  Cosmin Truta  <ctruta@blackberry.com>
475
476         [ARM] Expand the use of integer division
477         https://bugs.webkit.org/show_bug.cgi?id=115138
478
479         Reviewed by Benjamin Poulain.
480
481         * wtf/Platform.h: Added ENABLE_ARM_INTEGER_DIV.
482
483 2013-04-29  Anders Carlsson  <andersca@apple.com>
484
485         It should be an error to use adoptPtr with RefCounted subclasses
486         https://bugs.webkit.org/show_bug.cgi?id=115389
487
488         Reviewed by Benjamin Poulain.
489
490         * wtf/PassOwnPtr.h:
491         (WTF::adoptPtr):
492         Add COMPILE_ASSERTs.
493
494 2013-04-29  Patrick Gansterer  <paroga@webkit.org>
495
496         [WIN] Add workaround for UNUSED_PARAM()
497         https://bugs.webkit.org/show_bug.cgi?id=115350
498
499         Reviewed by Andreas Kling.
500
501         r147882 added an workaround for the MSVC compiler on Windows CE.
502         Extend this workaround to whole MSVC compiler, since the same
503         problem occurs with the Visual Studio 10 compiler too.
504
505         * wtf/UnusedParam.h:
506
507 2013-04-29  Patrick Gansterer  <paroga@webkit.org>
508
509         [WIN] Add WTF_USE_IMLANG_FONT_LINK2
510         https://bugs.webkit.org/show_bug.cgi?id=115198
511
512         Reviewed by Andreas Kling.
513
514         * wtf/Platform.h:
515
516 2013-04-29  Patrick Gansterer  <paroga@webkit.org>
517
518         Define USE(ICU_UNICODE) if USE(WCHAR_UNICODE) is false
519         https://bugs.webkit.org/show_bug.cgi?id=115349
520
521         Reviewed by Andreas Kling.
522
523         Since we support only ICU and WCHAR as Unicode backend (ICU is the default)
524         automatically use ICU if WCHAR was not selected via compiler defines.
525
526         * wtf/Platform.h:
527
528 2013-04-29  Patrick Gansterer  <paroga@webkit.org>
529
530         Build fix for WinCE after r148888 and r149097
531         https://bugs.webkit.org/show_bug.cgi?id=115168
532
533         Reviewed by Anders Carlsson.
534
535         When using compiler intrinsics on Windows CE the compiler complains
536         about wrong linkage specification of replaced CRT functions defined
537         in math.h. This is because the compiler has intrinsics for this
538         functions defined, and requires them to have extern "C" linkage.
539
540         * wtf/MathExtras.h:
541         (wtf_atan2): Added extern "C" to function signature.
542         (wtf_fmod): Ditto.
543         (wtf_pow): Ditto.
544
545 2013-04-29  Carlos Garcia Campos  <cgarcia@igalia.com>
546
547         Unreviewed. Fix make distcheck.
548
549         * GNUmakefile.list.am: Add missing header file to compilation.
550
551 2013-04-27  Darin Adler  <darin@apple.com>
552
553         Move from constructor and member function adoptCF/NS to free function adoptCF/NS.
554         https://bugs.webkit.org/show_bug.cgi?id=115307
555
556         Reviewed by Geoffrey Garen.
557
558         * wtf/RunLoopTimerCF.cpp:
559         (WTF::RunLoopTimerBase::start):
560         * wtf/SchedulePair.h:
561         (WTF::SchedulePair::SchedulePair):
562         * wtf/SchedulePairMac.mm:
563         (WTF::SchedulePair::SchedulePair):
564         * wtf/unicode/icu/CollatorICU.cpp:
565         (WTF::Collator::userDefault):
566         Use adoptCF free function.
567
568 2013-04-26  Geoffrey Garen  <ggaren@apple.com>
569
570         Filled out more cases of branch folding in bytecode when emitting expressions into a branching context
571         https://bugs.webkit.org/show_bug.cgi?id=115057
572
573         Reviewed by Filip Pizlo.
574
575         Added a helper constructor for TriState so clients can make one without
576         branching or making assumptions about the integer values of TriStates.
577
578         * wtf/TriState.h:
579         (WTF::triState):
580         (WTF):
581
582 2013-04-26  Roger Fong  <roger_fong@apple.com>
583
584         Make Apple Windows VS2010 build results into and get dependencies from __32 suffixed folders.
585         Make the DebugSuffix configuration use _debug dependencies.
586
587         * WTF.vcxproj/WTF.make:
588         * WTF.vcxproj/WTF.vcxproj:
589         * WTF.vcxproj/WTFCommon.props:
590         * WTF.vcxproj/WTFDebug.props:
591         * WTF.vcxproj/WTFGenerated.make:
592         * WTF.vcxproj/WTFGenerated.vcxproj:
593         * WTF.vcxproj/WTFGeneratedCommon.props:
594         * WTF.vcxproj/WTFGeneratedDebug.props:
595         * WTF.vcxproj/WTFGeneratedProduction.props:
596         * WTF.vcxproj/WTFGeneratedRelease.props:
597         * WTF.vcxproj/WTFProduction.props:
598         * WTF.vcxproj/WTFRelease.props:
599         * WTF.vcxproj/build-generated-files.sh:
600         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
601         (react_to_vsprops_changes):
602
603 2013-04-26  Martin Robinson  <mrobinson@igalia.com>
604
605         Remove the remaining Skia #ifdefs
606         https://bugs.webkit.org/show_bug.cgi?id=114886
607
608         Reviewed by Benjamin Poulain.
609
610         * wtf/Platform.h:
611
612 2013-04-26  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
613
614         Add move semantics to RefPtr
615         https://bugs.webkit.org/show_bug.cgi?id=115033
616
617         Reviewed by Anders Carlsson.
618
619         Add move constructors and move assignment operators to RefPtr when
620         COMPILER_SUPPORTS(CXX_RVALUE_REFERENCES).
621         This obviates unnecessary reffing/ureffing when RefPtr is created
622         or assigned from rvalue references.
623
624         * wtf/RefPtr.h:
625         (RefPtr):
626         (WTF::RefPtr::RefPtr):
627         (WTF::RefPtr::operator=):
628
629 2013-04-26  Andreas Kling  <akling@apple.com>
630
631         Remove wxWebKit from WTF.
632         <http://webkit.org/b/115249>
633
634         Reviewed by Antti Koivisto.
635
636         * wscript: Removed.
637         * wtf/ArrayBufferView.h:
638         (ArrayBufferView):
639         * wtf/CurrentTime.cpp:
640         * wtf/DisallowCType.h:
641         * wtf/ExportMacros.h:
642         * wtf/FeatureDefines.h:
643         * wtf/Platform.h:
644         * wtf/text/WTFString.h:
645         (String):
646         * wtf/wx/MainThreadWx.cpp: Removed.
647         * wtf/wx/StringWx.cpp: Removed.
648
649 2013-04-25  Filip Pizlo  <fpizlo@apple.com>
650
651         Unreviewed, roll out http://trac.webkit.org/changeset/148999
652         It broke http://kripken.github.io/ammo.js/examples/new/ammo.html
653
654         * wtf/TriState.h:
655
656 2013-04-25  Oliver Hunt  <oliver@apple.com>
657
658         Fix 32bit build
659
660         * wtf/StackBounds.cpp:
661         (WTF::StackBounds::initialize):
662
663 2013-04-25  Oliver Hunt  <oliver@apple.com>
664
665         Stack guards are too conservative
666         https://bugs.webkit.org/show_bug.cgi?id=115147
667
668         Reviewed by Mark Hahnenberg.
669
670         Use getrlimit on darwin to get the stack size for the main thread.
671
672         * wtf/StackBounds.cpp:
673         (WTF::StackBounds::initialize):
674
675 2013-04-25  Andreas Kling  <akling@apple.com>
676
677         Remove ENABLE(PARSED_STYLE_SHEET_CACHING) and make it always-on.
678
679         Rubber-stamped by Anders Koivisto.
680
681         * wtf/FeatureDefines.h:
682
683 2013-04-25  peavo@outlook.com  <peavo@outlook.com>
684
685         [Windows] Compile fix.
686         https://bugs.webkit.org/show_bug.cgi?id=115170
687
688         Reviewed by Filip Pizlo.
689
690         Forward declare function, instead of including intrin.h.
691
692         * wtf/Atomics.h:
693
694 2013-04-25  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
695
696         Use std::move in AtomicString
697         https://bugs.webkit.org/show_bug.cgi?id=115102
698
699         Reviewed by Anders Carlsson.
700
701         Use std::move in AtomicString instead of direct casting to rvalue references.
702
703         * wtf/text/AtomicString.h:
704         (AtomicString):
705         (WTF::AtomicString::AtomicString):
706         (WTF::AtomicString::operator=):
707
708 2013-04-25  Patrick Gansterer  <paroga@webkit.org>
709
710         Unreviewed WinCE build fix after r148888.
711
712         * wtf/Atomics.h: WinCE version of intrin.h is called cmnintrin.h.
713
714 2013-04-24  Roger Fong  <roger_fong@apple.com>
715
716         Have VS2010 WebKit solution look in WebKit_Libraries/lib32 for dependencies.
717
718         * WTF.vcxproj/build-generated-files.sh:
719
720 2013-04-24  Benjamin Poulain  <benjamin@webkit.org>
721
722         Use post-branch store for RefCountedBase::derefBase
723         https://bugs.webkit.org/show_bug.cgi?id=115078
724
725         Reviewed by Andreas Kling.
726
727         * wtf/RefCounted.h:
728         (WTF::RefCountedBase::derefBase): This makes the assembly easier to follow.
729
730 2013-04-23  Geoffrey Garen  <ggaren@apple.com>
731
732         Filled out more cases of branch folding in bytecode when emitting expressions into a branching context
733         https://bugs.webkit.org/show_bug.cgi?id=115057
734
735         Reviewed by Filip Pizlo.
736
737         Added a helper constructor for TriState so clients can make one without
738         branching or making assumptions about the integer values of TriStates.
739
740         * wtf/TriState.h:
741         (WTF::triState):
742         (WTF):
743
744 2013-04-23  Roger Fong  <roger_fong@apple.com>
745
746         AppleWin build fix.
747
748         * WTF.vcproj/WTF.vcproj:
749
750 2013-04-23  Benjamin Poulain  <bpoulain@apple.com>
751
752         Remove unused code of RefCounted after chromium removal
753         https://bugs.webkit.org/show_bug.cgi?id=115009
754
755         Reviewed by Ryosuke Niwa.
756
757         * wtf/RefCounted.h:
758         (WTF::RefCountedBase::refCount):
759         (RefCountedBase):
760         It looks like addressOfCount() is no longer needed.
761         Also change the type back to unsigned as it make more sense.
762
763 2013-04-23  David Kilzer  <ddkilzer@apple.com>
764
765         RetainPtr.h should compile with -Wshorten-64-to-32
766         <http://webkit.org/b/115047>
767
768         Reviewed by Anders Carlsson.
769
770         Fixes the following warning:
771
772             RetainPtr.h:318:20: error: implicit conversion loses integer precision: 'CFHashCode' (aka 'unsigned long') to 'unsigned int' [-Werror,-Wshorten-64-to-32]
773                         return CFHash(o.get());
774                         ~~~~~~ ^~~~~~~~~~~~~~~
775
776         * wtf/RetainPtr.h:
777         (WTF::RetainPtrObjectHash::hash): Cast return value of CFHash()
778         to unsigned.  This has no effect on 32-bit architectures, but
779         takes the lower 32-bits of the CFHashCode (unsigned long) on
780         64-bit architectures, which is what happens implicitly now.
781
782 2013-04-22  Patrick Gansterer  <paroga@webkit.org>
783
784         [CMake] Move NullPtr.cpp from PlatformWinCE.cmake to CMakeLists.txt
785         https://bugs.webkit.org/show_bug.cgi?id=114557
786
787         Reviewed by Laszlo Gombos.
788
789         This file is not specific to Windwos CE. Move it the the general
790         CMakeLists.txt so other ports can use it to. It does not affect
791         ports which do not need it, since it contains a preprocessor guard.
792
793         * wtf/CMakeLists.txt:
794         * wtf/PlatformWinCE.cmake:
795
796 2013-04-22  Benjamin Poulain  <benjamin@webkit.org>
797
798         Remove the memory instrumentation code
799         https://bugs.webkit.org/show_bug.cgi?id=114931
800
801         Reviewed by Andreas Kling.
802
803         On Mac x86_64, the code removal cause the binary to be
804         9224 bytes smaller.
805
806         * GNUmakefile.list.am:
807         * WTF.pro:
808         * WTF.vcproj/WTF.vcproj:
809         * WTF.vcxproj/WTF.vcxproj:
810         * WTF.vcxproj/WTF.vcxproj.filters:
811         * WTF.xcodeproj/project.pbxproj:
812         * wtf/CMakeLists.txt:
813         * wtf/Forward.h:
814         * wtf/ListHashSet.h:
815         (ListHashSet):
816         (ListHashSetNodeAllocator):
817         (WTF::ListHashSetNodeAllocator::pool):
818         (WTF::ListHashSetNodeAllocator::pastPool):
819         * wtf/MemoryInstrumentation.cpp: Removed.
820         * wtf/MemoryInstrumentation.h: Removed.
821         * wtf/MemoryInstrumentationArrayBufferView.h: Removed.
822         * wtf/MemoryInstrumentationHashCountedSet.h: Removed.
823         * wtf/MemoryInstrumentationHashMap.h: Removed.
824         * wtf/MemoryInstrumentationHashSet.h: Removed.
825         * wtf/MemoryInstrumentationListHashSet.h: Removed.
826         * wtf/MemoryInstrumentationSequence.h: Removed.
827         * wtf/MemoryInstrumentationString.h: Removed.
828         * wtf/MemoryInstrumentationVector.h: Removed.
829         * wtf/MemoryObjectInfo.h: Removed.
830         * wtf/text/AtomicString.h:
831         * wtf/text/StringImpl.h:
832         (WTF::StringImpl::isASCIILiteral):
833         * wtf/text/WTFString.h:
834
835 2013-04-22  David Kilzer  <ddkilzer@apple.com>
836
837         StringImpl.h should compile with -Wshorten-64-to-32
838         <http://webkit.org/b/114970>
839
840         Reviewed by Darin Adler.
841
842         Fixes the following warnings with -Wshorten-64-to-32:
843
844             StringImpl.h:317:25: error: implicit conversion loses integer precision: 'uintptr_t' (aka 'unsigned long') to 'unsigned int' [-Werror,-Wshorten-64-to-32]
845                     unsigned hash = reinterpret_cast<uintptr_t>(this);
846                              ~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
847
848         * wtf/text/StringImpl.h:
849         (WTF::StringImpl::StringImpl): Add static_cast<uint32_t>() to
850         formalize taking the lower 32-bits of the pointer value on
851         64-bit architectures.
852
853 2013-04-22  Andreas Kling  <akling@apple.com>
854
855         Shrink baseline size of WTF::Vector on 64-bit by switching to unsigned capacity and size.
856         <http://webkit.org/b/97268>
857         <rdar://problem/12376519>
858
859         Reviewed by Sam Weinig.
860
861         Shrink Vector by 8 bytes on 64-bit by using 32-bit capacity and size.
862         Vector now inherits from VectorBuffer instead of having a VectorBuffer member;
863         this is necessary for m_size to fall into the padding after the base class members.
864
865         The WTF::Vector API still uses size_t.
866
867         Based on Blink r148313 by <cevans@chromium.org>.
868
869         * wtf/SizeLimits.cpp:
870         * wtf/Vector.h:
871         (WTF::VectorBufferBase::allocateBuffer):
872         (WTF::VectorBufferBase::tryAllocateBuffer):
873         (VectorBufferBase):
874         (WTF::VectorBuffer::shouldReallocateBuffer):
875         (Vector):
876         (WTF::Vector::Vector):
877         (WTF::Vector::capacity):
878         (WTF::Vector::at):
879         (WTF::Vector::data):
880         (WTF::Vector::swap):
881         (WTF::::Vector):
882         (WTF::::reserveCapacity):
883         (WTF::::tryReserveCapacity):
884         (WTF::::reserveInitialCapacity):
885         (WTF::::shrinkCapacity):
886         (WTF::::releaseBuffer):
887
888 2013-04-21  Filip Pizlo  <fpizlo@apple.com>
889
890         Memory barrier support should also ensure that we always do a compiler fence
891         https://bugs.webkit.org/show_bug.cgi?id=114934
892
893         Reviewed by Michael Saboff.
894         
895         This is a cherry-pick merge of the WTF part of r148836 from the dfgFourthTier
896         branch. It fixes a memory ordering bug that is likely asymptomatic, but
897         nonetheless real: TCSpinLock expects that using a memoryBarrierBeforeUnlock()
898         prior to setting lockword_ to 0 will ensure that the assignment to lockword_
899         won't get floated above any of the stores in the critical section. While that
900         memory barrier does indeed do the right thing on ARM, it doesn't do the right
901         thing on other architectures: it turns into empty code that the compiler blows
902         away, which is fine for the hardware since X86 won't reorder that store - but
903         it's not fine for the compiler, which may still do its own reorderings.
904         
905         The WTF part of r148836 fixes this by using a compiler fence: an empty asm
906         volatile block that is marked as clobbering memory.
907         
908         Instead of doing a separate surgical fix in trunk, I decided to merge the
909         whole WTF change over, to make merging easier in the future.
910         
911         Performance testing of this change in dfgFourthTier showed no regression.
912
913         * wtf/Atomics.h:
914         (WTF::compilerFence):
915         (WTF::armV7_dmb):
916         (WTF::armV7_dmb_st):
917         (WTF::loadLoadFence):
918         (WTF::loadStoreFence):
919         (WTF::storeLoadFence):
920         (WTF::storeStoreFence):
921         (WTF::memoryBarrierAfterLock):
922         (WTF::memoryBarrierBeforeUnlock):
923         (WTF::x86_mfence):
924
925 2013-04-22  David Kilzer  <ddkilzer@apple.com>
926
927         WTF::AtomicString::find() should take unsigned 'start' argument
928         <http://webkit.org/b/114958>
929
930         Reviewed by Darin Adler.
931
932         Fixes the following warnings with -Wshorten-64-to-32:
933
934             AtomicString.h:113:76: error: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Werror,-Wshorten-64-to-32]
935                 size_t find(UChar c, size_t start = 0) const { return m_string.find(c, start); }
936                                                                       ~~~~~~~~         ^~~~~
937             AtomicString.h:115:35: error: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Werror,-Wshorten-64-to-32]
938                     { return m_string.find(s, start, caseSentitive); }
939                              ~~~~~~~~         ^~~~~
940             AtomicString.h:117:35: error: implicit conversion loses integer precision: 'size_t' (aka 'unsigned long') to 'unsigned int' [-Werror,-Wshorten-64-to-32]
941                     { return m_string.find(s, start, caseSentitive); }
942                              ~~~~~~~~         ^~~~~
943
944         * wtf/text/AtomicString.h:
945         (WTF::AtomicString::find): Change type of 'start' argument from
946         size_t to unsigned.
947
948 2013-04-21  Benjamin Poulain  <benjamin@webkit.org>
949
950         Improve StringImpl code density for older ARM hardware
951         https://bugs.webkit.org/show_bug.cgi?id=114898
952
953         Reviewed by Geoffrey Garen.
954
955         Reduce the number of instructions needed for StringImpl::deref
956         on older ARM hardware.
957
958         The extra indirection should have a negligible impact on x86_64.
959
960         * wtf/text/StringImpl.cpp:
961         (WTF::StringImpl::destroy):
962         * wtf/text/StringImpl.h:
963         (StringImpl):
964         (WTF::StringImpl::deref):
965
966 2013-04-20  Allan Sandfeld Jensen  <allan.jensen@digia.com>
967
968         LLint should be able to use x87 instead of SSE for floating pointer
969         https://bugs.webkit.org/show_bug.cgi?id=112239
970
971         Reviewed by Filip Pizlo.
972
973         Disable GTK workaround now that LLInt does not require SSE2.
974
975         * wtf/Platform.h:
976
977 2013-04-19  Roger Fong  <roger_fong@apple.com>
978
979         Remove uses of WebKit_Source from AppleWin build in WTF.
980
981         * WTF.vcxproj/WTF.make:
982         * WTF.vcxproj/copy-files.cmd:
983         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
984         (react_to_vsprops_changes):
985         (react_to_webkit1_interface_changes):
986
987 2013-04-19  Benjamin Poulain  <benjamin@webkit.org>
988
989         Remove the declaration of MemoryObjectInfo from StringImpl
990         https://bugs.webkit.org/show_bug.cgi?id=114788
991
992         Reviewed by Andreas Kling.
993
994         * wtf/text/StringImpl.h: The declaration is an other left over from chromium.
995
996 2013-04-19  Benjamin Poulain  <benjamin@webkit.org>
997
998         Make StringImpl::cost const
999         https://bugs.webkit.org/show_bug.cgi?id=114790
1000
1001         Reviewed by Andreas Kling.
1002
1003         * wtf/text/StringImpl.h:
1004         (WTF::StringImpl::cost):
1005
1006 2013-04-19  Roger Fong  <roger_fong@apple.com>
1007
1008         Unreviewed. WebKit_Source is incorrectly set.
1009
1010         * WTF.vcxproj/WTF.make:
1011
1012 2013-04-19  Alberto Garcia  <agarcia@igalia.com>
1013
1014         OSAllocatorPosix: fix build warnings about unused parameters in QNX
1015         https://bugs.webkit.org/show_bug.cgi?id=114859
1016
1017         Reviewed by Carlos Garcia Campos.
1018
1019         * wtf/OSAllocatorPosix.cpp:
1020         (WTF::OSAllocator::reserveUncommitted):
1021
1022 2013-04-19  Dan Beam  <dbeam@chromium.org>
1023
1024         Remove unmaintained feature REQUEST_AUTOCOMPLETE
1025         https://bugs.webkit.org/show_bug.cgi?id=114846
1026
1027         Reviewed by Kent Tamura.
1028
1029         * wtf/FeatureDefines.h: Remove REQUEST_AUTOCOMPLETE as a feature definition.
1030
1031 2013-04-18  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
1032
1033         Speculative build fix for Qt Mountain Lion Release after r148639.
1034         https://bugs.webkit.org/show_bug.cgi?id=114793
1035
1036         Reviewed by Michael Saboff.
1037
1038         * wtf/CurrentTime.cpp:
1039
1040 2013-04-17  Mark Lam  <mark.lam@apple.com>
1041
1042         Added currentCPUTime() and currentCPUTimeMS().
1043         https://bugs.webkit.org/show_bug.cgi?id=114577.
1044
1045         Reviewed by Geoffrey Garen.
1046
1047         The currentCPUTime() implementation came from the old TimeoutChecker.cpp.
1048
1049         * wtf/CurrentTime.cpp:
1050         (WTF::currentCPUTime):
1051         (WTF::currentCPUTimeMS):
1052         * wtf/CurrentTime.h:
1053
1054 2013-04-17  Ryosuke Niwa  <rniwa@webkit.org>
1055
1056         REGRESSION(r148584): WebKit nightly builds don't load any page
1057         https://bugs.webkit.org/show_bug.cgi?id=114752
1058
1059         Reviewed by Anders Carlsson.
1060
1061         We can't use C++ style (//) comments in Platform.h because WebKit2/DerivedSource.make doesn't know
1062         how to strip it to be merged with *.sb.in to generate *.sb files. Specifically, we have:
1063         
1064         # Some versions of clang incorrectly strip out // comments in c89 code.
1065         # Use -traditional as a workaround, but only when needed since that causes
1066         # other problems with later versions of clang.
1067         ifeq ($(shell echo '//x' | $(CC) -E -P -x c -std=c89 - | grep x),)
1068         TEXT_PREPROCESSOR_FLAGS=-E -P -x c -traditional -w
1069         else
1070         TEXT_PREPROCESSOR_FLAGS=-E -P -x c -std=c89 -w
1071         endif
1072
1073         * wtf/Platform.h:
1074
1075 2013-04-17  Brent Fulgham  <bfulgham@webkit.org>
1076
1077         [Windows, WinCairo] Remove Include Settings for Pthreads from WTF
1078         https://bugs.webkit.org/show_bug.cgi?id=114694
1079
1080         Reviewed by Ryosuke Niwa.
1081
1082         * WTF.vcproj/WTFCommon.vsprops: Remove pthread search path.
1083         * WTF.vcxproj/WTFCommon.props: Remove pthread search path.
1084         * wtf/FastMalloc.cpp: Guard pthread.h include for non-pthread
1085         builds.
1086
1087 2013-04-16  Oliver Hunt  <oliver@apple.com>
1088
1089         Harden FastMalloc against partial pointer overflows
1090         https://bugs.webkit.org/show_bug.cgi?id=114716
1091
1092         Reviewed by Gavin Barraclough.
1093
1094         Bite the bullet and perform object alignment checks on free.
1095         malloc/free micro benchmark shows a regression, but real
1096         benchmarks don't.  There's a little code motion in this avoid
1097         taking too much of a performance hit.  In addition to the
1098         alignment check we also validate the containing span as
1099         we've already taken the hit of finding it.
1100
1101         * wtf/FastMalloc.cpp:
1102         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
1103
1104 2013-04-16  Sam Weinig  <sam@webkit.org>
1105
1106         Fix fallout after r148545.
1107
1108         * wtf/Platform.h:
1109         Move Platform defines that were incorrectly in WebCore, into Platform.h
1110
1111 2013-04-15  Commit Queue  <rniwa@webkit.org>
1112
1113         Unreviewed, rolling out r148488.
1114         http://trac.webkit.org/changeset/148488
1115         https://bugs.webkit.org/show_bug.cgi?id=114660
1116
1117         Roll back in r148462 since it was a false positive. (Requested
1118         by rniwa on #webkit).
1119
1120         * wtf/FastMalloc.cpp:
1121         (WTF):
1122         (WTF::setThreadHeap):
1123         (WTF::TCMalloc_ThreadCache::GetThreadHeap):
1124         (WTF::TCMalloc_ThreadCache::InitTSD):
1125         * wtf/ThreadSpecificWin.cpp:
1126         (WTF::destructorsList):
1127         (WTF::destructorsMutex):
1128         (WTF::threadSpecificKeyCreate):
1129         (WTF::threadSpecificKeyDelete):
1130
1131 2013-04-15  Commit Queue  <rniwa@webkit.org>
1132
1133         Unreviewed, rolling out r148462.
1134         http://trac.webkit.org/changeset/148462
1135         https://bugs.webkit.org/show_bug.cgi?id=114658
1136
1137         Broke Windows builds (Requested by rniwa on #webkit).
1138
1139         * wtf/FastMalloc.cpp:
1140         (WTF):
1141         (WTF::setThreadHeap):
1142         (WTF::TCMalloc_ThreadCache::GetThreadHeap):
1143         (WTF::TCMalloc_ThreadCache::InitTSD):
1144         * wtf/ThreadSpecificWin.cpp:
1145         (WTF::destructorsList):
1146         (WTF::destructorsMutex):
1147         (WTF::threadSpecificKeyCreate):
1148         (WTF::threadSpecificKeyDelete):
1149
1150 2013-04-15  Julien Brianceau  <jbrianceau@nds.com>
1151
1152         LLInt SH4 backend implementation
1153         https://bugs.webkit.org/show_bug.cgi?id=112886
1154
1155         Reviewed by Oliver Hunt.
1156
1157         * wtf/Platform.h:
1158
1159 2013-04-15  Patrick Gansterer  <paroga@webkit.org>
1160
1161         [CMake] Add WTF_USE_*_UNICODE variables
1162         https://bugs.webkit.org/show_bug.cgi?id=114556
1163
1164         Reviewed by Brent Fulgham.
1165
1166         WTF_USE_ICU_UNICODE and WTF_USE_WCHAR_UNICODE are used to
1167         reduce duplication in the platform specific CMake files.
1168
1169         * wtf/CMakeLists.txt:
1170         * wtf/PlatformBlackBerry.cmake:
1171         * wtf/PlatformEfl.cmake:
1172         * wtf/PlatformWinCE.cmake:
1173
1174 2013-04-15  Patrick Gansterer  <paroga@webkit.org>
1175
1176         [WIN] Remove remaining calls to pthread from WTF
1177         https://bugs.webkit.org/show_bug.cgi?id=114563
1178
1179         Reviewed by Brent Fulgham.
1180
1181         Replace pthread_key_create with threadSpecificKeyCreate and
1182         pthread_setspecific with threadSpecificSet from ThreadSpecific.h.
1183         These functions provide a windows-specific implementation for the pthread functions,
1184         but require that the thread has been created with WTF::createThread(),
1185         which is the case for all threads created within WebKit.
1186         To call this function from fastMalloc we must not call fastMalloc in them.
1187         To fulfill this constraint ThreadSpecificWin will allocated its memory through the
1188         original malloc implementation and use the stack for local and static variables.
1189         Keep the Darwin implementation as it is, since it contains some performance tweaks.
1190
1191         * wtf/FastMalloc.cpp:
1192         * wtf/ThreadSpecificWin.cpp:
1193         (WTF::destructorsList):
1194         (WTF::destructorsMutex):
1195         (WTF::threadSpecificKeyCreate):
1196         (WTF::threadSpecificKeyDelete):
1197
1198 2013-04-14  Oliver Hunt  <oliver@apple.com>
1199
1200         Try to fix non-apple windows builds
1201
1202         * wtf/Platform.h:
1203
1204 2013-04-14  David Kilzer  <ddkilzer@apple.com>
1205
1206         Add EnumClass.h to project files
1207         <http://webkit.org/b/114582>
1208
1209         Rubber-stamped by Dan Bernstein.
1210
1211         * WTF.pro: Add EnumClass.h to project.
1212         * WTF.vcproj/WTF.vcproj: Ditto.
1213         * WTF.vcxproj/WTF.vcxproj: Ditto.
1214         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
1215         * WTF.xcodeproj/project.pbxproj: Ditto.
1216
1217 2013-04-12  Oliver Hunt  <oliver@apple.com>
1218
1219         Apologies to all, I have no idea what happened to cause this change.
1220
1221         * wtf/Platform.h:
1222
1223 2013-04-12  Oliver Hunt  <oliver@apple.com>
1224
1225         [Qt][Win] r148257 broke the build
1226         https://bugs.webkit.org/show_bug.cgi?id=114512
1227
1228         Build fix.
1229
1230         * wtf/Platform.h:
1231
1232 2013-04-11  Oliver Hunt  <oliver@apple.com>
1233
1234         Add more type validation to debug builds
1235         https://bugs.webkit.org/show_bug.cgi?id=114478
1236
1237         Reviewed by Mark Hahnenberg.
1238
1239         Add BINDING_VALIDATION flag and make RELEASE_ASSERT use UNLIKELY.
1240
1241         * wtf/Assertions.h:
1242         * wtf/Platform.h:
1243
1244 2013-04-10  Thiago Marcos P. Santos  <thiago.santos@intel.com>
1245
1246         [WTF] Get rid of truncated thread name warnings for non-Windows platforms
1247         https://bugs.webkit.org/show_bug.cgi?id=114266
1248
1249         Reviewed by Ryosuke Niwa.
1250
1251         Hide the annoying message from ports that are not really interested
1252         about it.
1253
1254         * wtf/Threading.cpp:
1255         (WTF::createThread):
1256
1257 2013-04-10  Benjamin Poulain  <bpoulain@apple.com>
1258
1259         Mass remove all the empty directories
1260
1261         Rubberstamped by Ryosuke Niwa.
1262
1263         * wtf/qt/compat: Removed.
1264         * wtf/unicode/glib: Removed.
1265         * wtf/unicode/qt4: Removed.
1266         * wtf/unicode/wince: Removed.
1267
1268 2013-04-08  Anders Carlsson  <andersca@apple.com>
1269
1270         Remove unneeded headers from FrameLoader.h
1271         https://bugs.webkit.org/show_bug.cgi?id=114223
1272
1273         Reviewed by Geoffrey Garen.
1274
1275         * wtf/Forward.h:
1276         Add PrintStream.
1277
1278         * wtf/HashTable.h:
1279         Don't include DataLog.h unless DUMP_HASHTABLE_STATS_PER_TABLE is 1.
1280
1281 2013-04-10  Laszlo Gombos  <l.gombos@samsung.com>
1282
1283         Remove ENABLE_3D_PLUGIN
1284         https://bugs.webkit.org/show_bug.cgi?id=108002
1285
1286         Reviewed by Antti Koivisto.
1287
1288         Remove ENABLE_3D_PLUGIN, it was only used by Chromium.
1289
1290         * wtf/FeatureDefines.h:
1291
1292 2013-04-09  Patrick Gansterer  <paroga@webkit.org>
1293
1294         [CMake] Remove conditional source file lists in WTF
1295         https://bugs.webkit.org/show_bug.cgi?id=114250
1296
1297         Reviewed by Laszlo Gombos.
1298
1299         Use the #ifdef in the source file instead of conditional adding
1300         files to the list of source files. This allows us to remove the
1301         information of enabled features from CMake in next step.
1302
1303         * wtf/CMakeLists.txt:
1304
1305 2013-04-08  Ryosuke Niwa  <rniwa@webkit.org>
1306
1307         Remove WTF.gyp/WTF.gypi
1308         https://bugs.webkit.org/show_bug.cgi?id=114237
1309
1310         Reviewed by Maciej Stachowiak.
1311
1312         * WTF.gyp: Removed.
1313         * WTF.gyp/.gitignore: Removed.
1314         * WTF.gyp/WTF.gyp: Removed.
1315         * WTF.gypi: Removed.
1316
1317 2013-04-08  Benjamin Poulain  <benjamin@webkit.org>
1318
1319         Remove HTML Notification
1320         https://bugs.webkit.org/show_bug.cgi?id=114231
1321
1322         Reviewed by Ryosuke Niwa.
1323
1324         * wtf/FeatureDefines.h:
1325
1326 2013-04-08  Benjamin Poulain  <benjamin@webkit.org>
1327
1328         wtf/dtoa/* uses a confusing name to reference its buffers
1329         https://bugs.webkit.org/show_bug.cgi?id=109709
1330
1331         Reviewed by Darin Adler.
1332
1333         The data structure Vector in wtf/dtoa has nothing to do with a traditional
1334         vector, is it just a pointer and the length of the pointed buffer.
1335
1336         Rename it to BufferReference to avoid mistakes.
1337
1338         * wtf/dtoa/bignum-dtoa.cc:
1339         * wtf/dtoa/bignum-dtoa.h:
1340         * wtf/dtoa/bignum.cc:
1341         * wtf/dtoa/bignum.h:
1342         (Bignum):
1343         * wtf/dtoa/double-conversion.cc:
1344         * wtf/dtoa/fast-dtoa.cc:
1345         * wtf/dtoa/fast-dtoa.h:
1346         * wtf/dtoa/fixed-dtoa.cc:
1347         * wtf/dtoa/fixed-dtoa.h:
1348         (double_conversion):
1349         * wtf/dtoa/strtod.cc:
1350         * wtf/dtoa/strtod.h:
1351         (double_conversion):
1352         * wtf/dtoa/utils.h:
1353         (double_conversion):
1354         (WTF::double_conversion::BufferReference::BufferReference):
1355         (WTF::double_conversion::BufferReference::SubBufferReference):
1356         (StringBuilder):
1357
1358 2013-04-08  Alberto Garcia  <agarcia@igalia.com>
1359
1360         [BlackBerry] MathExtras: macros defined in math.h conflict with the real functions
1361         https://bugs.webkit.org/show_bug.cgi?id=112683
1362
1363         Reviewed by Darin Adler.
1364
1365         After calls to signbit and friends were prefixed with std:: in
1366         r143232, the BlackBerry port no longer compiles.
1367
1368         The solution is to get rid of the macros defined in math.h and use
1369         the real functions instead.
1370
1371         * wtf/MathExtras.h:
1372
1373 2013-04-08  Max Vujovic  <mvujovic@adobe.com>
1374
1375         REGRESSION (r147502): Animations of CA filters broken
1376         https://bugs.webkit.org/show_bug.cgi?id=114067
1377
1378         Reviewed by Dean Jackson.
1379
1380         Revert r147502 [1] because it broke CA filter animations.
1381         
1382         [1]: http://trac.webkit.org/changeset/147502
1383
1384         * wtf/Platform.h:
1385
1386 2013-04-08  Andreas Kling  <akling@apple.com>
1387
1388         REGRESSION(r147894): Broke WTFReportBacktrace() on Mac.
1389         <http://webkit.org/b/114174>
1390
1391         Reviewed by Anders Carlsson.
1392
1393         An #elif !OS(ANDROID) block was erroneously removed, turn it into an #else instead since
1394         that path will still be taken for OS(DARWIN).
1395
1396         * wtf/Assertions.cpp:
1397
1398 2013-04-08  Oliver Hunt  <oliver@apple.com>
1399
1400         Build fix.
1401
1402         Remove unnecessary include of <wtf/Forward.h> from Vector.h
1403
1404         * wtf/Vector.h:
1405
1406 2013-04-08  Csaba Osztrogonác  <ossy@webkit.org>
1407
1408         Unreviewed trivial buildfix after r147799.
1409
1410         Add an ifdef guard to ensure Qt uses its own monotonicallyIncreasingTime()
1411         implemenation instead of the GLIB based one.
1412
1413         * wtf/CurrentTime.cpp:
1414         (WTF):
1415
1416 2013-04-07  Benjamin Poulain  <benjamin@webkit.org>
1417
1418         Remove the android code from WebKit Template Framework
1419         https://bugs.webkit.org/show_bug.cgi?id=114138
1420
1421         Reviewed by Dirk Schulze.
1422
1423         * wtf/Assertions.cpp:
1424         * wtf/Atomics.h:
1425         * wtf/MathExtras.h:
1426         * wtf/Platform.h:
1427         * wtf/ThreadIdentifierDataPthreads.cpp:
1428
1429 2013-04-07  Oliver Hunt  <oliver@apple.com>
1430
1431         Add bounds checking for WTF::Vector::operator[]
1432         https://bugs.webkit.org/show_bug.cgi?id=89600
1433
1434         Reviewed by Filip Pizlo.
1435
1436         Add a template parameter to Vector<> that controls whether
1437         bounds checking is performed in release builds or not.
1438         Defaults to crashing on overflow.
1439
1440         * wtf/Forward.h:
1441         (WTF):
1442         * wtf/Vector.h:
1443         (WTF):
1444         (Vector):
1445         (WTF::Vector::at):
1446         (WTF::Vector::removeLast):
1447         (WTF::::Vector):
1448         (WTF::=):
1449         (WTF::::contains):
1450         (WTF::::find):
1451         (WTF::::reverseFind):
1452         (WTF::::fill):
1453         (WTF::::appendRange):
1454         (WTF::::expandCapacity):
1455         (WTF::::tryExpandCapacity):
1456         (WTF::::resize):
1457         (WTF::::shrink):
1458         (WTF::::grow):
1459         (WTF::::reserveCapacity):
1460         (WTF::::tryReserveCapacity):
1461         (WTF::::reserveInitialCapacity):
1462         (WTF::::shrinkCapacity):
1463         (WTF::::append):
1464         (WTF::::tryAppend):
1465         (WTF::::appendSlowCase):
1466         (WTF::::uncheckedAppend):
1467         (WTF::::appendVector):
1468         (WTF::::insert):
1469         (WTF::::prepend):
1470         (WTF::::remove):
1471         (WTF::::reverse):
1472         (WTF::::releaseBuffer):
1473         (WTF::::checkConsistency):
1474         (WTF::deleteAllValues):
1475         (WTF::swap):
1476         (WTF::operator==):
1477         (WTF::operator!=):
1478
1479 2013-04-07  Patrick Gansterer  <paroga@webkit.org>
1480
1481         [WIN] Fix problems with export macros of AutodrainedPool
1482         https://bugs.webkit.org/show_bug.cgi?id=114132
1483
1484         Reviewed by Geoffrey Garen.
1485
1486         Exporting an inline function results in an error with the MS compiler.
1487
1488         * wtf/AutodrainedPool.h:
1489         (AutodrainedPool):
1490         (WTF::AutodrainedPool::AutodrainedPool):
1491         (WTF::AutodrainedPool::~AutodrainedPool):
1492         (WTF::AutodrainedPool::cycle):
1493
1494 2013-04-07  Patrick Gansterer  <paroga@webkit.org>
1495
1496         [WinCE] Add workaround for UNUSED_PARAM()
1497         https://bugs.webkit.org/show_bug.cgi?id=113440
1498
1499         Reviewed by Benjamin Poulain.
1500
1501         The MSVC compiler for Windwos CE throws an error when
1502         an function parameter is passed to UNUSED_PARAM() and
1503         its type is only forward declared.
1504
1505         * wtf/UnusedParam.h:
1506
1507 2013-04-07  Patrick Gansterer  <paroga@webkit.org>
1508
1509         Do not check if WTF_ARM_ARCH_VERSION is defined in WTF_ARM_ARCH_AT_LEAST macro
1510         https://bugs.webkit.org/show_bug.cgi?id=114127
1511
1512         Reviewed by Benjamin Poulain.
1513
1514         Platform.h defines WTF_ARM_ARCH_VERSION for CPU(ARM) always and removing
1515         the check works around a bug in older Microsoft compiler versions.
1516
1517         * wtf/Platform.h:
1518
1519 2013-04-07  David Kilzer  <ddkilzer@apple.com>
1520
1521         Remove the rest of SVG_DOM_OBJC_BINDINGS
1522         <http://webkit.org/b/114112>
1523
1524         Reviewed by Geoffrey Garen.
1525
1526         * wtf/FeatureDefines.h:
1527         - Remove ENABLE_SVG_DOM_OBJC_BINDINGS macro.
1528
1529 2013-04-06  Geoffrey Garen  <ggaren@apple.com>
1530
1531         Removed v8 bindings hooks from IDL files
1532         https://bugs.webkit.org/show_bug.cgi?id=114091
1533
1534         Reviewed by Anders Carlsson and Sam Weinig.
1535
1536         * wtf/ArrayBuffer.h:
1537         (WTF):
1538         (WTF::ArrayBufferContents::ArrayBufferContents):
1539         (WTF::ArrayBufferContents::transfer):
1540         (ArrayBufferContents):
1541         (ArrayBuffer):
1542         (WTF::ArrayBufferContents::~ArrayBufferContents):
1543         * wtf/Platform.h:
1544
1545 2013-04-05  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
1546
1547         [GTK] Change from PLATFORM(GTK) to USE(GLIB) in WTF/CurrentTime.cpp
1548         https://bugs.webkit.org/show_bug.cgi?id=114061
1549
1550         Reviewed by Gustavo Noronha Silva.
1551
1552         Now other ports using GLib can use the correct implementation
1553         and not the fallback one without adding any other PLATFORM guards
1554         here.
1555
1556         * wtf/CurrentTime.cpp:
1557         (WTF):
1558
1559 2013-04-05  Geoffrey Garen  <ggaren@apple.com>
1560
1561         Made USE(JSC) unconditional
1562         https://bugs.webkit.org/show_bug.cgi?id=114058
1563
1564         Reviewed by Anders Carlsson.
1565
1566         * wtf/ThreadRestrictionVerifier.h:
1567         (WTF):
1568         * wtf/WTFThreadData.cpp:
1569         (WTF::WTFThreadData::WTFThreadData):
1570         (WTF::WTFThreadData::~WTFThreadData):
1571         * wtf/WTFThreadData.h:
1572         (WTFThreadData):
1573         * wtf/text/StringImpl.cpp:
1574         (WTF::StringImpl::~StringImpl):
1575
1576 2013-04-05  Roger Fong  <roger_fong@apple.com>
1577
1578         More VS2010 solution makefile fixes.
1579         <rdar://problem/13588964>
1580
1581         * WTF.vcxproj/WTF.make:
1582
1583 2013-04-05  Anders Carlsson  <andersca@apple.com>
1584
1585         Remove more dead Chromium code from WTF
1586         https://bugs.webkit.org/show_bug.cgi?id=114037
1587
1588         Reviewed by Allan Sandfeld Jensen.
1589
1590         * wtf/CurrentTime.cpp:
1591         (WTF):
1592         * wtf/DisallowCType.h:
1593         * wtf/ExportMacros.h:
1594         * wtf/MainThread.cpp:
1595         * wtf/Platform.h:
1596
1597 2013-04-05  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
1598
1599         [EFL] Disable GLOBAL_FAST_MALLOC_NEW by default.
1600         https://bugs.webkit.org/show_bug.cgi?id=114031
1601
1602         Reviewed by Alexis Menard.
1603
1604         Follow what some other ports already do and avoid globally overriding
1605         the `new' and `delete' operators with the ones in FastMalloc.
1606
1607         In many cases, third-party or client code allocates memory with
1608         standard library calls but the memory gets deleted by FastMalloc,
1609         causing a crash. The reverse (ie. memory being allocated by FastMalloc
1610         and freed by the system libraries) is also possible.
1611
1612         Commits 135666 and 121018 provide more information about this, as well
1613         as comment 6 in bug 89358.
1614
1615         * wtf/Platform.h:
1616
1617 2013-04-05  Benjamin Poulain  <bpoulain@apple.com>
1618
1619         Remove WTFURL from WebKit
1620         https://bugs.webkit.org/show_bug.cgi?id=113994
1621
1622         Reviewed by Ryosuke Niwa.
1623
1624         Painful, but that is for the best now :(
1625
1626         * GNUmakefile.list.am:
1627         * WTF.xcodeproj/project.pbxproj:
1628         * wtf/MemoryInstrumentationParsedURL.h: Removed.
1629         * wtf/url/api/ParsedURL.cpp: Removed.
1630         * wtf/url/api/ParsedURL.h: Removed.
1631         * wtf/url/api/URLBuffer.h: Removed.
1632         * wtf/url/api/URLQueryCharsetConverter.h: Removed.
1633         * wtf/url/api/URLString.cpp: Removed.
1634         * wtf/url/api/URLString.h: Removed.
1635         * wtf/url/src/RawURLBuffer.h: Removed.
1636         * wtf/url/src/URLCanon.h: Removed.
1637         * wtf/url/src/URLCanonEtc.cpp: Removed.
1638         * wtf/url/src/URLCanonFilesystemurl.cpp: Removed.
1639         * wtf/url/src/URLCanonFileurl.cpp: Removed.
1640         * wtf/url/src/URLCanonHost.cpp: Removed.
1641         * wtf/url/src/URLCanonICU.cpp: Removed.
1642         * wtf/url/src/URLCanonIP.cpp: Removed.
1643         * wtf/url/src/URLCanonInternal.cpp: Removed.
1644         * wtf/url/src/URLCanonInternal.h: Removed.
1645         * wtf/url/src/URLCanonMailto.cpp: Removed.
1646         * wtf/url/src/URLCanonPath.cpp: Removed.
1647         * wtf/url/src/URLCanonPathurl.cpp: Removed.
1648         * wtf/url/src/URLCanonQuery.cpp: Removed.
1649         * wtf/url/src/URLCanonRelative.cpp: Removed.
1650         * wtf/url/src/URLCanonStdURL.cpp: Removed.
1651         * wtf/url/src/URLCharacterTypes.cpp: Removed.
1652         * wtf/url/src/URLCharacterTypes.h: Removed.
1653         * wtf/url/src/URLComponent.h: Removed.
1654         * wtf/url/src/URLFile.h: Removed.
1655         * wtf/url/src/URLParse.cpp: Removed.
1656         * wtf/url/src/URLParse.h: Removed.
1657         * wtf/url/src/URLParseFile.cpp: Removed.
1658         * wtf/url/src/URLParseInternal.h: Removed.
1659         * wtf/url/src/URLSegments.cpp: Removed.
1660         * wtf/url/src/URLSegments.h: Removed.
1661         * wtf/url/src/URLUtil.cpp: Removed.
1662         * wtf/url/src/URLUtil.h: Removed.
1663         * wtf/url/src/URLUtilInternal.h: Removed.
1664
1665 2013-04-04  Geoffrey Garen  <ggaren@apple.com>
1666
1667         Nixed the defunct chromium folder from WTF
1668         https://bugs.webkit.org/show_bug.cgi?id=113992
1669
1670         Reviewed by Ryosuke Niwa.
1671
1672         * wtf/chromium: Removed.
1673         * wtf/chromium/ChromiumThreading.h: Removed.
1674         * wtf/chromium/MainThreadChromium.cpp: Removed.
1675
1676 2013-04-04  Martin Robinson  <mrobinson@igalia.com>
1677
1678         [GTK] Remove the gyp build
1679         https://bugs.webkit.org/show_bug.cgi?id=113942
1680
1681         Reviewed by Gustavo Noronha Silva.
1682
1683         * WTF.gyp/WTFGTK.gyp: Removed.
1684
1685 2013-04-04  Anders Carlsson  <andersca@apple.com>
1686
1687         ObjcRuntimeExtras.h should use variadic templates
1688         https://bugs.webkit.org/show_bug.cgi?id=113941
1689
1690         Reviewed by Andreas Kling.
1691
1692         Reimplement wtfObjcMsgSend and wtfCallIMP as variadic function templates.
1693
1694         * wtf/ObjcRuntimeExtras.h:
1695         (wtfObjcMsgSend):
1696         (wtfCallIMP):
1697
1698 2013-04-04  Andras Becsi  <andras.becsi@digia.com>
1699
1700         Fix the build with GCC 4.8
1701         https://bugs.webkit.org/show_bug.cgi?id=113147
1702
1703         Reviewed by Allan Sandfeld Jensen.
1704
1705         Disable diagnostic warning -Wunused-local-typedefs for GCC 4.8
1706         since dummy typedefs are commonly used in the codebase.
1707
1708         * wtf/Compiler.h:
1709
1710 2013-04-03  Pratik Solanki  <psolanki@apple.com>
1711
1712         Enable HAVE_MADV_FREE_REUSE on iOS
1713         https://bugs.webkit.org/show_bug.cgi?id=113892
1714         <rdar://problem/12787563>
1715
1716         Reviewed by Mark Rowe.
1717
1718         * wtf/Platform.h:
1719
1720 2013-04-02  Ryosuke Niwa  <rniwa@webkit.org>
1721
1722         Remove code for Mac 10.5 and earlier from WTF and WebKit2
1723         https://bugs.webkit.org/show_bug.cgi?id=113844
1724
1725         Reviewed by Benjamin Poulain.
1726
1727         Removed the code for 10.5 and removed if-def for 10.6.
1728
1729         * wtf/FastMalloc.cpp:
1730         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
1731         * wtf/Platform.h:
1732         * wtf/ThreadingPthreads.cpp:
1733         (WTF::initializeCurrentThreadInternal):
1734         * wtf/unicode/icu/CollatorICU.cpp:
1735         (WTF::Collator::userDefault):
1736
1737 2013-04-02  Max Vujovic  <mvujovic@adobe.com>
1738
1739         [CSS Filters] Filter outsets clipped on composited layers when filter is applied after first layout
1740         https://bugs.webkit.org/show_bug.cgi?id=109098
1741
1742         Reviewed by Dean Jackson.
1743
1744         * wtf/Platform.h:
1745             Add flag for HAVE(COMPOSITOR_FILTER_OUTSETS) macro. This is used to check if a
1746             platform's compositor expands layers internally for filter outsets when it applies
1747             filters like drop-shadow and blur. Currently, only CoreAnimation does has this
1748             capability.
1749
1750 2013-04-02  Yury Semikhatsky  <yurys@chromium.org>
1751
1752         Web Inspector: memory instrumentation for external arrays is broken
1753         https://bugs.webkit.org/show_bug.cgi?id=113790
1754
1755         Reviewed by Pavel Feldman.
1756
1757         * wtf/MemoryInstrumentationArrayBufferView.h: report buffer pointer as retaining one as
1758         we know that the pointer is not broken.
1759         (WTF::reportMemoryUsage):
1760
1761 2013-04-01  Han Shen  <shenhan@google.com>
1762
1763         Move definition of nested classes that inherit enclosing class outside class definition.
1764         https://bugs.webkit.org/show_bug.cgi?id=113454
1765
1766         Reviewed by Benjamin Poulain.
1767
1768         HashMap.h does not build on GCC 4.8. Inside this file,
1769         HashMapKeysProxy and HashMapValuesProxy are defined as nested
1770         class inside HashMap - which is legal - the illegal part is that
1771         these 2 classes inherit HashMap, that is the enclosing class, that
1772         causes "reference to in-complete definition" error.
1773
1774         The fix is to move outside the definition of these 2 classes, and
1775         leave only declaration part inside HashMap as is illustrated below -
1776
1777           template class <typename T>
1778           class HashMap {
1779             ... ...
1780             ... ...
1781           private:
1782             class HashMapKeysProxy;
1783
1784             // ERROR - nested class inherits enclosing class.
1785             class HashMapKeysProxy : private HashMap {
1786                 ... ...
1787             };
1788             ... ...
1789             ... ...
1790             class HashMapKeysProxy : private HashMap {
1791                 ... ...
1792             };
1793             ... ...
1794             ... ...
1795           };
1796
1797         Fixed as below:
1798           template class <typename T>
1799           class HashMap {
1800             ... ...
1801             ... ...
1802           private:
1803             class HashMapKeysProxy;
1804             class HashMapValuesProxy;
1805
1806             ... ...
1807             ... ...
1808           };
1809
1810           template <typename T>
1811           class HashMap<T>::HashMapKeysProxy : private HashMap<T> {
1812             ... ...
1813           };
1814
1815           template <typename T>
1816           class HashMap<T>::HashMapValuesProxy : private HashMap<T> {
1817             ... ...
1818           };
1819
1820         * wtf/HashMap.h:
1821         (HashMap):
1822         (WTF): Factor out nested class definition from enclosing class.
1823
1824 2013-03-31  Mark Hahnenberg  <mhahnenberg@apple.com>
1825
1826         Regions should be allocated from the same contiguous segment of virtual memory
1827         https://bugs.webkit.org/show_bug.cgi?id=113662
1828
1829         Reviewed by Filip Pizlo.
1830
1831         Instead of letting the OS spread our Regions all over the place, we should allocate them all within 
1832         some range of each other. This change will open the door to some other optimizations, e.g. doing simple 
1833         range checks for our write barriers and compressing JSCell pointers to 32-bits.
1834
1835         * wtf/MetaAllocator.cpp: Changed the MetaAllocator to allow custom page sizes if the derived class wants to
1836         use something other than the system page size.
1837         (WTF::MetaAllocator::MetaAllocator):
1838         * wtf/MetaAllocator.h:
1839         (MetaAllocator):
1840
1841 2013-04-01  Yury Semikhatsky  <yurys@chromium.org>
1842
1843         Web Inspector: add memory instrumentation for StringBuffer
1844         https://bugs.webkit.org/show_bug.cgi?id=113507
1845
1846         Reviewed by Pavel Feldman.
1847
1848         Added memory instrumentation for StringBuffer.
1849
1850         * wtf/MemoryInstrumentationString.h:
1851         (WTF):
1852         (WTF::reportMemoryUsage):
1853
1854 2013-03-30  Tom Sepez  <tsepez@chromium.org>
1855
1856         View-source iframes are dangerous (and not very useful).
1857         https://bugs.webkit.org/show_bug.cgi?id=113345
1858
1859         Reviewed by Adam Barth.
1860
1861         * wtf/FeatureDefines.h:
1862         Default definition of ENABLE_VIEWSOURCE_ATTRIBUTE is enabled.
1863
1864 2013-03-27  Patrick Gansterer  <paroga@webkit.org>
1865
1866         Set WTF_ARM_ARCH_VERSION to correct value when used with MSVC
1867         https://bugs.webkit.org/show_bug.cgi?id=113436
1868
1869         Reviewed by Benjamin Poulain.
1870
1871         The Microsoft compiler defines _M_ARM with used ARM version.
1872
1873         * wtf/Platform.h:
1874
1875 2013-03-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1876
1877         Support C++11 static_assert
1878         https://bugs.webkit.org/show_bug.cgi?id=113308
1879
1880         Reviewed by Alexey Proskuryakov.
1881
1882         Use the C++11 static_assert for COMPILE_ASSERT when it is available. Note that
1883         even when compiling with C++11 support, static_assert will not always be available
1884         since Assertions.h may also be used outside of C++.
1885
1886         C11 _Static_assert is enabled for GCC when it has C11 support (gcc>=4.7 -std=c11).
1887
1888         * wtf/Assertions.h:
1889         * wtf/Compiler.h:
1890
1891 2013-03-25  Oliver Hunt  <oliver@apple.com>
1892
1893         RefCountedArray needs a size based constructor
1894         https://bugs.webkit.org/show_bug.cgi?id=113277
1895
1896         Reviewed by Benjamin Poulain.
1897
1898         Simple patch to add a size based constructor for RefCountedArray
1899         so that we can create an sharable array without a copy.
1900
1901         * wtf/RefCountedArray.h:
1902         (RefCountedArray):
1903         (WTF::RefCountedArray::RefCountedArray):
1904
1905 2013-03-26  James Robinson  <jamesr@chromium.org>
1906
1907         Compile fix - OS(WINDOWS), not OS(WIN).
1908
1909         * wtf/ProcessID.h:
1910         (WTF::getCurrentProcessID):
1911
1912 2013-03-26  James Robinson  <jamesr@chromium.org>
1913
1914         Fix compile for OS(WIN) != PLATFORM(WIN)
1915         https://bugs.webkit.org/show_bug.cgi?id=113356
1916
1917         Reviewed by Tim Horton.
1918
1919         * wtf/ProcessID.h:
1920         (WTF::getCurrentProcessID):
1921
1922 2013-03-23  Filip Pizlo  <fpizlo@apple.com>
1923
1924         JSC_enableProfiler=true should also cause JSGlobalData to save the profiler output somewhere
1925         https://bugs.webkit.org/show_bug.cgi?id=113144
1926
1927         Reviewed by Geoffrey Garen.
1928         
1929         I got tired of the fact that getpid(2) is not a syscall on Windows (unless you do
1930         _getpid() I believe), so I wrote a header that abstracts it. I also changed existing
1931         code that uses getpid() to use WTF::getCurrentProcessID().
1932
1933         * GNUmakefile.list.am:
1934         * WTF.gypi:
1935         * WTF.pro:
1936         * WTF.vcproj/WTF.vcproj:
1937         * WTF.xcodeproj/project.pbxproj:
1938         * wtf/CMakeLists.txt:
1939         * wtf/MetaAllocator.cpp:
1940         (WTF::MetaAllocator::dumpProfile):
1941         * wtf/ProcessID.h: Added.
1942         (WTF):
1943         (WTF::getCurrentProcessID):
1944         * wtf/text/StringImpl.cpp:
1945         (WTF::StringStats::printStats):
1946
1947 2013-03-25  Kent Tamura  <tkent@chromium.org>
1948
1949         Rename ENABLE_INPUT_TYPE_DATETIME
1950         https://bugs.webkit.org/show_bug.cgi?id=113254
1951
1952         Reviewed by Kentaro Hara.
1953
1954         Rename ENABLE_INPUT_TYPE_DATETIME to ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE.
1955         Actually I'd like to remove the code, but we shouldn't remove it yet
1956         because we shipped products with it on some platforms.
1957
1958         * wtf/FeatureDefines.h:
1959
1960 2013-03-25  David Kilzer  <ddkilzer@apple.com>
1961
1962         WTF::binarySearchImpl() should compile with -Wshorten-64-to-32
1963         <http://webkit.org/b/113170>
1964
1965         Reviewed by Dan Bernstein.
1966
1967         Fixes the following build failure:
1968
1969             /usr/local/include/wtf/StdLibExtras.h:190:30: error: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Werror,-Wshorten-64-to-32]
1970                     int pos = (size - 1) >> 1;
1971                         ~~~   ~~~~~~~~~~~^~~~
1972             1 error generated.
1973
1974         * wtf/StdLibExtras.h:
1975         (WTF::binarySearchImpl): Switch type from int to size_t.
1976
1977 2013-03-22  Benjamin Poulain  <bpoulain@apple.com>
1978
1979         Remove 2 bad branches from StringHash::equal() and CaseFoldingHash::equal()
1980         https://bugs.webkit.org/show_bug.cgi?id=113003
1981
1982         Reviewed by Eric Seidel.
1983
1984         StringHash::equal() and CaseFoldingHash::equal() were both testing for
1985         the nullity of the two input pointers. The catch is: neither traits handle
1986         null pointers, and any client code would have crashed on hash(), before equal()
1987         is called.
1988         Consequently, the two branches had a pass rate of zero when called from a HashMap code.
1989
1990         The function is also never inlined because it is too big (the code of equal() for characters
1991         is always inlined, causing the function to be quite big).
1992
1993         This patch introduces two new functions in the StringImpl API: equalNonNull() and
1994         equalIgnoringCaseNonNull(). Those functions are similar to their equal() equivalent
1995         but make the assumtion the input is never null.
1996
1997         The functions are used for StringHash to avoid the useless branches.
1998
1999         * wtf/text/StringHash.h:
2000         (WTF::StringHash::equal):
2001         (WTF::CaseFoldingHash::equal):
2002         * wtf/text/StringImpl.cpp:
2003         (WTF::stringImplContentEqual):
2004         (WTF::equal):
2005         (WTF::equalNonNull):
2006         (WTF::equalIgnoringCase):
2007         (WTF::equalIgnoringCaseNonNull):
2008         (WTF::equalIgnoringNullity):
2009         * wtf/text/StringImpl.h:
2010         (WTF::equalIgnoringCase):
2011
2012 2013-03-22  Benjamin Poulain  <bpoulain@apple.com>
2013
2014         Name correctly the argument of StringImpl::setIsAtomic()
2015         https://bugs.webkit.org/show_bug.cgi?id=113000
2016
2017         Reviewed by Geoffrey Garen.
2018
2019         * wtf/text/StringImpl.h:
2020         (WTF::StringImpl::setIsAtomic):
2021         The argument was probably an unfortunate copy-paste from setIsIdentifier().
2022         Fix the name.
2023
2024 2013-03-22  Hajime Morrita  <morrita@google.com>
2025
2026         Custom Elements: "readyCallback" lifecycle callback should be called.
2027         https://bugs.webkit.org/show_bug.cgi?id=112538
2028
2029         Reviewed by Elliott Sprehn.
2030
2031         * wtf/HashSet.h:
2032         (WTF::copyToVector): Generalized to let it accept variants like ListHahsSet instead of only HashSet.
2033
2034 2013-03-22  Sheriff Bot  <webkit.review.bot@gmail.com>
2035
2036         Unreviewed, rolling out r146534 and r146565.
2037         http://trac.webkit.org/changeset/146534
2038         http://trac.webkit.org/changeset/146565
2039         https://bugs.webkit.org/show_bug.cgi?id=113017
2040
2041         "r146534 caused perf regression on Chromium Linux x64"
2042         (Requested by yurys on #webkit).
2043
2044         * wtf/HashSet.h:
2045         (WTF):
2046         (WTF::copyToVector):
2047
2048 2013-03-21  Hajime Morrita  <morrita@google.com>
2049
2050         Custom Elements: "readyCallback" lifecycle callback should be called.
2051         https://bugs.webkit.org/show_bug.cgi?id=112538
2052
2053         Reviewed by Elliott Sprehn.
2054
2055         * wtf/HashSet.h:
2056         (WTF::copyToVector): Generalized to let it accept variants like ListHahsSet instead of only HashSet.
2057
2058 2013-03-21  Mark Lam  <mark.lam@apple.com>
2059
2060         Introducing String::findNextLineStart().
2061         https://bugs.webkit.org/show_bug.cgi?id=112957.
2062
2063         Reviewed by Geoffrey Garen.
2064
2065         This is replaces String::reverseFindLineTerminator() in the JSC
2066         debugger's code for computing column numbers.
2067
2068         * wtf/text/StringImpl.cpp:
2069         (WTF::StringImpl::findNextLineStart):
2070         * wtf/text/StringImpl.h:
2071         (WTF::findNextLineStart):
2072         * wtf/text/WTFString.h:
2073         (WTF::String::findNextLineStart):
2074
2075 2013-03-21  Adam Barth  <abarth@webkit.org>
2076
2077         HTMLNames should construct strings at compile time
2078         https://bugs.webkit.org/show_bug.cgi?id=112831
2079
2080         Reviewed by Darin Adler.
2081
2082         * wtf/text/StringImpl.h:
2083         (StringImpl):
2084         (StaticASCIILiteral):
2085             - This struct lets us construct StringImpl objects at compile time.
2086         (WTF::StringImpl::assertHashIsCorrect):
2087             - This function lets us sanity check StringImpl objects created from StaticData.
2088         (WTF::StringImpl::find): Remove a stray ;
2089         (WTF::StringImpl::findIgnoringCase): ditto
2090         (WTF::StringImpl::startsWith): ditto
2091         (WTF::ValueCheck<StringImpl*>):
2092         * wtf/text/AtomicStringImpl.h:
2093         (WTF::ValueCheck<AtomicStringImpl*>):
2094
2095 2013-03-21  Gabor Rapcsanyi  <rgabor@webkit.org>
2096
2097         Implement LLInt for CPU(ARM_TRADITIONAL)
2098         https://bugs.webkit.org/show_bug.cgi?id=97589
2099
2100         Reviewed by Zoltan Herczeg.
2101
2102         Enable LLInt for ARMv5 and ARMv7 traditional as well.
2103
2104         * wtf/Platform.h:
2105
2106 2013-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
2107
2108         Unreviewed, rolling out r146419.
2109         http://trac.webkit.org/changeset/146419
2110         https://bugs.webkit.org/show_bug.cgi?id=112870
2111
2112         Broke many tests on debug builds (Requested by rniwa_ on
2113         #webkit).
2114
2115         * wtf/text/StringImpl.h:
2116         (StringImpl):
2117
2118 2013-03-20  Adam Barth  <abarth@webkit.org>
2119
2120         HTMLNames should construct strings at compile time
2121         https://bugs.webkit.org/show_bug.cgi?id=112831
2122
2123         Reviewed by Darin Adler.
2124
2125         * wtf/text/StringImpl.h:
2126         (StringImpl):
2127         (StaticASCIILiteral):
2128             - This struct lets us construct StringImpl objects at compile time.
2129         (WTF::StringImpl::assertValidHash):
2130             - This function lets us sanity check StringImpl objects created from StaticData.
2131
2132 2013-03-20  Jessie Berlin  <jberlin@apple.com>
2133
2134         REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being copied into
2135         the wrong location
2136         https://bugs.webkit.org/show_bug.cgi?id=112833
2137
2138         Reviewed by Darin Adler.
2139
2140         * WTF.xcodeproj/project.pbxproj:
2141         Make sure those three headers are copied with the rest of the WTF headers.
2142
2143 2013-03-20  Mark Rowe  <mrowe@apple.com>
2144
2145         FastMalloc scavenge timer specifies an overly narrow leeway value.
2146
2147         Reviewed by Alexey Proskuryakov.
2148
2149         There's no need to allow only 1ms of leeway on a 2s timer.
2150
2151         * wtf/FastMalloc.cpp:
2152         (WTF::TCMalloc_PageHeap::initializeScavenger): Bump the leeway window
2153         to 10% of the scavenge timer.
2154
2155 2013-03-20  JungJik Lee  <jungjik.lee@samsung.com>
2156
2157         [EFL] Disable REQUEST_ANIMATION_FRAME_TIMER to render a new animation frame.
2158         https://bugs.webkit.org/show_bug.cgi?id=112114
2159
2160         Reviewed by Kenneth Rohde Christiansen.
2161
2162         The issue is that if the animation starts outside of the area covered by keepRects,
2163         the web process does not create tiles of the animation layer and the layer moves 
2164         without having any tiles. In order to fix this issue, CoordinatedLayerHost must call 
2165         scheduleLayerFlush to create new tiles when the layer enters the area covered by keepRect.
2166         However EFL port didn't call scheduleLayerFlush periodically for animation.
2167         We can tie scripted animations with synchronization of the layer and that already 
2168         has been implemented in r123786 by Qt port. This patch is for activating r123786 patch.
2169
2170         The testing is covered by ManualTests/animation/transition-on-and-offscreen-animation.html
2171
2172         * wtf/Platform.h: Disable REQUEST_ANIMATION_FRAME_TIMER.
2173
2174 2013-03-20  Mark Lam  <mark.lam@apple.com>
2175
2176         Introducing String::reverseFindLineTerminator().
2177         https://bugs.webkit.org/show_bug.cgi?id=112741.
2178
2179         Reviewed by Oliver Hunt.
2180
2181         This is needed by the JSC debugger code for computing column numbers.
2182
2183         * wtf/text/StringImpl.cpp:
2184         (WTF::StringImpl::reverseFindLineTerminator):
2185         * wtf/text/StringImpl.h:
2186         (StringImpl):
2187         (WTF::reverseFindLineTerminator):
2188         * wtf/text/WTFString.h:
2189         (WTF::String::reverseFindLineTerminator):
2190
2191 2013-03-19  Martin Robinson  <mrobinson@igalia.com>
2192
2193         Fix the WTF gyp build for GTK+.
2194
2195         * WTF.gyp/WTFGTK.gyp: Skip files with CF in the name.
2196
2197 2013-03-19  Alberto Garcia  <agarcia@igalia.com>
2198
2199         [BlackBerry] Enable USE_SYSTEM_MALLOC by default
2200         https://bugs.webkit.org/show_bug.cgi?id=112365
2201
2202         Reviewed by Benjamin Poulain.
2203
2204         Enable USE_SYSTEM_MALLOC by default via FeatureList.pm instead of
2205         harcoding it in wtf/Platform.h
2206
2207         * wtf/Platform.h:
2208
2209 2013-03-18  Benjamin Poulain  <benjamin@webkit.org>
2210
2211         [iOS] Make a UChar string equal() based on the LChar version
2212         https://bugs.webkit.org/show_bug.cgi?id=112495
2213
2214         Reviewed by David Kilzer.
2215
2216         * wtf/text/StringImpl.h:
2217         (WTF::equal):
2218         Create a equal() function for UChar based on the work done for LChar.
2219
2220         On A6, this is a speed up of about 40% for any string of 2 or more characters.
2221         It is slower by 8% on a single UChar comparison.
2222
2223 2013-03-18  Brent Fulgham  <bfulgham@webkit.org>
2224
2225         [WinCairo] Get build working under VS2010.
2226         https://bugs.webkit.org/show_bug.cgi?id=112604
2227
2228         Reviewed by Tim Horton.
2229
2230         * WTF.vcxproj/WTF.vcxproj: Add Debug_WinCairo and Release_WinCairo
2231         targets so headers get copied to appropriate build folder.
2232         * WTF.vcxproj/WTFGenerated.vcxproj: Ditto.
2233
2234 2013-03-15  Benjamin Poulain  <bpoulain@apple.com>
2235
2236         [iOS] Update StringImpl's equal to have a single version on all supported Apple CPUs
2237         https://bugs.webkit.org/show_bug.cgi?id=112400
2238
2239         Reviewed by Michael Saboff.
2240
2241         * wtf/text/StringImpl.h:
2242         (WTF::equal):
2243         Tweak the code to make it work on older Apple CPUs:
2244         -Use external "ouput" variable instead of the registers R9 and R12. This gets rid
2245          of some register pressure previously imposed on the compiler. (Clang nicely
2246          choose R9 and R12 when needed, following iOS ABI).
2247         -Instead of using "R3" for storing the length / 4, update the length by -4 on
2248          each iteration and work in the negative space for the tail. This frees one register
2249          which is then used for isEqual.
2250         -Get rid of the unconditional branch from the loop. By using subs and working in the
2251          negative space, we can test for the Carry flag to jump back to the next LDR.
2252
2253 2013-03-15  Benjamin Poulain  <bpoulain@apple.com>
2254
2255         [iOS] Fix the length pass to memcmp in the fallback versions of String's equal
2256         https://bugs.webkit.org/show_bug.cgi?id=112463
2257
2258         Reviewed by Ryosuke Niwa.
2259
2260         * wtf/text/StringImpl.h:
2261         (WTF::equal): It might be a good idea to compare the full UChar strings...
2262
2263 2013-03-15  Michael Saboff  <msaboff@apple.com>
2264
2265         Add runtime check for improper register allocations in DFG
2266         https://bugs.webkit.org/show_bug.cgi?id=112380
2267
2268         Reviewed by Geoffrey Garen.
2269
2270         * wtf/Platform.h: Added new ENABLE_DFG_REGISTER_ALLOCATION_VALIDATION compilation flag to
2271         enable generation of register allocation checking.  This is on for debug builds.
2272
2273 2013-03-13  Jessie Berlin  <jberlin@apple.com>
2274
2275         Remove svn:executable from a file that isn't supposed to be executable.
2276
2277         Rubber-stamped by Geoff Garen.
2278
2279         * wtf/MediaTime.h:
2280
2281 2013-03-13  Oliver Hunt  <oliver@apple.com>
2282
2283         Simplify Checked<> multiplication
2284         https://bugs.webkit.org/show_bug.cgi?id=112286
2285
2286         Reviewed by James Robinson.
2287
2288         Trying to correctly identify multiplication by zero complicated the
2289         unsigned * unsigned multiply, and still didn't handle all cases correctly.
2290         Now we just do the normal division based approach to overflow detection
2291         leading to much simpler reasoning.
2292
2293         Would be nice if we could have a jo style intrinsic one day.
2294
2295         * wtf/CheckedArithmetic.h:
2296
2297 2013-03-13  Dean Jackson  <dino@apple.com>
2298
2299         Unreviewed attempted build fix for Windows. SchedulePair.cpp -> SchedulePairCF.cpp
2300
2301         * WTF.vcproj/WTF.vcproj:
2302         * WTF.vcxproj/WTF.vcxproj:
2303         * WTF.vcxproj/WTF.vcxproj.filters:
2304
2305 2013-03-13  Benjamin Poulain  <bpoulain@apple.com>
2306
2307         [iOS] Add optimized version of StringImpl's equal(LChar*,LChar*) for Apple CPUs
2308         https://bugs.webkit.org/show_bug.cgi?id=112202
2309
2310         Reviewed by Gavin Barraclough.
2311
2312         * Source/WTF/wtf/Platform.h:
2313         Make the macro WTF_ARM_ARCH_VERSION valid on any architecture.
2314         * wtf/text/StringImpl.h:
2315         (WTF::equal):
2316         On ARMv7S, the new version is about 11% percent faster than the simple loop.
2317         On ARMv7 classic, memcmp is a little faster than the simple loop on Apple A5.
2318
2319 2013-03-13  James Robinson  <jamesr@chromium.org>
2320
2321         SchedulePair.cpp is CF-specific
2322         https://bugs.webkit.org/show_bug.cgi?id=112204
2323
2324         Reviewed by Oliver Hunt.
2325
2326         This renames SchedulePair.cpp SchedulePairCF.cpp, since it depends on CF, and excludes it from chromium's gyp
2327         files.
2328
2329         * WTF.gyp/WTF.gyp:
2330           Add CF to the exclusion filter for the Chromium port.
2331         * WTF.gypi:
2332           Add SchedulePairCF.cpp
2333         * WTF.xcodeproj/project.pbxproj:
2334           Update project file to point to new .cpp location
2335         * wtf/SchedulePairCF.cpp: Renamed from Source/WTF/wtf/SchedulePair.cpp.
2336
2337 2013-03-13  Allan Sandfeld Jensen  <allan.jensen@digia.com>
2338
2339         Support C++11 features in GCC <4.6
2340         https://bugs.webkit.org/show_bug.cgi?id=111553
2341
2342         Reviewed by Simon Hausmann.
2343
2344         Enable support for rvalue references from gcc 4.3, deleted functions
2345         from gcc 4.4, explicit conversion from gcc 4.5, and strongly typed
2346         enums from gcc 4.6. 
2347
2348         * wtf/Compiler.h:
2349
2350 2013-03-12  Geoffrey Garen  <ggaren@apple.com>
2351
2352         Unreviewed attempted Windows build fix after http://trac.webkit.org/changeset/145592.
2353
2354         * wtf/SchedulePair.cpp:
2355         * wtf/SchedulePair.h:
2356         (WTF::SchedulePair::SchedulePair): Since linking is failing,
2357         try inlining this function.
2358
2359 2013-03-12  Tim Horton  <timothy_horton@apple.com>
2360
2361         Typo in earlier Windows build fix. Unreviewed.
2362
2363         * WTF.vcproj/WTF.vcproj:
2364
2365 2013-03-12  Tim Horton  <timothy_horton@apple.com>
2366
2367         Unreviewed attempted Windows build fix after http://trac.webkit.org/changeset/145592.
2368
2369         * WTF.vcproj/WTF.vcproj:
2370         * WTF.vcxproj/WTF.vcxproj:
2371         * WTF.vcxproj/WTF.vcxproj.filters:
2372
2373 2013-03-12  James Robinson  <jamesr@chromium.org>
2374
2375         Build fix for r145592 - update gyp files to refer to new file locations.
2376
2377         * WTF.gypi:
2378
2379 2013-03-12  Geoffrey Garen  <ggaren@apple.com>
2380
2381         Moved RunLoopTimer and SchedulePair to WTF
2382         https://bugs.webkit.org/show_bug.cgi?id=112171
2383
2384         Reviewed by Oliver Hunt.
2385
2386         This will allow us to use timers in lower level primitives without
2387         duplicating all the code.
2388
2389         * WTF.xcodeproj/project.pbxproj:
2390         * wtf/AutodrainedPool.h: Copied from Source/WebCore/platform/AutodrainedPool.h.
2391         (AutodrainedPool):
2392         * wtf/AutodrainedPoolMac.mm: Copied from Source/WebCore/platform/mac/AutodrainedPool.mm.
2393         * wtf/RunLoopTimer.h: Copied from Source/WebCore/platform/RunLoopTimer.h.
2394         * wtf/RunLoopTimerCF.cpp: Copied from Source/WebCore/platform/cf/RunLoopTimerCF.cpp.
2395         * wtf/SchedulePair.cpp: Copied from Source/WebCore/platform/cf/SchedulePair.cpp.
2396         * wtf/SchedulePair.h: Copied from Source/WebCore/platform/cf/SchedulePair.h.
2397         (SchedulePair):
2398         * wtf/SchedulePairMac.mm: Copied from Source/WebCore/platform/mac/SchedulePairMac.mm.
2399
2400 2013-03-12  Oliver Hunt  <oliver@apple.com>
2401
2402         Add more Checked<> tests
2403         https://bugs.webkit.org/show_bug.cgi?id=112190
2404
2405         Reviewed by Geoffrey Garen.
2406
2407         Export the CheckedState enum type
2408
2409         * wtf/CheckedArithmetic.h:
2410
2411 2013-03-12  Oliver Hunt  <oliver@apple.com>
2412
2413         Make CheckedArithmetic slightly more sane
2414         https://bugs.webkit.org/show_bug.cgi?id=112178
2415
2416         Reviewed by Geoffrey Garen.
2417
2418         Add an enum type for safeGet rather than using a bool,
2419         and correctly handle unsigned * unsigned, when one value
2420         is 0.
2421
2422         * wtf/CheckedArithmetic.h:
2423         (WTF::ENUM_CLASS):
2424         (WTF):
2425         (WTF::operator+):
2426         (WTF::operator-):
2427         (WTF::operator*):
2428
2429 2013-03-11  Michael Saboff  <msaboff@apple.com>
2430
2431         Unreviewed build fix.  Rolling out inadvertent setting of DATA_LOG_TO_FILE.
2432
2433 2013-03-11  Oliver Hunt  <oliver@apple.com>
2434
2435         Make SegmentedVector Noncopyable
2436         https://bugs.webkit.org/show_bug.cgi?id=112059
2437
2438         Reviewed by Geoffrey Garen.
2439
2440         Copying a SegmentedVector can be extraordinarily expensive, so we beat
2441         it with the Noncopyable stick - that way we can ensure that if anyone
2442         wants an actual copy they know what they're doing.
2443
2444         * wtf/SegmentedVector.h:
2445         (SegmentedVector):
2446
2447 2013-03-08  Benjamin Poulain  <benjamin@webkit.org>
2448
2449         [Mac] Add a feature flag for 'view-mode' Media Feature, disable it on Mac
2450         https://bugs.webkit.org/show_bug.cgi?id=111297
2451
2452         Reviewed by Kenneth Rohde Christiansen.
2453
2454         * wtf/FeatureDefines.h: Add a new feature flag for the view-mode
2455         CSS media: ENABLE_VIEW_MODE_CSS_MEDIA.
2456
2457 2013-03-08  Roger Fong  <roger_fong@apple.com>
2458
2459         Makefile fixes.
2460
2461         * WTF.vcxproj/WTF.make:
2462
2463 2013-03-08  Gabor Rapcsanyi  <rgabor@webkit.org>
2464
2465         Cache flush problem on ARMv7 JSC
2466         https://bugs.webkit.org/show_bug.cgi?id=111441
2467
2468         Reviewed by Zoltan Herczeg.
2469
2470         Not proper cache flush causing random crashes on ARMv7 Linux with V8 tests.
2471         The problem is similar to https://bugs.webkit.org/show_bug.cgi?id=77712.
2472         Change the cache fulsh mechanism similar to ARM traditinal and revert the
2473         temporary fix.
2474
2475         * wtf/OSAllocatorPosix.cpp:
2476         (WTF::OSAllocator::reserveUncommitted):
2477         (WTF::OSAllocator::decommit):
2478
2479 2013-03-07  Andrew Bortz  <andrew@abortz.net>
2480
2481         Replace Mersenne Twister random number generator with a simpler one.
2482         https://bugs.webkit.org/show_bug.cgi?id=111533
2483
2484         Reviewed by Adam Barth.
2485
2486         The new generator is only a single line long, but passes all the Diehard
2487         statistical tests and runs ~3x faster than the Mersenne Twister, with a
2488         guaranteed cycle length of 2^64 and only 8 bytes of state.
2489         
2490         * wtf/Platform.h: Mersenne Twister defines are no longer needed
2491         * wtf/RandomNumber.cpp:
2492         (WTF::Internal::initializeRandomNumber): State initialization
2493         (WTF::Internal::randomNumber): Actual implementation
2494         (WTF::randomNumber): We don't need to fall back on rand()-based generator anymore,
2495         so this code is greatly simplified.
2496         * wtf/RandomNumber.h:
2497         * wtf/RandomNumberSeed.h:
2498         (WTF::initializeRandomNumberGenerator): This code is no longer needed.
2499         Additionally, the code had an error, since rand() returns 32-bits, so each
2500         initializationBuffer's upper 16-bits has more bits set than random.
2501
2502 2013-03-06  Adenilson Cavalcanti  <cavalcantii@gmail.com>
2503
2504         Build fix: PageAllocationAligned no longer has executable flag
2505         https://bugs.webkit.org/show_bug.cgi?id=111659
2506
2507         Reviewed by Kentaro Hara.
2508
2509         Build fix: use false as parameter to execution flag.
2510
2511         * wtf/PageAllocationAligned.cpp:
2512         (WTF::PageAllocationAligned::allocate):
2513
2514 2013-03-06  Eric Seidel  <eric@webkit.org>
2515
2516         AtomicStringImpls are not safe to send between threads
2517         https://bugs.webkit.org/show_bug.cgi?id=111652
2518
2519         Reviewed by Benjamin Poulain.
2520
2521         We don't have this problem yet, but it's good to be safe.
2522
2523         * wtf/text/WTFString.cpp:
2524         (WTF::String::isSafeToSendToAnotherThread):
2525
2526 2013-03-06  Oliver Hunt  <oliver@apple.com>
2527
2528         Don't give PageAllocationAligned the option to allocate executable memory
2529         https://bugs.webkit.org/show_bug.cgi?id=111657
2530
2531         Reviewed by Geoffrey Garen.
2532
2533         * wtf/PageAllocationAligned.cpp:
2534         (WTF::PageAllocationAligned::allocate):
2535         * wtf/PageAllocationAligned.h:
2536         (PageAllocationAligned):
2537
2538 2013-03-04  Jer Noble  <jer.noble@apple.com>
2539
2540         Default mouse cursor behavior should be auto-hide for full screen video with custom controls
2541         https://bugs.webkit.org/show_bug.cgi?id=107601
2542
2543         Reviewed by Beth Dakin.
2544
2545         Enable the CURSOR_VISIBILITY feature.
2546
2547         * wtf/FeatureDefines.h:
2548
2549 2013-03-04  Oliver Hunt  <oliver@apple.com>
2550
2551         Make fastmalloc use guardpages
2552         https://bugs.webkit.org/show_bug.cgi?id=111353
2553
2554         Reviewed by Anders Carlsson.
2555
2556         Add PROT_NONE pages at the beginning and end of every
2557         mmap call made by fastmalloc.
2558
2559         * wtf/TCSystemAlloc.cpp:
2560         (TryMmap):
2561
2562 2013-03-06  Paweł Forysiuk  <tuxator@o2.pl>
2563
2564         Typo in inline function in ByteOrder.h
2565         https://bugs.webkit.org/show_bug.cgi?id=111473
2566
2567         Reviewed by Benjamin Poulain.
2568
2569         * wtf/ByteOrder.h:
2570         (ntohs):
2571
2572 2013-03-05  Ryuan Choi  <ryuan.choi@samsung.com>
2573
2574         [EFL] Build break with latest EFL libraries
2575         https://bugs.webkit.org/show_bug.cgi?id=111028
2576
2577         Reviewed by Dirk Pranke.
2578
2579         * wtf/PlatformEfl.cmake: Added ECORE_IMF_INCLUDE_DIRS.
2580
2581 2013-03-05  Csaba Osztrogonác  <ossy@webkit.org>
2582
2583         Fix cast-align warning in ASCIIFastPath.h on ARM
2584         https://bugs.webkit.org/show_bug.cgi?id=111436
2585
2586         Reviewed by Benjamin Poulain.
2587
2588         * wtf/text/ASCIIFastPath.h:
2589         (WTF::charactersAreAllASCII):
2590
2591 2013-03-04  Laszlo Gombos  <l.gombos@samsung.com>
2592
2593         JSC_OBJC_API_ENABLED should be removed from FeatureDefines.h
2594         https://bugs.webkit.org/show_bug.cgi?id=111269
2595
2596         Reviewed by Mark Hahnenberg.
2597
2598         JSC_OBJC_API_ENABLED flag was added to FeatureDefines.h (r143637) 
2599         so that it could be used in WebCore.exp.in to determine whether 
2600         or not we should be exporting certain symbols based on whether 
2601         the WebKit-related portion of the JSC ObjC API was enabled.
2602         
2603         It turned out conditionally including certain symbols didn't
2604         work when building fat binaries, so it's not even necessary any more.
2605
2606         * wtf/FeatureDefines.h: Remove JSC_OBJC_API_ENABLED.
2607
2608 2013-03-04  Andreas Kling  <akling@apple.com>
2609
2610         Deque: Free internal buffer in clear().
2611         <http://webkit.org/b/111316>
2612         <rdar://problem/13336675>
2613
2614         Reviewed by Antti Koivisto.
2615
2616         525 kB progression on Membuster3.
2617
2618         * wtf/Deque.h:
2619         (WTF::::clear):
2620
2621 2013-03-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
2622
2623         Add build flag for FontLoader
2624         https://bugs.webkit.org/show_bug.cgi?id=111289
2625
2626         Reviewed by Benjamin Poulain.
2627
2628         Add ENABLE_FONT_LOAD_EVENTS build flag (disabled by default).
2629
2630         * wtf/FeatureDefines.h:
2631
2632 2013-02-27  Darin Adler  <darin@apple.com>
2633
2634         StringHasher functions require alignment that call sites do not all guarantee
2635         https://bugs.webkit.org/show_bug.cgi?id=110171
2636
2637         Reviewed by Benjamin Poulain.
2638
2639         The StringHasher class is optimized for clients who pass it two characters at
2640         a time. However, the function named addCharacters did not make this clear to
2641         clients, and one calculateStringHashAndLengthFromUTF8MaskingTop8Bits got it wrong.
2642         Fix by making addCharacters work regardless of hasher alignment and adding a new
2643         function, addCharactersAssumingAligned, for use when we want a faster path and can
2644         guarantee we are adding characters two at a time.
2645
2646         * wtf/StringHasher.h:
2647         (WTF::StringHasher::addCharactersAssumingAligned): Renamed the addCharacters function
2648         addCharactersAssumingAligned, since it only works if the hasher is currently aligned,
2649         meaning it contains an even number of characters. The function already asserts
2650         that this is true, but the calculateStringHashAndLengthFromUTF8MaskingTop8Bits
2651         function was using it in cases where the assertion could fire. Also updated to
2652         call addCharactersInternal by its new name. Also added some new overloads that take
2653         data pointers and lengths so callers can always use addCharactersAssumingAligned
2654         instead of addCharacters if they know the hasher is aligned.
2655         (WTF::StringHasher::addCharacter): Updated to call the public
2656         addCharactersAssumingAligned function since that's simpler and a bit cleaner.
2657         (WTF::StringHasher::addCharacters): Added functions with this name that handle
2658         the case where the hasher is not aligned. These will be called by existing call sites
2659         that were formerly using the function named addCharactersAssumingAligned above.
2660         Also add an overload that works with the default converter automatically.
2661         (WTF::StringHasher::computeHashAndMaskTop8Bits): Changed to call
2662         addCharactersAssumingAligned to eliminate copied and pasted code. The hasher is empty,
2663         so definitely aligned.
2664         (WTF::StringHasher::computeHash): Ditto.
2665         (WTF::StringHasher::addCharactersInternal): Renamed from addCharactersToHash, since
2666         the former name did not make clear how this differs from the public functions.
2667         The real difference is that this is like addCharactersAssumingAligned, but without
2668         the assertion, so addCharactersAssumingAligned is called instead, even within the
2669         class's implementation.
2670
2671 2013-03-01  Ilya Tikhonovsky  <loislo@chromium.org>
2672
2673         Web Inspector: Native Memory Instrumentation: do not visit raw pointers by default.
2674         https://bugs.webkit.org/show_bug.cgi?id=110943
2675
2676         Reviewed by Yury Semikhatsky.
2677
2678         Unfortunately in many cases raw pointer may point to an object that has been deleted.
2679         There is no working solution to solve this problem in general.
2680         It could be solved only on case by case basis.
2681
2682         * wtf/MemoryInstrumentation.h:
2683         (WTF::MemoryInstrumentation::addObject):
2684         (WTF::MemoryInstrumentation::MemberTypeTraits::addObject):
2685         (WTF::MemoryClassInfo::addMember):
2686         (WTF::MemoryInstrumentation::addObjectImpl):
2687         * wtf/MemoryInstrumentationString.h:
2688         (WTF::reportMemoryUsage):
2689
2690 2013-03-01  Eric Seidel  <eric@webkit.org>
2691
2692         Threaded HTML Parser has an extra copy of every byte from the network
2693         https://bugs.webkit.org/show_bug.cgi?id=111135
2694
2695         Reviewed by Adam Barth.
2696
2697         The threaded html parser needs to accept ownership
2698         of a string buffer.  The easiest way to do this seemed
2699         to be to use a PassRefPtr<StringImpl>, but there was no way
2700         to generated one from a String (easily), so I added one.
2701
2702         * wtf/text/WTFString.h:
2703         (WTF::String::releaseImpl):
2704
2705 2013-02-28  Oliver Hunt  <oliver@apple.com>
2706
2707         Crash in JSC::MarkedBlock::FreeList JSC::MarkedBlock::sweepHelper
2708         https://bugs.webkit.org/show_bug.cgi?id=111059
2709
2710         Reviewed by Ryosuke Niwa.
2711
2712         Sometimes C++'s implicit operator conversion rules suck.
2713         Add explicit operator== and !=.
2714
2715         * wtf/FastMalloc.cpp:
2716         (WTF::HardenedSLL::operator!=):
2717         (WTF::HardenedSLL::operator==):
2718         (HardenedSLL):
2719
2720 2013-02-28  Zeno Albisser  <zeno@webkit.org>
2721
2722         Enable DFG JIT for Qt on Mac
2723         https://bugs.webkit.org/show_bug.cgi?id=111095
2724
2725         Rubber-stamped by Simon Hausmann
2726
2727         * wtf/Platform.h:
2728
2729 2013-02-28  Eric Carlson  <eric.carlson@apple.com>
2730
2731         [Mac] use HAVE() macro instead of version check
2732         https://bugs.webkit.org/show_bug.cgi?id=111087
2733
2734         Reviewed by Dean Jackson.
2735
2736         * wtf/Platform.h: Define HAVE_MEDIA_ACCESSIBILITY_FRAMEWORK.
2737
2738 2013-02-27  Balazs Kilvady  <kilvadyb@homejinni.com>
2739
2740         Bug in atomicIncrement implementation for MIPS GCC
2741         https://bugs.webkit.org/show_bug.cgi?id=110969
2742
2743         Reviewed by Csaba Osztrogonác.
2744
2745         Fix of __sync_[add|sub]_and_fetch_8 for GCC patch.
2746
2747         * wtf/Atomics.cpp:
2748
2749 2013-02-27  Simon Hausmann  <simon.hausmann@digia.com>
2750
2751         REGRESSION(r137994): It made JSC tests hang and layout tests fail on ARM Thumb2 / Linux
2752         https://bugs.webkit.org/show_bug.cgi?id=108632
2753
2754         Reviewed by Csaba Osztrogonác.
2755
2756         It appears that mprotect() is very slow on ARM/Linux, so disable the
2757         approach of unreserved mappings there and fall back to overcomitting
2758         memory, based on Uli Schlachter's recommendation.
2759
2760         * wtf/OSAllocatorPosix.cpp:
2761         (WTF::OSAllocator::reserveUncommitted):
2762         (WTF::OSAllocator::decommit):
2763
2764 2013-02-26  Roger Fong  <roger_fong@apple.com>
2765
2766         Unreviewed. Build fix for VS2010 solution, take 2.
2767
2768         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
2769
2770 2013-02-26  Roger Fong  <roger_fong@apple.com>
2771
2772         Unreviewed. Unreviewed build fix for VS2010 solution.
2773
2774         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
2775
2776 2013-02-26  Balazs Kilvady  <kilvadyb@homejinni.com>
2777
2778         Fix the atomicIncrement implementation for MIPS GCC
2779         https://bugs.webkit.org/show_bug.cgi?id=106739
2780
2781         Reviewed by Oliver Hunt.
2782
2783         Implementation of missing __sync_[add|sub]_and_fetch_8 functions.
2784
2785         Some architectures, like MIPS32, don't have GCC implementation for
2786         builtin __sync_* functions with 64 bits variable size. GCC answer
2787         for the problem: If a target doesn't support atomic operations on
2788         certain variable sizes, you are out of luck with atomicity in that
2789         case (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56296). GCC >= 4.8
2790         will support __atomic_* builtin functions for this purpose for all
2791         the GCC targets, but for current compilers we have to include our
2792         own implementation.
2793
2794         * GNUmakefile.list.am:
2795         * WTF.pro:
2796         * wtf/Atomics.cpp: Added.
2797         (WTF):
2798         (WTF::getSwapLock):
2799         (WTF::atomicStep):
2800         * wtf/CMakeLists.txt:
2801
2802 2013-02-26  Oliver Hunt  <oliver@apple.com>
2803
2804         Appease the QT bots.
2805
2806         * wtf/FastMalloc.cpp:
2807
2808 2013-02-26  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
2809
2810         Implement JIT on Windows 64 bits
2811         https://bugs.webkit.org/show_bug.cgi?id=107965
2812
2813         Reviewed by Simon Hausmann.
2814
2815         * wtf/Platform.h:
2816
2817 2013-02-26  Oliver Hunt  <oliver@apple.com>
2818
2819         Appease static analyzer warning about null string passed to strlen
2820         https://bugs.webkit.org/show_bug.cgi?id=110658
2821
2822         Reviewed by Benjamin Poulain.
2823
2824         Add a null check before calling strlen
2825
2826         * wtf/Threading.cpp:
2827         (WTF::createThread):
2828
2829 2013-02-25  Ryosuke Niwa  <rniwa@webkit.org>
2830
2831         Build fix attempt after r143996.
2832
2833         * wtf/FastMalloc.cpp:
2834         (WTF):
2835
2836 2013-02-25  Roger Fong  <roger_fong@apple.com>
2837
2838         Unreviewed. Fix script to use WEBKIT_SOURCE for VS2010 property sheets instead of WEBKIT_LIBRARIES.
2839
2840         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
2841
2842 2013-02-25  Oliver Hunt  <oliver@apple.com>
2843
2844         Add cookies to FastMalloc spans
2845         https://bugs.webkit.org/show_bug.cgi?id=110827
2846
2847         Reviewed by Michael Saboff.
2848
2849         Add a cookie to spans, and move some of the hardening around so
2850         that it's more useful.
2851
2852         * wtf/FastMalloc.cpp:
2853         (WTF::internalEntropyValue):
2854         (WTF::spanInitializerCookie):
2855         (WTF::Span::initCookie):
2856         (WTF::Span::clearCookie):
2857         (WTF::Span::isValid):
2858         (Span):
2859         (WTF::NewSpan):
2860         (WTF::DeleteSpan):
2861         (WTF::TCMalloc_ThreadCache_FreeList::Validate):
2862         (WTF::TCMalloc_Central_FreeList::Populate):
2863         (WTF::TCMalloc_ThreadCache::Deallocate):
2864         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2865
2866 2013-02-25  Jer Noble  <jer.noble@apple.com>
2867
2868         Normalize ENABLE_ENCRYPTED_MEDIA definitions across all FeatureDefines files.
2869         https://bugs.webkit.org/show_bug.cgi?id=110806
2870
2871         Reviewed by Alexey Proskuryakov.
2872
2873         Ensure both ENCRYPTED_MEDIA and ENCRYPTED_MEDIA_V2 are enabled on macosx_1090.
2874
2875         * wtf/FeatureDefines.h:
2876
2877 2013-02-23  Ilya Tikhonovsky  <loislo@chromium.org>
2878
2879         Web Inspector: Native Memory Instrumentation: replace String with const char* in MemoryObjectInfo
2880         https://bugs.webkit.org/show_bug.cgi?id=110599
2881
2882         Reviewed by Yury Semikhatsky.
2883
2884         Due to potentially dynamic nature of names and classNames we need to make a copy of the strings
2885         that were given us via MemoryInstrumentation calls.
2886         So I extended client api with registerString method that pushes the strings
2887         down to the serializer.
2888
2889         * wtf/MemoryInstrumentation.h:
2890         (MemoryInstrumentationClient):
2891         * wtf/MemoryObjectInfo.h:
2892         (WTF::MemoryObjectInfo::MemoryObjectInfo):
2893         (WTF::MemoryObjectInfo::setClassName):
2894         (WTF::MemoryObjectInfo::classNameId):
2895         (WTF::MemoryObjectInfo::setName):
2896         (WTF::MemoryObjectInfo::nameId):
2897         (MemoryObjectInfo):
2898
2899 2013-02-21  Brady Eidson  <beidson@apple.com>
2900
2901         Move fastlog2() to WTF/MathExtras.h so it can be used from multiple projects.
2902
2903         Rubberstamped by Geoff Garen.
2904
2905         * wtf/MathExtras.h:
2906         (WTF::fastLog2):
2907
2908 2013-02-21  Andy Estes  <aestes@apple.com>
2909
2910         TriState.h should be a Project header
2911         https://bugs.webkit.org/show_bug.cgi?id=110543
2912
2913         Rubber-stamped by Dan Bernstein.
2914
2915         WTF uses a script to copy headers to the build destination, so it isn't
2916         necessary to mark headers as Private/Public (and doing so can be problematic).
2917
2918         * WTF.xcodeproj/project.pbxproj: Mark TriState.h as a Project header.
2919
2920 2013-02-21  Roger Fong  <roger_fong@apple.com>
2921
2922         Unreviewed. Add executable property to cmd file.
2923         Required for executable files to maintain their executable permissions over svn.
2924
2925         * WTF.vcxproj/copy-files.cmd: Added property svn:executable.
2926
2927 2013-02-19  Mark Hahnenberg  <mhahnenberg@apple.com>
2928
2929         Objective-C API: Need a way to use the Objective-C JavaScript API with WebKit
2930         https://bugs.webkit.org/show_bug.cgi?id=106059
2931
2932         Reviewed by Geoffrey Garen.
2933
2934         * wtf/FeatureDefines.h: Added enable flag for JSC Objective-C API so it can be used in
2935         export files.
2936
2937 2013-02-21  Martin Robinson  <mrobinson@igalia.com>
2938
2939         A couple more 'make dist' fixes for WebKitGTK+.
2940
2941         * GNUmakefile.list.am: Add a missing file to the source list.
2942
2943 2013-02-20  Roger Fong  <roger_fong@apple.com>
2944
2945         Get VS2010 Solution B&I ready.
2946         <rdar://problem/1322988>
2947
2948         Rubberstamped by Timothy Horton.        
2949         
2950         Add Production configuration. 
2951         Add a WTF submit solution with a DebugSuffix configuration. 
2952         Modify WTF.make as necessary.
2953         
2954         * WTF.vcxproj: Added property svn:eol-style. Modified property svn:ignore.
2955         * WTF.vcxproj/WTF.make: Added.
2956         * WTF.vcxproj/WTF.submit.sln: Added.
2957         * WTF.vcxproj/WTF.vcxproj:
2958         * WTF.vcxproj/WTFCommon.props:
2959         * WTF.vcxproj/WTFGenerated.vcxproj:
2960         * WTF.vcxproj/WTFGeneratedProduction.props: Added.
2961         * WTF.vcxproj/WTFGeneratedRelease.props:
2962         * WTF.vcxproj/WTFProduction.props: Added.
2963         * WTF.vcxproj/WTFRelease.props:
2964         * WTF.vcxproj/copy-files.cmd:
2965
2966 2013-02-20  Oliver Hunt  <oliver@apple.com>
2967
2968         Moar hardening
2969         https://bugs.webkit.org/show_bug.cgi?id=110275
2970
2971         Reviewed by Mark Hahnenberg.
2972
2973         We now poison objects when they get freed, and verify that
2974         any object that is being freed is not poisoned.  If the
2975         object looks like it's poisoned we validate the freelist,
2976         and ensure the object is not already present.  If it is
2977         we crash.
2978
2979         On allocation, we ensure that the object being allocated
2980         is poisoned, then clear the poisoning fields.
2981
2982         * wtf/FastMalloc.cpp:
2983         (WTF::internalEntropyValue):
2984         (WTF):
2985         (WTF::freedObjectStartPoison):
2986         (WTF::freedObjectEndPoison):
2987         (TCMalloc_ThreadCache_FreeList):
2988         (WTF::TCMalloc_ThreadCache_FreeList::Validate):
2989         (WTF::TCMalloc_Central_FreeList::Populate):
2990         (WTF::TCMalloc_ThreadCache::Allocate):
2991         (WTF::TCMalloc_ThreadCache::Deallocate):
2992         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2993
2994 2013-02-19  Sheriff Bot  <webkit.review.bot@gmail.com>
2995
2996         Unreviewed, rolling out r143400.
2997         http://trac.webkit.org/changeset/143400
2998         https://bugs.webkit.org/show_bug.cgi?id=110290
2999
3000         breaks everything (instacrash launching Safari) (Requested by
3001         thorton on #webkit).
3002
3003         * wtf/FastMalloc.cpp:
3004         (WTF::internalEntropyValue):
3005         (WTF):
3006         (WTF::TCMalloc_Central_FreeList::Populate):
3007         (WTF::TCMalloc_ThreadCache::Allocate):
3008         (WTF::TCMalloc_ThreadCache::Deallocate):
3009
3010 2013-02-19  Oliver Hunt  <oliver@apple.com>
3011
3012         Moar hardening
3013         https://bugs.webkit.org/show_bug.cgi?id=110275
3014
3015         Reviewed by Anders Carlsson.
3016
3017         We now poison objects when they get freed, and verify that
3018         any object that is being freed is not poisoned.  If the
3019         object looks like it's poisoned we validate the freelist,
3020         and ensure the object is not already present.  If it is
3021         we crash.
3022
3023         On allocation, we ensure that the object being allocated
3024         is poisoned, then clear the poisoning fields.
3025
3026         * wtf/FastMalloc.cpp:
3027         (WTF::internalEntropyValue):
3028         (WTF):
3029         (WTF::freedObjectStartPoison):
3030         (WTF::freedObjectEndPoison):
3031         (TCMalloc_ThreadCache_FreeList):
3032         (WTF::TCMalloc_ThreadCache_FreeList::Validate):
3033         (WTF::TCMalloc_Central_FreeList::Populate):
3034         (WTF::TCMalloc_ThreadCache::Allocate):
3035         (WTF::TCMalloc_ThreadCache::Deallocate):
3036
3037 2013-02-18  Darin Adler  <darin@apple.com>
3038
3039         Style tweaks to StringHasher.h
3040         https://bugs.webkit.org/show_bug.cgi?id=110042
3041
3042         Reviewed by Alexey Proskuryakov.
3043
3044         I have a bug fix coming soon, but figured I'd separate out style tweaks and land them
3045         first to make that patch easier to undrestand.
3046
3047         * wtf/StringHasher.h: Tweak and rearrange comments a bit.
3048         (WTF::StringHasher::addCharacter): Use character instead of ch.
3049         (WTF::StringHasher::addCharacters): Use remainder instead of rem. Also capitalize the U
3050         that we use to make an unsigned 1 constant.
3051         (WTF::StringHasher::computeHashAndMaskTop8Bits): Ditto.
3052         (WTF::StringHasher::hashMemory): Change version that takes size as a template argument
3053         to call the version that takes the size at runtime, since both generate the same code
3054         anyway. Added a FIXME questioning why this function uses the "mask top 8 bits" version
3055         of the hash. Fix incorrect compile assertion that required sizes that are multiples
3056         of four. This function works on sizes that are multiples of two. Also fixed a spelling
3057         error where we called it a "multible".
3058         (WTF::StringHasher::defaultConverter): Use character instead of ch.
3059         (WTF::StringHasher::addCharactersToHash): Eliminated unnecessary local variable.
3060
3061 2013-02-18  Alexey Proskuryakov  <ap@apple.com>
3062
3063         Make HexNumber functions return 8-bit strings
3064         https://bugs.webkit.org/show_bug.cgi?id=110152
3065
3066         Reviewed by Michael Saboff.
3067
3068         * wtf/HexNumber.h:
3069         (Internal):
3070         (WTF::Internal::hexDigitsForMode):
3071         (WTF::appendByteAsHex):
3072         (WTF::placeByteAsHexCompressIfPossible):
3073         (WTF::placeByteAsHex):
3074         (WTF::appendUnsignedAsHex):
3075         (WTF::appendUnsignedAsHexFixedSize):
3076         Use LChar everywhere.
3077
3078 2013-02-18  Benjamin Poulain  <bpoulain@apple.com>
3079
3080         Remove Vector::dataSlot(), it has no implementation
3081         https://bugs.webkit.org/show_bug.cgi?id=109999
3082
3083         Reviewed by Andreas Kling.
3084
3085         VectorBufferBase does not implement any function bufferSlot().
3086         The file only compiles because that part of the template is never
3087         instantiated.
3088
3089         * wtf/Vector.h:
3090
3091 2013-02-18  Laszlo Gombos  <l.gombos@samsung.com>
3092
3093         Move ENABLE macros for WebCore out from Platform.h
3094         https://bugs.webkit.org/show_bug.cgi?id=105735
3095
3096         Unreviewed, build fix when NETSCAPE_PLUGIN_API is disabled.
3097
3098         Enable ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH even if
3099         NETSCAPE_PLUGIN_API is disabled (Qt, Efl, GTK, WX ports).
3100
3101         * wtf/FeatureDefines.h:
3102
3103 2013-02-18  Balazs Kilvady  <kilvadyb@homejinni.com>
3104
3105         MIPS DFG implementation.
3106         https://bugs.webkit.org/show_bug.cgi?id=101328
3107
3108         Reviewed by Oliver Hunt.
3109
3110         DFG implementation for MIPS.
3111
3112         * wtf/Platform.h:
3113
3114 2013-02-18  Zan Dobersek  <zdobersek@igalia.com>
3115
3116         Stop placing std::isfinite and std::signbit inside the global scope
3117         https://bugs.webkit.org/show_bug.cgi?id=109817
3118
3119         Reviewed by Darin Adler.
3120
3121         Prefix calls to the isfinite and signbit methods with std:: as the two
3122         methods are no longer being imported into the global scope.
3123
3124         On Solaris and OpenBSD platforms or when using Visual C++ the two methods
3125         are now defined (as incompatibility workarounds) inside the std namespace.
3126
3127         * wtf/DateMath.cpp:
3128         (WTF::timeClip):
3129         * wtf/DecimalNumber.h:
3130         (WTF::DecimalNumber::DecimalNumber):
3131         * wtf/MathExtras.h:
3132         (std):
3133         (std::isfinite):
3134         (std::signbit):
3135         (lrint):
3136         (wtf_pow):
3137         (decomposeDouble):
3138         * wtf/MediaTime.cpp:
3139         (WTF::MediaTime::createWithFloat):
3140         (WTF::MediaTime::createWithDouble):
3141         * wtf/dtoa.cpp:
3142         (WTF::dtoa):
3143
3144 2013-02-18  Laszlo Gombos  <l.gombos@samsung.com>
3145
3146         Move ENABLE macros for WebCore out from Platform.h
3147         https://bugs.webkit.org/show_bug.cgi?id=105735
3148
3149         Reviewed by Darin Adler and Benjamin Poulain.
3150
3151         Introduce FeatureDefines.h by combining the existing rules from
3152         Platform.h and adding new rules for all the ENABLE flags that are
3153         listed in the FeatureFlags wiki.
3154
3155         The new rules are not used at the moment by any ports
3156         as the port specific build systems already define these flags
3157         so the !defined() guard will prevent redefinition of the macros.
3158
3159         * GNUmakefile.list.am: Add FeatureDefines.h.
3160         * WTF.gypi: Ditto.
3161         * WTF.pro: Ditto.
3162         * WTF.vcproj/WTF.vcproj: Ditto.
3163         * WTF.xcodeproj/project.pbxproj: Ditto.
3164         * wtf/CMakeLists.txt: Ditto.
3165         * wtf/FeatureDefines.h: Added.
3166         * wtf/Platform.h: Move macro definitions to FeatureDefines.h.
3167
3168 2013-02-16  Darin Adler  <darin@apple.com>
3169
3170         Remove redundant use of inline keyword in StringHasher.h
3171         https://bugs.webkit.org/show_bug.cgi?id=110036
3172
3173         Reviewed by Geoffrey Garen.
3174
3175         I have some other improvements for StringHasher.h, but wanted to get the simplest ones
3176         out of the way first.
3177
3178         * wtf/StringHasher.h: Remove inline keyword on functions inside the class definition,
3179         since functions defined inside the class are automatically inline.
3180
3181 2013-02-15  Martin Robinson  <mrobinson@igalia.com>
3182
3183         [GTK] Spread the gyp build files throughout the tree
3184         https://bugs.webkit.org/show_bug.cgi?id=109960
3185
3186         Reviewed by Dirk Pranke.
3187
3188         * WTF.gyp/WTFGTK.gyp: Renamed from Source/WebKit/gtk/gyp/WTF.gyp.
3189
3190 2013-02-15  Anders Carlsson  <andersca@apple.com>
3191
3192         Add HashMap::isValidKey and HashSet::isValidValue
3193         https://bugs.webkit.org/show_bug.cgi?id=109977
3194
3195         Reviewed by Sam Weinig and Darin Adler.
3196
3197         Add helper functions for determining whether keys are valid, i.e. if
3198         they are _not_ empty or deleted according to the hash traits.
3199
3200         * wtf/HashMap.h:
3201         * wtf/HashSet.h:
3202
3203 2013-02-15  Laszlo Gombos  <l.gombos@samsung.com>
3204
3205         Remove support for RVCT version less than 4.0
3206         https://bugs.webkit.org/show_bug.cgi?id=109390
3207
3208         The 4.0 version of the RVCT compiler was 
3209         released in 2008. 
3210         
3211         Remove support for version older then 4.0 of RVCT, 
3212         and keep the support for newer RVCT versions.
3213
3214         Reviewed by Zoltan Herczeg.
3215
3216         * WTF.gypi: Remove StringExtras.cpp.
3217         * WTF.vcproj/WTF.vcproj: Remove StringExtras.cpp.
3218         * WTF.vcxproj/WTF.vcxproj: Remove StringExtras.cpp.
3219         * WTF.vcxproj/WTF.vcxproj.filters: Remove StringExtras.cpp.
3220         * WTF.xcodeproj/project.pbxproj: Remove StringExtras.cpp.
3221         * wtf/CMakeLists.txt: Remove StringExtras.cpp.
3222         * wtf/Compiler.h: Remove tests for RVCT_VERSION_AT_LEAST(3, 0, 0, 0).
3223         * wtf/Float32Array.h: Remove a quirk introduced for RVCT version <=2.2 .
3224         * wtf/Float64Array.h: Ditto.
3225         * wtf/Int16Array.h: Ditto.
3226         * wtf/Int32Array.h: Ditto.
3227         * wtf/Int8Array.h: Ditto.
3228         * wtf/MathExtras.h: Remove a quirk needed for RVCT version  <= 3.0.
3229         * wtf/Platform.h: Remove test for RVCT 4.0. Remove OS(RVCT).
3230         * wtf/StringExtras.cpp: Removed.
3231         * wtf/StringExtras.h: Remove a quirk introduced for RVCT version < 4.0.
3232         * wtf/Uint16Array.h: Remove a quirk introduced for RVCT version <= 2.2.
3233         * wtf/Uint32Array.h: Ditto.
3234         * wtf/Uint8Array.h: Ditto.
3235         * wtf/Uint8ClampedArray.h: Ditto.
3236
3237 2013-02-15  Christophe Dumez  <ch.dumez@sisa.samsung.com>
3238
3239         Add CString operators for comparison with const char*
3240         https://bugs.webkit.org/show_bug.cgi?id=109947
3241
3242         Reviewed by Darin Adler.
3243
3244         Add operators to WTF::CString for equality/inequality comparison
3245         with const char* strings. This avoids constructing a CString
3246         from a const char* in such cases, which is can be expensive as
3247         it would copy it and call strlen().
3248
3249         * wtf/text/CString.cpp:
3250         (WTF::operator==): Use memcmp instead of strncmp to compare the
3251         CString buffers as we know they are the same size and we don't
3252         want to scan for terminating null byte.
3253         (WTF):
3254         * wtf/text/CString.h:
3255         (WTF):
3256         (WTF::operator!=):
3257
3258 2013-02-15  Geoffrey Garen  <ggaren@apple.com>
3259
3260         Merged the global function cache into the source code cache
3261         https://bugs.webkit.org/show_bug.cgi?id=108660
3262
3263         Reviewed by Sam Weinig.
3264
3265         Responding to review comments by Darin Adler.
3266
3267         * wtf/HashTraits.h: Added a using directive to simplify client code.
3268
3269 2013-02-14  Dan Bernstein  <mitz@apple.com>
3270
3271         No easy way to use a RetainPtr as a key in a HashMap using object (rather than pointer) equality
3272         https://bugs.webkit.org/show_bug.cgi?id=109864
3273
3274         Reviewed by Sam Weinig and Benjamin Poulain.
3275
3276         Added RetainPtrObjectHashTraits and RetainPtrObjectHash, which use CFEqual
3277         and CFHash.
3278
3279         * wtf/RetainPtr.h:
3280         (RetainPtrObjectHashTraits):
3281         (WTF::RetainPtrObjectHashTraits::emptyValue):
3282         (WTF::RetainPtrObjectHashTraits::constructDeletedValue):
3283         (WTF::RetainPtrObjectHashTraits::isDeletedValue):
3284         (WTF):
3285         (WTF::RetainPtrObjectHash::hash):
3286         (WTF::RetainPtrObjectHash::equal):
3287         (RetainPtrObjectHash):
3288
3289 2013-02-14  Tony Chang  <tony@chromium.org>
3290
3291         Unreviewed, set svn:eol-style native for .sln, .vcproj, and .vsprops files.
3292         https://bugs.webkit.org/show_bug.cgi?id=96934
3293
3294         * WTF.vcproj/WTF.sln: Modified property svn:eol-style.
3295
3296 2013-02-14  Tony Chang  <tony@chromium.org>
3297
3298         Unreviewed, set svn:eol-style CRLF for .sln files.
3299
3300         * WTF.vcproj/WTF.sln: Added property svn:eol-style.
3301
3302 2013-02-14  David Kilzer  <ddkilzer@apple.com>
3303
3304         [Mac] Clean up WARNING_CFLAGS
3305         <http://webkit.org/b/109747>
3306         <rdar://problem/13208373>
3307
3308         Reviewed by Mark Rowe.
3309
3310         * Configurations/Base.xcconfig: Use
3311         GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
3312         -Wshorten-64-to-32 rather than WARNING_CFLAGS.
3313
3314         * WTF.vcproj/WTF.sln: Added property svn:eol-style.
3315
3316 2013-02-14  Eric Seidel  <eric@webkit.org>
3317
3318         String(Vector) behaves differently from String(vector.data(), vector.size()) for vectors with inline capacity in the size=0 case
3319         https://bugs.webkit.org/show_bug.cgi?id=109784
3320
3321         Reviewed by Darin Adler.
3322
3323         This makes String(Vector) never return null strings.
3324         Which matches behavior of String(UChar*, size_t)
3325         for vectors with inlineCapacity, but differs from
3326         String(UChar*, size_t) in the no-inlineCapacity case.
3327
3328         This incidentally will fix a behavioral regression
3329         in the html threaded parser which came from converting
3330         many String(UChar*, size_t) callsites to using String(Vector).
3331
3332         * wtf/text/WTFString.h:
3333         (String):
3334         (WTF::String::String):
3335
3336 2013-02-14  Eric Seidel  <eric@webkit.org>
3337
3338         REGRESSION(r142712): attribute values show up as "(null)" instead of null with the threaded parser
3339         https://bugs.webkit.org/show_bug.cgi?id=109784
3340
3341         Reviewed by Benjamin Poulain.
3342
3343         When I changed many callsites to use the (existing) String(Vector) constructor
3344         I inadvertantly made those callsites convert empty vectors to null strings
3345         instead of empty strings (like String(UChar,size_t) does).
3346
3347         This is due to an oddity/bug in our Vector implementation where data()
3348         will be 0 if the Vector is empty, but only if it doesn't have inline capacity.
3349         https://bugs.webkit.org/show_bug.cgi?id=109792
3350
3351         This changes String(Vector) to exactly match the behavior of String(vector.data(), vector.size()).
3352
3353         This regression was easily detectable with the threaded parser, because we use String
3354         instead of AtomicString in our CompactToken (used to send the Token data
3355         between threads). The main-thread parser path uses AtomicHTMLToken which
3356         uses AtomicString(Vector) and does not have this bug.
3357
3358         * wtf/text/WTFString.h:
3359         (String):
3360         (WTF::String::String):
3361
3362 2013-02-13  Zan Dobersek  <zdobersek@igalia.com>
3363
3364         The 'global isinf/isnan' compiler quirk required when using clang with libstdc++
3365         https://bugs.webkit.org/show_bug.cgi?id=109325
3366
3367         Reviewed by Anders Carlsson.
3368
3369         Prefix calls to the isinf and isnan methods with std::, declaring we want to use the
3370         two methods as they're provided by the C++ standard library being used.
3371
3372         * wtf/Compiler.h: Remove the global isinf/isnan compiler quirk definitions. They're not required anymore.
3373         * wtf/DateMath.cpp: Move the workaround for isinf on Solaris into the std namespace. Ditto for isinf and isnan
3374         when using MSVC. Stop bringing the isinf and isnan methods into the global scope when using other configurations.
3375         (WTF::parseDateFromNullTerminatedCharacters):
3376         * wtf/IntegralTypedArrayBase.h:
3377         (WTF::IntegralTypedArrayBase::set):
3378         * wtf/MathExtras.h:
3379         (std):
3380         (std::isinf):
3381         (wtf_fmod):
3382         (wtf_pow):
3383         (doubleToInteger):
3384         * wtf/MediaTime.cpp:
3385         (WTF::MediaTime::createWithFloat):
3386         (WTF::MediaTime::createWithDouble):
3387         * wtf/Uint8ClampedArray.h:
3388         (WTF::Uint8ClampedArray::set):
3389
3390 2013-02-13  Eric Seidel  <eric@webkit.org>
3391
3392         Don't copy Vector<UChar> when passing to new String methods from bug 109617
3393         https://bugs.webkit.org/show_bug.cgi?id=109708
3394
3395         Reviewed by Tony Gentilcore.
3396
3397         Thanks for the catch Darin.
3398
3399         * wtf/text/AtomicString.h:
3400         (WTF::AtomicString::AtomicString):
3401         * wtf/text/StringImpl.h:
3402         (WTF::StringImpl::create8BitIfPossible):
3403
3404 2013-02-13  Martin Robinson  <mrobinson@igalia.com>
3405
3406         [GTK] Remove remaining dead code from the GLib unicode backend
3407         https://bugs.webkit.org/show_bug.cgi?id=109707
3408
3409         Reviewed by Philippe Normand.
3410
3411         * wtf/unicode/Unicode.h:
3412
3413 2013-02-13  Andrew Wilson  <atwilson@chromium.org>
3414
3415         Unreviewed Chromium gyp-file cleanup after glib backend removal.
3416         https://bugs.webkit.org/show_bug.cgi?id=109672
3417
3418         Removed references to GLib unicode backend:
3419
3420         * WTF.gyp/WTF.gyp:
3421         * WTF.gypi:
3422
3423 2013-02-12  Martin Robinson  <mrobinson@igalia.com>
3424
3425         [GTK] Remove the GLib unicode backend
3426         https://bugs.webkit.org/show_bug.cgi?id=109627
3427
3428         Reviewed by Benjamin Poulain.
3429
3430         Remove references to the GLib unicode backend from WTF.
3431
3432         * GNUmakefile.list.am: Remove GLib unicode files from the source list.
3433         * wtf/unicode/glib/UnicodeGLib.cpp: Removed.
3434         * wtf/unicode/glib/UnicodeGLib.h: Removed.
3435
3436 2013-02-12  Takeshi Yoshino  <tyoshino@google.com>
3437
3438         Remove unnecessary and confusing includes from StreamBuffer.h.
3439         https://bugs.webkit.org/show_bug.cgi?id=109652
3440
3441         Reviewed by Benjamin Poulain.
3442
3443         StreamBuffer.h is using OwnPtr for storing Vectors into a Deque.
3444         FixedArray.h and PassOwnPtr.h are included but not used.
3445
3446         VectorTraits defines how to move OwnPtr in Vector. It's done by memcpy.
3447         So, there's no need for PassOwnPtr (Deque<PassOwnPtr<Vector<char> > >
3448         is even slower).
3449
3450         * wtf/StreamBuffer.h:
3451
3452 2013-02-12  Eric Seidel  <eric@webkit.org>
3453
3454         Teach more WTF string classes about vectors with inline capacity
3455         https://bugs.webkit.org/show_bug.cgi?id=109617
3456
3457         Reviewed by Benjamin Poulain.
3458
3459         The HTML and WebVTT parsers use constructions like:
3460         AtomicString name(m_name.data(), m_name.size())
3461         all over the place because they use inline capacity
3462         on the parse vectors for performance.
3463
3464         This change just add the necessary template variants
3465         to the related String constructors/methods in WTF so that
3466         this parser code can just pass the vector directly instead.
3467
3468         I'll do the actual parser cleanups in follow-up patches to keep things simple.
3469
3470         * wtf/text/AtomicString.h:
3471         (AtomicString):
3472         (WTF::AtomicString::AtomicString):
3473         * wtf/text/StringImpl.h:
3474         (StringImpl):
3475         (WTF::StringImpl::create8BitIfPossible):
3476         * wtf/text/WTFString.h:
3477         (String):
3478         (WTF::String::make8BitFrom16BitSource):
3479         (WTF):
3480         (WTF::append):
3481
3482 2013-02-11  Oliver Hunt  <oliver@apple.com>
3483
3484         Build fix.
3485
3486         * wtf/FastMalloc.cpp:
3487         (WTF::TCMalloc_PageHeap::IncrementalScavenge):
3488
3489 2013-02-11  Ryosuke Niwa  <rniwa@webkit.org>
3490
3491         Disable delete button controller on non-Mac ports and delete EditorClient::shouldShowDeleteInterface
3492         https://bugs.webkit.org/show_bug.cgi?id=109534
3493
3494         Reviewed by Anders Carlsson.
3495
3496         * wtf/Platform.h:
3497
3498 2013-02-11  David Kilzer  <ddkilzer@apple.com>
3499
3500         [iOS] Upstream changes to Platform.h
3501         <http://webkit.org/b/109459>
3502
3503         Reviewed by Benjamin Poulain.
3504
3505         * wtf/Platform.h:
3506         - Changes for armv7s.
3507         - Add ENABLE() definitions for DASHBOARD_SUPPORT and WEBGL.
3508         - Re-sort ENABLE() and USE() macros.
3509         - Remove ENABLE() macros for JIT, LLINT and YARR_JIT to enable
3510           on iOS Simulator.  They are already defined below.
3511         - Turn off HAVE(HOSTED_CORE_ANIMATION) for iOS.
3512         - Turn on USE(COREMEDIA) for iOS 6.0 and later.
3513
3514 2013-02-08  Oliver Hunt  <oliver@apple.com>
3515
3516         Harden FastMalloc (again)
3517         https://bugs.webkit.org/show_bug.cgi?id=109334
3518
3519         Reviewed by Mark Hahnenberg.
3520
3521         Re-implement hardening of linked lists in TCMalloc.
3522
3523         In order to keep heap introspection working, we need to thread the
3524         heap entropy manually as the introspection process can't use the
3525         address of a global in determining the mask.  Given we now have to
3526         thread a value through anyway, I've stopped relying on ASLR for entropy
3527         and am simply using arc4random() on darwin, and time + ASLR everywhere
3528         else.
3529
3530         I've also made an explicit struct type for the FastMalloc singly linked
3531         lists, as it seemed like the only way to reliably distinguish between
3532         void*'s that were lists vs. void* that were not.  This also made it
3533         somewhat easier to reason about things across processes.
3534
3535         Verified that all the introspection tools work as expected.
3536
3537         * wtf/FastMalloc.cpp:
3538         (WTF::internalEntropyValue):
3539         (WTF):
3540         (HardenedSLL):
3541         (WTF::HardenedSLL::create):
3542         (WTF::HardenedSLL::null):
3543         (WTF::HardenedSLL::setValue):
3544         (WTF::HardenedSLL::value):
3545         (WTF::HardenedSLL::operator!):
3546         (WTF::HardenedSLL::operator UnspecifiedBoolType):
3547         (TCEntry):
3548         (WTF::SLL_Next):
3549         (WTF::SLL_SetNext):
3550         (WTF::SLL_Push):
3551         (WTF::SLL_Pop):
3552         (WTF::SLL_PopRange):
3553         (WTF::SLL_PushRange):
3554         (WTF::SLL_Size):
3555         (PageHeapAllocator):
3556         (WTF::PageHeapAllocator::Init):
3557         (WTF::PageHeapAllocator::New):
3558         (WTF::PageHeapAllocator::Delete):
3559         (WTF::PageHeapAllocator::recordAdministrativeRegions):
3560         (WTF::Span::next):
3561         (WTF::Span::remoteNext):
3562         (WTF::Span::prev):
3563         (WTF::Span::setNext):
3564         (WTF::Span::setPrev):
3565         (Span):
3566         (WTF::DLL_Init):
3567         (WTF::DLL_Remove):
3568         (WTF::DLL_IsEmpty):
3569         (WTF::DLL_Length):
3570         (WTF::DLL_Prepend):
3571         (TCMalloc_Central_FreeList):
3572         (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects):
3573         (WTF::TCMalloc_Central_FreeList::entropy):
3574         (TCMalloc_PageHeap):
3575         (WTF::TCMalloc_PageHeap::init):
3576         (WTF::TCMalloc_PageHeap::scavenge):
3577         (WTF::TCMalloc_PageHeap::New):
3578         (WTF::TCMalloc_PageHeap::AllocLarge):
3579         (WTF::TCMalloc_PageHeap::Carve):
3580         (WTF::TCMalloc_PageHeap::Delete):
3581         (WTF::TCMalloc_PageHeap::ReturnedBytes):
3582         (WTF::TCMalloc_PageHeap::Check):
3583         (WTF::TCMalloc_PageHeap::CheckList):
3584         (WTF::TCMalloc_PageHeap::ReleaseFreeList):
3585         (TCMalloc_ThreadCache_FreeList):
3586         (WTF::TCMalloc_ThreadCache_FreeList::Init):
3587         (WTF::TCMalloc_ThreadCache_FreeList::empty):
3588         (WTF::TCMalloc_ThreadCache_FreeList::Push):
3589         (WTF::TCMalloc_ThreadCache_FreeList::PushRange):
3590         (WTF::TCMalloc_ThreadCache_FreeList::PopRange):
3591         (WTF::TCMalloc_ThreadCache_FreeList::Pop):
3592         (WTF::TCMalloc_ThreadCache_FreeList::enumerateFreeObjects):
3593         (TCMalloc_ThreadCache):
3594         (WTF::TCMalloc_Central_FreeList::Init):
3595         (WTF::TCMalloc_Central_FreeList::ReleaseListToSpans):
3596         (WTF::TCMalloc_Central_FreeList::ReleaseToSpans):
3597         (WTF::TCMalloc_Central_FreeList::InsertRange):
3598         (WTF::TCMalloc_Central_FreeList::RemoveRange):
3599         (WTF::TCMalloc_Central_FreeList::FetchFromSpansSafe):
3600         (WTF::TCMalloc_Central_FreeList::FetchFromSpans):
3601         (WTF::TCMalloc_Central_FreeList::Populate):
3602         (WTF::TCMalloc_ThreadCache::Init):
3603         (WTF::TCMalloc_ThreadCache::Deallocate):
3604         (WTF::TCMalloc_ThreadCache::FetchFromCentralCache):
3605         (WTF::TCMalloc_ThreadCache::ReleaseToCentralCache):
3606         (WTF::TCMalloc_ThreadCache::InitModule):
3607         (WTF::TCMalloc_ThreadCache::NewHeap):
3608         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
3609         * wtf/MallocZoneSupport.h:
3610         (RemoteMemoryReader):
3611
3612 2013-02-11  Enrica Casucci  <enrica@apple.com>
3613
3614         Add ENABLE_DELETION_UI to control the use of the deletion UI.
3615         https://bugs.webkit.org/show_bug.cgi?id=109463.
3616         
3617         ENABLE_DELETION_UI is set to 1 by default for
3618         all ports. It is explicitly enabled for MAC and disabled for iOS.
3619
3620         Reviewed by Ryosuke Niwa.
3621
3622         * wtf/Platform.h:
3623
3624 2013-02-11  Christophe Dumez  <ch.dumez@sisa.samsung.com>
3625
3626         [EFL] Stop using smart pointers for Ecore_Timer
3627         https://bugs.webkit.org/show_bug.cgi?id=109409
3628
3629         Reviewed by Kenneth Rohde Christiansen.
3630
3631         Remove support in OwnPtr for EFL's Ecore_Timer. It is a bad idea to use
3632         OwnPtr for Ecore_Timer because the timer handle may become invalid.
3633
3634         * wtf/OwnPtrCommon.h:
3635         (WTF):
3636         * wtf/efl/OwnPtrEfl.cpp:
3637
3638 2013-02-11  Abhishek Arya  <inferno@chromium.org>
3639
3640         Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
3641         https://bugs.webkit.org/show_bug.cgi?id=108981
3642
3643         Reviewed by Eric Seidel.
3644
3645         * wtf/BitVector.h:
3646         (WTF::BitVector::quickGet):
3647         (WTF::BitVector::quickSet):
3648         (WTF::BitVector::quickClear):
3649         * wtf/DecimalNumber.h:
3650         (WTF::DecimalNumber::DecimalNumber):
3651         * wtf/SegmentedVector.h:
3652         (WTF::SegmentedVector::ensureSegment):
3653         * wtf/StringPrintStream.cpp:
3654         (WTF::StringPrintStream::vprintf):
3655         * wtf/Vector.h:
3656         (WTF::::insert):
3657         (WTF::::remove):
3658         * wtf/dtoa/utils.h:
3659         (WTF::double_conversion::StringBuilder::SetPosition):
3660         (WTF::double_conversion::StringBuilder::AddSubstring):
3661
3662 2013-02-10  Laszlo Gombos  <l.gombos@samsung.com>
3663
3664         Consolidate the way WTF_USE_PTHREADS is enabled
3665         https://bugs.webkit.org/show_bug.cgi?id=108191
3666
3667         Reviewed by Benjamin Poulain.
3668
3669         Define WTF_USE_PTHREADS to 1 on all OS(UNIX) environments.
3670
3671         * WTF.gyp/WTF.gyp: Remove duplicated definition of WTF_USE_PTHREADS.
3672         * wtf/Platform.h:
3673
3674 2013-02-10  Laszlo Gombos  <l.gombos@samsung.com>
3675
3676         Refactor the way HAVE_XXX macros are set
3677         https://bugs.webkit.org/show_bug.cgi?id=108132
3678
3679         Reviewed by Benjamin Poulain.
3680
3681         OS(WINDOWS) and OS(UNIX) are so broadly defined that for each
3682         builds exactly one of them is enabled. Use this assumption to
3683         cleanup Platform.h.
3684
3685         * wtf/Platform.h:
3686
3687 2013-02-10  Jae Hyun Park  <jae.park08@gmail.com>
3688
3689         Rename ENABLE(GLIB_SUPPORT) to USE(GLIB)
3690         https://bugs.webkit.org/show_bug.cgi?id=104266
3691
3692         Reviewed by Philippe Normand.
3693
3694         Using USE(GLIB) instead of ENABLE(GLIB_SUPPORT) is more consistent with
3695         the existing macro naming conventions.
3696
3697         From Platform.h
3698         USE() - use a particular third-party library or optional OS service
3699         ENABLE() - turn on a specific feature of WebKit
3700
3701         * WTF.pri:
3702         * wtf/Platform.h:
3703         * wtf/gobject/GOwnPtr.cpp:
3704         * wtf/gobject/GOwnPtr.h:
3705         * wtf/gobject/GRefPtr.cpp:
3706         * wtf/gobject/GRefPtr.h:
3707
3708 2013-02-08  Michael Saboff  <msaboff@apple.com>
3709
3710         ARM_NEON Inline Assembly for copyLCharsFromUCharSource() inefficient for aligned destinations
3711         https://bugs.webkit.org/show_bug.cgi?id=109335
3712
3713         Reviewed by Filip Pizlo.
3714
3715         Change a "do while" to a "while" so that we don't copy single characters to align the 
3716         destination when it is already aligned.
3717
3718         * wtf/text/ASCIIFastPath.h:
3719         (WTF::copyLCharsFromUCharSource):
3720
3721 2013-02-08  Jer Noble  <jer.noble@apple.com>
3722
3723         Bring WebKit up to speed with latest Encrypted Media spec.
3724         https://bugs.webkit.org/show_bug.cgi?id=97037
3725
3726         Reviewed by Eric Carlson.
3727
3728         Define the ENABLE_ENCRYPTED_MEDIA_V2 setting.
3729
3730         * wtf/Platform.h:
3731
3732 2013-02-08  Adam Barth  <abarth@webkit.org>
3733
3734         Use WeakPtrs to communicate between the HTMLDocumentParser and the BackgroundHTMLParser
3735         https://bugs.webkit.org/show_bug.cgi?id=107190
3736
3737         Reviewed by Eric Seidel.
3738
3739         Add the ability to create an unbound weak reference. This facility lets
3740         you start sending messages to a WeakPtr on another thread before the
3741         object backing the WeakPtr has actually been created.
3742
3743         * wtf/WeakPtr.h:
3744         (WTF::WeakReference::createUnbound):
3745         (WTF::WeakReference::bindTo):
3746         (WeakReference):
3747         (WTF::WeakReference::WeakReference):
3748         (WTF::WeakPtr::WeakPtr):
3749         (WeakPtr):
3750         (WTF::WeakPtrFactory::WeakPtrFactory):
3751         (WeakPtrFactory):
3752         (WTF::WeakPtrFactory::revokeAll):
3753
3754 2013-02-08  Martin Robinson  <mrobinson@igalia.com>
3755
3756         [GTK] Add an experimental gyp build
3757         https://bugs.webkit.org/show_bug.cgi?id=109003
3758
3759         Reviewed by Gustavo Noronha Silva.
3760
3761         * WTF.gyp/WTF.gyp: Filter out MetaAllocator.(cpp/h) from the Chromium
3762         build. It's only necessary for GTK+.
3763         * WTF.gypi: Add MetaAllocator to the build for WebKitGTK+.
3764
3765 2013-02-06  Ilya Tikhonovsky  <loislo@chromium.org>
3766
3767         Web Inspector: Native Memory Instrumentation: reportBaseAddress needs to be called after the reportNode. So it may reuse the node index for the real address.
3768         https://bugs.webkit.org/show_bug.cgi?id=109051
3769
3770         Reviewed by Yury Semikhatsky.
3771
3772         * wtf/MemoryInstrumentation.cpp:
3773         (WTF::MemoryInstrumentation::WrapperBase::processPointer):
3774
3775 2013-02-07  David Kilzer  <ddkilzer@apple.com>
3776
3777         Fix #endif comment from r142163 and r142183
3778
3779         * wtf/MainThread.h:
3780         (WTF): s/PLATFORM/USE/
3781
3782 2013-02-07  Benjamin Poulain  <bpoulain@apple.com>
3783
3784         Fix an incorrect comment from r142163
3785
3786         Unreviewed.
3787
3788         * wtf/MainThread.h:
3789         I accidentally copied PLATFORM(IOS) instead of USE(WEB_THREAD) for the #ifdef closing.
3790
3791 2013-02-07  Benjamin Poulain  <bpoulain@apple.com>
3792
3793         Upstream iOS isWebThread() and isUIThread()
3794         https://bugs.webkit.org/show_bug.cgi?id=109130
3795
3796         Reviewed by Sam Weinig.
3797
3798         On iOS, it is sometimes necessary to differenciate the thread running WebCore,
3799         and the thread running the UI. This patch upstream those functions.
3800
3801         * wtf/MainThread.cpp:
3802         * wtf/MainThread.h:
3803         Disable the legacy initializer as it is incorrect when using the WebThread to run WebCore.
3804         (WTF::isWebThread):
3805         (WTF::isUIThread):
3806         Return true when the current thread is the Web/UI thread.
3807
3808         * wtf/mac/MainThreadMac.mm:
3809         (WTF::isUIThread):
3810         (WTF::isWebThread):
3811
3812         * wtf/text/AtomicString.cpp:
3813         (WTF::AtomicStringTable::create):
3814         Use the newly added methods.
3815
3816 2013-02-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
3817
3818         [Qt] Fix build without 3D_GRAPHICS
3819         https://bugs.webkit.org/show_bug.cgi?id=109194
3820
3821         Reviewed by Noam Rosenthal.
3822
3823         Now that Coordinated Graphics was moved to WebCore, we need to explicitly enable
3824         it when we have 3D_GRAPHICS. This dependency was implicitly by the fact that
3825         3D_GRAPHICS is a dependency of WebKit2 and Coordinated Graphics was only
3826         available there. This should fix build for Qt SH4 Linux.
3827
3828         * wtf/Platform.h:
3829
3830 2013-02-06  Zan Dobersek  <zdobersek@igalia.com>
3831
3832         [WTFURL] Fix erroneous header inclusions in WTFURL code
3833         https://bugs.webkit.org/show_bug.cgi?id=109040
3834
3835         Reviewed by Benjamin Poulain.
3836
3837         Include WTFURL API headers from files in Source/WTF/wtf/url/src
3838         by specifying their relative path to Source/WTF. 
3839
3840         * GNUmakefile.am: The changes make it possible to compile the WTF library
3841         without specifying both Source/WTF/wtf/url/api and Source/WTF/wtf/url/src
3842         as inclusion directories in CPPFLAGS, so remove these two entries.
3843         * wtf/url/src/RawURLBuffer.h:
3844         * wtf/url/src/URLCanon.h: Include the URLParse.h header by specifying
3845         only the base name as it's located in the same directory.
3846         * wtf/url/src/URLCanonQuery.cpp:
3847         * wtf/url/src/URLUtil.h:
3848
3849 2013-02-06  Tony Gentilcore  <tonyg@chromium.org>
3850
3851         Call XSSAuditor's didBlockScript() for the threaded HTML parser
3852         https://bugs.webkit.org/show_bug.cgi?id=108726
3853
3854         Reviewed by Adam Barth.
3855
3856         This patch adds isSafeToSendToAnotherThread() methods to CString, String, ParsedURL and URLString.
3857         These methods check to ensure there are 0 or 1 references.
3858
3859         * wtf/text/CString.cpp:
3860         (WTF::CString::isSafeToSendToAnotherThread): Added.
3861         (WTF):
3862         * wtf/text/CString.h:
3863         (CString):
3864         * wtf/text/WTFString.cpp:
3865         (WTF::String::isSafeToSendToAnotherThread): Added.
3866         (WTF):
3867         * wtf/text/WTFString.h:
3868         (String):
3869         * wtf/url/api/ParsedURL.h:
3870         (WTF::ParsedURL::isSafeToSendToAnotherThread): Added.
3871         * wtf/url/api/URLString.h:
3872         (WTF::URLString::isSafeToSendToAnotherThread): Added.
3873
3874 2013-02-06  Ilya Tikhonovsky  <loislo@chromium.org>
3875
3876         Web Inspector: Native Memory Instrumentation: assign class name to the heap graph node automatically
3877         https://bugs.webkit.org/show_bug.cgi?id=107262
3878
3879         Reviewed by Yury Semikhatsky.
3880
3881         We need a way to calculate class name for a pointer automatically.
3882         Otherwise we need to write className manually in all the instrumentation methods.
3883         And for all reported but not instrumented classes.
3884
3885         C++ can do that for us with help of typeid but unfortunatelly it requires rtti.
3886         There is another way to do that. C++ preprocessor provides a define which has a function name.
3887
3888         For g++ and clang it is __PRETTY_FUNCTION__.
3889         For MSVC it is __FUNCTION__.
3890         The content of the string is a function signature.
3891         We can use it because it has the name of the template argument.
3892         The format is sligthly different. That's why I made two different parsers.
3893         One for MSVC the other for GCC, Clang etc.
3894         The other problem is the resulting binary size.
3895         I made very simple function that does the only thing, returns the smallest possible function signature.
3896         Unfortunatelly MSVC doesn't generate template argument name for functions.
3897         It does this only for classes.
3898
3899         * wtf/MemoryInstrumentation.cpp:
3900         (WTF):
3901         (WTF::className):
3902         (WTF::MemoryClassInfo::callReportObjectInfo):
3903         (WTF::MemoryClassInfo::init):
3904         * wtf/MemoryInstrumentation.h:
3905         (WTF):
3906         (WTF::FN::fn):
3907         (WTF::fn):
3908         (WTF::MemoryClassInfo::MemoryClassInfo):
3909         (MemoryClassInfo):
3910         (WTF::::reportObjectMemoryUsage):
3911
3912 2013-02-05  Mark Lam  <mark.lam@apple.com>
3913
3914         Fix EnumClass so that it can be used with switch statements.
3915         https://bugs.webkit.org/show_bug.cgi?id=109004.
3916
3917         Reviewed by Sam Weinig.
3918
3919         * wtf/EnumClass.h:
3920         (WTF::EnumClass::operator==):
3921         (WTF::EnumClass::operator!=):
3922         (WTF::EnumClass::operator<):
3923         (WTF::EnumClass::operator<=):
3924         (WTF::EnumClass::operator>):
3925         (WTF::EnumClass::operator>=):
3926         (EnumClass):
3927         (WTF::EnumClass::operator Value):
3928
3929 2013-02-05  Oliver Hunt  <oliver@apple.com>
3930
3931         Disable TCMalloc hardening as it's breaking leaks.
3932
3933         Reviewed by Gavin Barraclough.
3934
3935         * wtf/FastMalloc.cpp:
3936
3937 2013-02-05  Mark Lam  <mark.lam@apple.com>
3938
3939         Rename ENUM_CLASS_BEGIN() macro to ENUM_CLASS(), and make DatabaseType a strong enum.
3940         https://bugs.webkit.org/show_bug.cgi?id=108988.
3941
3942         Reviewed by Alexey Proskuryakov.
3943
3944         * wtf/EnumClass.h:
3945
3946 2013-02-05  Roger Fong  <roger_fong@apple.com>
3947
3948         Unreviewed build fix.
3949
3950         * wtf/FastMalloc.cpp:
3951
3952 2013-02-05  Benjamin Poulain  <bpoulain@apple.com>
3953
3954         Tidy up StackBounds
3955         https://bugs.webkit.org/show_bug.cgi?id=108889
3956
3957         Reviewed by Ryosuke Niwa.
3958
3959         * wtf/StackBounds.h:
3960         (StackBounds):
3961         (WTF::StackBounds::isSafeToRecurse):
3962         (WTF::StackBounds::size):
3963         Adopt a more conventional style for a multiline branch.
3964
3965         (WTF::StackBounds::StackBounds):
3966         (WTF::StackBounds::current):
3967         (WTF::StackBounds::recursionLimit):
3968         Make those method private.
3969
3970         Making the constructor private ensure initialize() is alwasy called on any StackBounds.
3971
3972 2013-02-05  Zan Dobersek  <zdobersek@igalia.com>
3973
3974         [WTFURL] Comparison between signed and unsigned integer expressions in URLUtil.cpp
3975         https://bugs.webkit.org/show_bug.cgi?id=108955
3976
3977         Reviewed by Benjamin Poulain.
3978
3979         * wtf/url/src/URLUtil.cpp:
3980         (URLUtilities): Make the counter variable a signed integer to get rid of the warning.
3981
3982 2013-02-05  Benjamin Poulain  <bpoulain@apple.com>
3983
3984         Rationalize the use of iOS/Mac #defines in Assertions.cpp
3985         https://bugs.webkit.org/show_bug.cgi?id=108870
3986
3987         Reviewed by David Kilzer.
3988
3989         * wtf/Assertions.cpp: Instead of using PLATFORM(MAC) and assume it works for iOS and OS X,
3990         use CF as the guard for CFString. Similarily, USE_APPLE_SYSTEM_LOG guards code using ASL.
3991
3992 2013-02-05  Benjamin Poulain  <bpoulain@apple.com>
3993
3994         Make StringBuilder::toAtomicString() consistent with StringBuilder::toString() for strings of length zero
3995         https://bugs.webkit.org/show_bug.cgi?id=108894
3996
3997         Reviewed by Andreas Kling.
3998
3999         * wtf/text/StringBuilder.h:
4000         (WTF::StringBuilder::toAtomicString): The function was returning the nullAtom for strings of length zero.
4001         This is inconsistent with StringBuilder::toString() which always return an empty string.
4002
4003         This patch unifies the behavior.
4004
4005 2013-02-04  Mark Hahnenberg  <mhahnenberg@apple.com>
4006
4007         Structure::m_outOfLineCapacity is unnecessary
4008         https://bugs.webkit.org/show_bug.cgi?id=108206
4009
4010         Reviewed by Darin Adler.
4011
4012         Simplifying the utility functions that we use since we don't need a 
4013         bunch of fancy templates for this one specific call site.
4014
4015         * wtf/MathExtras.h:
4016         (WTF::roundUpToPowerOfTwo):
4017
4018 2013-02-05  Sheriff Bot  <webkit.review.bot@gmail.com>
4019
4020         Unreviewed, rolling out r141905.
4021         http://trac.webkit.org/changeset/141905
4022         https://bugs.webkit.org/show_bug.cgi?id=108963
4023
4024         "Broke mac build" (Requested by tonyg-cr on #webkit).
4025
4026         * wtf/text/CString.cpp:
4027         * wtf/text/CString.h:
4028         * wtf/text/WTFString.cpp:
4029         * wtf/text/WTFString.h:
4030         (String):
4031         * wtf/url/api/ParsedURL.h:
4032         (ParsedURL):
4033         * wtf/url/api/URLString.h:
4034
4035 2013-02-05  Tony Gentilcore  <tonyg@chromium.org>
4036
4037         Call XSSAuditor's didBlockScript() for the threaded HTML parser
4038         https://bugs.webkit.org/show_bug.cgi?id=108726
4039
4040         Reviewed by Adam Barth.
4041
4042         This patch adds isSafeToSendToAnotherThread() methods to CString, String, ParsedURL and URLString.
4043         These methods check to ensure there are 0 or 1 references.
4044
4045         * wtf/text/CString.cpp:
4046         (WTF::CString::isSafeToSendToAnotherThread): Added.
4047         (WTF):
4048         * wtf/text/CString.h:
4049         (CString):
4050         * wtf/text/WTFString.cpp:
4051         (WTF::String::isSafeToSendToAnotherThread): Added.
4052         (WTF):
4053         * wtf/text/WTFString.h:
4054         (String):
4055         * wtf/url/api/ParsedURL.h:
4056         (WTF::ParsedURL::isSafeToSendToAnotherThread): Added.
4057         * wtf/url/api/URLString.h:
4058         (WTF::URLString::isSafeToSendToAnotherThread): Added.
4059
4060 2013-02-04  Benjamin Poulain  <bpoulain@apple.com>
4061
4062         Build fix for AtomicString on iOS
4063
4064         Unreviewed. The commit r141812 rely on isUIThread(), there is no such things
4065         in the tree right now. Use pthread_main_np() until more thread handling is upstreamed.
4066
4067         * wtf/text/AtomicString.cpp:
4068         (WTF::AtomicStringTable::create):
4069
4070 2013-02-04  Abhishek Arya  <inferno@chromium.org>
4071
4072         Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
4073         https://bugs.webkit.org/show_bug.cgi?id=108668
4074
4075         Reviewed by Eric Seidel.
4076
4077         * wtf/AVLTree.h:
4078         (WTF::AVLTreeDefaultBSet::operator[]):
4079         * wtf/BitArray.h:
4080         (WTF::BitArray::set):
4081         (WTF::BitArray::get):
4082         * wtf/FastBitVector.h:
4083         (WTF::FastBitVector::set):
4084         (WTF::FastBitVector::clear):
4085         (WTF::FastBitVector::get):
4086         * wtf/FixedArray.h:
4087         (WTF::FixedArray::operator[]):
4088         * wtf/RefCountedArray.h:
4089         (WTF::RefCountedArray::at):
4090         * wtf/TypedArrayBase.h:
4091         (WTF::TypedArrayBase::item):
4092         * wtf/text/StringBuffer.h:
4093         (WTF::StringBuffer::operator[]):
4094         * wtf/text/StringBuilder.h:
4095         (WTF::StringBuilder::operator[]):
4096         * wtf/text/StringImpl.h:
4097         (WTF::StringImpl::operator[]):
4098
4099 2013-02-04  Benjamin Poulain  <benjamin@webkit.org>
4100
4101         Upstream iOS's AtomicString
4102         https://bugs.webkit.org/show_bug.cgi?id=108139
4103
4104         Reviewed by David Kilzer.
4105
4106         On iOS, WebCore can be executed from two different threads. To maintain consistency,
4107         a few changes had been made:
4108         -The main UI thread and the WebThread share the same AtomicStringTable.
4109         -A spin lock is needed before any access to prevent any concurrent modification of the string table.
4110          The spin lock also prevent race on the static initialization of the shared table.
4111
4112         * wtf/Platform.h:
4113         Introduce a new USE(WEB_THREAD) to scope changes related to iOS Web Thread.
4114         * wtf/text/AtomicString.cpp:
4115         (AtomicStringTableLocker):
4116         (WTF::AtomicStringTableLocker::AtomicStringTableLocker):
4117         (WTF::AtomicStringTableLocker::~AtomicStringTableLocker):
4118         (WTF::AtomicStringTable::create):
4119         wtfThreadData() is not necessarily inlined on ARM. When it is not inlined, the old code
4120         causes two call to the function. Instead, we can keep the value in register and pass it
4121         to AtomicStringTable::create().
4122         (WTF::stringTable):
4123         (WTF::addToStringTable):
4124         (WTF::AtomicString::addSlowCase):
4125         (WTF::AtomicString::find):
4126         (WTF::AtomicString::remove):
4127
4128 2013-02-04  Martin Robinson  <mrobinson@igalia.com>
4129
4130         Fix GTK+ 'make dist' in preparation for the 1.11.5 release.
4131
4132         * GNUmakefile.list.am:
4133
4134 2013-02-04  David Kilzer  <ddkilzer@apple.com>
4135
4136         Sort WTF Xcode project file
4137
4138         * WTF.xcodeproj/project.pbxproj:
4139
4140 2013-02-02  Andreas Kling  <akling@apple.com>
4141
4142         Vector should consult allocator about ideal size when choosing capacity.
4143         <http://webkit.org/b/108410>
4144         <rdar://problem/13124002>
4145
4146         Reviewed by Benjamin Poulain.
4147
4148         Added WTF::fastMallocGoodSize(), a workalike/wrapper for OS X's malloc_good_size().
4149         It returns the actual size of the block that will get allocated for a given byte size.
4150
4151         Vector's internal buffer now checks with the allocator if the resulting allocation
4152         could actually house more objects and updates its capacity to make use of the space.
4153
4154         * wtf/Deque.h:
4155         (WTF::::expandCapacity):
4156         * wtf/FastMalloc.cpp:
4157         (WTF::fastMallocGoodSize):
4158         * wtf/FastMalloc.h:
4159         * wtf/Vector.h:
4160         (WTF::VectorBufferBase::allocateBuffer):
4161         (WTF::VectorBufferBase::tryAllocateBuffer):
4162         (WTF::VectorBufferBase::reallocateBuffer):
4163
4164 2013-02-02  Mark Rowe  <mrowe@apple.com>
4165
4166         <http://webkit.org/b/108745> WTF shouldn't use a script build phase to detect the presence of headers when the compiler can do it for us
4167
4168         Reviewed by Sam Weinig.
4169
4170         * WTF.xcodeproj/project.pbxproj: Remove the script phase that used to generate a header file
4171         containing information about whether certain header files exist on the system.
4172         * wtf/FastMalloc.cpp: Use Clang's __has_include to detect whether the header exists before including it.
4173
4174 2013-02-01  Roger Fong  <roger_fong@apple.com>
4175
4176         Unreviewed. WTF VS2010 project cleanup.
4177
4178         * WTF.vcxproj/WTF.vcxproj:
4179         * WTF.vcxproj/WTF.vcxproj.filters:
4180         * WTF.vcxproj/WTFPreLink.cmd: Removed.
4181
4182 2013-02-01  Zan Dobersek  <zdobersek@igalia.com>
4183
4184         [GTK] Add WTFURL source files to the build
4185         https://bugs.webkit.org/show_bug.cgi?id=108215
4186
4187         Reviewed by Benjamin Poulain.
4188
4189         The WTFURL implementation sources are all still guarded by the USE(WTFURL) guard,
4190         meaning that the GTK port still uses the default KURL backend. To use the WTFURL
4191         backend instead, one would have to define WTF_USE_WTFURL in Platform.h.
4192
4193         * GNUmakefile.am: List the directories from which source headers will be included.
4194         Plenty of WTFURL code currently just includes the required header by name rather
4195         than specifying the header path as relative to Source/WTF. In the future all the inclusions
4196         should probaby be changed to include the header through the path relative to Source/WTF.
4197         * GNUmakefile.list.am: Add build targets for the WTFURL source files.
4198         * wtf/url/api/ParsedURL.cpp: Specify the complete path to the required headers and
4199         reorder the inclusions.
4200         * wtf/url/src/URLCanon.h: Ditto.
4201
4202 2013-01-18  Ilya Tikhonovsky  <loislo@chromium.org>
4203
4204         Web Inspector: Native Memory Instrumentation: provide edge names and class names for WTF containers and strings
4205         https://bugs.webkit.org/show_bug.cgi?id=107303
4206
4207         Reviewed by Yury Semikhatsky.
4208
4209         I'd like to use ValueType[] as className for the container data members
4210         because class names of template parameters already present in the container class names.
4211
4212         * wtf/MemoryInstrumentationArrayBufferView.h:
4213         (WTF::reportMemoryUsage):
4214         * wtf/MemoryInstrumentationHashCountedSet.h:
4215         (WTF::reportMemoryUsage):
4216         * wtf/MemoryInstrumentationHashMap.h:
4217         (WTF::reportMemoryUsage):
4218         * wtf/MemoryInstrumentationHashSet.h:
4219         (WTF::reportMemoryUsage):
4220         * wtf/MemoryInstrumentationListHashSet.h:
4221         (WTF::reportMemoryUsage):
4222         * wtf/MemoryInstrumentationSequence.h:
4223         * wtf/MemoryInstrumentationString.h:
4224         (WTF::reportMemoryUsage):
4225         * wtf/MemoryInstrumentationVector.h:
4226         (WTF::reportMemoryUsage):
4227
4228 2013-02-01  Geoffrey Garen  <ggaren@apple.com>
4229
4230         Added TriState to WTF and started using it in one place
4231         https://bugs.webkit.org/show_bug.cgi?id=108628
4232
4233         Reviewed by Beth Dakin.
4234
4235         Useful for expressing "maybe" conditions in a boolean context.
4236
4237         * WTF.xcodeproj/project.pbxproj:
4238         * wtf/TriState.h: Added.
4239         (WTF):
4240
4241 2013-02-01  Patrick Gansterer  <paroga@webkit.org>
4242
4243         Build fix for WinCE after r137709
4244         https://bugs.webkit.org/show_bug.cgi?id=105767
4245
4246         Do not pass functions as const references to
4247         templated arguments to make the compiler happy.
4248
4249         * wtf/StdLibExtras.h:
4250         (WTF::binarySearch):
4251         (WTF::tryBinarySearch):
4252         (WTF::approximateBinarySearch):
4253
4254 2013-01-31  Ilya Tikhonovsky  <loislo@chromium.org>
4255
4256         Web Inspector: Native Memory Instrumentation: replace nodeName argument with className
4257         https://bugs.webkit.org/show_bug.cgi?id=107278
4258
4259         Reviewed by Yury Semikhatsky.
4260
4261         I replaced nodeName with className because we newer report node name for private and raw buffers
4262         but need to report their class names.
4263
4264         * wtf/MemoryInstrumentation.cpp:
4265         (WTF::MemoryInstrumentation::reportLinkToBuffer):
4266         (WTF::MemoryClassInfo::addRawBuffer):
4267         (WTF::MemoryClassInfo::addPrivateBuffer):
4268         * wtf/MemoryInstrumentation.h:
4269         (WTF::MemoryInstrumentation::addRawBuffer):
4270         (MemoryClassInfo):
4271
4272 2013-01-31  Jessie Berlin  <jberlin@apple.com>
4273
4274         Rolling out r141407 because it is causing crashes under
4275         WTF::TCMalloc_Central_FreeList::FetchFromSpans() in Release builds.
4276
4277         * wtf/Deque.h:
4278         (WTF::::expandCapacity):
4279         * wtf/FastMalloc.cpp:
4280         * wtf/FastMalloc.h:
4281         (WTF):
4282         * wtf/Vector.h:
4283         (WTF::VectorBufferBase::allocateBuffer):
4284         (WTF::VectorBufferBase::tryAllocateBuffer):
4285         (WTF::VectorBufferBase::reallocateBuffer):
4286
4287 2013-01-31  Mark Lam  <mark.lam@apple.com>
4288
4289         Abstraction for hiding enum class.
4290         https://bugs.webkit.org/show_bug.cgi?id=108533
4291
4292         Reviewed by Anders Carlsson.
4293
4294         * wtf/Compiler.h:
4295         * wtf/EnumClass.h: Copied from Source/WTF/wtf/TypeSafeEnum.h.
4296         (WTF::EnumClass::EnumClass):
4297         (WTF::EnumClass::operator==):
4298         (WTF::EnumClass::operator!=):
4299         (WTF::EnumClass::operator<):
4300         (WTF::EnumClass::operator<=):
4301         (WTF::EnumClass::operator>):
4302         (WTF::EnumClass::operator>=):
4303         * wtf/TypeSafeEnum.h: Removed.
4304
4305 2013-01-31  Andreas Kling  <akling@apple.com>
4306
4307         Vector should consult allocator about ideal size when choosing capacity.
4308         <http://webkit.org/b/108410>
4309         <rdar://problem/13124002>
4310
4311         Reviewed by Benjamin Poulain.
4312
4313         Added WTF::fastMallocGoodSize(), a workalike/wrapper for OS X's malloc_good_size().
4314         It returns the actual size of the block that will get allocated for a given byte size.
4315
4316         Vector's internal buffer now checks with the allocator if the resulting allocation
4317         could actually house more objects and updates its capacity to make use of the space.
4318
4319         * wtf/Deque.h:
4320         (WTF::::expandCapacity):
4321         * wtf/FastMalloc.cpp:
4322         (WTF::fastMallocGoodSize):
4323         * wtf/FastMalloc.h:
4324         * wtf/Vector.h:
4325         (WTF::VectorBufferBase::allocateBuffer):
4326         (WTF::VectorBufferBase::tryAllocateBuffer):
4327         (WTF::VectorBufferBase::reallocateBuffer):
4328
4329 2013-01-30  Christophe Dumez  <christophe.dumez@intel.com>
4330
4331         Add a StringTypeAdapter for ASCIILiteral
4332         https://bugs.webkit.org/show_bug.cgi?id=108338
4333
4334         Reviewed by Benjamin Poulain.