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