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