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