Make SegmentedVector Noncopyable
[WebKit-https.git] / Source / WTF / ChangeLog
1 2013-03-11  Oliver Hunt  <oliver@apple.com>
2
3         Make SegmentedVector Noncopyable
4         https://bugs.webkit.org/show_bug.cgi?id=112059
5
6         Reviewed by Geoffrey Garen.
7
8         Copying a SegmentedVector can be extraordinarily expensive, so we beat
9         it with the Noncopyable stick - that way we can ensure that if anyone
10         wants an actual copy they know what they're doing.
11
12         * wtf/SegmentedVector.h:
13         (SegmentedVector):
14
15 2013-03-08  Benjamin Poulain  <benjamin@webkit.org>
16
17         [Mac] Add a feature flag for 'view-mode' Media Feature, disable it on Mac
18         https://bugs.webkit.org/show_bug.cgi?id=111297
19
20         Reviewed by Kenneth Rohde Christiansen.
21
22         * wtf/FeatureDefines.h: Add a new feature flag for the view-mode
23         CSS media: ENABLE_VIEW_MODE_CSS_MEDIA.
24
25 2013-03-08  Roger Fong  <roger_fong@apple.com>
26
27         Makefile fixes.
28
29         * WTF.vcxproj/WTF.make:
30
31 2013-03-08  Gabor Rapcsanyi  <rgabor@webkit.org>
32
33         Cache flush problem on ARMv7 JSC
34         https://bugs.webkit.org/show_bug.cgi?id=111441
35
36         Reviewed by Zoltan Herczeg.
37
38         Not proper cache flush causing random crashes on ARMv7 Linux with V8 tests.
39         The problem is similar to https://bugs.webkit.org/show_bug.cgi?id=77712.
40         Change the cache fulsh mechanism similar to ARM traditinal and revert the
41         temporary fix.
42
43         * wtf/OSAllocatorPosix.cpp:
44         (WTF::OSAllocator::reserveUncommitted):
45         (WTF::OSAllocator::decommit):
46
47 2013-03-07  Andrew Bortz  <andrew@abortz.net>
48
49         Replace Mersenne Twister random number generator with a simpler one.
50         https://bugs.webkit.org/show_bug.cgi?id=111533
51
52         Reviewed by Adam Barth.
53
54         The new generator is only a single line long, but passes all the Diehard
55         statistical tests and runs ~3x faster than the Mersenne Twister, with a
56         guaranteed cycle length of 2^64 and only 8 bytes of state.
57         
58         * wtf/Platform.h: Mersenne Twister defines are no longer needed
59         * wtf/RandomNumber.cpp:
60         (WTF::Internal::initializeRandomNumber): State initialization
61         (WTF::Internal::randomNumber): Actual implementation
62         (WTF::randomNumber): We don't need to fall back on rand()-based generator anymore,
63         so this code is greatly simplified.
64         * wtf/RandomNumber.h:
65         * wtf/RandomNumberSeed.h:
66         (WTF::initializeRandomNumberGenerator): This code is no longer needed.
67         Additionally, the code had an error, since rand() returns 32-bits, so each
68         initializationBuffer's upper 16-bits has more bits set than random.
69
70 2013-03-06  Adenilson Cavalcanti  <cavalcantii@gmail.com>
71
72         Build fix: PageAllocationAligned no longer has executable flag
73         https://bugs.webkit.org/show_bug.cgi?id=111659
74
75         Reviewed by Kentaro Hara.
76
77         Build fix: use false as parameter to execution flag.
78
79         * wtf/PageAllocationAligned.cpp:
80         (WTF::PageAllocationAligned::allocate):
81
82 2013-03-06  Eric Seidel  <eric@webkit.org>
83
84         AtomicStringImpls are not safe to send between threads
85         https://bugs.webkit.org/show_bug.cgi?id=111652
86
87         Reviewed by Benjamin Poulain.
88
89         We don't have this problem yet, but it's good to be safe.
90
91         * wtf/text/WTFString.cpp:
92         (WTF::String::isSafeToSendToAnotherThread):
93
94 2013-03-06  Oliver Hunt  <oliver@apple.com>
95
96         Don't give PageAllocationAligned the option to allocate executable memory
97         https://bugs.webkit.org/show_bug.cgi?id=111657
98
99         Reviewed by Geoffrey Garen.
100
101         * wtf/PageAllocationAligned.cpp:
102         (WTF::PageAllocationAligned::allocate):
103         * wtf/PageAllocationAligned.h:
104         (PageAllocationAligned):
105
106 2013-03-04  Jer Noble  <jer.noble@apple.com>
107
108         Default mouse cursor behavior should be auto-hide for full screen video with custom controls
109         https://bugs.webkit.org/show_bug.cgi?id=107601
110
111         Reviewed by Beth Dakin.
112
113         Enable the CURSOR_VISIBILITY feature.
114
115         * wtf/FeatureDefines.h:
116
117 2013-03-04  Oliver Hunt  <oliver@apple.com>
118
119         Make fastmalloc use guardpages
120         https://bugs.webkit.org/show_bug.cgi?id=111353
121
122         Reviewed by Anders Carlsson.
123
124         Add PROT_NONE pages at the beginning and end of every
125         mmap call made by fastmalloc.
126
127         * wtf/TCSystemAlloc.cpp:
128         (TryMmap):
129
130 2013-03-06  Paweł Forysiuk  <tuxator@o2.pl>
131
132         Typo in inline function in ByteOrder.h
133         https://bugs.webkit.org/show_bug.cgi?id=111473
134
135         Reviewed by Benjamin Poulain.
136
137         * wtf/ByteOrder.h:
138         (ntohs):
139
140 2013-03-05  Ryuan Choi  <ryuan.choi@samsung.com>
141
142         [EFL] Build break with latest EFL libraries
143         https://bugs.webkit.org/show_bug.cgi?id=111028
144
145         Reviewed by Dirk Pranke.
146
147         * wtf/PlatformEfl.cmake: Added ECORE_IMF_INCLUDE_DIRS.
148
149 2013-03-05  Csaba Osztrogonác  <ossy@webkit.org>
150
151         Fix cast-align warning in ASCIIFastPath.h on ARM
152         https://bugs.webkit.org/show_bug.cgi?id=111436
153
154         Reviewed by Benjamin Poulain.
155
156         * wtf/text/ASCIIFastPath.h:
157         (WTF::charactersAreAllASCII):
158
159 2013-03-04  Laszlo Gombos  <l.gombos@samsung.com>
160
161         JSC_OBJC_API_ENABLED should be removed from FeatureDefines.h
162         https://bugs.webkit.org/show_bug.cgi?id=111269
163
164         Reviewed by Mark Hahnenberg.
165
166         JSC_OBJC_API_ENABLED flag was added to FeatureDefines.h (r143637) 
167         so that it could be used in WebCore.exp.in to determine whether 
168         or not we should be exporting certain symbols based on whether 
169         the WebKit-related portion of the JSC ObjC API was enabled.
170         
171         It turned out conditionally including certain symbols didn't
172         work when building fat binaries, so it's not even necessary any more.
173
174         * wtf/FeatureDefines.h: Remove JSC_OBJC_API_ENABLED.
175
176 2013-03-04  Andreas Kling  <akling@apple.com>
177
178         Deque: Free internal buffer in clear().
179         <http://webkit.org/b/111316>
180         <rdar://problem/13336675>
181
182         Reviewed by Antti Koivisto.
183
184         525 kB progression on Membuster3.
185
186         * wtf/Deque.h:
187         (WTF::::clear):
188
189 2013-03-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
190
191         Add build flag for FontLoader
192         https://bugs.webkit.org/show_bug.cgi?id=111289
193
194         Reviewed by Benjamin Poulain.
195
196         Add ENABLE_FONT_LOAD_EVENTS build flag (disabled by default).
197
198         * wtf/FeatureDefines.h:
199
200 2013-02-27  Darin Adler  <darin@apple.com>
201
202         StringHasher functions require alignment that call sites do not all guarantee
203         https://bugs.webkit.org/show_bug.cgi?id=110171
204
205         Reviewed by Benjamin Poulain.
206
207         The StringHasher class is optimized for clients who pass it two characters at
208         a time. However, the function named addCharacters did not make this clear to
209         clients, and one calculateStringHashAndLengthFromUTF8MaskingTop8Bits got it wrong.
210         Fix by making addCharacters work regardless of hasher alignment and adding a new
211         function, addCharactersAssumingAligned, for use when we want a faster path and can
212         guarantee we are adding characters two at a time.
213
214         * wtf/StringHasher.h:
215         (WTF::StringHasher::addCharactersAssumingAligned): Renamed the addCharacters function
216         addCharactersAssumingAligned, since it only works if the hasher is currently aligned,
217         meaning it contains an even number of characters. The function already asserts
218         that this is true, but the calculateStringHashAndLengthFromUTF8MaskingTop8Bits
219         function was using it in cases where the assertion could fire. Also updated to
220         call addCharactersInternal by its new name. Also added some new overloads that take
221         data pointers and lengths so callers can always use addCharactersAssumingAligned
222         instead of addCharacters if they know the hasher is aligned.
223         (WTF::StringHasher::addCharacter): Updated to call the public
224         addCharactersAssumingAligned function since that's simpler and a bit cleaner.
225         (WTF::StringHasher::addCharacters): Added functions with this name that handle
226         the case where the hasher is not aligned. These will be called by existing call sites
227         that were formerly using the function named addCharactersAssumingAligned above.
228         Also add an overload that works with the default converter automatically.
229         (WTF::StringHasher::computeHashAndMaskTop8Bits): Changed to call
230         addCharactersAssumingAligned to eliminate copied and pasted code. The hasher is empty,
231         so definitely aligned.
232         (WTF::StringHasher::computeHash): Ditto.
233         (WTF::StringHasher::addCharactersInternal): Renamed from addCharactersToHash, since
234         the former name did not make clear how this differs from the public functions.
235         The real difference is that this is like addCharactersAssumingAligned, but without
236         the assertion, so addCharactersAssumingAligned is called instead, even within the
237         class's implementation.
238
239 2013-03-01  Ilya Tikhonovsky  <loislo@chromium.org>
240
241         Web Inspector: Native Memory Instrumentation: do not visit raw pointers by default.
242         https://bugs.webkit.org/show_bug.cgi?id=110943
243
244         Reviewed by Yury Semikhatsky.
245
246         Unfortunately in many cases raw pointer may point to an object that has been deleted.
247         There is no working solution to solve this problem in general.
248         It could be solved only on case by case basis.
249
250         * wtf/MemoryInstrumentation.h:
251         (WTF::MemoryInstrumentation::addObject):
252         (WTF::MemoryInstrumentation::MemberTypeTraits::addObject):
253         (WTF::MemoryClassInfo::addMember):
254         (WTF::MemoryInstrumentation::addObjectImpl):
255         * wtf/MemoryInstrumentationString.h:
256         (WTF::reportMemoryUsage):
257
258 2013-03-01  Eric Seidel  <eric@webkit.org>
259
260         Threaded HTML Parser has an extra copy of every byte from the network
261         https://bugs.webkit.org/show_bug.cgi?id=111135
262
263         Reviewed by Adam Barth.
264
265         The threaded html parser needs to accept ownership
266         of a string buffer.  The easiest way to do this seemed
267         to be to use a PassRefPtr<StringImpl>, but there was no way
268         to generated one from a String (easily), so I added one.
269
270         * wtf/text/WTFString.h:
271         (WTF::String::releaseImpl):
272
273 2013-02-28  Oliver Hunt  <oliver@apple.com>
274
275         Crash in JSC::MarkedBlock::FreeList JSC::MarkedBlock::sweepHelper
276         https://bugs.webkit.org/show_bug.cgi?id=111059
277
278         Reviewed by Ryosuke Niwa.
279
280         Sometimes C++'s implicit operator conversion rules suck.
281         Add explicit operator== and !=.
282
283         * wtf/FastMalloc.cpp:
284         (WTF::HardenedSLL::operator!=):
285         (WTF::HardenedSLL::operator==):
286         (HardenedSLL):
287
288 2013-02-28  Zeno Albisser  <zeno@webkit.org>
289
290         Enable DFG JIT for Qt on Mac
291         https://bugs.webkit.org/show_bug.cgi?id=111095
292
293         Rubber-stamped by Simon Hausmann
294
295         * wtf/Platform.h:
296
297 2013-02-28  Eric Carlson  <eric.carlson@apple.com>
298
299         [Mac] use HAVE() macro instead of version check
300         https://bugs.webkit.org/show_bug.cgi?id=111087
301
302         Reviewed by Dean Jackson.
303
304         * wtf/Platform.h: Define HAVE_MEDIA_ACCESSIBILITY_FRAMEWORK.
305
306 2013-02-27  Balazs Kilvady  <kilvadyb@homejinni.com>
307
308         Bug in atomicIncrement implementation for MIPS GCC
309         https://bugs.webkit.org/show_bug.cgi?id=110969
310
311         Reviewed by Csaba Osztrogonác.
312
313         Fix of __sync_[add|sub]_and_fetch_8 for GCC patch.
314
315         * wtf/Atomics.cpp:
316
317 2013-02-27  Simon Hausmann  <simon.hausmann@digia.com>
318
319         REGRESSION(r137994): It made JSC tests hang and layout tests fail on ARM Thumb2 / Linux
320         https://bugs.webkit.org/show_bug.cgi?id=108632
321
322         Reviewed by Csaba Osztrogonác.
323
324         It appears that mprotect() is very slow on ARM/Linux, so disable the
325         approach of unreserved mappings there and fall back to overcomitting
326         memory, based on Uli Schlachter's recommendation.
327
328         * wtf/OSAllocatorPosix.cpp:
329         (WTF::OSAllocator::reserveUncommitted):
330         (WTF::OSAllocator::decommit):
331
332 2013-02-26  Roger Fong  <roger_fong@apple.com>
333
334         Unreviewed. Build fix for VS2010 solution, take 2.
335
336         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
337
338 2013-02-26  Roger Fong  <roger_fong@apple.com>
339
340         Unreviewed. Unreviewed build fix for VS2010 solution.
341
342         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
343
344 2013-02-26  Balazs Kilvady  <kilvadyb@homejinni.com>
345
346         Fix the atomicIncrement implementation for MIPS GCC
347         https://bugs.webkit.org/show_bug.cgi?id=106739
348
349         Reviewed by Oliver Hunt.
350
351         Implementation of missing __sync_[add|sub]_and_fetch_8 functions.
352
353         Some architectures, like MIPS32, don't have GCC implementation for
354         builtin __sync_* functions with 64 bits variable size. GCC answer
355         for the problem: If a target doesn't support atomic operations on
356         certain variable sizes, you are out of luck with atomicity in that
357         case (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56296). GCC >= 4.8
358         will support __atomic_* builtin functions for this purpose for all
359         the GCC targets, but for current compilers we have to include our
360         own implementation.
361
362         * GNUmakefile.list.am:
363         * WTF.pro:
364         * wtf/Atomics.cpp: Added.
365         (WTF):
366         (WTF::getSwapLock):
367         (WTF::atomicStep):
368         * wtf/CMakeLists.txt:
369
370 2013-02-26  Oliver Hunt  <oliver@apple.com>
371
372         Appease the QT bots.
373
374         * wtf/FastMalloc.cpp:
375
376 2013-02-26  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
377
378         Implement JIT on Windows 64 bits
379         https://bugs.webkit.org/show_bug.cgi?id=107965
380
381         Reviewed by Simon Hausmann.
382
383         * wtf/Platform.h:
384
385 2013-02-26  Oliver Hunt  <oliver@apple.com>
386
387         Appease static analyzer warning about null string passed to strlen
388         https://bugs.webkit.org/show_bug.cgi?id=110658
389
390         Reviewed by Benjamin Poulain.
391
392         Add a null check before calling strlen
393
394         * wtf/Threading.cpp:
395         (WTF::createThread):
396
397 2013-02-25  Ryosuke Niwa  <rniwa@webkit.org>
398
399         Build fix attempt after r143996.
400
401         * wtf/FastMalloc.cpp:
402         (WTF):
403
404 2013-02-25  Roger Fong  <roger_fong@apple.com>
405
406         Unreviewed. Fix script to use WEBKIT_SOURCE for VS2010 property sheets instead of WEBKIT_LIBRARIES.
407
408         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
409
410 2013-02-25  Oliver Hunt  <oliver@apple.com>
411
412         Add cookies to FastMalloc spans
413         https://bugs.webkit.org/show_bug.cgi?id=110827
414
415         Reviewed by Michael Saboff.
416
417         Add a cookie to spans, and move some of the hardening around so
418         that it's more useful.
419
420         * wtf/FastMalloc.cpp:
421         (WTF::internalEntropyValue):
422         (WTF::spanInitializerCookie):
423         (WTF::Span::initCookie):
424         (WTF::Span::clearCookie):
425         (WTF::Span::isValid):
426         (Span):
427         (WTF::NewSpan):
428         (WTF::DeleteSpan):
429         (WTF::TCMalloc_ThreadCache_FreeList::Validate):
430         (WTF::TCMalloc_Central_FreeList::Populate):
431         (WTF::TCMalloc_ThreadCache::Deallocate):
432         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
433
434 2013-02-25  Jer Noble  <jer.noble@apple.com>
435
436         Normalize ENABLE_ENCRYPTED_MEDIA definitions across all FeatureDefines files.
437         https://bugs.webkit.org/show_bug.cgi?id=110806
438
439         Reviewed by Alexey Proskuryakov.
440
441         Ensure both ENCRYPTED_MEDIA and ENCRYPTED_MEDIA_V2 are enabled on macosx_1090.
442
443         * wtf/FeatureDefines.h:
444
445 2013-02-23  Ilya Tikhonovsky  <loislo@chromium.org>
446
447         Web Inspector: Native Memory Instrumentation: replace String with const char* in MemoryObjectInfo
448         https://bugs.webkit.org/show_bug.cgi?id=110599
449
450         Reviewed by Yury Semikhatsky.
451
452         Due to potentially dynamic nature of names and classNames we need to make a copy of the strings
453         that were given us via MemoryInstrumentation calls.
454         So I extended client api with registerString method that pushes the strings
455         down to the serializer.
456
457         * wtf/MemoryInstrumentation.h:
458         (MemoryInstrumentationClient):
459         * wtf/MemoryObjectInfo.h:
460         (WTF::MemoryObjectInfo::MemoryObjectInfo):
461         (WTF::MemoryObjectInfo::setClassName):
462         (WTF::MemoryObjectInfo::classNameId):
463         (WTF::MemoryObjectInfo::setName):
464         (WTF::MemoryObjectInfo::nameId):
465         (MemoryObjectInfo):
466
467 2013-02-21  Brady Eidson  <beidson@apple.com>
468
469         Move fastlog2() to WTF/MathExtras.h so it can be used from multiple projects.
470
471         Rubberstamped by Geoff Garen.
472
473         * wtf/MathExtras.h:
474         (WTF::fastLog2):
475
476 2013-02-21  Andy Estes  <aestes@apple.com>
477
478         TriState.h should be a Project header
479         https://bugs.webkit.org/show_bug.cgi?id=110543
480
481         Rubber-stamped by Dan Bernstein.
482
483         WTF uses a script to copy headers to the build destination, so it isn't
484         necessary to mark headers as Private/Public (and doing so can be problematic).
485
486         * WTF.xcodeproj/project.pbxproj: Mark TriState.h as a Project header.
487
488 2013-02-21  Roger Fong  <roger_fong@apple.com>
489
490         Unreviewed. Add executable property to cmd file.
491         Required for executable files to maintain their executable permissions over svn.
492
493         * WTF.vcxproj/copy-files.cmd: Added property svn:executable.
494
495 2013-02-19  Mark Hahnenberg  <mhahnenberg@apple.com>
496
497         Objective-C API: Need a way to use the Objective-C JavaScript API with WebKit
498         https://bugs.webkit.org/show_bug.cgi?id=106059
499
500         Reviewed by Geoffrey Garen.
501
502         * wtf/FeatureDefines.h: Added enable flag for JSC Objective-C API so it can be used in
503         export files.
504
505 2013-02-21  Martin Robinson  <mrobinson@igalia.com>
506
507         A couple more 'make dist' fixes for WebKitGTK+.
508
509         * GNUmakefile.list.am: Add a missing file to the source list.
510
511 2013-02-20  Roger Fong  <roger_fong@apple.com>
512
513         Get VS2010 Solution B&I ready.
514         <rdar://problem/1322988>
515
516         Rubberstamped by Timothy Horton.        
517         
518         Add Production configuration. 
519         Add a WTF submit solution with a DebugSuffix configuration. 
520         Modify WTF.make as necessary.
521         
522         * WTF.vcxproj: Added property svn:eol-style. Modified property svn:ignore.
523         * WTF.vcxproj/WTF.make: Added.
524         * WTF.vcxproj/WTF.submit.sln: Added.
525         * WTF.vcxproj/WTF.vcxproj:
526         * WTF.vcxproj/WTFCommon.props:
527         * WTF.vcxproj/WTFGenerated.vcxproj:
528         * WTF.vcxproj/WTFGeneratedProduction.props: Added.
529         * WTF.vcxproj/WTFGeneratedRelease.props:
530         * WTF.vcxproj/WTFProduction.props: Added.
531         * WTF.vcxproj/WTFRelease.props:
532         * WTF.vcxproj/copy-files.cmd:
533
534 2013-02-20  Oliver Hunt  <oliver@apple.com>
535
536         Moar hardening
537         https://bugs.webkit.org/show_bug.cgi?id=110275
538
539         Reviewed by Mark Hahnenberg.
540
541         We now poison objects when they get freed, and verify that
542         any object that is being freed is not poisoned.  If the
543         object looks like it's poisoned we validate the freelist,
544         and ensure the object is not already present.  If it is
545         we crash.
546
547         On allocation, we ensure that the object being allocated
548         is poisoned, then clear the poisoning fields.
549
550         * wtf/FastMalloc.cpp:
551         (WTF::internalEntropyValue):
552         (WTF):
553         (WTF::freedObjectStartPoison):
554         (WTF::freedObjectEndPoison):
555         (TCMalloc_ThreadCache_FreeList):
556         (WTF::TCMalloc_ThreadCache_FreeList::Validate):
557         (WTF::TCMalloc_Central_FreeList::Populate):
558         (WTF::TCMalloc_ThreadCache::Allocate):
559         (WTF::TCMalloc_ThreadCache::Deallocate):
560         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
561
562 2013-02-19  Sheriff Bot  <webkit.review.bot@gmail.com>
563
564         Unreviewed, rolling out r143400.
565         http://trac.webkit.org/changeset/143400
566         https://bugs.webkit.org/show_bug.cgi?id=110290
567
568         breaks everything (instacrash launching Safari) (Requested by
569         thorton on #webkit).
570
571         * wtf/FastMalloc.cpp:
572         (WTF::internalEntropyValue):
573         (WTF):
574         (WTF::TCMalloc_Central_FreeList::Populate):
575         (WTF::TCMalloc_ThreadCache::Allocate):
576         (WTF::TCMalloc_ThreadCache::Deallocate):
577
578 2013-02-19  Oliver Hunt  <oliver@apple.com>
579
580         Moar hardening
581         https://bugs.webkit.org/show_bug.cgi?id=110275
582
583         Reviewed by Anders Carlsson.
584
585         We now poison objects when they get freed, and verify that
586         any object that is being freed is not poisoned.  If the
587         object looks like it's poisoned we validate the freelist,
588         and ensure the object is not already present.  If it is
589         we crash.
590
591         On allocation, we ensure that the object being allocated
592         is poisoned, then clear the poisoning fields.
593
594         * wtf/FastMalloc.cpp:
595         (WTF::internalEntropyValue):
596         (WTF):
597         (WTF::freedObjectStartPoison):
598         (WTF::freedObjectEndPoison):
599         (TCMalloc_ThreadCache_FreeList):
600         (WTF::TCMalloc_ThreadCache_FreeList::Validate):
601         (WTF::TCMalloc_Central_FreeList::Populate):
602         (WTF::TCMalloc_ThreadCache::Allocate):
603         (WTF::TCMalloc_ThreadCache::Deallocate):
604
605 2013-02-18  Darin Adler  <darin@apple.com>
606
607         Style tweaks to StringHasher.h
608         https://bugs.webkit.org/show_bug.cgi?id=110042
609
610         Reviewed by Alexey Proskuryakov.
611
612         I have a bug fix coming soon, but figured I'd separate out style tweaks and land them
613         first to make that patch easier to undrestand.
614
615         * wtf/StringHasher.h: Tweak and rearrange comments a bit.
616         (WTF::StringHasher::addCharacter): Use character instead of ch.
617         (WTF::StringHasher::addCharacters): Use remainder instead of rem. Also capitalize the U
618         that we use to make an unsigned 1 constant.
619         (WTF::StringHasher::computeHashAndMaskTop8Bits): Ditto.
620         (WTF::StringHasher::hashMemory): Change version that takes size as a template argument
621         to call the version that takes the size at runtime, since both generate the same code
622         anyway. Added a FIXME questioning why this function uses the "mask top 8 bits" version
623         of the hash. Fix incorrect compile assertion that required sizes that are multiples
624         of four. This function works on sizes that are multiples of two. Also fixed a spelling
625         error where we called it a "multible".
626         (WTF::StringHasher::defaultConverter): Use character instead of ch.
627         (WTF::StringHasher::addCharactersToHash): Eliminated unnecessary local variable.
628
629 2013-02-18  Alexey Proskuryakov  <ap@apple.com>
630
631         Make HexNumber functions return 8-bit strings
632         https://bugs.webkit.org/show_bug.cgi?id=110152
633
634         Reviewed by Michael Saboff.
635
636         * wtf/HexNumber.h:
637         (Internal):
638         (WTF::Internal::hexDigitsForMode):
639         (WTF::appendByteAsHex):
640         (WTF::placeByteAsHexCompressIfPossible):
641         (WTF::placeByteAsHex):
642         (WTF::appendUnsignedAsHex):
643         (WTF::appendUnsignedAsHexFixedSize):
644         Use LChar everywhere.
645
646 2013-02-18  Benjamin Poulain  <bpoulain@apple.com>
647
648         Remove Vector::dataSlot(), it has no implementation
649         https://bugs.webkit.org/show_bug.cgi?id=109999
650
651         Reviewed by Andreas Kling.
652
653         VectorBufferBase does not implement any function bufferSlot().
654         The file only compiles because that part of the template is never
655         instantiated.
656
657         * wtf/Vector.h:
658
659 2013-02-18  Laszlo Gombos  <l.gombos@samsung.com>
660
661         Move ENABLE macros for WebCore out from Platform.h
662         https://bugs.webkit.org/show_bug.cgi?id=105735
663
664         Unreviewed, build fix when NETSCAPE_PLUGIN_API is disabled.
665
666         Enable ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH even if
667         NETSCAPE_PLUGIN_API is disabled (Qt, Efl, GTK, WX ports).
668
669         * wtf/FeatureDefines.h:
670
671 2013-02-18  Balazs Kilvady  <kilvadyb@homejinni.com>
672
673         MIPS DFG implementation.
674         https://bugs.webkit.org/show_bug.cgi?id=101328
675
676         Reviewed by Oliver Hunt.
677
678         DFG implementation for MIPS.
679
680         * wtf/Platform.h:
681
682 2013-02-18  Zan Dobersek  <zdobersek@igalia.com>
683
684         Stop placing std::isfinite and std::signbit inside the global scope
685         https://bugs.webkit.org/show_bug.cgi?id=109817
686
687         Reviewed by Darin Adler.
688
689         Prefix calls to the isfinite and signbit methods with std:: as the two
690         methods are no longer being imported into the global scope.
691
692         On Solaris and OpenBSD platforms or when using Visual C++ the two methods
693         are now defined (as incompatibility workarounds) inside the std namespace.
694
695         * wtf/DateMath.cpp:
696         (WTF::timeClip):
697         * wtf/DecimalNumber.h:
698         (WTF::DecimalNumber::DecimalNumber):
699         * wtf/MathExtras.h:
700         (std):
701         (std::isfinite):
702         (std::signbit):
703         (lrint):
704         (wtf_pow):
705         (decomposeDouble):
706         * wtf/MediaTime.cpp:
707         (WTF::MediaTime::createWithFloat):
708         (WTF::MediaTime::createWithDouble):
709         * wtf/dtoa.cpp:
710         (WTF::dtoa):
711
712 2013-02-18  Laszlo Gombos  <l.gombos@samsung.com>
713
714         Move ENABLE macros for WebCore out from Platform.h
715         https://bugs.webkit.org/show_bug.cgi?id=105735
716
717         Reviewed by Darin Adler and Benjamin Poulain.
718
719         Introduce FeatureDefines.h by combining the existing rules from
720         Platform.h and adding new rules for all the ENABLE flags that are
721         listed in the FeatureFlags wiki.
722
723         The new rules are not used at the moment by any ports
724         as the port specific build systems already define these flags
725         so the !defined() guard will prevent redefinition of the macros.
726
727         * GNUmakefile.list.am: Add FeatureDefines.h.
728         * WTF.gypi: Ditto.
729         * WTF.pro: Ditto.
730         * WTF.vcproj/WTF.vcproj: Ditto.
731         * WTF.xcodeproj/project.pbxproj: Ditto.
732         * wtf/CMakeLists.txt: Ditto.
733         * wtf/FeatureDefines.h: Added.
734         * wtf/Platform.h: Move macro definitions to FeatureDefines.h.
735
736 2013-02-16  Darin Adler  <darin@apple.com>
737
738         Remove redundant use of inline keyword in StringHasher.h
739         https://bugs.webkit.org/show_bug.cgi?id=110036
740
741         Reviewed by Geoffrey Garen.
742
743         I have some other improvements for StringHasher.h, but wanted to get the simplest ones
744         out of the way first.
745
746         * wtf/StringHasher.h: Remove inline keyword on functions inside the class definition,
747         since functions defined inside the class are automatically inline.
748
749 2013-02-15  Martin Robinson  <mrobinson@igalia.com>
750
751         [GTK] Spread the gyp build files throughout the tree
752         https://bugs.webkit.org/show_bug.cgi?id=109960
753
754         Reviewed by Dirk Pranke.
755
756         * WTF.gyp/WTFGTK.gyp: Renamed from Source/WebKit/gtk/gyp/WTF.gyp.
757
758 2013-02-15  Anders Carlsson  <andersca@apple.com>
759
760         Add HashMap::isValidKey and HashSet::isValidValue
761         https://bugs.webkit.org/show_bug.cgi?id=109977
762
763         Reviewed by Sam Weinig and Darin Adler.
764
765         Add helper functions for determining whether keys are valid, i.e. if
766         they are _not_ empty or deleted according to the hash traits.
767
768         * wtf/HashMap.h:
769         * wtf/HashSet.h:
770
771 2013-02-15  Laszlo Gombos  <l.gombos@samsung.com>
772
773         Remove support for RVCT version less than 4.0
774         https://bugs.webkit.org/show_bug.cgi?id=109390
775
776         The 4.0 version of the RVCT compiler was 
777         released in 2008. 
778         
779         Remove support for version older then 4.0 of RVCT, 
780         and keep the support for newer RVCT versions.
781
782         Reviewed by Zoltan Herczeg.
783
784         * WTF.gypi: Remove StringExtras.cpp.
785         * WTF.vcproj/WTF.vcproj: Remove StringExtras.cpp.
786         * WTF.vcxproj/WTF.vcxproj: Remove StringExtras.cpp.
787         * WTF.vcxproj/WTF.vcxproj.filters: Remove StringExtras.cpp.
788         * WTF.xcodeproj/project.pbxproj: Remove StringExtras.cpp.
789         * wtf/CMakeLists.txt: Remove StringExtras.cpp.
790         * wtf/Compiler.h: Remove tests for RVCT_VERSION_AT_LEAST(3, 0, 0, 0).
791         * wtf/Float32Array.h: Remove a quirk introduced for RVCT version <=2.2 .
792         * wtf/Float64Array.h: Ditto.
793         * wtf/Int16Array.h: Ditto.
794         * wtf/Int32Array.h: Ditto.
795         * wtf/Int8Array.h: Ditto.
796         * wtf/MathExtras.h: Remove a quirk needed for RVCT version  <= 3.0.
797         * wtf/Platform.h: Remove test for RVCT 4.0. Remove OS(RVCT).
798         * wtf/StringExtras.cpp: Removed.
799         * wtf/StringExtras.h: Remove a quirk introduced for RVCT version < 4.0.
800         * wtf/Uint16Array.h: Remove a quirk introduced for RVCT version <= 2.2.
801         * wtf/Uint32Array.h: Ditto.
802         * wtf/Uint8Array.h: Ditto.
803         * wtf/Uint8ClampedArray.h: Ditto.
804
805 2013-02-15  Christophe Dumez  <ch.dumez@sisa.samsung.com>
806
807         Add CString operators for comparison with const char*
808         https://bugs.webkit.org/show_bug.cgi?id=109947
809
810         Reviewed by Darin Adler.
811
812         Add operators to WTF::CString for equality/inequality comparison
813         with const char* strings. This avoids constructing a CString
814         from a const char* in such cases, which is can be expensive as
815         it would copy it and call strlen().
816
817         * wtf/text/CString.cpp:
818         (WTF::operator==): Use memcmp instead of strncmp to compare the
819         CString buffers as we know they are the same size and we don't
820         want to scan for terminating null byte.
821         (WTF):
822         * wtf/text/CString.h:
823         (WTF):
824         (WTF::operator!=):
825
826 2013-02-15  Geoffrey Garen  <ggaren@apple.com>
827
828         Merged the global function cache into the source code cache
829         https://bugs.webkit.org/show_bug.cgi?id=108660
830
831         Reviewed by Sam Weinig.
832
833         Responding to review comments by Darin Adler.
834
835         * wtf/HashTraits.h: Added a using directive to simplify client code.
836
837 2013-02-14  Dan Bernstein  <mitz@apple.com>
838
839         No easy way to use a RetainPtr as a key in a HashMap using object (rather than pointer) equality
840         https://bugs.webkit.org/show_bug.cgi?id=109864
841
842         Reviewed by Sam Weinig and Benjamin Poulain.
843
844         Added RetainPtrObjectHashTraits and RetainPtrObjectHash, which use CFEqual
845         and CFHash.
846
847         * wtf/RetainPtr.h:
848         (RetainPtrObjectHashTraits):
849         (WTF::RetainPtrObjectHashTraits::emptyValue):
850         (WTF::RetainPtrObjectHashTraits::constructDeletedValue):
851         (WTF::RetainPtrObjectHashTraits::isDeletedValue):
852         (WTF):
853         (WTF::RetainPtrObjectHash::hash):
854         (WTF::RetainPtrObjectHash::equal):
855         (RetainPtrObjectHash):
856
857 2013-02-14  Tony Chang  <tony@chromium.org>
858
859         Unreviewed, set svn:eol-style native for .sln, .vcproj, and .vsprops files.
860         https://bugs.webkit.org/show_bug.cgi?id=96934
861
862         * WTF.vcproj/WTF.sln: Modified property svn:eol-style.
863
864 2013-02-14  Tony Chang  <tony@chromium.org>
865
866         Unreviewed, set svn:eol-style CRLF for .sln files.
867
868         * WTF.vcproj/WTF.sln: Added property svn:eol-style.
869
870 2013-02-14  David Kilzer  <ddkilzer@apple.com>
871
872         [Mac] Clean up WARNING_CFLAGS
873         <http://webkit.org/b/109747>
874         <rdar://problem/13208373>
875
876         Reviewed by Mark Rowe.
877
878         * Configurations/Base.xcconfig: Use
879         GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
880         -Wshorten-64-to-32 rather than WARNING_CFLAGS.
881
882         * WTF.vcproj/WTF.sln: Added property svn:eol-style.
883
884 2013-02-14  Eric Seidel  <eric@webkit.org>
885
886         String(Vector) behaves differently from String(vector.data(), vector.size()) for vectors with inline capacity in the size=0 case
887         https://bugs.webkit.org/show_bug.cgi?id=109784
888
889         Reviewed by Darin Adler.
890
891         This makes String(Vector) never return null strings.
892         Which matches behavior of String(UChar*, size_t)
893         for vectors with inlineCapacity, but differs from
894         String(UChar*, size_t) in the no-inlineCapacity case.
895
896         This incidentally will fix a behavioral regression
897         in the html threaded parser which came from converting
898         many String(UChar*, size_t) callsites to using String(Vector).
899
900         * wtf/text/WTFString.h:
901         (String):
902         (WTF::String::String):
903
904 2013-02-14  Eric Seidel  <eric@webkit.org>
905
906         REGRESSION(r142712): attribute values show up as "(null)" instead of null with the threaded parser
907         https://bugs.webkit.org/show_bug.cgi?id=109784
908
909         Reviewed by Benjamin Poulain.
910
911         When I changed many callsites to use the (existing) String(Vector) constructor
912         I inadvertantly made those callsites convert empty vectors to null strings
913         instead of empty strings (like String(UChar,size_t) does).
914
915         This is due to an oddity/bug in our Vector implementation where data()
916         will be 0 if the Vector is empty, but only if it doesn't have inline capacity.
917         https://bugs.webkit.org/show_bug.cgi?id=109792
918
919         This changes String(Vector) to exactly match the behavior of String(vector.data(), vector.size()).
920
921         This regression was easily detectable with the threaded parser, because we use String
922         instead of AtomicString in our CompactToken (used to send the Token data
923         between threads). The main-thread parser path uses AtomicHTMLToken which
924         uses AtomicString(Vector) and does not have this bug.
925
926         * wtf/text/WTFString.h:
927         (String):
928         (WTF::String::String):
929
930 2013-02-13  Zan Dobersek  <zdobersek@igalia.com>
931
932         The 'global isinf/isnan' compiler quirk required when using clang with libstdc++
933         https://bugs.webkit.org/show_bug.cgi?id=109325
934
935         Reviewed by Anders Carlsson.
936
937         Prefix calls to the isinf and isnan methods with std::, declaring we want to use the
938         two methods as they're provided by the C++ standard library being used.
939
940         * wtf/Compiler.h: Remove the global isinf/isnan compiler quirk definitions. They're not required anymore.
941         * wtf/DateMath.cpp: Move the workaround for isinf on Solaris into the std namespace. Ditto for isinf and isnan
942         when using MSVC. Stop bringing the isinf and isnan methods into the global scope when using other configurations.
943         (WTF::parseDateFromNullTerminatedCharacters):
944         * wtf/IntegralTypedArrayBase.h:
945         (WTF::IntegralTypedArrayBase::set):
946         * wtf/MathExtras.h:
947         (std):
948         (std::isinf):
949         (wtf_fmod):
950         (wtf_pow):
951         (doubleToInteger):
952         * wtf/MediaTime.cpp:
953         (WTF::MediaTime::createWithFloat):
954         (WTF::MediaTime::createWithDouble):
955         * wtf/Uint8ClampedArray.h:
956         (WTF::Uint8ClampedArray::set):
957
958 2013-02-13  Eric Seidel  <eric@webkit.org>
959
960         Don't copy Vector<UChar> when passing to new String methods from bug 109617
961         https://bugs.webkit.org/show_bug.cgi?id=109708
962
963         Reviewed by Tony Gentilcore.
964
965         Thanks for the catch Darin.
966
967         * wtf/text/AtomicString.h:
968         (WTF::AtomicString::AtomicString):
969         * wtf/text/StringImpl.h:
970         (WTF::StringImpl::create8BitIfPossible):
971
972 2013-02-13  Martin Robinson  <mrobinson@igalia.com>
973
974         [GTK] Remove remaining dead code from the GLib unicode backend
975         https://bugs.webkit.org/show_bug.cgi?id=109707
976
977         Reviewed by Philippe Normand.
978
979         * wtf/unicode/Unicode.h:
980
981 2013-02-13  Andrew Wilson  <atwilson@chromium.org>
982
983         Unreviewed Chromium gyp-file cleanup after glib backend removal.
984         https://bugs.webkit.org/show_bug.cgi?id=109672
985
986         Removed references to GLib unicode backend:
987
988         * WTF.gyp/WTF.gyp:
989         * WTF.gypi:
990
991 2013-02-12  Martin Robinson  <mrobinson@igalia.com>
992
993         [GTK] Remove the GLib unicode backend
994         https://bugs.webkit.org/show_bug.cgi?id=109627
995
996         Reviewed by Benjamin Poulain.
997
998         Remove references to the GLib unicode backend from WTF.
999
1000         * GNUmakefile.list.am: Remove GLib unicode files from the source list.
1001         * wtf/unicode/glib/UnicodeGLib.cpp: Removed.
1002         * wtf/unicode/glib/UnicodeGLib.h: Removed.
1003
1004 2013-02-12  Takeshi Yoshino  <tyoshino@google.com>
1005
1006         Remove unnecessary and confusing includes from StreamBuffer.h.
1007         https://bugs.webkit.org/show_bug.cgi?id=109652
1008
1009         Reviewed by Benjamin Poulain.
1010
1011         StreamBuffer.h is using OwnPtr for storing Vectors into a Deque.
1012         FixedArray.h and PassOwnPtr.h are included but not used.
1013
1014         VectorTraits defines how to move OwnPtr in Vector. It's done by memcpy.
1015         So, there's no need for PassOwnPtr (Deque<PassOwnPtr<Vector<char> > >
1016         is even slower).
1017
1018         * wtf/StreamBuffer.h:
1019
1020 2013-02-12  Eric Seidel  <eric@webkit.org>
1021
1022         Teach more WTF string classes about vectors with inline capacity
1023         https://bugs.webkit.org/show_bug.cgi?id=109617
1024
1025         Reviewed by Benjamin Poulain.
1026
1027         The HTML and WebVTT parsers use constructions like:
1028         AtomicString name(m_name.data(), m_name.size())
1029         all over the place because they use inline capacity
1030         on the parse vectors for performance.
1031
1032         This change just add the necessary template variants
1033         to the related String constructors/methods in WTF so that
1034         this parser code can just pass the vector directly instead.
1035
1036         I'll do the actual parser cleanups in follow-up patches to keep things simple.
1037
1038         * wtf/text/AtomicString.h:
1039         (AtomicString):
1040         (WTF::AtomicString::AtomicString):
1041         * wtf/text/StringImpl.h:
1042         (StringImpl):
1043         (WTF::StringImpl::create8BitIfPossible):
1044         * wtf/text/WTFString.h:
1045         (String):
1046         (WTF::String::make8BitFrom16BitSource):
1047         (WTF):
1048         (WTF::append):
1049
1050 2013-02-11  Oliver Hunt  <oliver@apple.com>
1051
1052         Build fix.
1053
1054         * wtf/FastMalloc.cpp:
1055         (WTF::TCMalloc_PageHeap::IncrementalScavenge):
1056
1057 2013-02-11  Ryosuke Niwa  <rniwa@webkit.org>
1058
1059         Disable delete button controller on non-Mac ports and delete EditorClient::shouldShowDeleteInterface
1060         https://bugs.webkit.org/show_bug.cgi?id=109534
1061
1062         Reviewed by Anders Carlsson.
1063
1064         * wtf/Platform.h:
1065
1066 2013-02-11  David Kilzer  <ddkilzer@apple.com>
1067
1068         [iOS] Upstream changes to Platform.h
1069         <http://webkit.org/b/109459>
1070
1071         Reviewed by Benjamin Poulain.
1072
1073         * wtf/Platform.h:
1074         - Changes for armv7s.
1075         - Add ENABLE() definitions for DASHBOARD_SUPPORT and WEBGL.
1076         - Re-sort ENABLE() and USE() macros.
1077         - Remove ENABLE() macros for JIT, LLINT and YARR_JIT to enable
1078           on iOS Simulator.  They are already defined below.
1079         - Turn off HAVE(HOSTED_CORE_ANIMATION) for iOS.
1080         - Turn on USE(COREMEDIA) for iOS 6.0 and later.
1081
1082 2013-02-08  Oliver Hunt  <oliver@apple.com>
1083
1084         Harden FastMalloc (again)
1085         https://bugs.webkit.org/show_bug.cgi?id=109334
1086
1087         Reviewed by Mark Hahnenberg.
1088
1089         Re-implement hardening of linked lists in TCMalloc.
1090
1091         In order to keep heap introspection working, we need to thread the
1092         heap entropy manually as the introspection process can't use the
1093         address of a global in determining the mask.  Given we now have to
1094         thread a value through anyway, I've stopped relying on ASLR for entropy
1095         and am simply using arc4random() on darwin, and time + ASLR everywhere
1096         else.
1097
1098         I've also made an explicit struct type for the FastMalloc singly linked
1099         lists, as it seemed like the only way to reliably distinguish between
1100         void*'s that were lists vs. void* that were not.  This also made it
1101         somewhat easier to reason about things across processes.
1102
1103         Verified that all the introspection tools work as expected.
1104
1105         * wtf/FastMalloc.cpp:
1106         (WTF::internalEntropyValue):
1107         (WTF):
1108         (HardenedSLL):
1109         (WTF::HardenedSLL::create):
1110         (WTF::HardenedSLL::null):
1111         (WTF::HardenedSLL::setValue):
1112         (WTF::HardenedSLL::value):
1113         (WTF::HardenedSLL::operator!):
1114         (WTF::HardenedSLL::operator UnspecifiedBoolType):
1115         (TCEntry):
1116         (WTF::SLL_Next):
1117         (WTF::SLL_SetNext):
1118         (WTF::SLL_Push):
1119         (WTF::SLL_Pop):
1120         (WTF::SLL_PopRange):
1121         (WTF::SLL_PushRange):
1122         (WTF::SLL_Size):
1123         (PageHeapAllocator):
1124         (WTF::PageHeapAllocator::Init):
1125         (WTF::PageHeapAllocator::New):
1126         (WTF::PageHeapAllocator::Delete):
1127         (WTF::PageHeapAllocator::recordAdministrativeRegions):
1128         (WTF::Span::next):
1129         (WTF::Span::remoteNext):
1130         (WTF::Span::prev):
1131         (WTF::Span::setNext):
1132         (WTF::Span::setPrev):
1133         (Span):
1134         (WTF::DLL_Init):
1135         (WTF::DLL_Remove):
1136         (WTF::DLL_IsEmpty):
1137         (WTF::DLL_Length):
1138         (WTF::DLL_Prepend):
1139         (TCMalloc_Central_FreeList):
1140         (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects):
1141         (WTF::TCMalloc_Central_FreeList::entropy):
1142         (TCMalloc_PageHeap):
1143         (WTF::TCMalloc_PageHeap::init):
1144         (WTF::TCMalloc_PageHeap::scavenge):
1145         (WTF::TCMalloc_PageHeap::New):
1146         (WTF::TCMalloc_PageHeap::AllocLarge):
1147         (WTF::TCMalloc_PageHeap::Carve):
1148         (WTF::TCMalloc_PageHeap::Delete):
1149         (WTF::TCMalloc_PageHeap::ReturnedBytes):
1150         (WTF::TCMalloc_PageHeap::Check):
1151         (WTF::TCMalloc_PageHeap::CheckList):
1152         (WTF::TCMalloc_PageHeap::ReleaseFreeList):
1153         (TCMalloc_ThreadCache_FreeList):
1154         (WTF::TCMalloc_ThreadCache_FreeList::Init):
1155         (WTF::TCMalloc_ThreadCache_FreeList::empty):
1156         (WTF::TCMalloc_ThreadCache_FreeList::Push):
1157         (WTF::TCMalloc_ThreadCache_FreeList::PushRange):
1158         (WTF::TCMalloc_ThreadCache_FreeList::PopRange):
1159         (WTF::TCMalloc_ThreadCache_FreeList::Pop):
1160         (WTF::TCMalloc_ThreadCache_FreeList::enumerateFreeObjects):
1161         (TCMalloc_ThreadCache):
1162         (WTF::TCMalloc_Central_FreeList::Init):
1163         (WTF::TCMalloc_Central_FreeList::ReleaseListToSpans):
1164         (WTF::TCMalloc_Central_FreeList::ReleaseToSpans):
1165         (WTF::TCMalloc_Central_FreeList::InsertRange):
1166         (WTF::TCMalloc_Central_FreeList::RemoveRange):
1167         (WTF::TCMalloc_Central_FreeList::FetchFromSpansSafe):
1168         (WTF::TCMalloc_Central_FreeList::FetchFromSpans):
1169         (WTF::TCMalloc_Central_FreeList::Populate):
1170         (WTF::TCMalloc_ThreadCache::Init):
1171         (WTF::TCMalloc_ThreadCache::Deallocate):
1172         (WTF::TCMalloc_ThreadCache::FetchFromCentralCache):
1173         (WTF::TCMalloc_ThreadCache::ReleaseToCentralCache):
1174         (WTF::TCMalloc_ThreadCache::InitModule):
1175         (WTF::TCMalloc_ThreadCache::NewHeap):
1176         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
1177         * wtf/MallocZoneSupport.h:
1178         (RemoteMemoryReader):
1179
1180 2013-02-11  Enrica Casucci  <enrica@apple.com>
1181
1182         Add ENABLE_DELETION_UI to control the use of the deletion UI.
1183         https://bugs.webkit.org/show_bug.cgi?id=109463.
1184         
1185         ENABLE_DELETION_UI is set to 1 by default for
1186         all ports. It is explicitly enabled for MAC and disabled for iOS.
1187
1188         Reviewed by Ryosuke Niwa.
1189
1190         * wtf/Platform.h:
1191
1192 2013-02-11  Christophe Dumez  <ch.dumez@sisa.samsung.com>
1193
1194         [EFL] Stop using smart pointers for Ecore_Timer
1195         https://bugs.webkit.org/show_bug.cgi?id=109409
1196
1197         Reviewed by Kenneth Rohde Christiansen.
1198
1199         Remove support in OwnPtr for EFL's Ecore_Timer. It is a bad idea to use
1200         OwnPtr for Ecore_Timer because the timer handle may become invalid.
1201
1202         * wtf/OwnPtrCommon.h:
1203         (WTF):
1204         * wtf/efl/OwnPtrEfl.cpp:
1205
1206 2013-02-11  Abhishek Arya  <inferno@chromium.org>
1207
1208         Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
1209         https://bugs.webkit.org/show_bug.cgi?id=108981
1210
1211         Reviewed by Eric Seidel.
1212
1213         * wtf/BitVector.h:
1214         (WTF::BitVector::quickGet):
1215         (WTF::BitVector::quickSet):
1216         (WTF::BitVector::quickClear):
1217         * wtf/DecimalNumber.h:
1218         (WTF::DecimalNumber::DecimalNumber):
1219         * wtf/SegmentedVector.h:
1220         (WTF::SegmentedVector::ensureSegment):
1221         * wtf/StringPrintStream.cpp:
1222         (WTF::StringPrintStream::vprintf):
1223         * wtf/Vector.h:
1224         (WTF::::insert):
1225         (WTF::::remove):
1226         * wtf/dtoa/utils.h:
1227         (WTF::double_conversion::StringBuilder::SetPosition):
1228         (WTF::double_conversion::StringBuilder::AddSubstring):
1229
1230 2013-02-10  Laszlo Gombos  <l.gombos@samsung.com>
1231
1232         Consolidate the way WTF_USE_PTHREADS is enabled
1233         https://bugs.webkit.org/show_bug.cgi?id=108191
1234
1235         Reviewed by Benjamin Poulain.
1236
1237         Define WTF_USE_PTHREADS to 1 on all OS(UNIX) environments.
1238
1239         * WTF.gyp/WTF.gyp: Remove duplicated definition of WTF_USE_PTHREADS.
1240         * wtf/Platform.h:
1241
1242 2013-02-10  Laszlo Gombos  <l.gombos@samsung.com>
1243
1244         Refactor the way HAVE_XXX macros are set
1245         https://bugs.webkit.org/show_bug.cgi?id=108132
1246
1247         Reviewed by Benjamin Poulain.
1248
1249         OS(WINDOWS) and OS(UNIX) are so broadly defined that for each
1250         builds exactly one of them is enabled. Use this assumption to
1251         cleanup Platform.h.
1252
1253         * wtf/Platform.h:
1254
1255 2013-02-10  Jae Hyun Park  <jae.park08@gmail.com>
1256
1257         Rename ENABLE(GLIB_SUPPORT) to USE(GLIB)
1258         https://bugs.webkit.org/show_bug.cgi?id=104266
1259
1260         Reviewed by Philippe Normand.
1261
1262         Using USE(GLIB) instead of ENABLE(GLIB_SUPPORT) is more consistent with
1263         the existing macro naming conventions.
1264
1265         From Platform.h
1266         USE() - use a particular third-party library or optional OS service
1267         ENABLE() - turn on a specific feature of WebKit
1268
1269         * WTF.pri:
1270         * wtf/Platform.h:
1271         * wtf/gobject/GOwnPtr.cpp:
1272         * wtf/gobject/GOwnPtr.h:
1273         * wtf/gobject/GRefPtr.cpp:
1274         * wtf/gobject/GRefPtr.h:
1275
1276 2013-02-08  Michael Saboff  <msaboff@apple.com>
1277
1278         ARM_NEON Inline Assembly for copyLCharsFromUCharSource() inefficient for aligned destinations
1279         https://bugs.webkit.org/show_bug.cgi?id=109335
1280
1281         Reviewed by Filip Pizlo.
1282
1283         Change a "do while" to a "while" so that we don't copy single characters to align the 
1284         destination when it is already aligned.
1285
1286         * wtf/text/ASCIIFastPath.h:
1287         (WTF::copyLCharsFromUCharSource):
1288
1289 2013-02-08  Jer Noble  <jer.noble@apple.com>
1290
1291         Bring WebKit up to speed with latest Encrypted Media spec.
1292         https://bugs.webkit.org/show_bug.cgi?id=97037
1293
1294         Reviewed by Eric Carlson.
1295
1296         Define the ENABLE_ENCRYPTED_MEDIA_V2 setting.
1297
1298         * wtf/Platform.h:
1299
1300 2013-02-08  Adam Barth  <abarth@webkit.org>
1301
1302         Use WeakPtrs to communicate between the HTMLDocumentParser and the BackgroundHTMLParser
1303         https://bugs.webkit.org/show_bug.cgi?id=107190
1304
1305         Reviewed by Eric Seidel.
1306
1307         Add the ability to create an unbound weak reference. This facility lets
1308         you start sending messages to a WeakPtr on another thread before the
1309         object backing the WeakPtr has actually been created.
1310
1311         * wtf/WeakPtr.h:
1312         (WTF::WeakReference::createUnbound):
1313         (WTF::WeakReference::bindTo):
1314         (WeakReference):
1315         (WTF::WeakReference::WeakReference):
1316         (WTF::WeakPtr::WeakPtr):
1317         (WeakPtr):
1318         (WTF::WeakPtrFactory::WeakPtrFactory):
1319         (WeakPtrFactory):
1320         (WTF::WeakPtrFactory::revokeAll):
1321
1322 2013-02-08  Martin Robinson  <mrobinson@igalia.com>
1323
1324         [GTK] Add an experimental gyp build
1325         https://bugs.webkit.org/show_bug.cgi?id=109003
1326
1327         Reviewed by Gustavo Noronha Silva.
1328
1329         * WTF.gyp/WTF.gyp: Filter out MetaAllocator.(cpp/h) from the Chromium
1330         build. It's only necessary for GTK+.
1331         * WTF.gypi: Add MetaAllocator to the build for WebKitGTK+.
1332
1333 2013-02-06  Ilya Tikhonovsky  <loislo@chromium.org>
1334
1335         Web Inspector: Native Memory Instrumentation: reportBaseAddress needs to be called after the reportNode. So it may reuse the node index for the real address.
1336         https://bugs.webkit.org/show_bug.cgi?id=109051
1337
1338         Reviewed by Yury Semikhatsky.
1339
1340         * wtf/MemoryInstrumentation.cpp:
1341         (WTF::MemoryInstrumentation::WrapperBase::processPointer):
1342
1343 2013-02-07  David Kilzer  <ddkilzer@apple.com>
1344
1345         Fix #endif comment from r142163 and r142183
1346
1347         * wtf/MainThread.h:
1348         (WTF): s/PLATFORM/USE/
1349
1350 2013-02-07  Benjamin Poulain  <bpoulain@apple.com>
1351
1352         Fix an incorrect comment from r142163
1353
1354         Unreviewed.
1355
1356         * wtf/MainThread.h:
1357         I accidentally copied PLATFORM(IOS) instead of USE(WEB_THREAD) for the #ifdef closing.
1358
1359 2013-02-07  Benjamin Poulain  <bpoulain@apple.com>
1360
1361         Upstream iOS isWebThread() and isUIThread()
1362         https://bugs.webkit.org/show_bug.cgi?id=109130
1363
1364         Reviewed by Sam Weinig.
1365
1366         On iOS, it is sometimes necessary to differenciate the thread running WebCore,
1367         and the thread running the UI. This patch upstream those functions.
1368
1369         * wtf/MainThread.cpp:
1370         * wtf/MainThread.h:
1371         Disable the legacy initializer as it is incorrect when using the WebThread to run WebCore.
1372         (WTF::isWebThread):
1373         (WTF::isUIThread):
1374         Return true when the current thread is the Web/UI thread.
1375
1376         * wtf/mac/MainThreadMac.mm:
1377         (WTF::isUIThread):
1378         (WTF::isWebThread):
1379
1380         * wtf/text/AtomicString.cpp:
1381         (WTF::AtomicStringTable::create):
1382         Use the newly added methods.
1383
1384 2013-02-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
1385
1386         [Qt] Fix build without 3D_GRAPHICS
1387         https://bugs.webkit.org/show_bug.cgi?id=109194
1388
1389         Reviewed by Noam Rosenthal.
1390
1391         Now that Coordinated Graphics was moved to WebCore, we need to explicitly enable
1392         it when we have 3D_GRAPHICS. This dependency was implicitly by the fact that
1393         3D_GRAPHICS is a dependency of WebKit2 and Coordinated Graphics was only
1394         available there. This should fix build for Qt SH4 Linux.
1395
1396         * wtf/Platform.h:
1397
1398 2013-02-06  Zan Dobersek  <zdobersek@igalia.com>
1399
1400         [WTFURL] Fix erroneous header inclusions in WTFURL code
1401         https://bugs.webkit.org/show_bug.cgi?id=109040
1402
1403         Reviewed by Benjamin Poulain.
1404
1405         Include WTFURL API headers from files in Source/WTF/wtf/url/src
1406         by specifying their relative path to Source/WTF. 
1407
1408         * GNUmakefile.am: The changes make it possible to compile the WTF library
1409         without specifying both Source/WTF/wtf/url/api and Source/WTF/wtf/url/src
1410         as inclusion directories in CPPFLAGS, so remove these two entries.
1411         * wtf/url/src/RawURLBuffer.h:
1412         * wtf/url/src/URLCanon.h: Include the URLParse.h header by specifying
1413         only the base name as it's located in the same directory.
1414         * wtf/url/src/URLCanonQuery.cpp:
1415         * wtf/url/src/URLUtil.h:
1416
1417 2013-02-06  Tony Gentilcore  <tonyg@chromium.org>
1418
1419         Call XSSAuditor's didBlockScript() for the threaded HTML parser
1420         https://bugs.webkit.org/show_bug.cgi?id=108726
1421
1422         Reviewed by Adam Barth.
1423
1424         This patch adds isSafeToSendToAnotherThread() methods to CString, String, ParsedURL and URLString.
1425         These methods check to ensure there are 0 or 1 references.
1426
1427         * wtf/text/CString.cpp:
1428         (WTF::CString::isSafeToSendToAnotherThread): Added.
1429         (WTF):
1430         * wtf/text/CString.h:
1431         (CString):
1432         * wtf/text/WTFString.cpp:
1433         (WTF::String::isSafeToSendToAnotherThread): Added.
1434         (WTF):
1435         * wtf/text/WTFString.h:
1436         (String):
1437         * wtf/url/api/ParsedURL.h:
1438         (WTF::ParsedURL::isSafeToSendToAnotherThread): Added.
1439         * wtf/url/api/URLString.h:
1440         (WTF::URLString::isSafeToSendToAnotherThread): Added.
1441
1442 2013-02-06  Ilya Tikhonovsky  <loislo@chromium.org>
1443
1444         Web Inspector: Native Memory Instrumentation: assign class name to the heap graph node automatically
1445         https://bugs.webkit.org/show_bug.cgi?id=107262
1446
1447         Reviewed by Yury Semikhatsky.
1448
1449         We need a way to calculate class name for a pointer automatically.
1450         Otherwise we need to write className manually in all the instrumentation methods.
1451         And for all reported but not instrumented classes.
1452
1453         C++ can do that for us with help of typeid but unfortunatelly it requires rtti.
1454         There is another way to do that. C++ preprocessor provides a define which has a function name.
1455
1456         For g++ and clang it is __PRETTY_FUNCTION__.
1457         For MSVC it is __FUNCTION__.
1458         The content of the string is a function signature.
1459         We can use it because it has the name of the template argument.
1460         The format is sligthly different. That's why I made two different parsers.
1461         One for MSVC the other for GCC, Clang etc.
1462         The other problem is the resulting binary size.
1463         I made very simple function that does the only thing, returns the smallest possible function signature.
1464         Unfortunatelly MSVC doesn't generate template argument name for functions.
1465         It does this only for classes.
1466
1467         * wtf/MemoryInstrumentation.cpp:
1468         (WTF):
1469         (WTF::className):
1470         (WTF::MemoryClassInfo::callReportObjectInfo):
1471         (WTF::MemoryClassInfo::init):
1472         * wtf/MemoryInstrumentation.h:
1473         (WTF):
1474         (WTF::FN::fn):
1475         (WTF::fn):
1476         (WTF::MemoryClassInfo::MemoryClassInfo):
1477         (MemoryClassInfo):
1478         (WTF::::reportObjectMemoryUsage):
1479
1480 2013-02-05  Mark Lam  <mark.lam@apple.com>
1481
1482         Fix EnumClass so that it can be used with switch statements.
1483         https://bugs.webkit.org/show_bug.cgi?id=109004.
1484
1485         Reviewed by Sam Weinig.
1486
1487         * wtf/EnumClass.h:
1488         (WTF::EnumClass::operator==):
1489         (WTF::EnumClass::operator!=):
1490         (WTF::EnumClass::operator<):
1491         (WTF::EnumClass::operator<=):
1492         (WTF::EnumClass::operator>):
1493         (WTF::EnumClass::operator>=):
1494         (EnumClass):
1495         (WTF::EnumClass::operator Value):
1496
1497 2013-02-05  Oliver Hunt  <oliver@apple.com>
1498
1499         Disable TCMalloc hardening as it's breaking leaks.
1500
1501         Reviewed by Gavin Barraclough.
1502
1503         * wtf/FastMalloc.cpp:
1504
1505 2013-02-05  Mark Lam  <mark.lam@apple.com>
1506
1507         Rename ENUM_CLASS_BEGIN() macro to ENUM_CLASS(), and make DatabaseType a strong enum.
1508         https://bugs.webkit.org/show_bug.cgi?id=108988.
1509
1510         Reviewed by Alexey Proskuryakov.
1511
1512         * wtf/EnumClass.h:
1513
1514 2013-02-05  Roger Fong  <roger_fong@apple.com>
1515
1516         Unreviewed build fix.
1517
1518         * wtf/FastMalloc.cpp:
1519
1520 2013-02-05  Benjamin Poulain  <bpoulain@apple.com>
1521
1522         Tidy up StackBounds
1523         https://bugs.webkit.org/show_bug.cgi?id=108889
1524
1525         Reviewed by Ryosuke Niwa.
1526
1527         * wtf/StackBounds.h:
1528         (StackBounds):
1529         (WTF::StackBounds::isSafeToRecurse):
1530         (WTF::StackBounds::size):
1531         Adopt a more conventional style for a multiline branch.
1532
1533         (WTF::StackBounds::StackBounds):
1534         (WTF::StackBounds::current):
1535         (WTF::StackBounds::recursionLimit):
1536         Make those method private.
1537
1538         Making the constructor private ensure initialize() is alwasy called on any StackBounds.
1539
1540 2013-02-05  Zan Dobersek  <zdobersek@igalia.com>
1541
1542         [WTFURL] Comparison between signed and unsigned integer expressions in URLUtil.cpp
1543         https://bugs.webkit.org/show_bug.cgi?id=108955
1544
1545         Reviewed by Benjamin Poulain.
1546
1547         * wtf/url/src/URLUtil.cpp:
1548         (URLUtilities): Make the counter variable a signed integer to get rid of the warning.
1549
1550 2013-02-05  Benjamin Poulain  <bpoulain@apple.com>
1551
1552         Rationalize the use of iOS/Mac #defines in Assertions.cpp
1553         https://bugs.webkit.org/show_bug.cgi?id=108870
1554
1555         Reviewed by David Kilzer.
1556
1557         * wtf/Assertions.cpp: Instead of using PLATFORM(MAC) and assume it works for iOS and OS X,
1558         use CF as the guard for CFString. Similarily, USE_APPLE_SYSTEM_LOG guards code using ASL.
1559
1560 2013-02-05  Benjamin Poulain  <bpoulain@apple.com>
1561
1562         Make StringBuilder::toAtomicString() consistent with StringBuilder::toString() for strings of length zero
1563         https://bugs.webkit.org/show_bug.cgi?id=108894
1564
1565         Reviewed by Andreas Kling.
1566
1567         * wtf/text/StringBuilder.h:
1568         (WTF::StringBuilder::toAtomicString): The function was returning the nullAtom for strings of length zero.
1569         This is inconsistent with StringBuilder::toString() which always return an empty string.
1570
1571         This patch unifies the behavior.
1572
1573 2013-02-04  Mark Hahnenberg  <mhahnenberg@apple.com>
1574
1575         Structure::m_outOfLineCapacity is unnecessary
1576         https://bugs.webkit.org/show_bug.cgi?id=108206
1577
1578         Reviewed by Darin Adler.
1579
1580         Simplifying the utility functions that we use since we don't need a 
1581         bunch of fancy templates for this one specific call site.
1582
1583         * wtf/MathExtras.h:
1584         (WTF::roundUpToPowerOfTwo):
1585
1586 2013-02-05  Sheriff Bot  <webkit.review.bot@gmail.com>
1587
1588         Unreviewed, rolling out r141905.
1589         http://trac.webkit.org/changeset/141905
1590         https://bugs.webkit.org/show_bug.cgi?id=108963
1591
1592         "Broke mac build" (Requested by tonyg-cr on #webkit).
1593
1594         * wtf/text/CString.cpp:
1595         * wtf/text/CString.h:
1596         * wtf/text/WTFString.cpp:
1597         * wtf/text/WTFString.h:
1598         (String):
1599         * wtf/url/api/ParsedURL.h:
1600         (ParsedURL):
1601         * wtf/url/api/URLString.h:
1602
1603 2013-02-05  Tony Gentilcore  <tonyg@chromium.org>
1604
1605         Call XSSAuditor's didBlockScript() for the threaded HTML parser
1606         https://bugs.webkit.org/show_bug.cgi?id=108726
1607
1608         Reviewed by Adam Barth.
1609
1610         This patch adds isSafeToSendToAnotherThread() methods to CString, String, ParsedURL and URLString.
1611         These methods check to ensure there are 0 or 1 references.
1612
1613         * wtf/text/CString.cpp:
1614         (WTF::CString::isSafeToSendToAnotherThread): Added.
1615         (WTF):
1616         * wtf/text/CString.h:
1617         (CString):
1618         * wtf/text/WTFString.cpp:
1619         (WTF::String::isSafeToSendToAnotherThread): Added.
1620         (WTF):
1621         * wtf/text/WTFString.h:
1622         (String):
1623         * wtf/url/api/ParsedURL.h:
1624         (WTF::ParsedURL::isSafeToSendToAnotherThread): Added.
1625         * wtf/url/api/URLString.h:
1626         (WTF::URLString::isSafeToSendToAnotherThread): Added.
1627
1628 2013-02-04  Benjamin Poulain  <bpoulain@apple.com>
1629
1630         Build fix for AtomicString on iOS
1631
1632         Unreviewed. The commit r141812 rely on isUIThread(), there is no such things
1633         in the tree right now. Use pthread_main_np() until more thread handling is upstreamed.
1634
1635         * wtf/text/AtomicString.cpp:
1636         (WTF::AtomicStringTable::create):
1637
1638 2013-02-04  Abhishek Arya  <inferno@chromium.org>
1639
1640         Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
1641         https://bugs.webkit.org/show_bug.cgi?id=108668
1642
1643         Reviewed by Eric Seidel.
1644
1645         * wtf/AVLTree.h:
1646         (WTF::AVLTreeDefaultBSet::operator[]):
1647         * wtf/BitArray.h:
1648         (WTF::BitArray::set):
1649         (WTF::BitArray::get):
1650         * wtf/FastBitVector.h:
1651         (WTF::FastBitVector::set):
1652         (WTF::FastBitVector::clear):
1653         (WTF::FastBitVector::get):
1654         * wtf/FixedArray.h:
1655         (WTF::FixedArray::operator[]):
1656         * wtf/RefCountedArray.h:
1657         (WTF::RefCountedArray::at):
1658         * wtf/TypedArrayBase.h:
1659         (WTF::TypedArrayBase::item):
1660         * wtf/text/StringBuffer.h:
1661         (WTF::StringBuffer::operator[]):
1662         * wtf/text/StringBuilder.h:
1663         (WTF::StringBuilder::operator[]):
1664         * wtf/text/StringImpl.h:
1665         (WTF::StringImpl::operator[]):
1666
1667 2013-02-04  Benjamin Poulain  <benjamin@webkit.org>
1668
1669         Upstream iOS's AtomicString
1670         https://bugs.webkit.org/show_bug.cgi?id=108139
1671
1672         Reviewed by David Kilzer.
1673
1674         On iOS, WebCore can be executed from two different threads. To maintain consistency,
1675         a few changes had been made:
1676         -The main UI thread and the WebThread share the same AtomicStringTable.
1677         -A spin lock is needed before any access to prevent any concurrent modification of the string table.
1678          The spin lock also prevent race on the static initialization of the shared table.
1679
1680         * wtf/Platform.h:
1681         Introduce a new USE(WEB_THREAD) to scope changes related to iOS Web Thread.
1682         * wtf/text/AtomicString.cpp:
1683         (AtomicStringTableLocker):
1684         (WTF::AtomicStringTableLocker::AtomicStringTableLocker):
1685         (WTF::AtomicStringTableLocker::~AtomicStringTableLocker):
1686         (WTF::AtomicStringTable::create):
1687         wtfThreadData() is not necessarily inlined on ARM. When it is not inlined, the old code
1688         causes two call to the function. Instead, we can keep the value in register and pass it
1689         to AtomicStringTable::create().
1690         (WTF::stringTable):
1691         (WTF::addToStringTable):
1692         (WTF::AtomicString::addSlowCase):
1693         (WTF::AtomicString::find):
1694         (WTF::AtomicString::remove):
1695
1696 2013-02-04  Martin Robinson  <mrobinson@igalia.com>
1697
1698         Fix GTK+ 'make dist' in preparation for the 1.11.5 release.
1699
1700         * GNUmakefile.list.am:
1701
1702 2013-02-04  David Kilzer  <ddkilzer@apple.com>
1703
1704         Sort WTF Xcode project file
1705
1706         * WTF.xcodeproj/project.pbxproj:
1707
1708 2013-02-02  Andreas Kling  <akling@apple.com>
1709
1710         Vector should consult allocator about ideal size when choosing capacity.
1711         <http://webkit.org/b/108410>
1712         <rdar://problem/13124002>
1713
1714         Reviewed by Benjamin Poulain.
1715
1716         Added WTF::fastMallocGoodSize(), a workalike/wrapper for OS X's malloc_good_size().
1717         It returns the actual size of the block that will get allocated for a given byte size.
1718
1719         Vector's internal buffer now checks with the allocator if the resulting allocation
1720         could actually house more objects and updates its capacity to make use of the space.
1721
1722         * wtf/Deque.h:
1723         (WTF::::expandCapacity):
1724         * wtf/FastMalloc.cpp:
1725         (WTF::fastMallocGoodSize):
1726         * wtf/FastMalloc.h:
1727         * wtf/Vector.h:
1728         (WTF::VectorBufferBase::allocateBuffer):
1729         (WTF::VectorBufferBase::tryAllocateBuffer):
1730         (WTF::VectorBufferBase::reallocateBuffer):
1731
1732 2013-02-02  Mark Rowe  <mrowe@apple.com>
1733
1734         <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
1735
1736         Reviewed by Sam Weinig.
1737
1738         * WTF.xcodeproj/project.pbxproj: Remove the script phase that used to generate a header file
1739         containing information about whether certain header files exist on the system.
1740         * wtf/FastMalloc.cpp: Use Clang's __has_include to detect whether the header exists before including it.
1741
1742 2013-02-01  Roger Fong  <roger_fong@apple.com>
1743
1744         Unreviewed. WTF VS2010 project cleanup.
1745
1746         * WTF.vcxproj/WTF.vcxproj:
1747         * WTF.vcxproj/WTF.vcxproj.filters:
1748         * WTF.vcxproj/WTFPreLink.cmd: Removed.
1749
1750 2013-02-01  Zan Dobersek  <zdobersek@igalia.com>
1751
1752         [GTK] Add WTFURL source files to the build
1753         https://bugs.webkit.org/show_bug.cgi?id=108215
1754
1755         Reviewed by Benjamin Poulain.
1756
1757         The WTFURL implementation sources are all still guarded by the USE(WTFURL) guard,
1758         meaning that the GTK port still uses the default KURL backend. To use the WTFURL
1759         backend instead, one would have to define WTF_USE_WTFURL in Platform.h.
1760
1761         * GNUmakefile.am: List the directories from which source headers will be included.
1762         Plenty of WTFURL code currently just includes the required header by name rather
1763         than specifying the header path as relative to Source/WTF. In the future all the inclusions
1764         should probaby be changed to include the header through the path relative to Source/WTF.
1765         * GNUmakefile.list.am: Add build targets for the WTFURL source files.
1766         * wtf/url/api/ParsedURL.cpp: Specify the complete path to the required headers and
1767         reorder the inclusions.
1768         * wtf/url/src/URLCanon.h: Ditto.
1769
1770 2013-01-18  Ilya Tikhonovsky  <loislo@chromium.org>
1771
1772         Web Inspector: Native Memory Instrumentation: provide edge names and class names for WTF containers and strings
1773         https://bugs.webkit.org/show_bug.cgi?id=107303
1774
1775         Reviewed by Yury Semikhatsky.
1776
1777         I'd like to use ValueType[] as className for the container data members
1778         because class names of template parameters already present in the container class names.
1779
1780         * wtf/MemoryInstrumentationArrayBufferView.h:
1781         (WTF::reportMemoryUsage):
1782         * wtf/MemoryInstrumentationHashCountedSet.h:
1783         (WTF::reportMemoryUsage):
1784         * wtf/MemoryInstrumentationHashMap.h:
1785         (WTF::reportMemoryUsage):
1786         * wtf/MemoryInstrumentationHashSet.h:
1787         (WTF::reportMemoryUsage):
1788         * wtf/MemoryInstrumentationListHashSet.h:
1789         (WTF::reportMemoryUsage):
1790         * wtf/MemoryInstrumentationSequence.h:
1791         * wtf/MemoryInstrumentationString.h:
1792         (WTF::reportMemoryUsage):
1793         * wtf/MemoryInstrumentationVector.h:
1794         (WTF::reportMemoryUsage):
1795
1796 2013-02-01  Geoffrey Garen  <ggaren@apple.com>
1797
1798         Added TriState to WTF and started using it in one place
1799         https://bugs.webkit.org/show_bug.cgi?id=108628
1800
1801         Reviewed by Beth Dakin.
1802
1803         Useful for expressing "maybe" conditions in a boolean context.
1804
1805         * WTF.xcodeproj/project.pbxproj:
1806         * wtf/TriState.h: Added.
1807         (WTF):
1808
1809 2013-02-01  Patrick Gansterer  <paroga@webkit.org>
1810
1811         Build fix for WinCE after r137709
1812         https://bugs.webkit.org/show_bug.cgi?id=105767
1813
1814         Do not pass functions as const references to
1815         templated arguments to make the compiler happy.
1816
1817         * wtf/StdLibExtras.h:
1818         (WTF::binarySearch):
1819         (WTF::tryBinarySearch):
1820         (WTF::approximateBinarySearch):
1821
1822 2013-01-31  Ilya Tikhonovsky  <loislo@chromium.org>
1823
1824         Web Inspector: Native Memory Instrumentation: replace nodeName argument with className
1825         https://bugs.webkit.org/show_bug.cgi?id=107278
1826
1827         Reviewed by Yury Semikhatsky.
1828
1829         I replaced nodeName with className because we newer report node name for private and raw buffers
1830         but need to report their class names.
1831
1832         * wtf/MemoryInstrumentation.cpp:
1833         (WTF::MemoryInstrumentation::reportLinkToBuffer):
1834         (WTF::MemoryClassInfo::addRawBuffer):
1835         (WTF::MemoryClassInfo::addPrivateBuffer):
1836         * wtf/MemoryInstrumentation.h:
1837         (WTF::MemoryInstrumentation::addRawBuffer):
1838         (MemoryClassInfo):
1839
1840 2013-01-31  Jessie Berlin  <jberlin@apple.com>
1841
1842         Rolling out r141407 because it is causing crashes under
1843         WTF::TCMalloc_Central_FreeList::FetchFromSpans() in Release builds.
1844
1845         * wtf/Deque.h:
1846         (WTF::::expandCapacity):
1847         * wtf/FastMalloc.cpp:
1848         * wtf/FastMalloc.h:
1849         (WTF):
1850         * wtf/Vector.h:
1851         (WTF::VectorBufferBase::allocateBuffer):
1852         (WTF::VectorBufferBase::tryAllocateBuffer):
1853         (WTF::VectorBufferBase::reallocateBuffer):
1854
1855 2013-01-31  Mark Lam  <mark.lam@apple.com>
1856
1857         Abstraction for hiding enum class.
1858         https://bugs.webkit.org/show_bug.cgi?id=108533
1859
1860         Reviewed by Anders Carlsson.
1861
1862         * wtf/Compiler.h:
1863         * wtf/EnumClass.h: Copied from Source/WTF/wtf/TypeSafeEnum.h.
1864         (WTF::EnumClass::EnumClass):
1865         (WTF::EnumClass::operator==):
1866         (WTF::EnumClass::operator!=):
1867         (WTF::EnumClass::operator<):
1868         (WTF::EnumClass::operator<=):
1869         (WTF::EnumClass::operator>):
1870         (WTF::EnumClass::operator>=):
1871         * wtf/TypeSafeEnum.h: Removed.
1872
1873 2013-01-31  Andreas Kling  <akling@apple.com>
1874
1875         Vector should consult allocator about ideal size when choosing capacity.
1876         <http://webkit.org/b/108410>
1877         <rdar://problem/13124002>
1878
1879         Reviewed by Benjamin Poulain.
1880
1881         Added WTF::fastMallocGoodSize(), a workalike/wrapper for OS X's malloc_good_size().
1882         It returns the actual size of the block that will get allocated for a given byte size.
1883
1884         Vector's internal buffer now checks with the allocator if the resulting allocation
1885         could actually house more objects and updates its capacity to make use of the space.
1886
1887         * wtf/Deque.h:
1888         (WTF::::expandCapacity):
1889         * wtf/FastMalloc.cpp:
1890         (WTF::fastMallocGoodSize):
1891         * wtf/FastMalloc.h:
1892         * wtf/Vector.h:
1893         (WTF::VectorBufferBase::allocateBuffer):
1894         (WTF::VectorBufferBase::tryAllocateBuffer):
1895         (WTF::VectorBufferBase::reallocateBuffer):
1896
1897 2013-01-30  Christophe Dumez  <christophe.dumez@intel.com>
1898
1899         Add a StringTypeAdapter for ASCIILiteral
1900         https://bugs.webkit.org/show_bug.cgi?id=108338
1901
1902         Reviewed by Benjamin Poulain.
1903
1904         Add StringTypeAdapter for ASCIILiteral type so that concatenation of an
1905         ASCIILiteral and a String using + operator is efficiently handled.
1906
1907         * wtf/text/StringConcatenate.h:
1908         * wtf/text/StringOperators.h:
1909         (WTF::operator+): Inline some of the operator+ functions that were not
1910         yet.
1911         (WTF):
1912
1913 2013-01-30  David Kilzer  <ddkilzer@apple.com>
1914
1915         Upstream iOS build file changes for WTF
1916         <http://webkit.org/b/108221>
1917
1918         Reviewed by Mark Rowe.
1919
1920         * Configurations/Base.xcconfig:
1921         - Import iOS.xcconfig.
1922         - Remove VALID_ARCHS.  Modern Xcodes define these correctly.
1923         - Make HEADER_SEARCH_PATHS work with iOS Simulator builds.
1924         - Add SUPPORTED_PLATFORMS so both Mac and iOS SDKs appear in
1925           schemes.
1926         - Define INSTALL_PATH when building for macosx SDK.
1927         * Configurations/CopyWTFHeaders.xcconfig:
1928         - Make PRIVATE_HEADERS_FOLDER_PATH work with iOS Simulator
1929           builds.
1930         * Configurations/DebugRelease.xcconfig:
1931         - Simplify ARCHS.  This works correctly on 32-bit-only SDKs.
1932         * Configurations/WTF.xcconfig:
1933         - Fix installation directory for iOS Simulator builds by
1934           defining INSTALL_PATH_ACTUAL.
1935         * Configurations/iOS.xcconfig: Add.
1936         * WTF.xcodeproj/project.pbxproj:
1937         - Add iOS.xcconfig to the project.
1938
1939 2013-01-29  Mark Hahnenberg  <mhahnenberg@apple.com>
1940
1941         Structure::m_outOfLineCapacity is unnecessary
1942         https://bugs.webkit.org/show_bug.cgi?id=108206
1943
1944         Reviewed by Geoffrey Garen.
1945
1946         We're adding a new function that gives us the ability to round a value up to the next power of a certain base.
1947
1948         * wtf/MathExtras.h:
1949         (WTF::roundUpToPowerOf):
1950
1951 2013-01-30  Zeno Albisser  <zeno@webkit.org>
1952
1953         [Qt] Fix Qt/Mac build after r141024 and r141037
1954         https://bugs.webkit.org/show_bug.cgi?id=108318
1955
1956         Reviewed by Kentaro Hara.
1957
1958         * wtf/Functional.h:
1959             Make sure Block.h is included and its functionality
1960             is enabled for Qt on Mac.
1961
1962 2013-01-30  Simon Hausmann  <simon.hausmann@digia.com>
1963
1964         [Qt] Remove QT4_UNICODE related code paths
1965         https://bugs.webkit.org/show_bug.cgi?id=108316
1966
1967         Reviewed by Kenneth Rohde Christiansen.
1968
1969         Get rid of QT4_UNICODE and any related code paths. The Qt port
1970         requires Qt5 and ICU these days.
1971
1972         * WTF.gypi:
1973         * WTF.pro:
1974         * wtf/unicode/Unicode.h:
1975         * wtf/unicode/qt4/UnicodeQt4.h: Removed.
1976
1977 2013-01-29  Mark Lam  <mark.lam@apple.com>
1978
1979         Introducing WTF::TypeSafeEnum and DatabaseError.
1980         https://bugs.webkit.org/show_bug.cgi?id=108279.
1981
1982         Reviewed by Geoffrey Garen.
1983
1984         * WTF.xcodeproj/project.pbxproj:
1985         * wtf/TypeSafeEnum.h: Added.
1986         (WTF):
1987         (TypeSafeEnum):
1988         (WTF::TypeSafeEnum::TypeSafeEnum):
1989         (WTF::TypeSafeEnum::value):
1990         (WTF::TypeSafeEnum::operator==):
1991         (WTF::TypeSafeEnum::operator!=):
1992         (WTF::TypeSafeEnum::operator<):
1993         (WTF::TypeSafeEnum::operator<=):
1994         (WTF::TypeSafeEnum::operator>):
1995         (WTF::TypeSafeEnum::operator>=):
1996
1997 2013-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>
1998
1999         Unreviewed, rolling out r140983.
2000         http://trac.webkit.org/changeset/140983
2001         https://bugs.webkit.org/show_bug.cgi?id=108277
2002
2003         Unfortunately, this API has one last client (Requested by
2004         abarth on #webkit).
2005
2006         * wtf/Platform.h:
2007
2008 2013-01-28  Benjamin Poulain  <benjamin@webkit.org>
2009
2010         String constructed from Literals should be non-empty
2011         https://bugs.webkit.org/show_bug.cgi?id=108103
2012
2013         Reviewed by Eric Carlson.
2014
2015         For efficiency, the construction from literal only works with valid non-empty strings.
2016         One of the constructor was changed to fix an error from HTMLMediaElement.
2017
2018         This patch replaces the branch with an assertions.
2019
2020         * wtf/text/StringImpl.cpp:
2021         (WTF::StringImpl::createFromLiteral):
2022
2023 2013-01-28  David Kilzer  <ddkilzer@apple.com>
2024
2025         BUILD FIX: Platform.h:1212:22: error: '__MAC_OS_X_VERSION_MIN_REQUIRED' is not defined, evaluates to 0 [-Werror,-Wundef]
2026
2027         This fixes the following build error introduced in r140366 for
2028         Bug 107098:
2029
2030             Platform.h:1212:22: error: '__MAC_OS_X_VERSION_MIN_REQUIRED' is not defined, evaluates to 0 [-Werror,-Wundef]
2031             #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 && !PLATFORM(IOS)
2032                                  ^
2033             1 error generated.
2034
2035         * wtf/Platform.h: Check !PLATFORM(IOS) first so that iOS builds
2036         do not try to evaluate __MAC_OS_X_VERSION_MIN_REQUIRED.
2037
2038 2013-01-28  Adam Barth  <abarth@webkit.org>
2039
2040         Remove webkitNotifications.createHTMLNotification
2041         https://bugs.webkit.org/show_bug.cgi?id=107598
2042
2043         Reviewed by Benjamin Poulain.
2044
2045         * wtf/Platform.h:
2046
2047 2013-01-27  Laszlo Gombos  <l.gombos@samsung.com>
2048
2049         [ANDROID] Fix a typo
2050         https://bugs.webkit.org/show_bug.cgi?id=108046
2051
2052         Reviewed by Adam Barth.
2053
2054         HAVE_NMAP -> HAVE_MMAP.
2055
2056         * wtf/Platform.h:
2057
2058 2013-01-27  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
2059
2060         Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
2061         https://bugs.webkit.org/show_bug.cgi?id=106740
2062
2063         Reviewed by Benjamin Poulain.
2064
2065         Adding int64_t type atomicIncrement and atomicDecrement implementations for Windows
2066         into Atomics.h required by WebKit2 after r139514. Separating WinCE implementation
2067         that does not support WebKit2 and has no support for 64 bit interlocked methods.
2068
2069         Increasing WINVER and _WIN32_WINNT to XP SP2, because the 64 bit type interlocked methods
2070         are not supported on previous versions on 32 bit target.
2071
2072         * config.h:
2073         * wtf/Atomics.h:
2074         (WTF):
2075         (WTF::atomicIncrement):
2076         (WTF::atomicDecrement):
2077
2078 2013-01-26  Andras Becsi  <andras.becsi@digia.com>
2079
2080         Unreviewed fix after r140451 to make GIT-SVN repositories happy.
2081
2082         * WTF.vcproj/WTF.sln:
2083
2084 2013-01-26  Justin Schuh  <jschuh@chromium.org>
2085
2086         [CHROMIUM] Suppress more c4267 build warnings for Win64 targets
2087         https://bugs.webkit.org/show_bug.cgi?id=107993
2088
2089         Reviewed by Abhishek Arya.
2090
2091         * WTF.gyp/WTF.gyp:
2092
2093 2013-01-25  Eric Seidel  <eric@webkit.org>
2094
2095         Support 4 and 5 argument bound static functions
2096         https://bugs.webkit.org/show_bug.cgi?id=107973
2097
2098         Reviewed by Anders Carlsson.
2099
2100         Yummy copy/paste template code!
2101         I'm about to use this in a BackgroundHTMLParser patch, but figured this should be landed separately.
2102
2103         * wtf/Functional.h:
2104         (WTF):
2105         (WTF::R):
2106
2107 2013-01-24  Martin Robinson  <mrobinson@igalia.com>
2108
2109         Abstract the logic for appending a UChar32 onto StringBuilder
2110         https://bugs.webkit.org/show_bug.cgi?id=107505
2111
2112         Reviewed by Darin Adler.
2113
2114         * wtf/text/StringBuilder.h:
2115         (WTF::StringBuilder::append): Added a method for appending a UChar32 to a StringBuilder.
2116
2117 2013-01-24  Brent Fulgham  <bfulgham@webkit.org>
2118
2119         Stipulate build order between WTFGenerated and WTF
2120         https://bugs.webkit.org/show_bug.cgi?id=107844
2121
2122         Reviewed by Tim Horton.
2123
2124         * WTF.vcxproj/WTF.vcxproj: Use VS2010 project dependency
2125         declaration so WTF depends on a completed WTFGenerated build.
2126
2127 2013-01-23  Abhishek Arya  <inferno@chromium.org>
2128
2129         Add support for ASSERT_WITH_SECURITY_IMPLICATION.
2130         https://bugs.webkit.org/show_bug.cgi?id=107699
2131
2132         Reviewed by Eric Seidel.
2133
2134         * wtf/Assertions.h: Add ASSERT_WITH_SECURITY_IMPLICATION to
2135         indicate possible security vulnerabily and enable it by default
2136         in fuzzing builds.
2137         * wtf/Vector.h: Use ASSERT_WITH_SECURITY_IMPLICATION for
2138         bounds check on [] operator.
2139
2140 2013-01-23  Tony Chang  <tony@chromium.org>
2141
2142         Unreviewed, set svn:eol-style to CRLF on Windows .sln files.
2143
2144         * WTF.vcproj/WTF.sln: Added property svn:eol-style.
2145
2146 2013-01-23  Adam Barth  <abarth@webkit.org>
2147
2148         BackgroundHTMLParser::sendTokensToMainThread should use bind
2149         https://bugs.webkit.org/show_bug.cgi?id=107637
2150
2151         Reviewed by Eric Seidel.
2152
2153         * wtf/Functional.h:
2154             - I had to re-work the approach to validating WeakPtr |this|
2155               arguments a bit. Previously you couldn't pass a WeakPtr as a
2156               non-|this| argument to a function because we would try to unwrap
2157               it into a raw pointer.
2158         * wtf/WeakPtr.h:
2159         (WTF::WeakPtrFactory::revokeAll):
2160         (WeakPtrFactory):
2161             - Let clients revoke all outstanding WeakPtrs without needing to
2162               destroy the WeakPtrFactory.
2163         * wtf/chromium/MainThreadChromium.cpp:
2164         (WTF::callFunctionObject):
2165         (WTF::callOnMainThread):
2166             - Implement callOnMainThread for Function objects. The non-Chromium
2167               implementation of MainThread.cpp already implements this feature.
2168
2169 2013-01-23  Justin Schuh  <jschuh@chromium.org>
2170
2171         [CHROMIUM] Suppress c4267 build warnings in WTF for Win64 targets
2172         https://bugs.webkit.org/show_bug.cgi?id=107721
2173
2174         Reviewed by Abhishek Arya.
2175
2176         * WTF.gyp/WTF.gyp:
2177
2178 2013-01-23  Oliver Hunt  <oliver@apple.com>
2179
2180         Add RELEASE_ASSERT (and a few friends)
2181         https://bugs.webkit.org/show_bug.cgi?id=107725
2182
2183         Reviewed by Filip Pizlo.
2184
2185         Adding a few macros to make release mode assertions easier and more readable.
2186         Also makes same assertions more useful in debug builds.
2187
2188         * wtf/Assertions.h:
2189
2190 2013-01-22  Joshua Bell  <jsbell@chromium.org>
2191
2192         Prevent race condition during Worker shutdown
2193         https://bugs.webkit.org/show_bug.cgi?id=107577
2194
2195         Reviewed by Dmitry Titov.
2196
2197         Add MessageQueue::appendAndKill() which wraps those two steps with a mutex so other
2198         threads can't sneak a message in between.
2199
2200         * wtf/MessageQueue.h: Added appendAndKill() method.
2201
2202 2013-01-22  Roger Fong  <roger_fong@apple.com>
2203
2204         WTF project files and property sheets for getting WebKit to compile in VS2010.
2205         https://bugs.webkit.org/show_bug.cgi?id=106986
2206
2207         Reviewed by Timothy Horton and Brent Fulgham.
2208
2209         * WTF.vcproj/WTF.sln:
2210         * WTF.vcxproj: Added.
2211         * WTF.vcxproj/WTF.vcxproj: Added.
2212         * WTF.vcxproj/WTF.vcxproj.filters: Added.
2213         * WTF.vcxproj/WTF.vcxproj.user: Added.
2214         * WTF.vcxproj/WTFCommon.props: Added.
2215         * WTF.vcxproj/WTFDebug.props: Added.
2216         * WTF.vcxproj/WTFGenerated.make: Added.
2217         * WTF.vcxproj/WTFGenerated.vcxproj: Added.
2218         * WTF.vcxproj/WTFGenerated.vcxproj.filters: Added.
2219         * WTF.vcxproj/WTFGenerated.vcxproj.user: Added.
2220         * WTF.vcxproj/WTFGeneratedCommon.props: Added.
2221         * WTF.vcxproj/WTFGeneratedDebug.props: Added.
2222         * WTF.vcxproj/WTFGeneratedRelease.props: Added.
2223         * WTF.vcxproj/WTFPostBuild.cmd: Added.
2224         * WTF.vcxproj/WTFPreBuild.cmd: Added.
2225         * WTF.vcxproj/WTFPreLink.cmd: Added.
2226         * WTF.vcxproj/WTFRelease.props: Added.
2227         * WTF.vcxproj/build-generated-files.sh: Added.
2228         * WTF.vcxproj/copy-files.cmd: Added.
2229         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py: Added.
2230         * config.h:
2231
2232 2013-01-22  David Kilzer  <ddkilzer@apple.com>
2233
2234         Fix DateMath.cpp to compile with -Wshorten-64-to-32
2235         <http://webkit.org/b/107503>
2236
2237         Reviewed by Darin Adler.
2238
2239         Fixes the following build errors with -Wshorten-64-to-32:
2240
2241             DateMath.cpp:742:47: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
2242                 if (month == 2 && day > 28 && !isLeapYear(year))
2243                                                ~~~~~~~~~~ ^~~~
2244             DateMath.cpp:757:48: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
2245                 double dateSeconds = ymdhmsToSeconds(year, month, day, hours, minutes, seconds) - timeZoneSeconds;
2246                                      ~~~~~~~~~~~~~~~       ^~~~~
2247             DateMath.cpp:757:55: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
2248                 double dateSeconds = ymdhmsToSeconds(year, month, day, hours, minutes, seconds) - timeZoneSeconds;
2249                                      ~~~~~~~~~~~~~~~              ^~~
2250             DateMath.cpp:757:60: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
2251                 double dateSeconds = ymdhmsToSeconds(year, month, day, hours, minutes, seconds) - timeZoneSeconds;
2252                                      ~~~~~~~~~~~~~~~                   ^~~~~
2253             DateMath.cpp:757:67: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
2254                 double dateSeconds = ymdhmsToSeconds(year, month, day, hours, minutes, seconds) - timeZoneSeconds;
2255                                      ~~~~~~~~~~~~~~~                          ^~~~~~~
2256             DateMath.cpp:996:59: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
2257                                 offset = ((o / 100) * 60 + (o % 100)) * sgn;
2258                                        ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
2259             DateMath.cpp:998:37: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
2260                                 offset = o * 60 * sgn;
2261                                        ~ ~~~~~~~^~~~~
2262             DateMath.cpp:1005:40: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
2263                             offset = (o * 60 + o2) * sgn;
2264                                    ~ ~~~~~~~~~~~~~~^~~~~
2265             DateMath.cpp:1041:40: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
2266                 return ymdhmsToSeconds(year, month + 1, day, hour, minute, second) * msPerSecond;
2267                        ~~~~~~~~~~~~~~~       ~~~~~~^~~
2268             DateMath.cpp:1041:45: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
2269                 return ymdhmsToSeconds(year, month + 1, day, hour, minute, second) * msPerSecond;
2270                        ~~~~~~~~~~~~~~~                  ^~~
2271             DateMath.cpp:1041:50: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
2272                 return ymdhmsToSeconds(year, month + 1, day, hour, minute, second) * msPerSecond;
2273                        ~~~~~~~~~~~~~~~                       ^~~~
2274             DateMath.cpp:1041:56: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
2275                 return ymdhmsToSeconds(year, month + 1, day, hour, minute, second) * msPerSecond;
2276                        ~~~~~~~~~~~~~~~                             ^~~~~~
2277             12 errors generated.
2278
2279         * wtf/DateMath.cpp:
2280         (WTF::ymdhmsToSeconds): Change year argument from long to int.
2281         Change mon, day, hour, minute arguments from int to long.
2282         (WTF::parseInt): Add.  Identical to parseLong but bounds checks
2283         for type int.
2284         (WTF::parseLong): Switch to std::numeric_limits<long> instead of
2285         macros.
2286         (WTF::parseES5DatePortion): Change year argument from long to
2287         int.
2288         (WTF::parseES5DateFromNullTerminatedCharacters): Change year
2289         local variable from long to int.
2290         (WTF::parseDateFromNullTerminatedCharacters): Change year and
2291         offset local variables from long to int.  Switch from using
2292         parseLong() to parseInt() as needed.  Ditto for labs() to abs().
2293         Add overflow check when switching from "MM/DD/YYYY" to
2294         "YYYY/MM/DD" parsing.
2295
2296 2013-01-17  Andy Estes  <aestes@apple.com>
2297
2298         Add a USE() macro for content filtering code
2299         https://bugs.webkit.org/show_bug.cgi?id=107098
2300
2301         Reviewed by Mark Rowe.
2302
2303         * wtf/Platform.h: Define WTF_USE_CONTENT_FILTERING on Mac platforms
2304         more recent than Lion.
2305
2306 2013-01-18  Laszlo Gombos  <l.gombos@samsung.com>
2307
2308         Remove unnecessary PLATFORM() tests
2309         https://bugs.webkit.org/show_bug.cgi?id=107360
2310
2311         Reviewed by Eric Seidel.
2312
2313         PLATFORM(WIN), PLATFORM(CHROMIUM) and PLATFORM(QT) are mutually
2314         exclusive. Remove redundant PLATFORM() tests based on this
2315         invariant.
2316
2317         * wtf/Platform.h:
2318
2319 2013-01-18  Laszlo Gombos  <l.gombos@samsung.com>
2320
2321         Remove PLATFORM(TORCHMOBILE) from Assertions.h
2322         https://bugs.webkit.org/show_bug.cgi?id=107355
2323
2324         Reviewed by Eric Seidel.
2325
2326         This appears to be the only place where PLATFORM(TORCHMOBILE) is
2327         used. I don't believe this ifdef is needed anymore.
2328
2329         * wtf/Assertions.h:
2330
2331 2013-01-18  Michael Saboff  <msaboff@apple.com>
2332
2333         Refactor isPowerOf2() and add getLSBSet()
2334         https://bugs.webkit.org/show_bug.cgi?id=107306
2335
2336         Reviewed by Filip Pizlo.
2337
2338         Moved runtime/PropertyMapHashTable.h:PowerOf2() to new hasOneBitSet() and added getLSBSet().
2339
2340         * wtf/MathExtras.h:
2341         (hasOneBitSet):
2342         (getLSBSet):
2343
2344 2013-01-18  David Kilzer  <ddkilzer@apple.com>
2345
2346         Fix WTF::copyLCharsFromUCharSource() to compile with -Wshorten-64-to-32
2347         <http://webkit.org/b/107227>
2348
2349         Reviewed by Benjamin Poulain.
2350
2351         Fixes the following build error:
2352
2353             ASCIIFastPath.h:117:59: error: implicit conversion loses integer precision: 'unsigned long' to 'const unsigned int' [-Werror,-Wshorten-64-to-32]
2354                     const unsigned endLength = length - ucharsPerLoop + 1;
2355                                    ~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~^~~
2356             1 error generated.
2357
2358         * wtf/text/ASCIIFastPath.h:
2359         (WTF::copyLCharsFromUCharSource): Change local variables from
2360         unsigned to size_t.
2361
2362 2013-01-14  Dominik Röttsches  <dominik.rottsches@intel.com>
2363
2364         [EFL] Update freetype in jhbuild to 2.4.11 and activate subpixel layout
2365         https://bugs.webkit.org/show_bug.cgi?id=106774
2366
2367         In order to fix a long standing linespacing/font ascent & descent issue
2368         we found that FreeType commit b0962ac34e660 solves that problem.
2369         Let's update FreeType accordingly, but bump it to 2.4.11 due to the
2370         maintainer recommending several security updates after that said commit.
2371
2372         Also, in order to avoid extra rebaselining, let's activate subpixel
2373         layout at the same time.
2374
2375         Reviewed by Martin Robinson.
2376
2377         * wtf/Platform.h: Activate Subpixel Layout for EFL.
2378
2379 2013-01-17  Adam Barth  <abarth@webkit.org>
2380
2381         Teach Functional.h about WeakPtr
2382         https://bugs.webkit.org/show_bug.cgi?id=107105
2383
2384         Reviewed by Anders Carlsson.
2385
2386         A common pattern in cross-thread communication is to call member
2387         functions of an object on a remote thread. If the caller's reference to
2388         the object on the remote thread is a WeakPtr, the caller usually wants
2389         to validate that the object still exists when the call actually takes
2390         place.
2391
2392         It's possible to do this manually for every cross-thread call, but that
2393         is tiresome and error prone. Instead, we can teach bind to validate
2394         WeakPtr arguments when passed as the "this" parameter to a member
2395         function.
2396
2397         * wtf/Functional.h:
2398         (WTF::ParamStorageTraits::validate):
2399
2400 2013-01-17  David Kilzer  <ddkilzer@apple.com>
2401
2402         Fix vprintf_stderr_common() to compile with -Wshorten-64-to-32
2403         <http://webkit.org/b/107126>
2404
2405         Reviewed by Darin Adler.
2406
2407         Fixes the following build error:
2408
2409             Assertions.cpp:92:22: error: implicit conversion loses integer precision: 'CFIndex' (aka 'long') to 'int' [-Werror,-Wshorten-64-to-32]
2410                     int length = CFStringGetMaximumSizeForEncoding(CFStringGetLength(str), kCFStringEncodingUTF8);
2411                         ~~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
2412             1 error generated.
2413
2414         * wtf/Assertions.cpp:
2415         (vprintf_stderr_common): Use CFIndex type instead of int for the
2416         return value of CFStringGetMaximumSizeForEncoding().
2417
2418 2013-01-17  Zan Dobersek  <zdobersek@igalia.com>
2419
2420         [Autotools] Unify WTF sources list regardless of the target OS, Unicode backend
2421         https://bugs.webkit.org/show_bug.cgi?id=105886
2422
2423         Reviewed by Gustavo Noronha Silva.
2424
2425         Rather than including files in the sources list in an OS-specific way,
2426         guard specific files with OS(UNIX|WINDOWS), USE((GLIB|ICU)_UNICODE) guards
2427         and include all of them in the list.
2428
2429         Proper comments for namespace and #if guard closings are also added or adjusted
2430         where necessary in the affected files.
2431
2432         * GNUmakefile.list.am:
2433         * wtf/OSAllocatorPosix.cpp: Add OS(UNIX) guards.
2434         * wtf/OSAllocatorWin.cpp: Add OS(WINDOWS) guards.
2435         * wtf/ThreadSpecificWin.cpp: Ditto.
2436         * wtf/ThreadingWin.cpp: Ditto.
2437         * wtf/unicode/glib/UnicodeGLib.cpp: Add USE(GLIB_UNICODE) guards.
2438         (WTF):
2439         * wtf/unicode/glib/UnicodeGLib.h: Ditto.
2440         (WTF):
2441         * wtf/unicode/icu/CollatorICU.cpp: Style changes.
2442         * wtf/unicode/icu/UnicodeIcu.h: Add USE(ICU_UNICODE) guards.
2443         (WTF):
2444         * wtf/win/OwnPtrWin.cpp: Add OS(WINDOWS) guards.
2445
2446 2013-01-16  Benjamin Poulain  <benjamin@webkit.org>
2447
2448         Use GCC's implementation of atomicIncrement/Decrement on Mac
2449         https://bugs.webkit.org/show_bug.cgi?id=106976
2450
2451         Reviewed by Filip Pizlo.
2452
2453         * wtf/Atomics.h:
2454         GCC and LLVM have builtin for atomic ADD and SUB: __sync_add_and_fetch,
2455         __sync_sub_and_fetch.
2456
2457         Using them let the compiler just generate the atomic operations inline
2458         instead of generating a function call to LibC. It also simplify the
2459         code a bit.
2460
2461 2013-01-15  Adam Barth  <abarth@webkit.org>
2462
2463         Generalize DocumentWeakReference into WTF::WeakPtr
2464         https://bugs.webkit.org/show_bug.cgi?id=106854
2465
2466         Reviewed by Darin Adler.
2467
2468         This patch adds a simple WeakPtr object to WTF. To use WeakPtr, objects
2469         must hold a WeakPtrFactory member variable, which clears the WeakPtrs
2470         when the object is destructed. The underlying storage is a
2471         ThreadSafeRefCounted "WeakReference" object, which is shared by all the
2472         WeakPtrs.
2473
2474         WeakPtr is a generalization of DocumentWeakReference, which is used to
2475         check whether the Document object is alive when tasks arive on the main
2476         thread from worker threads. We plan to use a similar pattern in the
2477         threaded HTML parser, but we want to send tasks to objects other than
2478         Document.
2479
2480         * GNUmakefile.list.am:
2481         * WTF.gypi:
2482         * WTF.pro:
2483         * WTF.vcproj/WTF.vcproj:
2484         * WTF.xcodeproj/project.pbxproj:
2485         * wtf/CMakeLists.txt:
2486         * wtf/WeakPtr.h: Added.
2487         (WeakReference):
2488             - The ThreadSafeRefCounted object shared by all the WeakPtr
2489               instances. This patch uses ThreadSafeRefCounted so that we can
2490               use WeakPtrs to cancel cross-thread messages.
2491         (WTF::WeakReference::create):
2492         (WTF::WeakReference::get):
2493         (WTF::WeakReference::clear):
2494             - When the object is destroyed, WeakPtrFactory calls this function
2495               to clear all the WeakPtrs.
2496         (WTF::WeakReference::WeakReference):
2497         (WTF::WeakPtr::WeakPtr):
2498         (WTF::WeakPtr::get):
2499             - We might want to add implicit conversions and Boolean operators
2500               in the future, but I've kept this class simple for now.
2501         (WTF::WeakPtrFactory::WeakPtrFactory):
2502         (WTF::WeakPtrFactory::~WeakPtrFactory):
2503         (WTF::WeakPtrFactory::createWeakPtr):
2504
2505 2013-01-12  Csaba Osztrogonác  <ossy@webkit.org>
2506
2507         Use __sync_add_and_fetch instead of __gnu_cxx::__exchange_and_add
2508         https://bugs.webkit.org/show_bug.cgi?id=106729
2509
2510         After r139514 we need atomicIncrement(int64_t volatile*) for all platform. Now the
2511         GCC implementation of atomicIncrement() is based on __gnu_cxx::__exchange_and_add,
2512         which doesn't support int64_t type, but __sync_add_and_fetch does.
2513
2514         Reviewed by Benjamin Poulain.
2515
2516         * wtf/Atomics.h:
2517         (WTF::atomicIncrement):
2518         (WTF::atomicDecrement):
2519
2520 2013-01-11  Filip Pizlo  <fpizlo@apple.com>
2521
2522         Add WTF_EXPORT_PRIVATE to printInternal() methods of PrintStream.h
2523
2524         Rubber stamped by Mark Hahnenberg.
2525         
2526         This will make it easier to use dataLog() from WebCore.
2527
2528         * wtf/PrintStream.h:
2529         (WTF):
2530
2531 2013-01-09  Antti Koivisto  <antti@apple.com>
2532
2533         Release FastMalloc thread caches on memory warning
2534         https://bugs.webkit.org/show_bug.cgi?id=106471
2535         
2536         Reviewed by Geoff Garen.
2537
2538         Use TCMalloc_ThreadCache::Cleanup() instead of calling Scavenge() twice. This releases all the memory
2539         and looks nicer too.
2540
2541         * wtf/FastMalloc.cpp:
2542         (WTF::releaseFastMallocFreeMemory):
2543
2544 2013-01-09  Carlos Garcia Campos  <cgarcia@igalia.com>
2545
2546         Unreviewed. Fix make distcheck.
2547
2548         * GNUmakefile.list.am: Add missing header.
2549
2550 2013-01-07  Filip Pizlo  <fpizlo@apple.com>
2551
2552         Rationalize closure call heuristics and profiling
2553         https://bugs.webkit.org/show_bug.cgi?id=106270
2554
2555         Reviewed by Oliver Hunt.
2556         
2557         Add a macro to add a method to a class that returns a dumper. Allows you to have
2558         secondary dump() methods for dumping either more or less information.
2559
2560         * wtf/PrintStream.h:
2561         (WTF):
2562
2563 2013-01-07  Ryosuke Niwa  <rniwa@webkit.org>
2564
2565         Sorted the xcodeproj file.
2566
2567         * WTF.xcodeproj/project.pbxproj:
2568
2569 2013-01-07  Filip Pizlo  <fpizlo@apple.com>
2570
2571         Unreviewed, it should be possible to build JSC on ARM.
2572
2573         * wtf/FastMalloc.cpp:
2574         (WTF::TCMalloc_PageHeap::IncrementalScavenge):
2575
2576 2013-01-07  Balazs Kilvady  <kilvadyb@homejinni.com>
2577
2578         MIPS LLInt implementation.
2579         https://bugs.webkit.org/show_bug.cgi?id=99706
2580
2581         Reviewed by Filip Pizlo.
2582
2583         LLInt implementation for MIPS.
2584
2585         * wtf/Platform.h:
2586
2587 2013-01-05  Jonathan Liu  <net147@gmail.com>
2588
2589         Only enable MinGW-w64 pow() workaround if needed
2590         https://bugs.webkit.org/show_bug.cgi?id=106099
2591
2592         Reviewed by Filip Pizlo.
2593
2594         The pow() workaround is no longer needed in the latest version
2595         of MinGW-w64.
2596
2597         * wtf/MathExtras.h:
2598
2599 2013-01-05  Jonathan Liu  <net147@gmail.com>
2600
2601         Fix compilation of MathExtras.h with MinGW-w64
2602         https://bugs.webkit.org/show_bug.cgi?id=106105
2603
2604         Reviewed by Simon Hausmann.
2605
2606         The isfinite and isinf functions are required by wtf_pow but
2607         not defined until after wtf_pow. Move wtf_pow to after
2608         "using std::isfinite" and "using std::isinf" to fix compilation.
2609
2610         * wtf/MathExtras.h:
2611         (wtf_pow):
2612
2613 2013-01-03  Filip Pizlo  <fpizlo@apple.com>
2614
2615         CallLinkStatus should be aware of closure calls, and the DFG bytecode parser should use that as its sole internal notion of how to optimize calls
2616         https://bugs.webkit.org/show_bug.cgi?id=106027
2617
2618         Reviewed by Mark Hahnenberg.
2619         
2620         I got tired of the various idioms for printing a list of things with comma in between, so I wrote a helper.
2621
2622         * WTF.xcodeproj/project.pbxproj:
2623         * wtf/CommaPrinter.h: Added.
2624         (WTF):
2625         (CommaPrinter):
2626         (WTF::CommaPrinter::CommaPrinter):
2627         (WTF::CommaPrinter::dump):
2628
2629 2013-01-02  Simon Hausmann  <simon.hausmann@digia.com>
2630
2631         [MinGW-w64] Centralize workaround for pow() implementation
2632         https://bugs.webkit.org/show_bug.cgi?id=105925
2633
2634         Reviewed by Sam Weinig.
2635
2636         As suggested by Sam, move the MinGW-w64 workaround into MathExtras.h
2637         away from the JSC usage.
2638
2639         * wtf/MathExtras.h:
2640         (wtf_pow):
2641
2642 2013-01-02  Adam Barth  <abarth@webkit.org>
2643
2644         WTF.gypi lists Platform.h twice
2645         https://bugs.webkit.org/show_bug.cgi?id=105731
2646
2647         Reviewed by Tony Chang.
2648
2649         Once ought to be enough for everybody.
2650
2651         * WTF.gypi:
2652
2653 2012-12-31  Gavin Barraclough  <barraclough@apple.com>
2654
2655         Objective-C API for JavaScriptCore
2656         https://bugs.webkit.org/show_bug.cgi?id=105889
2657
2658         Reviewed by Filip Pizlo.
2659
2660         * wtf/WTFThreadData.cpp:
2661         (WTF::WTFThreadData::WTFThreadData):
2662         * wtf/WTFThreadData.h:
2663         (WTFThreadData):
2664             - Added m_apiData - provide convenient storage for use by the API.
2665
2666 2012-12-28  Ilya Tikhonovsky  <loislo@chromium.org>
2667
2668         Web Inspector: Native Memory Instrumentation: instrument not instrumented members.
2669         https://bugs.webkit.org/show_bug.cgi?id=105830
2670
2671         Reviewed by Vsevolod Vlasov.
2672
2673         In some cases we don't want to visit some class members.
2674         As example we decided to skip pointers to interface classes such as GraphicLayerClient.
2675         We could use addWeakPointer for them but it can't be used for nonpointer members.
2676         In the offline discussion we came to a conclusion that we need a new instrumentation
2677         method ignoreMember, which will be used for all the members which we won't like to visit/instrument.
2678
2679         DriveBy: Also I instrumented not yet instrumented members.
2680
2681         * wtf/MemoryInstrumentation.h:
2682         (MemoryClassInfo):
2683         (WTF::MemoryClassInfo::ignoreMember):
2684
2685 2012-12-26  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
2686
2687         Fix build warning in OSAllocatorPosix.cpp
2688         https://bugs.webkit.org/show_bug.cgi?id=105761
2689
2690         Reviewed by Kentaro Hara.
2691
2692         * wtf/OSAllocatorPosix.cpp:
2693         (WTF::OSAllocator::reserveUncommitted): Fix unused param warnings.
2694
2695 2012-12-24  Yury Semikhatsky  <yurys@chromium.org>
2696
2697         Memory instrumentation: provide a way to mark a node as a root
2698         https://bugs.webkit.org/show_bug.cgi?id=105737
2699
2700         Reviewed by Alexander Pavlov.
2701
2702         Objects added using MemoryInstrumentation::addRootObject will be marked as roots.
2703
2704         * wtf/MemoryInstrumentation.cpp:
2705         (WTF::MemoryInstrumentation::WrapperBase::process):
2706         (WTF):
2707         (WTF::MemoryInstrumentation::WrapperBase::processPointer):
2708         (WTF::MemoryInstrumentation::WrapperBase::processRootObjectRef):
2709         * wtf/MemoryInstrumentation.h:
2710         (WrapperBase):
2711         * wtf/MemoryObjectInfo.h: added root marker which can be used by the heap graph builder.
2712         (WTF::MemoryObjectInfo::MemoryObjectInfo):
2713         (WTF::MemoryObjectInfo::isRoot):
2714         (WTF::MemoryObjectInfo::markAsRoot):
2715         (MemoryObjectInfo):
2716
2717 2012-12-24  Ilya Tikhonovsky  <loislo@chromium.org>
2718
2719         Web Inspector: Native Memory Instrumentation: propagate member type as edge type to the serialized heap graph.
2720         https://bugs.webkit.org/show_bug.cgi?id=105725
2721
2722         Reviewed by Yury Semikhatsky.
2723
2724         MemoryOwningType was renamed to MemberType.
2725         Source argument were removed from reportEdge, reportLeaf and other edge related methods because it is not necessary.
2726         MemberType argument was propagated from MemoryInstrumentation down to HeapGraphSerializer.
2727
2728         The changes covered by tests in TestWebKitAPI.
2729
2730         * wtf/MemoryInstrumentation.cpp:
2731         (WTF::MemoryInstrumentation::reportEdge):
2732         (WTF::MemoryInstrumentation::reportLinkToBuffer):
2733         (WTF::MemoryClassInfo::addPrivateBuffer):
2734         * wtf/MemoryInstrumentation.h:
2735         (MemoryInstrumentationClient):
2736         (MemoryInstrumentation):
2737         (WTF::MemoryInstrumentation::addRawBuffer):
2738         (WTF::MemoryInstrumentation::MemberTypeTraits::addObject):
2739         (WTF::MemoryInstrumentation::addObjectImpl):
2740
2741 2012-12-21  Ilya Tikhonovsky  <loislo@chromium.org>
2742
2743         Unreviewed. Another try to fix Apple Win Release build.
2744
2745         * wtf/FastMalloc.cpp:
2746         (WTF::ClassIndex):
2747
2748 2012-12-21  Ilya Tikhonovsky  <loislo@chromium.org>
2749
2750         Unreviewed compilation fix for Apple Win Release after r138398.
2751
2752         * wtf/FastMalloc.cpp:
2753         (WTF::ClassIndex):
2754
2755 2012-12-21  Oliver Hunt  <oliver@apple.com>
2756
2757         Further harden FastMalloc
2758         https://bugs.webkit.org/show_bug.cgi?id=105656
2759
2760         Reviewed by Gavin Barraclough.
2761
2762         This increases the degree to which we harden the FastMalloc
2763         linked lists.  We now also mask the previous and next pointers
2764         in the doubly linked list implementation.  I've also made
2765         the masking itself somewhat more complex without a measurable
2766         cost.  We still use ASLR to provide some general entropy, but
2767         we blind the pointers against each nodes 'this' pointer.
2768
2769         * wtf/FastMalloc.cpp:
2770         (WTF::ClassIndex):
2771         (WTF::SLL_Next):
2772         (WTF::SLL_SetNext):
2773         (WTF::Span::next):
2774         (WTF::Span::prev):
2775         (WTF::Span::setNext):
2776         (WTF::Span::setPrev):
2777         (Span):
2778           As Span now has to do masking on the next and previous pointers,
2779           I've updated the code to use accessors instead.
2780         (WTF::DLL_Init):
2781         (WTF::DLL_Remove):
2782         (WTF::DLL_IsEmpty):
2783         (WTF::DLL_Length):
2784         (WTF::DLL_Prepend):
2785         (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects):
2786         (WTF::TCMalloc_PageHeap::scavenge):
2787         (WTF::TCMalloc_PageHeap::New):
2788         (WTF::TCMalloc_PageHeap::AllocLarge):
2789         (WTF::TCMalloc_PageHeap::ReturnedBytes):
2790         (WTF::TCMalloc_PageHeap::Check):
2791         (WTF::TCMalloc_PageHeap::CheckList):
2792         (WTF::TCMalloc_PageHeap::ReleaseFreeList):
2793         (WTF::TCMalloc_Central_FreeList::FetchFromSpans):
2794
2795 2012-12-20  Ryuan Choi  <ryuan.choi@samsung.com>
2796
2797         [EFL] Build break with latest EFL libraries.
2798         https://bugs.webkit.org/show_bug.cgi?id=104827
2799
2800         Reviewed by Laszlo Gombos.
2801
2802         The eo EFL package is introduced and evas and ecore use it since 1.8.
2803         While introducing Eo, EFL changed several structures of Evas and Ecore
2804         from own specific class to Eo.
2805
2806         So, this patch adds FindEo and changes declaration of Evas, Evas_Object,
2807         Ecore_Timer to build with latest EFL libraries.
2808
2809         * wtf/OwnPtrCommon.h: Modified declaration of Evas_Object and Ecore_Timer.
2810         * wtf/PlatformEfl.cmake: Includes eo EFL library.
2811         * wtf/efl/RefPtrEfl.h: Modified declaration of Evas_Object.
2812
2813 2012-12-20  Oliver Hunt  <oliver@apple.com>
2814
2815         Harden pointers in FastMalloc's singly linked list implementation
2816         https://bugs.webkit.org/show_bug.cgi?id=105571
2817
2818         Reviewed by Gavin Barraclough.
2819
2820         Add simple xor based hardening of the next pointer in the
2821         fast malloc singly linked list implementation.  We rely on
2822         ASLR to introduce the address randomness we want for the mask.
2823         Happily this produces a very low cost random value to use.
2824
2825         * wtf/FastMalloc.cpp:
2826         (WTF):
2827         (WTF::SLL_Next):
2828         (WTF::SLL_SetNext):
2829
2830 2012-12-19  Oliver Hunt  <oliver@apple.com>
2831
2832         StringImpl isolatedCopy unnecessarily copies text-segment character data
2833         https://bugs.webkit.org/show_bug.cgi?id=105376
2834
2835         Reviewed by Anders Carlsson.
2836
2837         This patch adds a new (private) helper to StringImpl that tests whether the StringImpl
2838         is backed by an ASCII literal.  This allows isolatedCopy() to safely use the createFromLiteral
2839         constructor rather than making an unnecessary copy.
2840
2841         * wtf/text/StringImpl.h:
2842         (StringImpl):
2843         (WTF::StringImpl::isASCIILiteral):
2844         (WTF::StringImpl::isolatedCopy):
2845
2846 2012-12-19  Oliver Hunt  <oliver@apple.com>
2847
2848         WTF String from ASCIILiteral fails to correctly handle empty strings.
2849         https://bugs.webkit.org/show_bug.cgi?id=105453
2850
2851         Reviewed by Anders Carlsson.
2852
2853         When we have an zero length literal we should return the empty StringImpl.
2854
2855         * wtf/text/StringImpl.cpp:
2856         (WTF::StringImpl::createFromLiteral):
2857
2858 2012-12-18  Yury Semikhatsky  <yurys@chromium.org>
2859
2860         Web Inspector: show cached images under MemoryCache -> Images section
2861         https://bugs.webkit.org/show_bug.cgi?id=105261
2862
2863         Reviewed by Pavel Feldman.
2864
2865         Use first provided name and class name. If one of the ancestors tries to overwrite
2866         it just ignore the call.
2867
2868         * wtf/MemoryObjectInfo.h:
2869         (WTF::MemoryObjectInfo::setClassName):
2870         (WTF::MemoryObjectInfo::setName):
2871
2872 2012-12-18  Uli Schlachter  <psychon@znc.in>
2873
2874         Implement uncommitted memory for Linux.
2875         https://bugs.webkit.org/show_bug.cgi?id=65766
2876
2877         Reviewed by Simon Hausmann.
2878
2879         The old approach used MAP_NORESERVE to allocate address space without
2880         committing it. However, that flag gets ignored if
2881         /proc/sys/vm/overcommit_memory is set to 2. The new approach uses a
2882         mapping with PROT_NONE. This works because mappings which aren't even
2883         readable don't get accounted as committed on Linux.
2884
2885         * wtf/OSAllocatorPosix.cpp:
2886         (WTF::OSAllocator::reserveUncommitted):
2887         (WTF::OSAllocator::reserveAndCommit):
2888         (WTF::OSAllocator::commit):
2889         (WTF::OSAllocator::decommit):
2890
2891 2012-12-17  Ilya Tikhonovsky  <loislo@chromium.org>
2892
2893         Web Inspector: Native Memory Instrumentation: MemoryInstrumentation doesn't detect reportMemoryUsage method defined in a base class.
2894         https://bugs.webkit.org/show_bug.cgi?id=105026
2895
2896         Reviewed by Yury Semikhatsky.
2897
2898         Old SFINAE test was replaced with new one based on this article:
2899         http://stackoverflow.com/questions/1966362/sfinae-to-check-for-inherited-member-functions
2900
2901         * wtf/MemoryInstrumentation.h:
2902         (MemoryInstrumentation):
2903         (yes):
2904         (IsInstrumented):
2905         (no):
2906         (WTF::MemoryInstrumentation::IsInstrumented::BaseMixin::reportMemoryUsage):
2907         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
2908         (InstrumentationSelector):
2909         (WTF):
2910         (WTF::::reportObjectMemoryUsage):
2911
2912 2012-12-17  Ilya Tikhonovsky  <loislo@chromium.org>
2913
2914         Unreviewed, rolling out r137892.
2915         http://trac.webkit.org/changeset/137892
2916         https://bugs.webkit.org/show_bug.cgi?id=105026
2917
2918         it broke compilation on windows
2919
2920         * wtf/MemoryInstrumentation.h:
2921         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
2922         (MemoryInstrumentation):
2923         (WTF::MemoryInstrumentation::reportObjectMemoryUsage):
2924         (WTF::reportMemoryUsage):
2925
2926 2012-12-14  Ilya Tikhonovsky  <loislo@chromium.org>
2927
2928         Web Inspector: Native Memory Instrumentation: MemoryInstrumentation doesn't detect reportMemoryUsage method defined in a base class.
2929         https://bugs.webkit.org/show_bug.cgi?id=105026
2930
2931         Reviewed by Yury Semikhatsky.
2932
2933         Old SFINAE test was replaced with new one based on this article:
2934         http://stackoverflow.com/questions/1966362/sfinae-to-check-for-inherited-member-functions
2935
2936         * wtf/MemoryInstrumentation.h:
2937         (MemoryInstrumentation):
2938         (yes):
2939         (IsInstrumented):
2940         (no):
2941         (WTF::MemoryInstrumentation::IsInstrumented::BaseMixin::reportMemoryUsage):
2942         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
2943         (InstrumentationSelector):
2944         (WTF):
2945         (WTF::::reportObjectMemoryUsage):
2946
2947 2012-12-14  Yury Semikhatsky  <yurys@chromium.org>
2948
2949         Web Inspector: add data grid for exploring native heap graph
2950         https://bugs.webkit.org/show_bug.cgi?id=105012
2951
2952         Reviewed by Pavel Feldman.
2953
2954         Do not report edges with null target.
2955
2956         * wtf/MemoryInstrumentation.h:
2957         (WTF::MemoryInstrumentation::addObjectImpl):
2958
2959 2012-12-13  Filip Pizlo  <fpizlo@apple.com>
2960
2961         Attempt to rationalize and simplify WTF::binarySearch
2962         https://bugs.webkit.org/show_bug.cgi?id=104890
2963
2964         Reviewed by Maciej Stachowiak.
2965
2966         Binary search now has three modes:
2967
2968         The default: assert that the key was found, but return an adjacent element if it
2969         wasn't found, if asserts are turned off.
2970         
2971         tryBinarySearch: return 0 if the key wasn't found.
2972         
2973         approximateBinarySearch: if the key is not found, return an adjacent element (either
2974         the left or right; no guarantee which).
2975         
2976         This also reduces the number of variants of binarySearch. The functor variant is now
2977         gone because binarySearch now always uses a functor for the key extractor. The
2978         generic variant is now gone because binarySearch always expects an array type that
2979         can do operator[].
2980
2981         * wtf/StdLibExtras.h:
2982         (WTF::binarySearchImpl):
2983         (WTF::binarySearch):
2984         (WTF::tryBinarySearch):
2985         (WTF::approximateBinarySearch):
2986
2987 2012-12-13  Ilya Tikhonovsky  <loislo@chromium.org>
2988
2989         Web Inspector: Native Memory Instrumentation: do not validate pointers to objects in RenderArena agains tcmalloc data.
2990         https://bugs.webkit.org/show_bug.cgi?id=104903
2991
2992         Reviewed by Yury Semikhatsky.
2993
2994         This is a simplest approach to do that with zero performance overhead.
2995
2996         * wtf/MemoryInstrumentation.cpp:
2997         (WTF::MemoryClassInfo::setCustomAllocation):
2998         (WTF):
2999         * wtf/MemoryInstrumentation.h:
3000         (MemoryClassInfo):
3001         * wtf/MemoryObjectInfo.h:
3002         (WTF::MemoryObjectInfo::MemoryObjectInfo):
3003         (WTF::MemoryObjectInfo::customAllocation):
3004         (WTF::MemoryObjectInfo::setCustomAllocations):
3005         (MemoryObjectInfo):
3006
3007 2012-12-12  Ilya Tikhonovsky  <loislo@chromium.org>
3008
3009         Web Inspector: Native Memory Instrumentation: remove fake root MemoryObjectInfo.
3010         https://bugs.webkit.org/show_bug.cgi?id=104796
3011
3012         Reviewed by Yury Semikhatsky.
3013
3014         It was not a good idea to introduce a fake root MemoryObjectInfo.
3015         It makes a problem when we visit an object without its own MemoryObjectType.
3016
3017         Example: RenderBox has a global pointer to a hash map.
3018         HashMap doesn't have its own object type because it is a generic container.
3019         It will inherit object type from the fake root memory object info.
3020         The same could happen for another container in another class with other MemoryObjectType.
3021
3022         This fact forces me to create custom process method for root objects
3023         because they need to have their own MemoryObjectInfo with customisable memory object type.
3024
3025         Drive by fix: InstrumentedPointer* was replaced with Wrapper* because actually it is using
3026         for instrumented and not instrumented object classes.
3027
3028         * wtf/MemoryInstrumentation.cpp:
3029         (WTF::MemoryInstrumentation::MemoryInstrumentation):
3030         (WTF::MemoryInstrumentation::WrapperBase::WrapperBase):
3031         (WTF::MemoryInstrumentation::WrapperBase::process):
3032         (WTF::MemoryInstrumentation::WrapperBase::processRootObjectRef):
3033         (WTF):
3034         * wtf/MemoryInstrumentation.h:
3035         (WTF::MemoryInstrumentation::addRootObject):
3036         (MemoryInstrumentation):
3037         (WrapperBase):
3038         (WTF::MemoryInstrumentation::WrapperBase::~WrapperBase):
3039         (Wrapper):
3040         (OwningTraits):
3041         (WTF::MemoryInstrumentation::OwningTraits::addRootObject):
3042         (WTF::MemoryInstrumentation::addObjectImpl):
3043         (WTF::::Wrapper):
3044         (WTF::::callReportMemoryUsage):
3045
3046 2012-12-12  Sergio Martins  <sergio.martins@kdab.com>
3047
3048         Fix QNX Qt build by enabling JIT.
3049         https://bugs.webkit.org/show_bug.cgi?id=102794
3050
3051         Reviewed by Simon Hausmann.
3052
3053         JIT is working, so enable it. Otherwise LLINT gets enabled, and
3054         that doesn't compile.
3055
3056         YARR_JIT is crashing at this time though, so disable it.
3057
3058         * wtf/Platform.h:
3059
3060 2012-12-11  Ilya Tikhonovsky  <loislo@chromium.org>
3061
3062         Web Inspector: Native Memory Instrumentation: simplify Sequences processing code.
3063         https://bugs.webkit.org/show_bug.cgi?id=104777
3064
3065         Reviewed by Yury Semikhatsky.
3066
3067         Redesign reportMemoryUsage for the sequences.
3068         With the old schema we couldn't instrument HashMap<key, WebCore::LayoutUnit>
3069         because LayoutUnit has overloaded conversion operators for double, int, etc.
3070         I wrote an empty SequenceMemoryInstrumentationTraits for LayoutUnit class
3071         but it doesn't help because the root of problem was hidden in the free template function reportSequenceMemoryUsage.
3072         I could overload reportSequenceMemoryUsage too but in this case I need to fully specify all the types
3073         for the iterators like HashMap<.....>::const_iterator. Too many letters.
3074         I found a better solution. Free reportSequenceMemoryUsage can be converted into default implementation of static
3075         reportMemoryUsage traits method. In this case the types of iterators will be inferred automaticaly. The old default
3076         implementation becomes a custom implementation for the user defined types.
3077
3078         * wtf/MemoryInstrumentationHashCountedSet.h:
3079         (WTF::reportMemoryUsage):
3080         * wtf/MemoryInstrumentationHashMap.h:
3081         (WTF::reportMemoryUsage):
3082         * wtf/MemoryInstrumentationHashSet.h:
3083         (WTF::reportMemoryUsage):
3084         * wtf/MemoryInstrumentationListHashSet.h:
3085         (WTF::reportMemoryUsage):
3086         * wtf/MemoryInstrumentationSequence.h:
3087         (WTF):
3088         (WTF::SequenceMemoryInstrumentationTraits::reportMemoryUsage):
3089         (SequenceMemoryInstrumentationTraits):
3090         * wtf/MemoryInstrumentationVector.h:
3091         (WTF::reportMemoryUsage):
3092
3093 2012-12-10  Yury Semikhatsky  <yurys@chromium.org>
3094
3095         Memory instrumentation: make sure each edge is reported only once
3096         https://bugs.webkit.org/show_bug.cgi?id=104630
3097
3098         Reviewed by Pavel Feldman.
3099
3100         Make sure that outgoing edges are reported only once if we come to the same
3101         object twice: first by an address of a base class and then by a real address
3102         of the object.
3103
3104         * wtf/MemoryInstrumentation.cpp:
3105         (WTF::MemoryInstrumentation::MemoryInstrumentation):
3106         (WTF::MemoryInstrumentation::reportLinkToBuffer):
3107         (WTF::MemoryInstrumentation::InstrumentedPointerBase::InstrumentedPointerBase):
3108         (WTF::MemoryInstrumentation::InstrumentedPointerBase::process):
3109         (WTF::MemoryClassInfo::init):
3110         (WTF::MemoryClassInfo::addRawBuffer):
3111         (WTF::MemoryClassInfo::addPrivateBuffer):
3112         * wtf/MemoryInstrumentation.h:
3113         (InstrumentedPointerBase):
3114         (MemoryInstrumentation):
3115         (InstrumentedPointer):
3116         (WTF::MemoryClassInfo::MemoryClassInfo):
3117         (WTF::MemoryClassInfo::addMember):
3118         (MemoryClassInfo):
3119         (WTF::::InstrumentedPointer):
3120         (WTF::::callReportMemoryUsage):
3121         * wtf/MemoryObjectInfo.h:
3122         (WTF::MemoryObjectInfo::MemoryObjectInfo):
3123         (WTF::MemoryObjectInfo::firstVisit):
3124         (WTF::MemoryObjectInfo::className):
3125         (WTF::MemoryObjectInfo::name):
3126         (WTF::MemoryObjectInfo::setAlreadyVisited):
3127         (MemoryObjectInfo):
3128
3129 2012-12-10  Benjamin Poulain  <benjamin@webkit.org>
3130
3131         Add convenience methods to use ListHashSet for a LRU cache
3132         https://bugs.webkit.org/show_bug.cgi?id=104499
3133
3134         Reviewed by Sam Weinig.
3135
3136         ListHashSet is a great abstract data type to implement caches.
3137         Unfortunately, the class was missing methods to do that easily and
3138         efficiently. This patch fixes that.
3139
3140         The names appendOrMoveToLast() and prependOrMoveToFirst() were chosen
3141         in favor of append()/prepend() to ensure they are not used in place of
3142         add() by accident.
3143
3144         * wtf/ListHashSet.h:
3145         (ListHashSet):
3146         (WTF::::removeFirst):
3147         (WTF::::appendOrMoveToLast):
3148         (WTF::::prependOrMoveToFirst):
3149         (WTF::::unlink):
3150         (WTF::::unlinkAndDelete):
3151         (WTF::::prependNode):
3152
3153 2012-12-10  Eric Carlson  <eric.carlson@apple.com>
3154
3155         Add support for in-band text tracks to Mac port
3156         https://bugs.webkit.org/show_bug.cgi?id=103663
3157
3158         Reviewed by Sam Weinig.
3159
3160         * wtf/Platform.h: Define HAVE_AVFOUNDATION_TEXT_TRACK_SUPPORT.
3161
3162 2012-12-08  Patrick Gansterer  <paroga@webkit.org>
3163
3164         Compiling WTF outside of WebKit failed on Windows
3165         https://bugs.webkit.org/show_bug.cgi?id=100201
3166
3167         Reviewed by Darin Adler.
3168
3169         Explicitly use the Unicode variants of the Windows API to
3170         allow building the WTF library without the UNICODE define.
3171
3172         * wtf/win/MainThreadWin.cpp:
3173         (WTF::initializeMainThreadPlatform):
3174
3175 2012-12-08  Gustavo Noronha Silva  <gns@gnome.org>
3176
3177         Unreviewed trivial space fix to silence an automake warning.
3178
3179         * GNUmakefile.list.am:
3180
3181 2012-12-05  Halton Huo  <halton.huo@intel.com>
3182
3183         [CMake] Unify coding style for CMake files
3184         https://bugs.webkit.org/show_bug.cgi?id=103605
3185
3186         Reviewed by Laszlo Gombos.
3187
3188         Update cmake files(.cmake, CMakeLists.txt) with following style rules:
3189         1. Indentation
3190         1.1 Use spaces, not tabs.
3191         1.2 Four spaces as indent.
3192         2. Spacing
3193         2.1 Place one space between control statements and their parentheses.
3194             For eg, if (), else (), elseif (), endif (), foreach (),
3195             endforeach (), while (), endwhile (), break ().
3196         2.2 Do not place spaces between function and macro statements and
3197             their parentheses. For eg, macro(), endmacro(), function(),
3198             endfunction().
3199         2.3 Do not place spaces between a command or function or macro and its
3200             parentheses, or between a parenthesis and its content. For eg,
3201             message("testing") not message( "testing") or message ("testing" )
3202         2.4 No space at line ending.
3203         3. Lowercase when call commands macros and functions. For eg,
3204            add_executable() not ADD_EXECUTABLE(), set() not SET().
3205
3206         * CMakeLists.txt:
3207         * wtf/CMakeLists.txt:
3208         * wtf/PlatformBlackBerry.cmake:
3209         * wtf/PlatformEfl.cmake:
3210         * wtf/PlatformWinCE.cmake:
3211
3212 2012-12-04  Jon Lee  <jonlee@apple.com>
3213
3214         Extend StringHasher to take a stream of characters
3215         https://bugs.webkit.org/show_bug.cgi?id=104076
3216         <rdar://problem/12811887>
3217
3218         Reviewed by Darin Adler.
3219
3220         We essentially move computeHash() to a member function of StringHasher. This allows clients of the
3221         hasher to append strings to the general hash, without having to first concatenate the strings.
3222
3223         * wtf/StringHasher.h:
3224         (WTF::StringHasher::addCharacters): Same as computeHash(), except also take into account the possibility
3225         that there is a pending character to hash. If this is the case, we align the word boundary by consuming the
3226         first character in data, adjust the length, move the data pointer forward one, and update the hasher's
3227         pending character state. Also add an early return so that we are guaranteed at least one character in case
3228         we run into this situation.
3229         (WTF::StringHasher::computeHash): Refactor into addCharacters().
3230
3231 2012-12-04  Yury Semikhatsky  <yurys@chromium.org>
3232
3233         Web Inspector: simplify reportMemoryUsage signature
3234         https://bugs.webkit.org/show_bug.cgi?id=104028
3235
3236         Reviewed by Vsevolod Vlasov.
3237
3238         Removed const& modifier from instrumented pointer type. Was const T* const&,
3239         now it is const T*
3240
3241         * wtf/MemoryInstrumentation.cpp:
3242         (WTF::MemoryClassInfo::addRawBuffer):
3243         * wtf/MemoryInstrumentation.h:
3244         (MemoryInstrumentation):
3245         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
3246         (WTF::MemoryInstrumentation::reportObjectMemoryUsage):
3247         (MemoryClassInfo):
3248         (WTF::reportMemoryUsage):
3249         (WTF::MemoryInstrumentation::addObjectImpl):
3250         (WTF):
3251         * wtf/MemoryInstrumentationArrayBufferView.h:
3252         (WTF::reportMemoryUsage):
3253         * wtf/MemoryInstrumentationHashCountedSet.h:
3254         (WTF::reportMemoryUsage):
3255         * wtf/MemoryInstrumentationHashMap.h:
3256         (WTF::reportMemoryUsage):
3257         * wtf/MemoryInstrumentationHashSet.h:
3258         (WTF::reportMemoryUsage):
3259         * wtf/MemoryInstrumentationListHashSet.h:
3260         (WTF::reportMemoryUsage):
3261         * wtf/MemoryInstrumentationParsedURL.h:
3262         (WTF::reportMemoryUsage):
3263         * wtf/MemoryInstrumentationString.h:
3264         (WTF::reportMemoryUsage):
3265         * wtf/MemoryInstrumentationVector.h:
3266         (WTF::reportMemoryUsage):
3267
3268 2012-12-01  Filip Pizlo  <fpizlo@apple.com>
3269
3270         JSC should be able to report profiling data associated with the IR dumps and disassembly
3271         https://bugs.webkit.org/show_bug.cgi?id=102999
3272
3273         Reviewed by Gavin Barraclough.
3274
3275         Made some minor changes to support the new profiler. FileOutputStream now has an
3276         open() method, and DataLog uses it. StringPrintStream has a reset() method, which
3277         allows you to reuse the same StringPrintStream for creating multiple strings.
3278         SegmentedVector now has a const operator[]. And, WTFString now can do fromUTF8() on
3279         a CString directly.
3280
3281         * wtf/DataLog.cpp:
3282         (WTF::initializeLogFileOnce):
3283         * wtf/FilePrintStream.cpp:
3284         (WTF::FilePrintStream::open):
3285         (WTF):
3286         * wtf/FilePrintStream.h:
3287         * wtf/SegmentedVector.h:
3288         (WTF::SegmentedVector::at):
3289         (SegmentedVector):
3290         (WTF::SegmentedVector::operator[]):
3291         * wtf/StringPrintStream.cpp:
3292         (WTF::StringPrintStream::reset):
3293         (WTF):
3294         * wtf/StringPrintStream.h:
3295         (StringPrintStream):
3296         * wtf/text/WTFString.cpp:
3297         (WTF::String::fromUTF8):
3298         (WTF):
3299         * wtf/text/WTFString.h:
3300         (String):
3301
3302 2012-12-04  Sheriff Bot  <webkit.review.bot@gmail.com>
3303
3304         Unreviewed, rolling out r136597.
3305         http://trac.webkit.org/changeset/136597
3306         https://bugs.webkit.org/show_bug.cgi?id=104065
3307
3308         broke Windows compilation (Requested by yurys on #webkit).
3309
3310         * wtf/MemoryInstrumentation.cpp:
3311         (WTF::MemoryClassInfo::addRawBuffer):
3312         * wtf/MemoryInstrumentation.h:
3313         (MemoryInstrumentation):
3314         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
3315         (WTF::MemoryInstrumentation::reportObjectMemoryUsage):
3316         (MemoryClassInfo):
3317         (WTF::reportMemoryUsage):
3318         (WTF::MemoryInstrumentation::addObjectImpl):
3319         (WTF):
3320         * wtf/MemoryInstrumentationArrayBufferView.h:
3321         (WTF::reportMemoryUsage):
3322         * wtf/MemoryInstrumentationHashCountedSet.h:
3323         (WTF::reportMemoryUsage):
3324         * wtf/MemoryInstrumentationHashMap.h:
3325         (WTF::reportMemoryUsage):
3326         * wtf/MemoryInstrumentationHashSet.h:
3327         (WTF::reportMemoryUsage):
3328         * wtf/MemoryInstrumentationListHashSet.h:
3329         (WTF::reportMemoryUsage):
3330         * wtf/MemoryInstrumentationParsedURL.h:
3331         (WTF::reportMemoryUsage):
3332         * wtf/MemoryInstrumentationString.h:
3333         (WTF::reportMemoryUsage):
3334         * wtf/MemoryInstrumentationVector.h:
3335         (WTF::reportMemoryUsage):
3336
3337 2012-12-04  Yury Semikhatsky  <yurys@chromium.org>
3338
3339         Web Inspector: simplify reportMemoryUsage signature
3340         https://bugs.webkit.org/show_bug.cgi?id=104028
3341
3342         Reviewed by Vsevolod Vlasov.
3343
3344         Removed const& modifier from instrumented pointer type. Was const T* const&,
3345         now it is const T*
3346
3347         * wtf/MemoryInstrumentation.cpp:
3348         (WTF::MemoryClassInfo::addRawBuffer):
3349         * wtf/MemoryInstrumentation.h:
3350         (MemoryInstrumentation):
3351         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
3352         (WTF::MemoryInstrumentation::reportObjectMemoryUsage):
3353         (MemoryClassInfo):
3354         (WTF::reportMemoryUsage):
3355         (WTF::MemoryInstrumentation::addObjectImpl):
3356         (WTF):
3357         * wtf/MemoryInstrumentationArrayBufferView.h:
3358         (WTF::reportMemoryUsage):
3359         * wtf/MemoryInstrumentationHashCountedSet.h:
3360         (WTF::reportMemoryUsage):
3361         * wtf/MemoryInstrumentationHashMap.h:
3362         (WTF::reportMemoryUsage):
3363         * wtf/MemoryInstrumentationHashSet.h:
3364         (WTF::reportMemoryUsage):
3365         * wtf/MemoryInstrumentationListHashSet.h:
3366         (WTF::reportMemoryUsage):
3367         * wtf/MemoryInstrumentationParsedURL.h:
3368         (WTF::reportMemoryUsage):
3369         * wtf/MemoryInstrumentationString.h:
3370         (WTF::reportMemoryUsage):
3371         * wtf/MemoryInstrumentationVector.h:
3372         (WTF::reportMemoryUsage):
3373
3374 2012-12-03  Yury Semikhatsky  <yurys@chromium.org>
3375
3376         Web Inspector: NMI introduce heap graph recording API
3377         https://bugs.webkit.org/show_bug.cgi?id=103232
3378
3379         Reviewed by Vsevolod Vlasov.
3380
3381         MemoryInstrumentationClient is extended with several methods for reporting
3382         heap graph vertices and edges. Edge source is always idenfied by heap object
3383         address. Target node might be either a destination object address(either real
3384         or adjusted if the edge was retrieved from a pointer to a base class) or a
3385         MemoryObjectInfo in case of internal buffers.
3386
3387         * wtf/MemoryInstrumentation.cpp:
3388         (WTF::MemoryInstrumentation::reportEdge):
3389         (WTF):
3390         (WTF::MemoryInstrumentation::reportLinkToBuffer): report edge between the object
3391         and a buffer which it owns.
3392         (WTF::MemoryInstrumentation::InstrumentedPointerBase::process):
3393         (WTF::MemoryClassInfo::addRawBuffer):
3394         (WTF::MemoryClassInfo::addPrivateBuffer):
3395         * wtf/MemoryInstrumentation.h:
3396         (MemoryInstrumentationClient):
3397         (WTF::MemoryInstrumentationClient::reportNode):
3398         (WTF::MemoryInstrumentationClient::reportEdge):
3399         (WTF::MemoryInstrumentationClient::reportLeaf):
3400         (WTF::MemoryInstrumentationClient::reportBaseAddress): if we found an object by a pointer
3401         to base class it may have different value than real object address. Report both real and
3402         adjusted addresses so that they both can be used for identifying corresponding heap graph
3403         node.
3404         (WTF::MemoryInstrumentation::addRootObject):
3405         (MemoryInstrumentation):
3406         (WTF::MemoryInstrumentation::addObject):
3407         (WTF::MemoryInstrumentation::addRawBuffer):
3408         (WTF::MemoryInstrumentation::OwningTraits::addObject):
3409         (WTF::MemoryClassInfo::addMember):
3410         (MemoryClassInfo):
3411         (WTF::MemoryInstrumentation::addObjectImpl):
3412         * wtf/MemoryObjectInfo.h: added methods for repoting class name and some name string.
3413         (WTF::MemoryObjectInfo::setClassName):
3414         (WTF::MemoryObjectInfo::setName):
3415         (MemoryObjectInfo):
3416
3417 2012-12-03  Filip Pizlo  <fpizlo@apple.com>
3418
3419         Replace JSValue::description() with JSValue::dump(PrintStream&)
3420         https://bugs.webkit.org/show_bug.cgi?id=103866
3421
3422         Reviewed by Darin Adler.
3423
3424         Make it easier to get a String from a StringPrintStream.
3425
3426         * wtf/StringPrintStream.cpp:
3427         (WTF::StringPrintStream::toString):
3428         * wtf/StringPrintStream.h:
3429         (StringPrintStream):
3430         (WTF::toString):
3431
3432 2012-12-02  Filip Pizlo  <fpizlo@apple.com>
3433
3434         It should be possible to build and run with DFG_ENABLE(PROPAGATION_VERBOSE)
3435         https://bugs.webkit.org/show_bug.cgi?id=103848
3436
3437         Reviewed by Sam Weinig.
3438
3439         Increase the variadicity of dataLog() and print(), and add a pointerDump()
3440         which allows passing a pointer to something that has a printInternal(). If
3441         the pointer is null, it'll print "(null)"; otherwise it'll invoke the
3442         printInternal() function.
3443
3444         * wtf/DataLog.h:
3445         (WTF):
3446         (WTF::dataLog):
3447         * wtf/PrintStream.h:
3448         (PrintStream):
3449         (WTF::PrintStream::print):
3450         (WTF):
3451         (PointerDump):
3452         (WTF::PointerDump::PointerDump):
3453         (WTF::PointerDump::dump):
3454         (WTF::pointerDump):
3455
3456 2012-11-30  Simon Hausmann  <simon.hausmann@digia.com>, Pierre Rossi  <pierre.rossi@digia.com>
3457
3458         [Qt] Separate Qt WebKit into Qt WebKit and Qt WebKit Widgets
3459         https://bugs.webkit.org/show_bug.cgi?id=99314
3460
3461         Reviewed by Tor Arne Vestbø.
3462
3463         This big change separates QtWebKit into QtWebKit and QtWebKitWidgets as
3464         shared libraries.
3465
3466         It's a big refactoring that mostly involves moving WebCore dependent
3467         code into QtWebKit and accessing it through exported QWebFrameAdapter
3468         and QWebPageAdapter classes.
3469
3470
3471         * wtf/text/WTFString.h:
3472         (String): Export the QString conversions also as WTF_STRING_API.
3473
3474 2012-11-29  Filip Pizlo  <fpizlo@apple.com>
3475
3476         It should be easy to find code blocks in debug dumps
3477         https://bugs.webkit.org/show_bug.cgi?id=103623
3478
3479         Reviewed by Geoffrey Garen.
3480
3481         Changed RawPointer to accept both const void* and void*, and use the former internally.
3482         
3483         Cleaned up SHA1 so that the functionality already used internally for self-testing is
3484         available via the API. This includes addBytes(CString) and computing hex digests.
3485
3486         * wtf/RawPointer.h:
3487         (WTF::RawPointer::RawPointer):
3488         (RawPointer):
3489         (WTF::RawPointer::value):
3490         * wtf/SHA1.cpp:
3491         (WTF::expectSHA1):
3492         (WTF::SHA1::hexDigest):
3493         (WTF::SHA1::computeHexDigest):
3494         * wtf/SHA1.h:
3495         (WTF::SHA1::addBytes):
3496
3497 2012-11-29  Patrick Gansterer  <paroga@webkit.org>
3498
3499         Build fix for WinCE after r136096.
3500
3501         * wtf/StringPrintStream.cpp: Added missing include file.
3502
3503 2012-11-28  Filip Pizlo  <fpizlo@apple.com>
3504
3505         SpeculatedType dumping should not use the static char buffer[thingy] idiom
3506         https://bugs.webkit.org/show_bug.cgi?id=103584
3507
3508         Reviewed by Michael Saboff.
3509
3510         Added a StringPrintStream, and made it easy to create dumpers for typedefs to primitives.
3511
3512         * GNUmakefile.list.am:
3513         * WTF.gypi:
3514         * WTF.pro:
3515         * WTF.vcproj/WTF.vcproj:
3516         * WTF.xcodeproj/project.pbxproj:
3517         * wtf/CMakeLists.txt:
3518         * wtf/PrintStream.cpp:
3519         (WTF::dumpCharacter):
3520         * wtf/PrintStream.h:
3521         (WTF::printInternal):
3522         * wtf/StringPrintStream.cpp: Added.
3523         (WTF::StringPrintStream::StringPrintStream):
3524         (WTF::StringPrintStream::~StringPrintStream):
3525         (WTF::StringPrintStream::vprintf):
3526         (WTF::StringPrintStream::toCString):
3527         (WTF::StringPrintStream::increaseSize):
3528         * wtf/StringPrintStream.h: Added.
3529         (StringPrintStream):
3530         (WTF::toCString):
3531
3532 2012-11-28  Michael Saboff  <msaboff@apple.com>
3533
3534         Update String Stats for recent dataLog changes and add summary
3535         https://bugs.webkit.org/show_bug.cgi?id=103583
3536
3537         Reviewed by Filip Pizlo.
3538
3539         Updated calls to dataLog() to dataLogF() as a results of r135469.
3540         Added total savings from 8 bit strings in bytes and as a percentage.
3541
3542         * wtf/text/StringImpl.cpp:
3543         (WTF::StringStats::printStats):
3544
3545 2012-11-28  Roger Fong  <roger_fong@apple.com>
3546
3547         Make DataLog work/compile properly on Windows.
3548         https://bugs.webkit.org/show_bug.cgi?id=103544
3549
3550         Reviewed by Filip Pizlo.
3551
3552         * wtf/DataLog.cpp:
3553         (WTF::initializeLogFileOnce):
3554
3555 2012-11-28  Filip Pizlo  <fpizlo@apple.com>
3556
3557         It should be possible to say dataLog("count = ", count, "\n") instead of dataLogF("count = %d\n", count)
3558         https://bugs.webkit.org/show_bug.cgi?id=103009
3559
3560         Reviewed by Michael Saboff.
3561
3562         Added the ability to use out.print(...) and dataLog(...) variadically and with
3563         WTF::printInternal(PrintStream&, const T&) overloads for any type T that you want
3564         to be able to pass as an argument to out.print() or dataLog(). Also added one
3565         example class for doing this: RawPointer, which can be used to force a pointer
3566         to be printed as "%p" rather than matching any overloads that you might want to
3567         introduce.
3568
3569         * GNUmakefile.list.am:
3570         * WTF.gypi:
3571         * WTF.pro:
3572         * WTF.vcproj/WTF.vcproj:
3573         * WTF.xcodeproj/project.pbxproj:
3574         * wtf/CMakeLists.txt:
3575         * wtf/DataLog.h:
3576         (WTF):
3577         (WTF::dataLog):
3578         * wtf/PrintStream.cpp:
3579         (WTF::printInternal):
3580         (WTF):
3581         * wtf/PrintStream.h:
3582         (PrintStream):
3583         (WTF::PrintStream::print):
3584         (WTF):
3585         * wtf/RawPointer.h: Added.
3586         (WTF):
3587         (RawPointer):
3588         (WTF::RawPointer::RawPointer):
3589         (WTF::RawPointer::value):
3590
3591 2012-11-27  Filip Pizlo  <fpizlo@apple.com>
3592
3593         Convert some remaining uses of FILE* to PrintStream&.
3594
3595         Rubber stamped by Mark Hahnenberg.
3596
3597         * wtf/BitVector.cpp:
3598         (WTF::BitVector::dump):
3599         * wtf/BitVector.h:
3600         (BitVector):