6a1799f4b4a5c6cc01e160168b4c58bbe24aa6eb
[WebKit-https.git] / Source / WTF / ChangeLog
1 2013-01-12  Csaba Osztrogonác  <ossy@webkit.org>
2
3         Use __sync_add_and_fetch instead of __gnu_cxx::__exchange_and_add
4         https://bugs.webkit.org/show_bug.cgi?id=106729
5
6         After r139514 we need atomicIncrement(int64_t volatile*) for all platform. Now the
7         GCC implementation of atomicIncrement() is based on __gnu_cxx::__exchange_and_add,
8         which doesn't support int64_t type, but __sync_add_and_fetch does.
9
10         Reviewed by Benjamin Poulain.
11
12         * wtf/Atomics.h:
13         (WTF::atomicIncrement):
14         (WTF::atomicDecrement):
15
16 2013-01-11  Filip Pizlo  <fpizlo@apple.com>
17
18         Add WTF_EXPORT_PRIVATE to printInternal() methods of PrintStream.h
19
20         Rubber stamped by Mark Hahnenberg.
21         
22         This will make it easier to use dataLog() from WebCore.
23
24         * wtf/PrintStream.h:
25         (WTF):
26
27 2013-01-09  Antti Koivisto  <antti@apple.com>
28
29         Release FastMalloc thread caches on memory warning
30         https://bugs.webkit.org/show_bug.cgi?id=106471
31         
32         Reviewed by Geoff Garen.
33
34         Use TCMalloc_ThreadCache::Cleanup() instead of calling Scavenge() twice. This releases all the memory
35         and looks nicer too.
36
37         * wtf/FastMalloc.cpp:
38         (WTF::releaseFastMallocFreeMemory):
39
40 2013-01-09  Carlos Garcia Campos  <cgarcia@igalia.com>
41
42         Unreviewed. Fix make distcheck.
43
44         * GNUmakefile.list.am: Add missing header.
45
46 2013-01-07  Filip Pizlo  <fpizlo@apple.com>
47
48         Rationalize closure call heuristics and profiling
49         https://bugs.webkit.org/show_bug.cgi?id=106270
50
51         Reviewed by Oliver Hunt.
52         
53         Add a macro to add a method to a class that returns a dumper. Allows you to have
54         secondary dump() methods for dumping either more or less information.
55
56         * wtf/PrintStream.h:
57         (WTF):
58
59 2013-01-07  Ryosuke Niwa  <rniwa@webkit.org>
60
61         Sorted the xcodeproj file.
62
63         * WTF.xcodeproj/project.pbxproj:
64
65 2013-01-07  Filip Pizlo  <fpizlo@apple.com>
66
67         Unreviewed, it should be possible to build JSC on ARM.
68
69         * wtf/FastMalloc.cpp:
70         (WTF::TCMalloc_PageHeap::IncrementalScavenge):
71
72 2013-01-07  Balazs Kilvady  <kilvadyb@homejinni.com>
73
74         MIPS LLInt implementation.
75         https://bugs.webkit.org/show_bug.cgi?id=99706
76
77         Reviewed by Filip Pizlo.
78
79         LLInt implementation for MIPS.
80
81         * wtf/Platform.h:
82
83 2013-01-05  Jonathan Liu  <net147@gmail.com>
84
85         Only enable MinGW-w64 pow() workaround if needed
86         https://bugs.webkit.org/show_bug.cgi?id=106099
87
88         Reviewed by Filip Pizlo.
89
90         The pow() workaround is no longer needed in the latest version
91         of MinGW-w64.
92
93         * wtf/MathExtras.h:
94
95 2013-01-05  Jonathan Liu  <net147@gmail.com>
96
97         Fix compilation of MathExtras.h with MinGW-w64
98         https://bugs.webkit.org/show_bug.cgi?id=106105
99
100         Reviewed by Simon Hausmann.
101
102         The isfinite and isinf functions are required by wtf_pow but
103         not defined until after wtf_pow. Move wtf_pow to after
104         "using std::isfinite" and "using std::isinf" to fix compilation.
105
106         * wtf/MathExtras.h:
107         (wtf_pow):
108
109 2013-01-03  Filip Pizlo  <fpizlo@apple.com>
110
111         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
112         https://bugs.webkit.org/show_bug.cgi?id=106027
113
114         Reviewed by Mark Hahnenberg.
115         
116         I got tired of the various idioms for printing a list of things with comma in between, so I wrote a helper.
117
118         * WTF.xcodeproj/project.pbxproj:
119         * wtf/CommaPrinter.h: Added.
120         (WTF):
121         (CommaPrinter):
122         (WTF::CommaPrinter::CommaPrinter):
123         (WTF::CommaPrinter::dump):
124
125 2013-01-02  Simon Hausmann  <simon.hausmann@digia.com>
126
127         [MinGW-w64] Centralize workaround for pow() implementation
128         https://bugs.webkit.org/show_bug.cgi?id=105925
129
130         Reviewed by Sam Weinig.
131
132         As suggested by Sam, move the MinGW-w64 workaround into MathExtras.h
133         away from the JSC usage.
134
135         * wtf/MathExtras.h:
136         (wtf_pow):
137
138 2013-01-02  Adam Barth  <abarth@webkit.org>
139
140         WTF.gypi lists Platform.h twice
141         https://bugs.webkit.org/show_bug.cgi?id=105731
142
143         Reviewed by Tony Chang.
144
145         Once ought to be enough for everybody.
146
147         * WTF.gypi:
148
149 2012-12-31  Gavin Barraclough  <barraclough@apple.com>
150
151         Objective-C API for JavaScriptCore
152         https://bugs.webkit.org/show_bug.cgi?id=105889
153
154         Reviewed by Filip Pizlo.
155
156         * wtf/WTFThreadData.cpp:
157         (WTF::WTFThreadData::WTFThreadData):
158         * wtf/WTFThreadData.h:
159         (WTFThreadData):
160             - Added m_apiData - provide convenient storage for use by the API.
161
162 2012-12-28  Ilya Tikhonovsky  <loislo@chromium.org>
163
164         Web Inspector: Native Memory Instrumentation: instrument not instrumented members.
165         https://bugs.webkit.org/show_bug.cgi?id=105830
166
167         Reviewed by Vsevolod Vlasov.
168
169         In some cases we don't want to visit some class members.
170         As example we decided to skip pointers to interface classes such as GraphicLayerClient.
171         We could use addWeakPointer for them but it can't be used for nonpointer members.
172         In the offline discussion we came to a conclusion that we need a new instrumentation
173         method ignoreMember, which will be used for all the members which we won't like to visit/instrument.
174
175         DriveBy: Also I instrumented not yet instrumented members.
176
177         * wtf/MemoryInstrumentation.h:
178         (MemoryClassInfo):
179         (WTF::MemoryClassInfo::ignoreMember):
180
181 2012-12-26  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
182
183         Fix build warning in OSAllocatorPosix.cpp
184         https://bugs.webkit.org/show_bug.cgi?id=105761
185
186         Reviewed by Kentaro Hara.
187
188         * wtf/OSAllocatorPosix.cpp:
189         (WTF::OSAllocator::reserveUncommitted): Fix unused param warnings.
190
191 2012-12-24  Yury Semikhatsky  <yurys@chromium.org>
192
193         Memory instrumentation: provide a way to mark a node as a root
194         https://bugs.webkit.org/show_bug.cgi?id=105737
195
196         Reviewed by Alexander Pavlov.
197
198         Objects added using MemoryInstrumentation::addRootObject will be marked as roots.
199
200         * wtf/MemoryInstrumentation.cpp:
201         (WTF::MemoryInstrumentation::WrapperBase::process):
202         (WTF):
203         (WTF::MemoryInstrumentation::WrapperBase::processPointer):
204         (WTF::MemoryInstrumentation::WrapperBase::processRootObjectRef):
205         * wtf/MemoryInstrumentation.h:
206         (WrapperBase):
207         * wtf/MemoryObjectInfo.h: added root marker which can be used by the heap graph builder.
208         (WTF::MemoryObjectInfo::MemoryObjectInfo):
209         (WTF::MemoryObjectInfo::isRoot):
210         (WTF::MemoryObjectInfo::markAsRoot):
211         (MemoryObjectInfo):
212
213 2012-12-24  Ilya Tikhonovsky  <loislo@chromium.org>
214
215         Web Inspector: Native Memory Instrumentation: propagate member type as edge type to the serialized heap graph.
216         https://bugs.webkit.org/show_bug.cgi?id=105725
217
218         Reviewed by Yury Semikhatsky.
219
220         MemoryOwningType was renamed to MemberType.
221         Source argument were removed from reportEdge, reportLeaf and other edge related methods because it is not necessary.
222         MemberType argument was propagated from MemoryInstrumentation down to HeapGraphSerializer.
223
224         The changes covered by tests in TestWebKitAPI.
225
226         * wtf/MemoryInstrumentation.cpp:
227         (WTF::MemoryInstrumentation::reportEdge):
228         (WTF::MemoryInstrumentation::reportLinkToBuffer):
229         (WTF::MemoryClassInfo::addPrivateBuffer):
230         * wtf/MemoryInstrumentation.h:
231         (MemoryInstrumentationClient):
232         (MemoryInstrumentation):
233         (WTF::MemoryInstrumentation::addRawBuffer):
234         (WTF::MemoryInstrumentation::MemberTypeTraits::addObject):
235         (WTF::MemoryInstrumentation::addObjectImpl):
236
237 2012-12-21  Ilya Tikhonovsky  <loislo@chromium.org>
238
239         Unreviewed. Another try to fix Apple Win Release build.
240
241         * wtf/FastMalloc.cpp:
242         (WTF::ClassIndex):
243
244 2012-12-21  Ilya Tikhonovsky  <loislo@chromium.org>
245
246         Unreviewed compilation fix for Apple Win Release after r138398.
247
248         * wtf/FastMalloc.cpp:
249         (WTF::ClassIndex):
250
251 2012-12-21  Oliver Hunt  <oliver@apple.com>
252
253         Further harden FastMalloc
254         https://bugs.webkit.org/show_bug.cgi?id=105656
255
256         Reviewed by Gavin Barraclough.
257
258         This increases the degree to which we harden the FastMalloc
259         linked lists.  We now also mask the previous and next pointers
260         in the doubly linked list implementation.  I've also made
261         the masking itself somewhat more complex without a measurable
262         cost.  We still use ASLR to provide some general entropy, but
263         we blind the pointers against each nodes 'this' pointer.
264
265         * wtf/FastMalloc.cpp:
266         (WTF::ClassIndex):
267         (WTF::SLL_Next):
268         (WTF::SLL_SetNext):
269         (WTF::Span::next):
270         (WTF::Span::prev):
271         (WTF::Span::setNext):
272         (WTF::Span::setPrev):
273         (Span):
274           As Span now has to do masking on the next and previous pointers,
275           I've updated the code to use accessors instead.
276         (WTF::DLL_Init):
277         (WTF::DLL_Remove):
278         (WTF::DLL_IsEmpty):
279         (WTF::DLL_Length):
280         (WTF::DLL_Prepend):
281         (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects):
282         (WTF::TCMalloc_PageHeap::scavenge):
283         (WTF::TCMalloc_PageHeap::New):
284         (WTF::TCMalloc_PageHeap::AllocLarge):
285         (WTF::TCMalloc_PageHeap::ReturnedBytes):
286         (WTF::TCMalloc_PageHeap::Check):
287         (WTF::TCMalloc_PageHeap::CheckList):
288         (WTF::TCMalloc_PageHeap::ReleaseFreeList):
289         (WTF::TCMalloc_Central_FreeList::FetchFromSpans):
290
291 2012-12-20  Ryuan Choi  <ryuan.choi@samsung.com>
292
293         [EFL] Build break with latest EFL libraries.
294         https://bugs.webkit.org/show_bug.cgi?id=104827
295
296         Reviewed by Laszlo Gombos.
297
298         The eo EFL package is introduced and evas and ecore use it since 1.8.
299         While introducing Eo, EFL changed several structures of Evas and Ecore
300         from own specific class to Eo.
301
302         So, this patch adds FindEo and changes declaration of Evas, Evas_Object,
303         Ecore_Timer to build with latest EFL libraries.
304
305         * wtf/OwnPtrCommon.h: Modified declaration of Evas_Object and Ecore_Timer.
306         * wtf/PlatformEfl.cmake: Includes eo EFL library.
307         * wtf/efl/RefPtrEfl.h: Modified declaration of Evas_Object.
308
309 2012-12-20  Oliver Hunt  <oliver@apple.com>
310
311         Harden pointers in FastMalloc's singly linked list implementation
312         https://bugs.webkit.org/show_bug.cgi?id=105571
313
314         Reviewed by Gavin Barraclough.
315
316         Add simple xor based hardening of the next pointer in the
317         fast malloc singly linked list implementation.  We rely on
318         ASLR to introduce the address randomness we want for the mask.
319         Happily this produces a very low cost random value to use.
320
321         * wtf/FastMalloc.cpp:
322         (WTF):
323         (WTF::SLL_Next):
324         (WTF::SLL_SetNext):
325
326 2012-12-19  Oliver Hunt  <oliver@apple.com>
327
328         StringImpl isolatedCopy unnecessarily copies text-segment character data
329         https://bugs.webkit.org/show_bug.cgi?id=105376
330
331         Reviewed by Anders Carlsson.
332
333         This patch adds a new (private) helper to StringImpl that tests whether the StringImpl
334         is backed by an ASCII literal.  This allows isolatedCopy() to safely use the createFromLiteral
335         constructor rather than making an unnecessary copy.
336
337         * wtf/text/StringImpl.h:
338         (StringImpl):
339         (WTF::StringImpl::isASCIILiteral):
340         (WTF::StringImpl::isolatedCopy):
341
342 2012-12-19  Oliver Hunt  <oliver@apple.com>
343
344         WTF String from ASCIILiteral fails to correctly handle empty strings.
345         https://bugs.webkit.org/show_bug.cgi?id=105453
346
347         Reviewed by Anders Carlsson.
348
349         When we have an zero length literal we should return the empty StringImpl.
350
351         * wtf/text/StringImpl.cpp:
352         (WTF::StringImpl::createFromLiteral):
353
354 2012-12-18  Yury Semikhatsky  <yurys@chromium.org>
355
356         Web Inspector: show cached images under MemoryCache -> Images section
357         https://bugs.webkit.org/show_bug.cgi?id=105261
358
359         Reviewed by Pavel Feldman.
360
361         Use first provided name and class name. If one of the ancestors tries to overwrite
362         it just ignore the call.
363
364         * wtf/MemoryObjectInfo.h:
365         (WTF::MemoryObjectInfo::setClassName):
366         (WTF::MemoryObjectInfo::setName):
367
368 2012-12-18  Uli Schlachter  <psychon@znc.in>
369
370         Implement uncommitted memory for Linux.
371         https://bugs.webkit.org/show_bug.cgi?id=65766
372
373         Reviewed by Simon Hausmann.
374
375         The old approach used MAP_NORESERVE to allocate address space without
376         committing it. However, that flag gets ignored if
377         /proc/sys/vm/overcommit_memory is set to 2. The new approach uses a
378         mapping with PROT_NONE. This works because mappings which aren't even
379         readable don't get accounted as committed on Linux.
380
381         * wtf/OSAllocatorPosix.cpp:
382         (WTF::OSAllocator::reserveUncommitted):
383         (WTF::OSAllocator::reserveAndCommit):
384         (WTF::OSAllocator::commit):
385         (WTF::OSAllocator::decommit):
386
387 2012-12-17  Ilya Tikhonovsky  <loislo@chromium.org>
388
389         Web Inspector: Native Memory Instrumentation: MemoryInstrumentation doesn't detect reportMemoryUsage method defined in a base class.
390         https://bugs.webkit.org/show_bug.cgi?id=105026
391
392         Reviewed by Yury Semikhatsky.
393
394         Old SFINAE test was replaced with new one based on this article:
395         http://stackoverflow.com/questions/1966362/sfinae-to-check-for-inherited-member-functions
396
397         * wtf/MemoryInstrumentation.h:
398         (MemoryInstrumentation):
399         (yes):
400         (IsInstrumented):
401         (no):
402         (WTF::MemoryInstrumentation::IsInstrumented::BaseMixin::reportMemoryUsage):
403         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
404         (InstrumentationSelector):
405         (WTF):
406         (WTF::::reportObjectMemoryUsage):
407
408 2012-12-17  Ilya Tikhonovsky  <loislo@chromium.org>
409
410         Unreviewed, rolling out r137892.
411         http://trac.webkit.org/changeset/137892
412         https://bugs.webkit.org/show_bug.cgi?id=105026
413
414         it broke compilation on windows
415
416         * wtf/MemoryInstrumentation.h:
417         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
418         (MemoryInstrumentation):
419         (WTF::MemoryInstrumentation::reportObjectMemoryUsage):
420         (WTF::reportMemoryUsage):
421
422 2012-12-14  Ilya Tikhonovsky  <loislo@chromium.org>
423
424         Web Inspector: Native Memory Instrumentation: MemoryInstrumentation doesn't detect reportMemoryUsage method defined in a base class.
425         https://bugs.webkit.org/show_bug.cgi?id=105026
426
427         Reviewed by Yury Semikhatsky.
428
429         Old SFINAE test was replaced with new one based on this article:
430         http://stackoverflow.com/questions/1966362/sfinae-to-check-for-inherited-member-functions
431
432         * wtf/MemoryInstrumentation.h:
433         (MemoryInstrumentation):
434         (yes):
435         (IsInstrumented):
436         (no):
437         (WTF::MemoryInstrumentation::IsInstrumented::BaseMixin::reportMemoryUsage):
438         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
439         (InstrumentationSelector):
440         (WTF):
441         (WTF::::reportObjectMemoryUsage):
442
443 2012-12-14  Yury Semikhatsky  <yurys@chromium.org>
444
445         Web Inspector: add data grid for exploring native heap graph
446         https://bugs.webkit.org/show_bug.cgi?id=105012
447
448         Reviewed by Pavel Feldman.
449
450         Do not report edges with null target.
451
452         * wtf/MemoryInstrumentation.h:
453         (WTF::MemoryInstrumentation::addObjectImpl):
454
455 2012-12-13  Filip Pizlo  <fpizlo@apple.com>
456
457         Attempt to rationalize and simplify WTF::binarySearch
458         https://bugs.webkit.org/show_bug.cgi?id=104890
459
460         Reviewed by Maciej Stachowiak.
461
462         Binary search now has three modes:
463
464         The default: assert that the key was found, but return an adjacent element if it
465         wasn't found, if asserts are turned off.
466         
467         tryBinarySearch: return 0 if the key wasn't found.
468         
469         approximateBinarySearch: if the key is not found, return an adjacent element (either
470         the left or right; no guarantee which).
471         
472         This also reduces the number of variants of binarySearch. The functor variant is now
473         gone because binarySearch now always uses a functor for the key extractor. The
474         generic variant is now gone because binarySearch always expects an array type that
475         can do operator[].
476
477         * wtf/StdLibExtras.h:
478         (WTF::binarySearchImpl):
479         (WTF::binarySearch):
480         (WTF::tryBinarySearch):
481         (WTF::approximateBinarySearch):
482
483 2012-12-13  Ilya Tikhonovsky  <loislo@chromium.org>
484
485         Web Inspector: Native Memory Instrumentation: do not validate pointers to objects in RenderArena agains tcmalloc data.
486         https://bugs.webkit.org/show_bug.cgi?id=104903
487
488         Reviewed by Yury Semikhatsky.
489
490         This is a simplest approach to do that with zero performance overhead.
491
492         * wtf/MemoryInstrumentation.cpp:
493         (WTF::MemoryClassInfo::setCustomAllocation):
494         (WTF):
495         * wtf/MemoryInstrumentation.h:
496         (MemoryClassInfo):
497         * wtf/MemoryObjectInfo.h:
498         (WTF::MemoryObjectInfo::MemoryObjectInfo):
499         (WTF::MemoryObjectInfo::customAllocation):
500         (WTF::MemoryObjectInfo::setCustomAllocations):
501         (MemoryObjectInfo):
502
503 2012-12-12  Ilya Tikhonovsky  <loislo@chromium.org>
504
505         Web Inspector: Native Memory Instrumentation: remove fake root MemoryObjectInfo.
506         https://bugs.webkit.org/show_bug.cgi?id=104796
507
508         Reviewed by Yury Semikhatsky.
509
510         It was not a good idea to introduce a fake root MemoryObjectInfo.
511         It makes a problem when we visit an object without its own MemoryObjectType.
512
513         Example: RenderBox has a global pointer to a hash map.
514         HashMap doesn't have its own object type because it is a generic container.
515         It will inherit object type from the fake root memory object info.
516         The same could happen for another container in another class with other MemoryObjectType.
517
518         This fact forces me to create custom process method for root objects
519         because they need to have their own MemoryObjectInfo with customisable memory object type.
520
521         Drive by fix: InstrumentedPointer* was replaced with Wrapper* because actually it is using
522         for instrumented and not instrumented object classes.
523
524         * wtf/MemoryInstrumentation.cpp:
525         (WTF::MemoryInstrumentation::MemoryInstrumentation):
526         (WTF::MemoryInstrumentation::WrapperBase::WrapperBase):
527         (WTF::MemoryInstrumentation::WrapperBase::process):
528         (WTF::MemoryInstrumentation::WrapperBase::processRootObjectRef):
529         (WTF):
530         * wtf/MemoryInstrumentation.h:
531         (WTF::MemoryInstrumentation::addRootObject):
532         (MemoryInstrumentation):
533         (WrapperBase):
534         (WTF::MemoryInstrumentation::WrapperBase::~WrapperBase):
535         (Wrapper):
536         (OwningTraits):
537         (WTF::MemoryInstrumentation::OwningTraits::addRootObject):
538         (WTF::MemoryInstrumentation::addObjectImpl):
539         (WTF::::Wrapper):
540         (WTF::::callReportMemoryUsage):
541
542 2012-12-12  Sergio Martins  <sergio.martins@kdab.com>
543
544         Fix QNX Qt build by enabling JIT.
545         https://bugs.webkit.org/show_bug.cgi?id=102794
546
547         Reviewed by Simon Hausmann.
548
549         JIT is working, so enable it. Otherwise LLINT gets enabled, and
550         that doesn't compile.
551
552         YARR_JIT is crashing at this time though, so disable it.
553
554         * wtf/Platform.h:
555
556 2012-12-11  Ilya Tikhonovsky  <loislo@chromium.org>
557
558         Web Inspector: Native Memory Instrumentation: simplify Sequences processing code.
559         https://bugs.webkit.org/show_bug.cgi?id=104777
560
561         Reviewed by Yury Semikhatsky.
562
563         Redesign reportMemoryUsage for the sequences.
564         With the old schema we couldn't instrument HashMap<key, WebCore::LayoutUnit>
565         because LayoutUnit has overloaded conversion operators for double, int, etc.
566         I wrote an empty SequenceMemoryInstrumentationTraits for LayoutUnit class
567         but it doesn't help because the root of problem was hidden in the free template function reportSequenceMemoryUsage.
568         I could overload reportSequenceMemoryUsage too but in this case I need to fully specify all the types
569         for the iterators like HashMap<.....>::const_iterator. Too many letters.
570         I found a better solution. Free reportSequenceMemoryUsage can be converted into default implementation of static
571         reportMemoryUsage traits method. In this case the types of iterators will be inferred automaticaly. The old default
572         implementation becomes a custom implementation for the user defined types.
573
574         * wtf/MemoryInstrumentationHashCountedSet.h:
575         (WTF::reportMemoryUsage):
576         * wtf/MemoryInstrumentationHashMap.h:
577         (WTF::reportMemoryUsage):
578         * wtf/MemoryInstrumentationHashSet.h:
579         (WTF::reportMemoryUsage):
580         * wtf/MemoryInstrumentationListHashSet.h:
581         (WTF::reportMemoryUsage):
582         * wtf/MemoryInstrumentationSequence.h:
583         (WTF):
584         (WTF::SequenceMemoryInstrumentationTraits::reportMemoryUsage):
585         (SequenceMemoryInstrumentationTraits):
586         * wtf/MemoryInstrumentationVector.h:
587         (WTF::reportMemoryUsage):
588
589 2012-12-10  Yury Semikhatsky  <yurys@chromium.org>
590
591         Memory instrumentation: make sure each edge is reported only once
592         https://bugs.webkit.org/show_bug.cgi?id=104630
593
594         Reviewed by Pavel Feldman.
595
596         Make sure that outgoing edges are reported only once if we come to the same
597         object twice: first by an address of a base class and then by a real address
598         of the object.
599
600         * wtf/MemoryInstrumentation.cpp:
601         (WTF::MemoryInstrumentation::MemoryInstrumentation):
602         (WTF::MemoryInstrumentation::reportLinkToBuffer):
603         (WTF::MemoryInstrumentation::InstrumentedPointerBase::InstrumentedPointerBase):
604         (WTF::MemoryInstrumentation::InstrumentedPointerBase::process):
605         (WTF::MemoryClassInfo::init):
606         (WTF::MemoryClassInfo::addRawBuffer):
607         (WTF::MemoryClassInfo::addPrivateBuffer):
608         * wtf/MemoryInstrumentation.h:
609         (InstrumentedPointerBase):
610         (MemoryInstrumentation):
611         (InstrumentedPointer):
612         (WTF::MemoryClassInfo::MemoryClassInfo):
613         (WTF::MemoryClassInfo::addMember):
614         (MemoryClassInfo):
615         (WTF::::InstrumentedPointer):
616         (WTF::::callReportMemoryUsage):
617         * wtf/MemoryObjectInfo.h:
618         (WTF::MemoryObjectInfo::MemoryObjectInfo):
619         (WTF::MemoryObjectInfo::firstVisit):
620         (WTF::MemoryObjectInfo::className):
621         (WTF::MemoryObjectInfo::name):
622         (WTF::MemoryObjectInfo::setAlreadyVisited):
623         (MemoryObjectInfo):
624
625 2012-12-10  Benjamin Poulain  <benjamin@webkit.org>
626
627         Add convenience methods to use ListHashSet for a LRU cache
628         https://bugs.webkit.org/show_bug.cgi?id=104499
629
630         Reviewed by Sam Weinig.
631
632         ListHashSet is a great abstract data type to implement caches.
633         Unfortunately, the class was missing methods to do that easily and
634         efficiently. This patch fixes that.
635
636         The names appendOrMoveToLast() and prependOrMoveToFirst() were chosen
637         in favor of append()/prepend() to ensure they are not used in place of
638         add() by accident.
639
640         * wtf/ListHashSet.h:
641         (ListHashSet):
642         (WTF::::removeFirst):
643         (WTF::::appendOrMoveToLast):
644         (WTF::::prependOrMoveToFirst):
645         (WTF::::unlink):
646         (WTF::::unlinkAndDelete):
647         (WTF::::prependNode):
648
649 2012-12-10  Eric Carlson  <eric.carlson@apple.com>
650
651         Add support for in-band text tracks to Mac port
652         https://bugs.webkit.org/show_bug.cgi?id=103663
653
654         Reviewed by Sam Weinig.
655
656         * wtf/Platform.h: Define HAVE_AVFOUNDATION_TEXT_TRACK_SUPPORT.
657
658 2012-12-08  Patrick Gansterer  <paroga@webkit.org>
659
660         Compiling WTF outside of WebKit failed on Windows
661         https://bugs.webkit.org/show_bug.cgi?id=100201
662
663         Reviewed by Darin Adler.
664
665         Explicitly use the Unicode variants of the Windows API to
666         allow building the WTF library without the UNICODE define.
667
668         * wtf/win/MainThreadWin.cpp:
669         (WTF::initializeMainThreadPlatform):
670
671 2012-12-08  Gustavo Noronha Silva  <gns@gnome.org>
672
673         Unreviewed trivial space fix to silence an automake warning.
674
675         * GNUmakefile.list.am:
676
677 2012-12-05  Halton Huo  <halton.huo@intel.com>
678
679         [CMake] Unify coding style for CMake files
680         https://bugs.webkit.org/show_bug.cgi?id=103605
681
682         Reviewed by Laszlo Gombos.
683
684         Update cmake files(.cmake, CMakeLists.txt) with following style rules:
685         1. Indentation
686         1.1 Use spaces, not tabs.
687         1.2 Four spaces as indent.
688         2. Spacing
689         2.1 Place one space between control statements and their parentheses.
690             For eg, if (), else (), elseif (), endif (), foreach (),
691             endforeach (), while (), endwhile (), break ().
692         2.2 Do not place spaces between function and macro statements and
693             their parentheses. For eg, macro(), endmacro(), function(),
694             endfunction().
695         2.3 Do not place spaces between a command or function or macro and its
696             parentheses, or between a parenthesis and its content. For eg,
697             message("testing") not message( "testing") or message ("testing" )
698         2.4 No space at line ending.
699         3. Lowercase when call commands macros and functions. For eg,
700            add_executable() not ADD_EXECUTABLE(), set() not SET().
701
702         * CMakeLists.txt:
703         * wtf/CMakeLists.txt:
704         * wtf/PlatformBlackBerry.cmake:
705         * wtf/PlatformEfl.cmake:
706         * wtf/PlatformWinCE.cmake:
707
708 2012-12-04  Jon Lee  <jonlee@apple.com>
709
710         Extend StringHasher to take a stream of characters
711         https://bugs.webkit.org/show_bug.cgi?id=104076
712         <rdar://problem/12811887>
713
714         Reviewed by Darin Adler.
715
716         We essentially move computeHash() to a member function of StringHasher. This allows clients of the
717         hasher to append strings to the general hash, without having to first concatenate the strings.
718
719         * wtf/StringHasher.h:
720         (WTF::StringHasher::addCharacters): Same as computeHash(), except also take into account the possibility
721         that there is a pending character to hash. If this is the case, we align the word boundary by consuming the
722         first character in data, adjust the length, move the data pointer forward one, and update the hasher's
723         pending character state. Also add an early return so that we are guaranteed at least one character in case
724         we run into this situation.
725         (WTF::StringHasher::computeHash): Refactor into addCharacters().
726
727 2012-12-04  Yury Semikhatsky  <yurys@chromium.org>
728
729         Web Inspector: simplify reportMemoryUsage signature
730         https://bugs.webkit.org/show_bug.cgi?id=104028
731
732         Reviewed by Vsevolod Vlasov.
733
734         Removed const& modifier from instrumented pointer type. Was const T* const&,
735         now it is const T*
736
737         * wtf/MemoryInstrumentation.cpp:
738         (WTF::MemoryClassInfo::addRawBuffer):
739         * wtf/MemoryInstrumentation.h:
740         (MemoryInstrumentation):
741         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
742         (WTF::MemoryInstrumentation::reportObjectMemoryUsage):
743         (MemoryClassInfo):
744         (WTF::reportMemoryUsage):
745         (WTF::MemoryInstrumentation::addObjectImpl):
746         (WTF):
747         * wtf/MemoryInstrumentationArrayBufferView.h:
748         (WTF::reportMemoryUsage):
749         * wtf/MemoryInstrumentationHashCountedSet.h:
750         (WTF::reportMemoryUsage):
751         * wtf/MemoryInstrumentationHashMap.h:
752         (WTF::reportMemoryUsage):
753         * wtf/MemoryInstrumentationHashSet.h:
754         (WTF::reportMemoryUsage):
755         * wtf/MemoryInstrumentationListHashSet.h:
756         (WTF::reportMemoryUsage):
757         * wtf/MemoryInstrumentationParsedURL.h:
758         (WTF::reportMemoryUsage):
759         * wtf/MemoryInstrumentationString.h:
760         (WTF::reportMemoryUsage):
761         * wtf/MemoryInstrumentationVector.h:
762         (WTF::reportMemoryUsage):
763
764 2012-12-01  Filip Pizlo  <fpizlo@apple.com>
765
766         JSC should be able to report profiling data associated with the IR dumps and disassembly
767         https://bugs.webkit.org/show_bug.cgi?id=102999
768
769         Reviewed by Gavin Barraclough.
770
771         Made some minor changes to support the new profiler. FileOutputStream now has an
772         open() method, and DataLog uses it. StringPrintStream has a reset() method, which
773         allows you to reuse the same StringPrintStream for creating multiple strings.
774         SegmentedVector now has a const operator[]. And, WTFString now can do fromUTF8() on
775         a CString directly.
776
777         * wtf/DataLog.cpp:
778         (WTF::initializeLogFileOnce):
779         * wtf/FilePrintStream.cpp:
780         (WTF::FilePrintStream::open):
781         (WTF):
782         * wtf/FilePrintStream.h:
783         * wtf/SegmentedVector.h:
784         (WTF::SegmentedVector::at):
785         (SegmentedVector):
786         (WTF::SegmentedVector::operator[]):
787         * wtf/StringPrintStream.cpp:
788         (WTF::StringPrintStream::reset):
789         (WTF):
790         * wtf/StringPrintStream.h:
791         (StringPrintStream):
792         * wtf/text/WTFString.cpp:
793         (WTF::String::fromUTF8):
794         (WTF):
795         * wtf/text/WTFString.h:
796         (String):
797
798 2012-12-04  Sheriff Bot  <webkit.review.bot@gmail.com>
799
800         Unreviewed, rolling out r136597.
801         http://trac.webkit.org/changeset/136597
802         https://bugs.webkit.org/show_bug.cgi?id=104065
803
804         broke Windows compilation (Requested by yurys on #webkit).
805
806         * wtf/MemoryInstrumentation.cpp:
807         (WTF::MemoryClassInfo::addRawBuffer):
808         * wtf/MemoryInstrumentation.h:
809         (MemoryInstrumentation):
810         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
811         (WTF::MemoryInstrumentation::reportObjectMemoryUsage):
812         (MemoryClassInfo):
813         (WTF::reportMemoryUsage):
814         (WTF::MemoryInstrumentation::addObjectImpl):
815         (WTF):
816         * wtf/MemoryInstrumentationArrayBufferView.h:
817         (WTF::reportMemoryUsage):
818         * wtf/MemoryInstrumentationHashCountedSet.h:
819         (WTF::reportMemoryUsage):
820         * wtf/MemoryInstrumentationHashMap.h:
821         (WTF::reportMemoryUsage):
822         * wtf/MemoryInstrumentationHashSet.h:
823         (WTF::reportMemoryUsage):
824         * wtf/MemoryInstrumentationListHashSet.h:
825         (WTF::reportMemoryUsage):
826         * wtf/MemoryInstrumentationParsedURL.h:
827         (WTF::reportMemoryUsage):
828         * wtf/MemoryInstrumentationString.h:
829         (WTF::reportMemoryUsage):
830         * wtf/MemoryInstrumentationVector.h:
831         (WTF::reportMemoryUsage):
832
833 2012-12-04  Yury Semikhatsky  <yurys@chromium.org>
834
835         Web Inspector: simplify reportMemoryUsage signature
836         https://bugs.webkit.org/show_bug.cgi?id=104028
837
838         Reviewed by Vsevolod Vlasov.
839
840         Removed const& modifier from instrumented pointer type. Was const T* const&,
841         now it is const T*
842
843         * wtf/MemoryInstrumentation.cpp:
844         (WTF::MemoryClassInfo::addRawBuffer):
845         * wtf/MemoryInstrumentation.h:
846         (MemoryInstrumentation):
847         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
848         (WTF::MemoryInstrumentation::reportObjectMemoryUsage):
849         (MemoryClassInfo):
850         (WTF::reportMemoryUsage):
851         (WTF::MemoryInstrumentation::addObjectImpl):
852         (WTF):
853         * wtf/MemoryInstrumentationArrayBufferView.h:
854         (WTF::reportMemoryUsage):
855         * wtf/MemoryInstrumentationHashCountedSet.h:
856         (WTF::reportMemoryUsage):
857         * wtf/MemoryInstrumentationHashMap.h:
858         (WTF::reportMemoryUsage):
859         * wtf/MemoryInstrumentationHashSet.h:
860         (WTF::reportMemoryUsage):
861         * wtf/MemoryInstrumentationListHashSet.h:
862         (WTF::reportMemoryUsage):
863         * wtf/MemoryInstrumentationParsedURL.h:
864         (WTF::reportMemoryUsage):
865         * wtf/MemoryInstrumentationString.h:
866         (WTF::reportMemoryUsage):
867         * wtf/MemoryInstrumentationVector.h:
868         (WTF::reportMemoryUsage):
869
870 2012-12-03  Yury Semikhatsky  <yurys@chromium.org>
871
872         Web Inspector: NMI introduce heap graph recording API
873         https://bugs.webkit.org/show_bug.cgi?id=103232
874
875         Reviewed by Vsevolod Vlasov.
876
877         MemoryInstrumentationClient is extended with several methods for reporting
878         heap graph vertices and edges. Edge source is always idenfied by heap object
879         address. Target node might be either a destination object address(either real
880         or adjusted if the edge was retrieved from a pointer to a base class) or a
881         MemoryObjectInfo in case of internal buffers.
882
883         * wtf/MemoryInstrumentation.cpp:
884         (WTF::MemoryInstrumentation::reportEdge):
885         (WTF):
886         (WTF::MemoryInstrumentation::reportLinkToBuffer): report edge between the object
887         and a buffer which it owns.
888         (WTF::MemoryInstrumentation::InstrumentedPointerBase::process):
889         (WTF::MemoryClassInfo::addRawBuffer):
890         (WTF::MemoryClassInfo::addPrivateBuffer):
891         * wtf/MemoryInstrumentation.h:
892         (MemoryInstrumentationClient):
893         (WTF::MemoryInstrumentationClient::reportNode):
894         (WTF::MemoryInstrumentationClient::reportEdge):
895         (WTF::MemoryInstrumentationClient::reportLeaf):
896         (WTF::MemoryInstrumentationClient::reportBaseAddress): if we found an object by a pointer
897         to base class it may have different value than real object address. Report both real and
898         adjusted addresses so that they both can be used for identifying corresponding heap graph
899         node.
900         (WTF::MemoryInstrumentation::addRootObject):
901         (MemoryInstrumentation):
902         (WTF::MemoryInstrumentation::addObject):
903         (WTF::MemoryInstrumentation::addRawBuffer):
904         (WTF::MemoryInstrumentation::OwningTraits::addObject):
905         (WTF::MemoryClassInfo::addMember):
906         (MemoryClassInfo):
907         (WTF::MemoryInstrumentation::addObjectImpl):
908         * wtf/MemoryObjectInfo.h: added methods for repoting class name and some name string.
909         (WTF::MemoryObjectInfo::setClassName):
910         (WTF::MemoryObjectInfo::setName):
911         (MemoryObjectInfo):
912
913 2012-12-03  Filip Pizlo  <fpizlo@apple.com>
914
915         Replace JSValue::description() with JSValue::dump(PrintStream&)
916         https://bugs.webkit.org/show_bug.cgi?id=103866
917
918         Reviewed by Darin Adler.
919
920         Make it easier to get a String from a StringPrintStream.
921
922         * wtf/StringPrintStream.cpp:
923         (WTF::StringPrintStream::toString):
924         * wtf/StringPrintStream.h:
925         (StringPrintStream):
926         (WTF::toString):
927
928 2012-12-02  Filip Pizlo  <fpizlo@apple.com>
929
930         It should be possible to build and run with DFG_ENABLE(PROPAGATION_VERBOSE)
931         https://bugs.webkit.org/show_bug.cgi?id=103848
932
933         Reviewed by Sam Weinig.
934
935         Increase the variadicity of dataLog() and print(), and add a pointerDump()
936         which allows passing a pointer to something that has a printInternal(). If
937         the pointer is null, it'll print "(null)"; otherwise it'll invoke the
938         printInternal() function.
939
940         * wtf/DataLog.h:
941         (WTF):
942         (WTF::dataLog):
943         * wtf/PrintStream.h:
944         (PrintStream):
945         (WTF::PrintStream::print):
946         (WTF):
947         (PointerDump):
948         (WTF::PointerDump::PointerDump):
949         (WTF::PointerDump::dump):
950         (WTF::pointerDump):
951
952 2012-11-30  Simon Hausmann  <simon.hausmann@digia.com>, Pierre Rossi  <pierre.rossi@digia.com>
953
954         [Qt] Separate Qt WebKit into Qt WebKit and Qt WebKit Widgets
955         https://bugs.webkit.org/show_bug.cgi?id=99314
956
957         Reviewed by Tor Arne Vestbø.
958
959         This big change separates QtWebKit into QtWebKit and QtWebKitWidgets as
960         shared libraries.
961
962         It's a big refactoring that mostly involves moving WebCore dependent
963         code into QtWebKit and accessing it through exported QWebFrameAdapter
964         and QWebPageAdapter classes.
965
966
967         * wtf/text/WTFString.h:
968         (String): Export the QString conversions also as WTF_STRING_API.
969
970 2012-11-29  Filip Pizlo  <fpizlo@apple.com>
971
972         It should be easy to find code blocks in debug dumps
973         https://bugs.webkit.org/show_bug.cgi?id=103623
974
975         Reviewed by Geoffrey Garen.
976
977         Changed RawPointer to accept both const void* and void*, and use the former internally.
978         
979         Cleaned up SHA1 so that the functionality already used internally for self-testing is
980         available via the API. This includes addBytes(CString) and computing hex digests.
981
982         * wtf/RawPointer.h:
983         (WTF::RawPointer::RawPointer):
984         (RawPointer):
985         (WTF::RawPointer::value):
986         * wtf/SHA1.cpp:
987         (WTF::expectSHA1):
988         (WTF::SHA1::hexDigest):
989         (WTF::SHA1::computeHexDigest):
990         * wtf/SHA1.h:
991         (WTF::SHA1::addBytes):
992
993 2012-11-29  Patrick Gansterer  <paroga@webkit.org>
994
995         Build fix for WinCE after r136096.
996
997         * wtf/StringPrintStream.cpp: Added missing include file.
998
999 2012-11-28  Filip Pizlo  <fpizlo@apple.com>
1000
1001         SpeculatedType dumping should not use the static char buffer[thingy] idiom
1002         https://bugs.webkit.org/show_bug.cgi?id=103584
1003
1004         Reviewed by Michael Saboff.
1005
1006         Added a StringPrintStream, and made it easy to create dumpers for typedefs to primitives.
1007
1008         * GNUmakefile.list.am:
1009         * WTF.gypi:
1010         * WTF.pro:
1011         * WTF.vcproj/WTF.vcproj:
1012         * WTF.xcodeproj/project.pbxproj:
1013         * wtf/CMakeLists.txt:
1014         * wtf/PrintStream.cpp:
1015         (WTF::dumpCharacter):
1016         * wtf/PrintStream.h:
1017         (WTF::printInternal):
1018         * wtf/StringPrintStream.cpp: Added.
1019         (WTF::StringPrintStream::StringPrintStream):
1020         (WTF::StringPrintStream::~StringPrintStream):
1021         (WTF::StringPrintStream::vprintf):
1022         (WTF::StringPrintStream::toCString):
1023         (WTF::StringPrintStream::increaseSize):
1024         * wtf/StringPrintStream.h: Added.
1025         (StringPrintStream):
1026         (WTF::toCString):
1027
1028 2012-11-28  Michael Saboff  <msaboff@apple.com>
1029
1030         Update String Stats for recent dataLog changes and add summary
1031         https://bugs.webkit.org/show_bug.cgi?id=103583
1032
1033         Reviewed by Filip Pizlo.
1034
1035         Updated calls to dataLog() to dataLogF() as a results of r135469.
1036         Added total savings from 8 bit strings in bytes and as a percentage.
1037
1038         * wtf/text/StringImpl.cpp:
1039         (WTF::StringStats::printStats):
1040
1041 2012-11-28  Roger Fong  <roger_fong@apple.com>
1042
1043         Make DataLog work/compile properly on Windows.
1044         https://bugs.webkit.org/show_bug.cgi?id=103544
1045
1046         Reviewed by Filip Pizlo.
1047
1048         * wtf/DataLog.cpp:
1049         (WTF::initializeLogFileOnce):
1050
1051 2012-11-28  Filip Pizlo  <fpizlo@apple.com>
1052
1053         It should be possible to say dataLog("count = ", count, "\n") instead of dataLogF("count = %d\n", count)
1054         https://bugs.webkit.org/show_bug.cgi?id=103009
1055
1056         Reviewed by Michael Saboff.
1057
1058         Added the ability to use out.print(...) and dataLog(...) variadically and with
1059         WTF::printInternal(PrintStream&, const T&) overloads for any type T that you want
1060         to be able to pass as an argument to out.print() or dataLog(). Also added one
1061         example class for doing this: RawPointer, which can be used to force a pointer
1062         to be printed as "%p" rather than matching any overloads that you might want to
1063         introduce.
1064
1065         * GNUmakefile.list.am:
1066         * WTF.gypi:
1067         * WTF.pro:
1068         * WTF.vcproj/WTF.vcproj:
1069         * WTF.xcodeproj/project.pbxproj:
1070         * wtf/CMakeLists.txt:
1071         * wtf/DataLog.h:
1072         (WTF):
1073         (WTF::dataLog):
1074         * wtf/PrintStream.cpp:
1075         (WTF::printInternal):
1076         (WTF):
1077         * wtf/PrintStream.h:
1078         (PrintStream):
1079         (WTF::PrintStream::print):
1080         (WTF):
1081         * wtf/RawPointer.h: Added.
1082         (WTF):
1083         (RawPointer):
1084         (WTF::RawPointer::RawPointer):
1085         (WTF::RawPointer::value):
1086
1087 2012-11-27  Filip Pizlo  <fpizlo@apple.com>
1088
1089         Convert some remaining uses of FILE* to PrintStream&.
1090
1091         Rubber stamped by Mark Hahnenberg.
1092
1093         * wtf/BitVector.cpp:
1094         (WTF::BitVector::dump):
1095         * wtf/BitVector.h:
1096         (BitVector):
1097
1098 2012-11-27  Pratik Solanki  <psolanki@apple.com>
1099
1100         objc/objc-runtime.h does not exist on all PLATFORM(MAC)
1101         https://bugs.webkit.org/show_bug.cgi?id=101780
1102
1103         Reviewed by Brent Fulgham.
1104
1105         Clean up header includes so we don't include objc/objc-runtime.h.
1106
1107         * wtf/Functional.h:
1108         * wtf/ObjcRuntimeExtras.h: Include objc/message.h here so we don't rely on proper ordering
1109         of includes in files that include this header.
1110
1111 2012-11-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1112
1113         Unreviewed, rolling out r135828.
1114         http://trac.webkit.org/changeset/135828
1115         https://bugs.webkit.org/show_bug.cgi?id=103405
1116
1117         [Chromium] Multiple ASAN errors after a WebKit roll due to
1118         mismatched malloc/delete (not free) resulting from
1119         StringImpl::deref() (Requested by apavlov on #webkit).
1120
1121         * wtf/FastAllocBase.h:
1122         * wtf/Platform.h:
1123
1124 2012-11-26  Adam Barth  <abarth@webkit.org>
1125
1126         [Chromium] fastMalloc has an extra branch on Windows
1127         https://bugs.webkit.org/show_bug.cgi?id=103027
1128
1129         Reviewed by Eric Seidel.
1130
1131         There's no need to override the new/delete operators on non-Mac
1132         platform because:
1133
1134         1) We use the system malloc anyway.
1135         2) We've modified the system malloc to crash in out-of-memory conditions.
1136
1137         This patch removes a branch (and a call) from malloc, which will
1138         hopefully improve performance. I haven't measured the performance
1139         characteristics of this patch, but I will look at the graphs closely
1140         when landing.
1141
1142         * wtf/FastAllocBase.h:
1143         * wtf/Platform.h:
1144
1145 2012-11-26  Filip Pizlo  <fpizlo@apple.com>
1146
1147         DataLog to a file should work if there are multiple processes using WTF
1148         https://bugs.webkit.org/show_bug.cgi?id=103323
1149
1150         Reviewed by Mark Hahnenberg.
1151
1152         Whereas before DataLog would open a file with the name you specified, now it'll open a file with the
1153         name plus the PID appended to it. So if you are dealing with multiple processes running with DataLog
1154         to a file enabled, you'll get multiple separate log files.
1155
1156         * wtf/DataLog.cpp:
1157         (WTF::initializeLogFileOnce):
1158
1159 2012-11-26  Zeno Albisser  <zeno@webkit.org>
1160
1161         [Qt] Fix the LLInt build on Mac
1162         https://bugs.webkit.org/show_bug.cgi?id=97587
1163
1164         Reviewed by Simon Hausmann.
1165
1166         * wtf/InlineASM.h:
1167             Use OS(DARWIN) instead of PLATFORM(MAC),
1168             in order to allow Qt to use the same code.
1169         * wtf/Platform.h:
1170
1171 2012-11-26  Patrick Gansterer  <paroga@webkit.org>
1172
1173         Build fix for WinCE after r135640.
1174
1175         * wtf/DataLog.cpp:
1176
1177 2012-11-24  Adam Barth  <abarth@webkit.org>
1178
1179         Chromium should use TCMalloc on Mac to go fast
1180         https://bugs.webkit.org/show_bug.cgi?id=102866
1181
1182         Reviewed by Eric Seidel.
1183
1184         This patch enables TCMalloc for some WebKit objects. It improves
1185         dom-modify on Mac by 5-10%.
1186
1187         On non-Mac platforms, Chromium already uses TCMalloc throughout the
1188         project. Unfortunately, we haven't yet figured out how to turn TCMalloc
1189         on globally on Mac because the approach we use for other platforms makes
1190         some OS X APIs sad.
1191
1192         The next best thing would be to enable TCMalloc for WebKit by
1193         overriding the global new and delete operator, as is done on apple-mac
1194         and other platforms. Unfortunately, we cannot use that approach either
1195         because the Chromium WebKit API is not memory tight.
1196
1197         Fortunately, WebKit has a mechanism for selectively enabling TCMalloc
1198         for a selection of objects by overriding the new and delete operators
1199         on those objects. This patch opts chromium-mac into that scheme by
1200         setting the appropriate preprocessor macros.
1201
1202         * WTF.gyp/WTF.gyp:
1203         * wtf/Platform.h:
1204
1205 2012-11-21  Filip Pizlo  <fpizlo@apple.com>
1206
1207         Any function that can log things should be able to easily log them to a memory buffer as well
1208         https://bugs.webkit.org/show_bug.cgi?id=103000
1209
1210         Reviewed by Sam Weinig.
1211
1212         We have a number of places where we pass around a FILE* as a target to which to print
1213         some logging information. But the purpose of passing FILE* instead of always assuming
1214         that we should dump to stderr is that it may be sometimes useful to send the logging
1215         information elsewhere. Unfortunately, FILE* isn't quite powerful enough: it's combersome
1216         to use it to send logging to a string, for example.
1217         
1218         We could get around this by using <iostream> and <sstream>, but so far this aspect of
1219         C++ has not been part of the WebKit coding conventions. Personally I find <iostream>
1220         awkward due to its abuse of operator overloading.
1221         
1222         So this patch introduces the PrintStream abstract class, which offers printf-like
1223         functionality while completely abstracting the destination and mechanism of the printing
1224         output. It would be trivial to implement a StringPrintStream, for example. This will feed
1225         into work on https://bugs.webkit.org/show_bug.cgi?id=102999.
1226         
1227         This also sets us up for creating templatized print() and println() methods that will
1228         allow us to say things like out.print("count = ", count, "\n"), but that is the topic
1229         of https://bugs.webkit.org/show_bug.cgi?id=103009.
1230         
1231         This patch also changes dataLog() to use FilePrintStream internally, and WTF::dataFile()
1232         now returns a FilePrintStream&. Any previous users of WTF::dataFile() have been changed
1233         to expect a PrintStream&.
1234
1235         * GNUmakefile.list.am:
1236         * WTF.pro:
1237         * WTF.vcproj/WTF.vcproj:
1238         * WTF.xcodeproj/project.pbxproj:
1239         * wtf/CMakeLists.txt:
1240         * wtf/DataLog.cpp:
1241         (WTF):
1242         (WTF::initializeLogFileOnce):
1243         (WTF::initializeLogFile):
1244         (WTF::dataFile):
1245         (WTF::dataLogV):
1246         (WTF::dataLogString):
1247         * wtf/DataLog.h:
1248         (WTF):
1249         * wtf/FilePrintStream.cpp: Added.
1250         (WTF):
1251         (WTF::FilePrintStream::FilePrintStream):
1252         (WTF::FilePrintStream::~FilePrintStream):
1253         (WTF::FilePrintStream::vprintf):
1254         (WTF::FilePrintStream::flush):
1255         * wtf/FilePrintStream.h: Added.
1256         (WTF):
1257         (FilePrintStream):
1258         (WTF::FilePrintStream::file):
1259         * wtf/PrintStream.cpp: Added.
1260         (WTF):
1261         (WTF::PrintStream::PrintStream):
1262         (WTF::PrintStream::~PrintStream):
1263         (WTF::PrintStream::printf):
1264         (WTF::PrintStream::print):
1265         (WTF::PrintStream::println):
1266         (WTF::PrintStream::flush):
1267         (WTF::print):
1268         * wtf/PrintStream.h: Added.
1269         (WTF):
1270         (PrintStream):
1271         (WTF::print):
1272         (WTF::println):
1273
1274 2012-11-23  Robert Kroeger  <rjkroege@chromium.org>
1275
1276         Remove unused ScrollByPixelVelocity
1277         https://bugs.webkit.org/show_bug.cgi?id=102840
1278
1279         Reviewed by Sam Weinig.
1280
1281         The GESTURE_ANIMATION feature turns on code in WebCore is unused.
1282         Remove it.
1283
1284         No new tests: code removal/cleanup.
1285
1286         * wtf/Platform.h:
1287
1288 2012-11-23  Laszlo Gombos  <l.gombos@samsung.com>
1289
1290         [EFL] Define WTF_PLATFORM_EFL in Platform.h
1291         https://bugs.webkit.org/show_bug.cgi?id=101482
1292
1293         Reviewed by Kenneth Rohde Christiansen.
1294
1295         Define WTF_PLATFORM_EFL in Platform.h to be consistent with 
1296         other ports.
1297
1298         * wtf/Platform.h:
1299
1300 2012-11-16  Yury Semikhatsky  <yurys@chromium.org>
1301
1302         Memory instrumentation: extract MemoryObjectInfo declaration into a separate file
1303         https://bugs.webkit.org/show_bug.cgi?id=102510
1304
1305         Reviewed by Pavel Feldman.
1306
1307         Moved MemoryObjectInfo into separate header. Moved definition of MemoryInstrumentation
1308         methods that depend on MemoryObjectInfo declaration into MemoryInstrumentation.cpp to
1309         make MemoryInstrumentation require only forward declaration of MemoryObjectInfo.
1310
1311         * GNUmakefile.list.am:
1312         * WTF.gypi:
1313         * WTF.pro:
1314         * WTF.vcproj/WTF.vcproj:
1315         * wtf/CMakeLists.txt:
1316         * wtf/MemoryInstrumentation.cpp: Added.
1317         (WTF):
1318         (WTF::MemoryInstrumentation::MemoryInstrumentation):
1319         (WTF::MemoryInstrumentation::~MemoryInstrumentation):
1320         (WTF::MemoryInstrumentation::getObjectType): this method allows to get object type without
1321         pulling in MemoryObjectInfo.h and all its dependencies.
1322         (WTF::MemoryInstrumentation::callReportObjectInfo):
1323         (WTF::MemoryInstrumentation::InstrumentedPointerBase::InstrumentedPointerBase):
1324         (WTF::MemoryInstrumentation::InstrumentedPointerBase::process):
1325         (WTF::MemoryClassInfo::init):
1326         (WTF::MemoryClassInfo::addRawBuffer):
1327         (WTF::MemoryClassInfo::addPrivateBuffer):
1328         * wtf/MemoryInstrumentation.h:
1329         (MemoryInstrumentation):
1330         (WTF::MemoryInstrumentation::addRootObject):
1331         (InstrumentedPointerBase):
1332         (WTF::MemoryInstrumentation::reportObjectMemoryUsage):
1333         (InstrumentedPointer):
1334         (WTF::MemoryInstrumentation::addObject): we now pass owner's MemoryObjectInfo in all places
1335         where we report objects pointed by the owner.
1336         (WTF::MemoryInstrumentation::OwningTraits::addObject):
1337         (WTF::MemoryClassInfo::MemoryClassInfo):
1338         (WTF::MemoryClassInfo::addMember):
1339         (MemoryClassInfo):
1340         (WTF::MemoryInstrumentation::addObjectImpl):
1341         (WTF::::InstrumentedPointer):
1342         (WTF::::callReportMemoryUsage):
1343         * wtf/MemoryObjectInfo.h: Added.
1344         (WTF):
1345         (MemoryObjectInfo):
1346         (WTF::MemoryObjectInfo::MemoryObjectInfo):
1347         (WTF::MemoryObjectInfo::objectType):
1348         (WTF::MemoryObjectInfo::objectSize):
1349         (WTF::MemoryObjectInfo::reportedPointer):
1350         (WTF::MemoryObjectInfo::memoryInstrumentation):
1351         (WTF::MemoryObjectInfo::reportObjectInfo):
1352
1353 2012-11-23  Krzysztof Czech  <k.czech@samsung.com>
1354
1355         [EFL] Platform support for Accessibility feature.
1356         https://bugs.webkit.org/show_bug.cgi?id=100848
1357
1358         Reviewed by Gyuyoung Kim.
1359
1360         Enable HAVE(ACCESSIBILITY) ifdefs so that EFL port can use it.
1361
1362         * wtf/Platform.h:
1363
1364 2012-11-22  Michael Saboff  <msaboff@apple.com>
1365
1366         HTML integer parsing functions don't natively handle 8 bit strings
1367         https://bugs.webkit.org/show_bug.cgi?id=102997
1368
1369         Reviewed by Filip Pizlo.
1370
1371         Added exports to the LChar* versions of charactersToIntStrict() and charactersToUIntStrict()
1372         to support the changes made to parseHTMLInteger() and parseHTMLNonNegativeInteger().
1373
1374         * wtf/text/WTFString.h:
1375         (WTF::charactersToIntStrict): Added export
1376         (WTF::charactersToUIntStrict): Added export
1377
1378 2012-11-21  Filip Pizlo  <fpizlo@apple.com>
1379
1380         Rename dataLog() and dataLogV() to dataLogF() and dataLogFV()
1381         https://bugs.webkit.org/show_bug.cgi?id=103001
1382
1383         Rubber stamped by Dan Bernstein.
1384
1385         * wtf/DataLog.cpp:
1386         (WTF::dataLogFV):
1387         (WTF::dataLogF):
1388         (WTF::dataLogFString):
1389         * wtf/DataLog.h:
1390         (WTF):
1391         * wtf/HashTable.cpp:
1392         (WTF::HashTableStats::dumpStats):
1393         * wtf/HashTable.h:
1394         (WTF::HashTable::Stats::dumpStats):
1395         * wtf/MetaAllocator.cpp:
1396         (WTF::MetaAllocator::dumpProfile):
1397         * wtf/StackStats.cpp:
1398         (WTF::StackStats::initialize):
1399         (WTF::StackStats::PerThreadStats::PerThreadStats):
1400         (WTF::StackStats::CheckPoint::CheckPoint):
1401         (WTF::StackStats::CheckPoint::~CheckPoint):
1402         (WTF::StackStats::probe):
1403         (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
1404         * wtf/text/WTFString.cpp:
1405         (String::show):
1406
1407 2012-11-21  Anthony G. Basile  <blueness@gentoo.org>
1408
1409         Source/WTF/wtf/Assertions.cpp: fix build on a uClibc system
1410         https://bugs.webkit.org/show_bug.cgi?id=102946
1411
1412         Reviewed by Tony Chang.
1413
1414         Webkit-Gtk fails to build on a uClibc system because
1415         Assertions.cpp assumes that all Linux systems have execinfo.h
1416         and provide backtrace(). This is not necessarily the case for
1417         uClibc which can be configured without these.  This patch
1418         refines the check for OS(LINUX) to prevent this breakage.
1419         Originally reported at https://bugs.gentoo.org/441674
1420
1421         * wtf/Assertions.cpp:
1422
1423 2012-11-19  Filip Pizlo  <fpizlo@apple.com>
1424
1425         DFG should be able to cache closure calls
1426         https://bugs.webkit.org/show_bug.cgi?id=102662
1427
1428         Reviewed by Gavin Barraclough.
1429
1430         Added support to the meta allocator for easily querying whether an address falls within
1431         a certain allocated chunk. Also added a useful debug routine to SentinelLinkedList,
1432         which can be used to check if a node is on a particular list.
1433
1434         * wtf/MetaAllocatorHandle.h:
1435         (MetaAllocatorHandle):
1436         (WTF::MetaAllocatorHandle::containsIntegerAddress):
1437         (WTF::MetaAllocatorHandle::contains):
1438         * wtf/SentinelLinkedList.h:
1439         (SentinelLinkedList):
1440         (WTF::::isOnList):
1441         (WTF):
1442
1443 2012-11-19  Laszlo Gombos  <l.gombos@samsung.com>
1444
1445         Remove ReadWriteLock
1446         https://bugs.webkit.org/show_bug.cgi?id=101637
1447
1448         Reviewed by Darin Adler.
1449
1450         Remove ReadWriteLock as it does not seems to be used.
1451
1452         * wtf/Platform.h: Remove the definition of HAVE_PTHREAD_RWLOCK.
1453
1454         * wtf/ThreadingPrimitives.h: Remove the PlatformReadWriteLock type 
1455         and the ReadWriteLock class.
1456
1457         * wtf/ThreadingPthreads.cpp: Remove the implementation of
1458         the ReadWriteLock class using pthreads.
1459
1460 2012-11-19  Brady Eidson  <beidson@apple.com>
1461
1462         Add 64-bit specializations for atomicIncrement and atomicDecrement
1463         https://bugs.webkit.org/show_bug.cgi?id=102702
1464
1465         Reviewed by Eric Carlson.
1466
1467         * wtf/Atomics.h:
1468         (WTF::atomicIncrement): Add A 64-bit version for Darwin.
1469         (WTF::atomicDecrement): Ditto.
1470
1471 2012-11-18  Laszlo Gombos  <l.gombos@samsung.com>
1472
1473         Remove non-existent directories from the make system
1474         https://bugs.webkit.org/show_bug.cgi?id=102632
1475
1476         Reviewed by Adam Barth.
1477
1478         Remove (non-existent) symbian references from the exclude list in gyp project files.
1479
1480         * WTF.gyp/WTF.gyp:
1481
1482 2012-11-16  Michael Saboff  <msaboff@apple.com>
1483
1484         String::fromUTF8() should take advantage of the ASCII check in convertUTF8ToUTF16()
1485         https://bugs.webkit.org/show_bug.cgi?id=100577
1486
1487         Reviewed by Oliver Hunt.
1488
1489         Passed in ASCII flag to convertUTF8ToUTF16() and if try, create an 8 bit string from the original arguments.
1490         Relanding after fix to https://bugs.webkit.org/show_bug.cgi?id=102482.
1491
1492         * wtf/text/WTFString.cpp:
1493         (WTF::String::fromUTF8):
1494
1495 2012-11-15  Yury Semikhatsky  <yurys@chromium.org>
1496
1497         Memory instrumentation: add code for reporting stack traces of unknown instrumented objects
1498         https://bugs.webkit.org/show_bug.cgi?id=102384
1499
1500         Reviewed by Pavel Feldman.
1501
1502         Added an option to collect stack traces for instrumented pointers so that they
1503         can be printed in case the check failed for the pointer. This code is hidden
1504         behind a define.
1505
1506         * wtf/MemoryInstrumentation.h:
1507         (MemoryInstrumentationClient):
1508         (WTF::MemoryInstrumentation::checkCountedObject): the method now returns false
1509         in case the check has failed.
1510         (InstrumentedPointer):
1511         (WTF::::InstrumentedPointer):
1512         (WTF):
1513         (WTF::::process):
1514
1515 2012-11-15  Mark Hahnenberg  <mhahnenberg@apple.com>
1516
1517         Windows Fibers can corrupt the cached StackBounds
1518         https://bugs.webkit.org/show_bug.cgi?id=102411
1519
1520         Reviewed by Geoffrey Garen.
1521
1522         Windows has support for something called fibers, which are like lightweight versions of 
1523         threads. Multiple fibers can run within the context of a single thread and they have access 
1524         to the same thread local storage but have different stacks. If we create a new JSGlobalContext 
1525         on one fiber, then switch to another fiber and create a JSGlobalContext there, we will call 
1526         initializeThreading() once for each new JSGlobalContext created. However, since these fibers 
1527         are technically running inside the same thread, they will clobber each other's wtfThreadData(), 
1528         which is stored using thread local storage. This can lead to corruption of the WTFThreadData 
1529         structure for the fibers other than the last one to create a new JSGlobalContext, including 
1530         the StackBounds data structure which is used during conservative scanning, among other things. 
1531         This can lead to crashes during garbage collection on Windows if fibers are used.
1532
1533         A quick fix would be to always get a fresh StackBounds data structure when asking for it 
1534         instead of using the cached version from the thread local storage. There is a larger problem 
1535         in that these fibers can corrupt other WebKit data that uses thread local storage. We'll leave 
1536         those theoretical fixes for future theoretical bugs.
1537
1538         * wtf/WTFThreadData.h:
1539         (WTF::WTFThreadData::stack): We now refresh the m_stackBounds field whenever somebody asks for 
1540         the StackBounds.
1541
1542 2012-11-15  Maciej Stachowiak  <mjs@apple.com>
1543
1544         Fix an erroneous comment about the operators required by binarySearch
1545         https://bugs.webkit.org/show_bug.cgi?id=102406
1546
1547         Reviewed by Anders Carlsson.
1548
1549         * wtf/StdLibExtras.h: binarySearch needs '==' and '<', not '--', '<' and '>'.
1550
1551 2012-11-14  Michael Saboff  <msaboff@apple.com>
1552
1553         String::append() should handle two 8 bit strings without converting both to 16 bits
1554         https://bugs.webkit.org/show_bug.cgi?id=102286
1555
1556         Reviewed by Oliver Hunt.
1557
1558         If both strings are 8 bit, then allocate and copy to a new 8 bit string.  Since most strings are
1559         8 bit, this will save up to 3x the resulting string length in bytes.  2x is due to the possible
1560         surviving 16 bit source string upconversion and 1x for the 16 bit result now being 8 bit.
1561
1562         * wtf/text/WTFString.cpp:
1563         (WTF::String::append):
1564
1565 2012-11-14  Csaba Osztrogonác  <ossy@webkit.org>
1566
1567         [Qt][ARM] Enable the DFG JIT on ARMv7(Thumb2)
1568         https://bugs.webkit.org/show_bug.cgi?id=101747
1569
1570         Reviewed by Simon Hausmann.
1571
1572         * wtf/Platform.h:
1573
1574 2012-11-13  Christophe Dumez  <christophe.dumez@intel.com>
1575
1576         Use prefix form of increment / decrement operators in WTF String classes when possible
1577         https://bugs.webkit.org/show_bug.cgi?id=101859
1578
1579         Reviewed by Benjamin Poulain.
1580
1581         Use prefix form of increment / decrement operators whenever possible in
1582         WTF String classes as this seems to be the convention in WebKit.
1583
1584         * wtf/text/ASCIIFastPath.h:
1585         (WTF::copyLCharsFromUCharSource):
1586         * wtf/text/AtomicString.cpp:
1587         (WTF::AtomicString::add):
1588         * wtf/text/Base64.cpp:
1589         (WTF::base64Encode):
1590         (WTF::base64DecodeInternal):
1591         * wtf/text/StringBuilder.cpp:
1592         (WTF::StringBuilder::allocateBufferUpConvert):
1593         * wtf/text/StringConcatenate.h:
1594         * wtf/text/StringImpl.cpp:
1595         (WTF::StringImpl::getData16SlowCase):
1596         (WTF::StringImpl::upconvertCharacters):
1597         (WTF::StringImpl::containsOnlyWhitespace):
1598         (WTF::StringImpl::lower):
1599         (WTF::StringImpl::upper):
1600         (WTF::StringImpl::foldCase):
1601         (WTF::StringImpl::stripMatchedCharacters):
1602         (WTF::StringImpl::removeCharacters):
1603         (WTF::StringImpl::simplifyMatchedCharactersToSpace):
1604         (WTF::reverseFindInner):
1605         (WTF::reverseFindIgnoringCaseInner):
1606         (WTF::StringImpl::replace):
1607         (WTF::StringImpl::createWithTerminatingNullCharacter):
1608         * wtf/text/StringImpl.h:
1609         (WTF::codePointCompare):
1610         * wtf/text/WTFString.cpp:
1611         (WTF::String::String):
1612         (WTF::toIntegralType):
1613
1614 2012-11-13  Ryosuke Niwa  <rniwa@webkit.org>
1615
1616         Build fix after r134490.
1617
1618         * wtf/FastMalloc.cpp:
1619
1620 2012-11-13  Brent Fulgham  <bfulgham@webkit.org> and Alex Christensen <alex.christensen@flexsim.com>
1621
1622         Fix FastMalloc.cpp compile error for MSVC in 64-bit.
1623         https://bugs.webkit.org/show_bug.cgi?id=88344
1624
1625         Reviewed by Ryosuke Niwa.
1626
1627         MSVC will not compile array declarations of zero size. The existing
1628         padding math for TCMalloc_Central_FreeListPadded would evaluate
1629         to zero on 64-bit machines, preventing the compile from finishing.
1630
1631         * wtf/FastMalloc.cpp:
1632         (TCMalloc_Central_FreeListPadded_Template): Add new template (and
1633         zero-size specialization) to provide proper behavior under 64-bit
1634         Windows build.
1635
1636 2012-11-13  Brent Fulgham <bfulgham@webkit.org> and Alex Christensen  <alex.christensen@flexsim.com>
1637
1638         FastMalloc.cpp needs to be reordered before padding bug can be fixed
1639         https://bugs.webkit.org/show_bug.cgi?id=89366
1640
1641         Note: This file violates Style rules.  This change only moves
1642         the TCMalloc_Central_FreeList class declaration and the various
1643         FastMallocZone methods earlier in the file.
1644
1645         Reviewed by Ryosuke Niwa.
1646
1647         * wtf/FastMalloc.cpp:
1648         Reordered definitions to prepare for adding specialized template
1649         (WTF):
1650         (TCMalloc_Central_FreeList):
1651         (WTF::TCMalloc_Central_FreeList::length):
1652         (WTF::TCMalloc_Central_FreeList::tc_length):
1653         (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects):
1654         (TCMalloc_Central_FreeListPadded):
1655         (FastMallocZone):
1656         (WTF::FastMallocZone::goodSize):
1657         (WTF::FastMallocZone::check):
1658         (WTF::FastMallocZone::print):
1659         (WTF::FastMallocZone::log):
1660         (WTF::FastMallocZone::forceLock):
1661         (WTF::FastMallocZone::forceUnlock):
1662         (WTF::FastMallocZone::statistics):
1663         (WTF::FastMallocZone::zoneValloc):
1664         (WTF::FastMallocZone::zoneDestroy):
1665         (WTF::KernelSupportsTLS):
1666         (WTF::CheckIfKernelSupportsTLS):
1667         (TCMalloc_ThreadCache):
1668
1669 2012-11-11  Kenichi Ishibashi  <bashi@chromium.org>
1670
1671         WTFString::utf8() should have a mode of conversion to use replacement character
1672         https://bugs.webkit.org/show_bug.cgi?id=101678
1673
1674         Reviewed by Alexander Pavlov.
1675
1676         Introduce conversion mode to String::utf8().
1677         There are three conversion modes; lenient mode, strict mode, and
1678         "replacing unpaired surrogates with the replacement character" (replacement) mode.
1679         Lenient mode converts unpaired surrogates. Strict mode fails when there is an unpaired
1680         surrogates and returns CString(). Replacement mode replaces unpaired surrogates with
1681         the replacement character(U+FFFD). Replacement mode implements the algorithm defined at
1682         http://dev.w3.org/2006/webapi/WebIDL/#dfn-obtain-unicode. WebSocket::send() requires
1683         this algorithm to encode a string to utf-8.
1684
1685         * wtf/text/WTFString.cpp:
1686         (WTF::String::utf8): Changed to take ConversionMode as the argument.
1687         * wtf/text/WTFString.h:
1688         (String):
1689
1690 2012-11-09  Alexei Filippov  <alph@chromium.org>
1691
1692         Web Inspector: Fix heap snapshots counted several times by NMI
1693         https://bugs.webkit.org/show_bug.cgi?id=101085
1694
1695         The fix moves snapshots size counting to V8PerIsolateData class. As long
1696         as it has one instance per isolate its reportMemoryUsage should be
1697         called once per isolate.
1698
1699         Reviewed by Yury Semikhatsky.
1700
1701         * wtf/MemoryInstrumentation.h:
1702         (WTF::MemoryClassInfo::addPrivateBuffer):
1703
1704 2012-11-08  Michael Saboff  <msaboff@apple.com>
1705
1706         HashAndUTF8CharactersTranslator should create an 8 bit string if possible
1707         https://bugs.webkit.org/show_bug.cgi?id=101515
1708
1709         Reviewed by Darin Adler.
1710
1711         Added isAllASCII flag that's passed to convertUTF8ToUTF16().  If on return it is true, create an
1712         8 bit string, otherwise use the 16 bit string.
1713
1714         * wtf/text/AtomicString.cpp:
1715         (WTF::HashAndUTF8CharactersTranslator::translate):
1716
1717 2012-11-08  Simon Hausmann  <simon.hausmann@digia.com>
1718
1719         [Qt] Fix build with MSVC 2012 and Angle
1720         https://bugs.webkit.org/show_bug.cgi?id=101588
1721
1722         Reviewed by Tor Arne Vestbø.
1723
1724         Angle includes STL's <memory> header file, which with MSVC 2012 includes stdint.h. MSVC 2012
1725         does ship stdint.h, but it's lacking other headers such as inttypes.h.
1726
1727         So for the rest of WebKit we have to continue to use our own versions of these files from
1728         JavaScriptCore/os-win32. But for Angle we are just including a shipped STL header file (memory)
1729         and so it's up to the compiler to make that work, i.e. using the stdint.h it ships.
1730
1731         This patch moves the addition of JavaScriptCore/os-win32 out of default_post.prf, so that it
1732         doesn't apply to each and every target anymore. In particular it won't apply to Angle anymore,
1733         because its presence causes a build issue where due to the addition of os-win32/ we end up
1734         including our own stdint.h but are lacking WTF/ to be in the include search path (which our own
1735         stdint.h requires). So out of default_post.prf and into WTF.pri, our own wrappers are now only
1736         used where WTF is also needed, and since os-win32/stdint.h depends on wtf/Platform.h, it seems
1737         like a logical location.
1738
1739         * WTF.pri:
1740
1741 2012-11-07  Hans Wennborg  <hans@chromium.org>
1742
1743         Fix asm operand type for weakCompareAndSwap on ARM_THUMB2
1744         https://bugs.webkit.org/show_bug.cgi?id=101238
1745
1746         Reviewed by Benjamin Poulain.
1747
1748         'result' was a bool, but the asm was expecting a 32-bit register. A
1749         recent version of Clang warned about this:
1750
1751           WebKit/Source/WTF/wtf/Atomics.h:163:34: error: the size being stored
1752           is truncated, use a modifier to specify the size [-Werror,-Wasm-operand-widths]
1753
1754         This patch fixes it by making 'result' an unsigned. It does not change
1755         the functionality in practice ('result' would be in a 32-bit register
1756         anyway), but it makes the code more correct and makes the warning go
1757         away.
1758
1759         Also make 'result' for the X86 version an 'unsigned char' to make it
1760         more clear that it is a byte.
1761
1762         * wtf/Atomics.h:
1763         (WTF::weakCompareAndSwap):
1764
1765 2012-11-07  Remy Demarest  <rdemarest@apple.com>
1766
1767         Function adoptNS and adoptCF should not generate memory leak diagnostic with Clang Static Analyzer.
1768         https://bugs.webkit.org/show_bug.cgi?id=101420
1769
1770         Reviewed by Benjamin Poulain.
1771
1772         Add attributes to the adoptNS and adoptCF function arguments to remove Clang Static Analyzer diagnotics.
1773         Define CF_RELEASES_ARGUMENT and NS_RELEASES_ARGUMENT if not available, use them in function declarations.
1774
1775         * wtf/RetainPtr.h:
1776         (WTF::adoptCF): Adds CF_RELEASES_ARGUMENT attribute to the argument.
1777         (WTF::adoptNS): Adds NS_RELEASES_ARGUMENT attribute to the argument.
1778
1779 2012-11-07  Christophe Dumez  <christophe.dumez@intel.com>
1780
1781         Add replaceWithLiteral() method to WTF::String
1782         https://bugs.webkit.org/show_bug.cgi?id=101257
1783
1784         Reviewed by Benjamin Poulain.
1785
1786         Add replaceWithLiteral() method to WTF::String that takes
1787         replacement string as a literal to avoid uselessly constructing
1788         a String object.
1789
1790         * wtf/text/StringImpl.cpp:
1791         (WTF::StringImpl::replace):
1792         (WTF):
1793         * wtf/text/StringImpl.h:
1794         (WTF::StringImpl::replace):
1795         (StringImpl):
1796         * wtf/text/WTFString.h:
1797         (String):
1798         (WTF::String::replaceWithLiteral):
1799
1800 2012-11-06  Michael Saboff  <msaboff@apple.com>
1801
1802         StringBuilder::append(UChar) with an 8 bit quantity shouldn't change the contents to 16 bits
1803         https://bugs.webkit.org/show_bug.cgi?id=101421
1804
1805         Reviewed by Anders Carlsson.
1806
1807         If the string builder contains only 8 bit data, check if the character being appended contains
1808         8 bit data.  If so, append it to the 8 bit buffer instead of converting the buffer to 16 bits.
1809
1810         * wtf/text/StringBuilder.cpp:
1811         (WTF::StringBuilder::append):
1812         * wtf/text/StringBuilder.h:
1813         (WTF::StringBuilder::append):
1814
1815 2012-11-06  Benjamin Poulain  <benjamin@webkit.org>
1816
1817         Speed up TransformationMatrix::multiply() on modern ARM
1818         https://bugs.webkit.org/show_bug.cgi?id=101084
1819
1820         Reviewed by Gavin Barraclough.
1821
1822         * wtf/Platform.h:
1823         Add CPU(ARM_VFP) for detecting VFP availability.
1824         Add CPU(APPLE_ARMV7S) for the Apple ARMv7S architecture.
1825
1826 2012-11-06  Laszlo Gombos  <l.gombos@samsung.com>
1827
1828         Refactor setting TEXTURE_MAPPER_GL
1829         https://bugs.webkit.org/show_bug.cgi?id=99758
1830
1831         Reviewed by Noam Rosenthal.
1832
1833         Make the rule that sets the default for USE(3D_GRAPHICS) port independent.
1834
1835         If not set, set USE(TEXTURE_MAPPER_GL) when USE(TEXTURE_MAPPER) and 
1836         USE(3D_GRAPHICS) is enabled.
1837
1838         * wtf/Platform.h:
1839
1840 2012-11-05  Philip Rogers  <pdr@google.com>
1841
1842         Unblock SVG external references
1843         https://bugs.webkit.org/show_bug.cgi?id=100635
1844
1845         Reviewed by Adam Barth.
1846
1847         This patch reverts r132849 and r132869 because the potential XSS issue
1848         turned out to not be an issue after all.
1849
1850         Covered by existing tests, many of which are re-whitelisted with this patch.
1851
1852         * wtf/Platform.h:
1853
1854 2012-11-05  Dima Gorbik  <dgorbik@apple.com>
1855
1856         Back out controversial changes from Bug 98665.
1857         https://bugs.webkit.org/show_bug.cgi?id=101244
1858
1859         Reviewed by David Kilzer.
1860
1861         Backing out changes from Bug 98665 until further discussions take place on rules for including Platform.h in Assertions.h.
1862
1863         * wtf/Assertions.h:
1864
1865 2012-11-03  Alexey Proskuryakov  <ap@apple.com>
1866
1867         Get rid of USE(CFURLSTORAGESESSIONS)
1868         https://bugs.webkit.org/show_bug.cgi?id=101131
1869
1870         Reviewed by Sam Weinig.
1871
1872         * wtf/Platform.h:
1873
1874 2012-11-02  Ilya Tikhonovsky  <loislo@chromium.org>
1875
1876         Web Inspector: NMI instrument NodeRareData::Map. It uses ~250k on nytimes.com
1877         https://bugs.webkit.org/show_bug.cgi?id=101052
1878
1879         Reviewed by Yury Semikhatsky.
1880
1881         I noticed that in many cases cache structures are plain static HashMap, HashSet etc.
1882         MemoryAgent can visit it but instrumentation for these containers report no objectType.
1883         It means that addRootObject method needs to accept objectType property as an argument.
1884         Otherwise I would have had to create a proxy class with proper objectType.
1885
1886         * wtf/MemoryInstrumentation.h:
1887         (WTF::MemoryInstrumentation::addRootObject):
1888
1889 2012-11-01  Kent Tamura  <tkent@chromium.org>
1890
1891         Introduce ENABLE_DATE_AND_TIME_INPUT_TYPES, and clarify usage of other related flags
1892         https://bugs.webkit.org/show_bug.cgi?id=101007
1893
1894         Reviewed by Kentaro Hara.
1895
1896         * wtf/Platform.h:
1897         Add ENABLE_DATE_AND_TIME_INPUT_TYPES.  It's a union of
1898         ENABLE_INPUT_TYPE_{DATE,DATETIME,DATETIMELOCAL,MONTH,TIME,WEEK}.
1899
1900 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
1901
1902         Memory instrumentation: do not call checkCountedObject with wrong pointers
1903         https://bugs.webkit.org/show_bug.cgi?id=100958
1904
1905         Reviewed by Alexander Pavlov.
1906
1907         Removed calls to checkCountedObject from places where the pointer may contain
1908         an address of a base class which may differ from the actual object pointer. Instead
1909         checkCountedObject is only called right after processing deferred pointer where
1910         we know real address.
1911
1912         * wtf/MemoryInstrumentation.h:
1913         (WTF::MemoryInstrumentation::addObjectImpl):
1914         (WTF::::process):
1915
1916 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
1917
1918         Rename HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) to USE(NETWORK_CFDATA_ARRAY_CALLBACK)
1919
1920         Rubber-stamped by Joe Pecoraro.
1921
1922         All CFNetwork based platforms have this now, but not all use it at the moment.
1923
1924 2012-11-01  Alexey Proskuryakov  <ap@apple.com>
1925
1926         Fix HAVE(NETWORK_CFDATA_ARRAY_CALLBACK) build
1927         https://bugs.webkit.org/show_bug.cgi?id=100979
1928
1929         Reviewed by Joseph Pecoraro.
1930
1931         * wtf/Platform.h: Added a FIXME about HAVE(NETWORK_CFDATA_ARRAY_CALLBACK).
1932
1933 2012-11-01  Yury Semikhatsky  <yurys@chromium.org>
1934
1935         Memory instrumentation: report memory occupied by ResourceRequest instead of its base ResourceRequestBase
1936         https://bugs.webkit.org/show_bug.cgi?id=100497
1937
1938         Reviewed by Alexander Pavlov.
1939
1940         * wtf/MemoryInstrumentation.h:
1941         (WTF::MemoryClassInfo::addPrivateBuffer): do not report memory usage for empty buffer.
1942
1943 2012-10-31  Anders Carlsson  <andersca@apple.com>
1944
1945         Fix build.
1946         <rdar://problem/12612207>.
1947
1948         Reviewed by Sam Weinig.
1949
1950         * wtf/CheckedArithmetic.h:
1951
1952 2012-10-31  Benjamin Poulain  <bpoulain@apple.com>
1953
1954         Add an optimized version of copyLCharsFromUCharSource for ARM
1955         https://bugs.webkit.org/show_bug.cgi?id=94886
1956
1957         Reviewed by Gavin Barraclough.
1958
1959         Michael Saboff added a SIMD version of copyLCharsFromUCharSource() in r125846.
1960
1961         This patch a similar optimization for ARMv7 by using the interleaved load/store available
1962         in the NEON extension.
1963
1964         The performance gains:
1965         -10000 characters: ~3.5 times faster.
1966         -20 characters (2 vectors): ~55% faster.
1967         -15 characters (1 vector): ~21% faster.
1968         -3 characters (no vector, pure overhead): ~10% slower.
1969
1970         * wtf/text/ASCIIFastPath.h:
1971         (WTF::copyLCharsFromUCharSource):
1972
1973 2012-10-31  Christophe Dumez  <christophe.dumez@intel.com>
1974
1975         [EFL][WK2][AC] Use smart pointers for Evas_GL types
1976         https://bugs.webkit.org/show_bug.cgi?id=100745
1977
1978         Reviewed by Kenneth Rohde Christiansen.
1979
1980         Make OwnPtr usable with Evas_GL type to avoid handling
1981         raw pointers in EFL port.
1982
1983         * wtf/OwnPtrCommon.h:
1984         (WTF):
1985         * wtf/efl/OwnPtrEfl.cpp:
1986         (WTF):
1987         (WTF::deleteOwnedPtr):
1988
1989 2012-10-29  Anders Carlsson  <andersca@apple.com>
1990
1991         Build WebKit as C++11 on Mac
1992         https://bugs.webkit.org/show_bug.cgi?id=100720
1993
1994         Reviewed by Daniel Bates.
1995
1996         * Configurations/Base.xcconfig:
1997         Add CLANG_CXX_LANGUAGE_STANDARD=gnu++0x.
1998
1999         * wtf/text/AtomicString.cpp:
2000         (WTF::AtomicString::add):
2001         Change the type of length to be unsigned to prevent implicit type conversions in non-constant initializer lists.
2002
2003         * wtf/unicode/UTF8.cpp:
2004         (Unicode):
2005         Add static_casts to prevent implicit type conversions in non-constant initializer lists.
2006
2007 2012-10-29  Anders Carlsson  <andersca@apple.com>
2008
2009         String::createCFString should return a RetainPtr
2010         https://bugs.webkit.org/show_bug.cgi?id=100419
2011
2012         Reviewed by Andreas Kling.
2013
2014         Make String::createCFString and StringImpl::createCFString return RetainPtrs.
2015
2016         * wtf/text/AtomicString.h:
2017         * wtf/text/StringImpl.h:
2018         * wtf/text/WTFString.h:
2019
2020 2012-10-30  Mark Rowe  <mrowe@apple.com>
2021
2022         Fix WTF to not install a few header files in bogus locations.
2023
2024         * WTF.xcodeproj/project.pbxproj:
2025
2026 2012-10-28  Mark Rowe  <mrowe@apple.com>
2027
2028         Simplify Xcode configuration settings that used to vary between OS versions.
2029
2030         Reviewed by Dan Bernstein.
2031
2032         * Configurations/Base.xcconfig:
2033         * Configurations/DebugRelease.xcconfig:
2034
2035 2012-10-28  Mark Rowe  <mrowe@apple.com>
2036
2037         Remove references to unsupported OS and Xcode versions.
2038
2039         Reviewed by Anders Carlsson.
2040
2041         * Configurations/Base.xcconfig:
2042         * Configurations/CompilerVersion.xcconfig: Removed.
2043         * Configurations/DebugRelease.xcconfig:
2044         * WTF.xcodeproj/project.pbxproj:
2045
2046 2012-10-29  Anders Carlsson  <andersca@apple.com>
2047
2048         AtomicString(CFStringRef) shouldn't unconditionally create a StringImpl
2049         https://bugs.webkit.org/show_bug.cgi?id=100701
2050
2051         Reviewed by Dan Bernstein.
2052
2053         * wtf/text/AtomicString.h:
2054         (WTF::AtomicString::AtomicString):
2055         Change the constructors that take a CFStringRef and an NSString * to call AtomicString::add(CFStringRef)
2056         and remove AtomicString::createCFString.
2057
2058         (WTF::AtomicString::add):
2059         Add new member function declaration. The definition is in a new file in WebCore, AtomicStringCF.cpp.
2060         Also, fix the overload of add that takes a const char* to call the right other overload instead of itself.
2061
2062 2012-10-29  Adam Barth  <abarth@webkit.org>
2063
2064         Unreviewed. Correct my previous patch to disable external SVG
2065         references only on PLATFORM(CHROMIUM).
2066
2067         * wtf/Platform.h:
2068
2069 2012-10-29  Adam Barth  <abarth@webkit.org>
2070
2071         Block SVG external references pending a security review
2072         https://bugs.webkit.org/show_bug.cgi?id=100635
2073
2074         Reviewed by Eric Seidel.
2075
2076         We need to do a security review of loading external SVG references
2077         before we're sure that it is safe.
2078
2079         * wtf/Platform.h:
2080
2081 2012-10-29  Michael Saboff  <msaboff@apple.com>
2082
2083         String::split(UChar, Vector<String>&) shouldn't create a temporary String
2084         https://bugs.webkit.org/show_bug.cgi?id=100578
2085
2086         Reviewed by Anders Carlsson.
2087
2088         Changed split(UChar, Vector<String>&) to call split(UChar, bool, Vector<String>&) instead of creating a
2089         string and calling the split(String,...) version and moved it to WTFString.h.  Also moved
2090         split(const String& separator, Vector<String>& result) to WTFString.h.
2091
2092         * wtf/text/WTFString.cpp:
2093         (WTF::String::split):
2094         * wtf/text/WTFString.h:
2095         (WTF::String::split):
2096
2097 2012-10-29  Sheriff Bot  <webkit.review.bot@gmail.com>
2098
2099         Unreviewed, rolling out r132736.
2100         http://trac.webkit.org/changeset/132736
2101         https://bugs.webkit.org/show_bug.cgi?id=100652
2102
2103         It broke all plugin related tests on GTK and on Qt (Requested
2104         by Ossy on #webkit).
2105
2106         * wtf/text/WTFString.cpp:
2107         (WTF::String::fromUTF8):
2108
2109 2012-10-27  Michael Saboff  <msaboff@apple.com>
2110
2111         Try to create AtomicString as 8 bit where possible
2112         https://bugs.webkit.org/show_bug.cgi?id=100575
2113
2114         Reviewed by Oliver Hunt.
2115
2116         Added StringImpl::create8BitIfPossible() that first tries to create an 8 bit string.  If it finds a 16 bit character
2117         during processing, it calls the standard create() method.  The assumption is that this will be used on mostly 8 bit
2118         strings and ones that are shorter (in the tens of characters).  Changed AtomicString to use the new creation method
2119         for UChar based construction.
2120
2121         * wtf/text/AtomicString.cpp:
2122         (WTF::UCharBufferTranslator::translate):
2123         * wtf/text/StringImpl.cpp:
2124         (WTF::StringImpl::create8BitIfPossible):
2125         * wtf/text/StringImpl.h:
2126         (WTF::StringImpl::create8BitIfPossible):
2127
2128 2012-10-27  Michael Saboff  <msaboff@apple.com>
2129
2130         String::fromUTF8() should take advantage of the ASCII check in convertUTF8ToUTF16()
2131         https://bugs.webkit.org/show_bug.cgi?id=100577
2132
2133         Reviewed by Oliver Hunt.
2134
2135         Passed is ASCII flag to convertUTF8ToUTF16() and if try, create an 8 bit string from the original arguments.
2136
2137         * wtf/text/WTFString.cpp:
2138         (WTF::String::fromUTF8):
2139
2140 2012-10-27  Dan Bernstein  <mitz@apple.com>
2141
2142         REAL_PLATFORM_NAME build setting is no longer needed
2143         https://bugs.webkit.org/show_bug.cgi?id=100587
2144
2145         Reviewed by Mark Rowe.
2146
2147         Removed the definition of REAL_PLATFORM_NAME and replaced references to it with references
2148         to PLATFORM_NAME.
2149
2150         * Configurations/Base.xcconfig:
2151         * Configurations/CompilerVersion.xcconfig:
2152         * Configurations/DebugRelease.xcconfig:
2153
2154 2012-10-26  Sheriff Bot  <webkit.review.bot@gmail.com>
2155
2156         Unreviewed, rolling out r132689.
2157         http://trac.webkit.org/changeset/132689
2158         https://bugs.webkit.org/show_bug.cgi?id=100574
2159
2160         Broke HashMaps containing RetainPtrs (Requested by andersca on
2161         #webkit).
2162
2163         * wtf/RetainPtr.h:
2164
2165 2012-10-26  Anders Carlsson  <andersca@apple.com>
2166
2167         Add an operator& to RetainPtr
2168         https://bugs.webkit.org/show_bug.cgi?id=100549
2169
2170         Reviewed by Dan Bernstein.
2171
2172         This is useful for APIs that return references using out parameters.
2173
2174         * wtf/RetainPtr.h:
2175         (WTF::RetainPtr::operator&):
2176
2177 2012-10-26  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
2178
2179         [Qt] Enable JSC's disassembler on x86, x86_64 Linux
2180         https://bugs.webkit.org/show_bug.cgi?id=100386
2181
2182         Reviewed by Simon Hausmann.
2183
2184         It works fine on Linux x86, x86_64 just needs to be enabled in the
2185         QtWebKit build system.
2186
2187         * wtf/Platform.h:
2188
2189 2012-10-25  Michael Saboff  <msaboff@apple.com>
2190
2191         REGRESSION (r131836): failures in list styles tests on EFL, GTK
2192         https://bugs.webkit.org/show_bug.cgi?id=99824
2193
2194         Reviewed by Oliver Hunt.
2195
2196         Fixed ASCII check.
2197         Added placeholder argument for new argument added to convertUTF8ToUTF16() in http://trac.webkit.org/changeset/131836.
2198
2199         * wtf/unicode/UTF8.cpp:
2200         (WTF::Unicode::convertUTF8ToUTF16):
2201         * wtf/unicode/glib/UnicodeGLib.cpp:
2202         (WTF::Unicode::convertCase):
2203
2204 2012-10-25  Christophe Dumez  <christophe.dumez@intel.com>
2205
2206         [EFL][WK2] Remove some C'ism from EwkView
2207         https://bugs.webkit.org/show_bug.cgi?id=100370
2208
2209         Reviewed by Kenneth Rohde Christiansen.
2210
2211         Make OwnPtr useable for Ecore_IMF_Context to avoid
2212         using raw pointers in EFL port.
2213
2214         * wtf/OwnPtrCommon.h:
2215         (WTF):
2216         * wtf/PlatformEfl.cmake:
2217         * wtf/efl/OwnPtrEfl.cpp:
2218         (WTF::deleteOwnedPtr):
2219         (WTF):
2220
2221 2012-09-27  Yury Semikhatsky  <yurys@chromium.org>
2222
2223         Web Inspector: provide memory instrumentation for ListHashSet
2224         https://bugs.webkit.org/show_bug.cgi?id=97786
2225
2226         Reviewed by Vsevolod Vlasov.
2227
2228         Added memory instrumentation for ListHashSet.
2229
2230         * GNUmakefile.list.am:
2231         * WTF.gypi:
2232         * WTF.pro:
2233         * WTF.vcproj/WTF.vcproj:
2234         * WTF.xcodeproj/project.pbxproj:
2235         * wtf/HashSet.h:
2236         (WTF):
2237         * wtf/ListHashSet.h:
2238         (ListHashSet):
2239         (ListHashSetNodeAllocator): changed visibility of inPool method to public
2240         (WTF::ListHashSetNodeAllocator::pool):
2241         (WTF::ListHashSetNodeAllocator::pastPool):
2242         (WTF::::sizeInBytes): added a method that returns size of the set in bytes including
2243         all its internals but not the content elements.
2244         (WTF):
2245         * wtf/MemoryInstrumentation.h: removed onsolete method. All clients were updated to
2246         use generic addMember instead.
2247         (MemoryInstrumentation):
2248         (WTF::MemoryClassInfo::addPrivateBuffer):
2249         * wtf/MemoryInstrumentationHashSet.h:
2250         * wtf/MemoryInstrumentationListHashSet.h: Copied from Source/WTF/wtf/MemoryInstrumentationHashSet.h.
2251         (WTF):
2252         (WTF::reportMemoryUsage):
2253
2254 2012-10-23  Benjamin Poulain  <benjamin@webkit.org>
2255
2256         WTFURL: Implement KURL::setPort()
2257         https://bugs.webkit.org/show_bug.cgi?id=99898
2258
2259         Reviewed by Adam Barth.
2260
2261         Add an efficient implementation for remplacing the port component
2262         in an URL. This will be the base for replacing other components
2263         efficiently.
2264
2265         The testing is covered by fast/dom/HTMLAnchorElement/set-href-attribute-port.html
2266
2267         * wtf/url/api/ParsedURL.cpp:
2268         (WTF::generateNewSpecWithPort):
2269         (WTF::replacePortWithString):
2270         (WTF::ParsedURL::replacePort):
2271         * wtf/url/api/ParsedURL.h:
2272         (ParsedURL):
2273
2274 2012-10-22  Michael Saboff  <msaboff@apple.com>
2275
2276         Regression(r131655): Crash in StringImpl::findIgnoringCase
2277         https://bugs.webkit.org/show_bug.cgi?id=99753
2278
2279         Reviewed by Geoffrey Garen.
2280
2281         Fixed to use the searchLength to take into account the start index.
2282
2283         Added LayoutTests/fast/js/find-ignoring-case-regress-99753.html
2284
2285         * wtf/text/StringImpl.cpp:
2286         (WTF::StringImpl::findIgnoringCase):
2287
2288 2012-10-22  Simon Hausmann  <simon.hausmann@digia.com>
2289
2290         Unreviewed: Re-enable LLINT on Qt/Linux after r131932.
2291
2292         * wtf/Platform.h:
2293
2294 2012-10-22  Yury Semikhatsky  <yurys@chromium.org>
2295
2296         Web Inspector: do not double count memory of objects with multiple ancestors
2297         https://bugs.webkit.org/show_bug.cgi?id=99958
2298
2299         Reviewed by Alexander Pavlov.
2300
2301         Make sure memory occupied by objects of classes with multiple inheritance is
2302         not double counted.
2303
2304         * wtf/MemoryInstrumentation.h:
2305         (WTF::MemoryObjectInfo::MemoryObjectInfo):
2306         (WTF::MemoryObjectInfo::reportedPointer):
2307         (WTF::MemoryObjectInfo::reportObjectInfo): 1) Store actual pointer to the instrumented
2308         object as it may differ from the original pointer by which it was reported. 2) Make
2309         the method non-template and calculate object size on the caller side.
2310         (MemoryObjectInfo):
2311         (WTF::MemoryInstrumentation::reportObjectMemoryUsage):
2312         (WTF::MemoryClassInfo::MemoryClassInfo):
2313         (WTF::MemoryInstrumentation::InstrumentedPointer::process): use adjusted pointer
2314         returned by reportMemoryUsage to check if the object has already been visited when
2315         the pointer differs from the orinal one(it may happen if the object was reported
2316         by a pointer to one of its base classes).
2317
2318 2012-10-20  Martin Robinson  <mrobinson@igalia.com>
2319
2320         Fix 'make dist' for the GTK+ port
2321
2322         * GNUmakefile.list.am: Add missing files to the source list.
2323
2324 2012-10-19  Mark Lam  <mark.lam@apple.com>
2325
2326         Added WTF::StackStats mechanism.
2327         https://bugs.webkit.org/show_bug.cgi?id=99805.
2328
2329         Reviewed by Geoffrey Garen.
2330
2331         Disabled by default. Should have no performance and memory cost when
2332         disabled. To enable, #define ENABLE_STACK_STATS 1 in StackStats.h.
2333         The output is currently hardcoded to be dumped in /tmp/stack-stats.log,
2334         and is in the form of stack sample events. By default, it only logs
2335         a sample event when a new high watermark value is encountered.
2336
2337         Also renamed StackBounds::recursiveCheck() to isSafeToRecurse().
2338
2339         * WTF.xcodeproj/project.pbxproj:
2340         * wtf/StackBounds.h:
2341         (StackBounds):
2342         (WTF::StackBounds::size):
2343         (WTF::StackBounds::isSafeToRecurse):
2344         * wtf/StackStats.cpp: Added.
2345         (WTF):
2346         (WTF::StackStats::initialize):
2347         (WTF::StackStats::PerThreadStats::PerThreadStats):
2348         (WTF::StackStats::CheckPoint::CheckPoint):
2349         (WTF::StackStats::CheckPoint::~CheckPoint):
2350         (WTF::StackStats::probe):
2351         (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
2352         (WTF::StackStats::LayoutCheckPoint::~LayoutCheckPoint):
2353         * wtf/StackStats.h: Added.
2354         (WTF):
2355         (StackStats):
2356         (CheckPoint):
2357         (WTF::StackStats::CheckPoint::CheckPoint):
2358         (PerThreadStats):
2359         (WTF::StackStats::PerThreadStats::PerThreadStats):
2360         (LayoutCheckPoint):
2361         (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):
2362         (WTF::StackStats::initialize):
2363         (WTF::StackStats::probe):
2364         * wtf/ThreadingPthreads.cpp:
2365         (WTF::initializeThreading):
2366         * wtf/WTFThreadData.cpp:
2367         (WTF::WTFThreadData::WTFThreadData):
2368         * wtf/WTFThreadData.h:
2369         (WTFThreadData):
2370         (WTF::WTFThreadData::stackStats):
2371
2372 2012-10-19  Anders Carlsson  <andersca@apple.com>
2373
2374         Deque can use std::reverse_iterator for its reverse iterators
2375         https://bugs.webkit.org/show_bug.cgi?id=99789
2376
2377         Reviewed by Andreas Kling.
2378
2379         Remove DequeReverseIterator and DequeConstReverseIterator and just use std::reverse_iterator directly.
2380         Also, remove the DequeIteratorBase<T, inlineCapacity> to Base typedef - We can already use DequeIteratorBase since it's
2381         equivalent to the full class template type.
2382
2383         * wtf/Deque.h:
2384         (WTF::Deque::rbegin):
2385         (WTF::Deque::rend):
2386         (DequeIteratorBase):
2387         (WTF::DequeIteratorBase::assign):
2388         (DequeIterator):
2389         (DequeConstIterator):
2390         (WTF::::checkValidity):
2391         (WTF::::DequeIteratorBase):
2392         (WTF::=):
2393         (WTF::::isEqual):
2394
2395 2012-10-19  Csaba Osztrogonác  <ossy@webkit.org>
2396
2397         Unreviewed buildfix, use C-style comment instead of C++
2398
2399         * wtf/Platform.h:
2400
2401 2012-10-19  Csaba Osztrogonác  <ossy@webkit.org>
2402
2403         REGRESSION(r131822): It made 500+ tests crash on 32 bit platforms
2404         https://bugs.webkit.org/show_bug.cgi?id=99814
2405
2406         Reviewed by Simon Hausmann.
2407
2408         * wtf/Platform.h: Disable LLINT on (PLATFORM(QT) && CPU(X86)) temporarily until proper fix.
2409
2410 2012-10-17  Ilya Tikhonovsky  <loislo@chromium.org>
2411
2412         Web Inspector: NMI provide data for mixing with tcmalloc heap dumps.
2413         https://bugs.webkit.org/show_bug.cgi?id=99457
2414
2415         Reviewed by Yury Semikhatsky.
2416
2417         countObjectSize now accepts ptr as the first argument and saves it into HashMap if the binary was ran with HEAPPROFILE env variable.
2418         getProcessMemoryDistribution does snapshot and calls the downstream code with the map of counted objects.
2419
2420         * wtf/MemoryInstrumentation.h:
2421         (MemoryInstrumentationClient):
2422         (WTF::MemoryInstrumentation::countObjectSize):
2423         (WTF::MemoryInstrumentation::addRawBuffer):
2424         (WTF::MemoryClassInfo::addPrivateBuffer):
2425         (WTF::MemoryInstrumentation::addObjectImpl):
2426         (WTF::MemoryInstrumentation::addListHashSet):
2427         (WTF::::process):
2428
2429 2012-10-18  Michael Saboff  <msaboff@apple.com>
2430
2431         convertUTF8ToUTF16() Should Check for ASCII Input
2432         ihttps://bugs.webkit.org/show_bug.cgi?id=99739
2433
2434         Reviewed by Geoffrey Garen.
2435
2436         Added code to accumulate the "or" of all characters seen during the UTF8 to UTF16 conversion.  This is
2437         used to check to see if all characters are ASCII and is returned via a bool*.
2438
2439         * wtf/unicode/UTF8.cpp:
2440         (WTF::Unicode::convertUTF8ToUTF16):
2441         * wtf/unicode/UTF8.h:
2442
2443 2012-10-18  Michael Saboff  <msaboff@apple.com>
2444
2445         Mac WTF build checks dependencies before copying header files
2446         https://bugs.webkit.org/show_bug.cgi?id=99770
2447
2448         Reviewed by Mark Rowe.
2449
2450         Fixed up build rules per Mark Rowe. Made new target an Aggregate and removed "WTF copy".
2451
2452         * Configurations/CopyWTFHeaders.xcconfig: Added.
2453         * Configurations/WTF.xcconfig:
2454         * WTF.xcodeproj/project.pbxproj:
2455
2456 2012-10-18  Michael Saboff  <msaboff@apple.com>
2457
2458         Mac WTF build checks dependencies before copying header files
2459         https://bugs.webkit.org/show_bug.cgi?id=99770
2460
2461         Reviewed by Geoffrey Garen.
2462
2463         Added a new build target "Copy WTF HEaders" to copy the header files and made that new target a dependency
2464         for the main WTF build target.  Moved the "Copy WTF Headers" phase from WTF target to the new target.
2465
2466         * WTF.xcodeproj/project.pbxproj:
2467
2468 2012-10-17  Anders Carlsson  <andersca@apple.com>
2469
2470         Clean up Vector.h
2471         https://bugs.webkit.org/show_bug.cgi?id=99622
2472
2473         Reviewed by Benjamin Poulain.
2474
2475         Remove unused member functions from Vector and get rid of the std::max and std::min using declarations
2476         (as per the WebKit coding style guidelines).
2477
2478         * WTF.xcodeproj/project.pbxproj:
2479         Turns out StreamBuffer.h was never added to the Xcode project; add it. Also go ahead and sort the project file.
2480
2481         * wtf/Deque.h:
2482         (WTF::::expandCapacity):
2483         * wtf/StreamBuffer.h:
2484         (WTF::StreamBuffer::append):
2485         Add std:: prefixes to max and min.
2486
2487         * wtf/Vector.h:
2488         Remove VectorBase::bufferSlot(), VectorReverseProxy and add std:: prefixes where needed.
2489
2490 2012-10-17  Michael Saboff  <msaboff@apple.com>
2491
2492         Creating a String from an NSString should check for all 8 bit strings
2493         https://bugs.webkit.org/show_bug.cgi?id=99392
2494
2495         Reviewed by Geoffrey Garen.
2496
2497         Exported the LChar* version of create().
2498
2499         * wtf/text/StringImpl.cpp:
2500         (WTF::StringImpl::create):
2501
2502 2012-10-17  Michael Saboff  <msaboff@apple.com>
2503
2504         StringImpl::findIgnoringCase() and reverseFindIgnoringCase() don't optimally handle a mix of 8 and 16 bit strings
2505         https://bugs.webkit.org/show_bug.cgi?id=99224
2506
2507         Reviewed by Geoffrey Garen.
2508
2509         Added helper templated functions and all four combinations similar to find() and reverseFind().
2510
2511         (WTF::findIgnoringCaseInner):
2512         (WTF::StringImpl::findIgnoringCase):
2513         (WTF::reverseFindIgnoringCaseInner):
2514         (WTF::StringImpl::reverseFindIgnoringCase):
2515
2516 2012-10-17  Michael Saboff  <msaboff@apple.com>
2517
2518         AtomicString::HashAndUTF8CharactersTranslator::equal() doesn't optimally handle 8 bit strings
2519         https://bugs.webkit.org/show_bug.cgi?id=99223
2520
2521         Reviewed by Geoffrey Garen.
2522
2523         Added an 8 bit path.
2524
2525         * wtf/text/AtomicString.cpp:
2526         (WTF::HashAndUTF8CharactersTranslator::equal):
2527
2528 2012-10-17  Anders Carlsson  <andersca@apple.com>
2529
2530         Always use fastRealloc when growing or shrinking the Vector buffer
2531         https://bugs.webkit.org/show_bug.cgi?id=99616
2532
2533         Reviewed by Andreas Kling.
2534
2535         Remove the pointless #if PLATFORM(BLACKBERRY) and always try to use fastRealloc to grow or shrink the
2536         vector buffer when possible; realloc should always be at least as fast as free+malloc.
2537
2538         * wtf/Vector.h:
2539         (WTF::VectorBufferBase::shouldReallocateBuffer):
2540
2541 2012-10-16  Michael Saboff  <msaboff@apple.com>
2542
2543         Change WTF_USE_8BIT_TEXTRUN to ENABLE_8BIT_TEXTRUN
2544         https://bugs.webkit.org/show_bug.cgi?id=99484
2545
2546         Reviewed by Eric Seidel.
2547
2548         Changed macro name to align with it's purpose.
2549
2550         * wtf/Platform.h:
2551
2552 2012-10-16  Michael Saboff  <msaboff@apple.com>
2553
2554         StringImpl::reverseFind() with a single match character isn't optimal for mixed 8/16 bit cases
2555         https://bugs.webkit.org/show_bug.cgi?id=99363
2556
2557         Reviewed by Benjamin Poulain.
2558
2559         Factored out the 8/16 bitness check of the match character from the subject character bitness
2560         check.  Did this for both find() and reverseFind().  Added all UChar/LChar combinations to the
2561         inline reverseFind().
2562
2563         * wtf/text/StringImpl.cpp:
2564         (WTF::StringImpl::find):
2565         (WTF::StringImpl::reverseFind):
2566         * wtf/text/StringImpl.h:
2567         (WTF::reverseFind):
2568
2569 2012-10-16  Dima Gorbik  <dgorbik@apple.com>
2570
2571         Remove Platform.h include from the header files.
2572         https://bugs.webkit.org/show_bug.cgi?id=98665
2573
2574         Reviewed by Eric Seidel.
2575
2576         We don't want other clients that include WebKit headers to know about Platform.h.
2577
2578         * wtf/Assertions.h:
2579         * wtf/MainThread.h:
2580
2581 2012-10-16  Adrienne Walker  <enne@google.com>
2582
2583         Remove unused WTF_NEW_HASHMAP_ITERATORS_INTERFACE #define
2584         https://bugs.webkit.org/show_bug.cgi?id=99367
2585
2586         Reviewed by James Robinson.
2587
2588         Does what it says on the tin.
2589
2590         * wtf/HashTraits.h:
2591
2592 2012-10-15  Andreas Kling  <kling@webkit.org>
2593
2594         Remove WTF::fastDeleteAllValues().
2595         <http://webkit.org/b/99345>
2596
2597         Reviewed by Eric Seidel.
2598
2599         It was only used to fastDelete() a class that was already overriding operator delete
2600         by way of WTF_MAKE_FAST_ALLOCATED anyway.
2601
2602         * wtf/HashSet.h:
2603         (WTF):
2604         (HashSet):
2605
2606 2012-10-15  Mark Hahnenberg  <mhahnenberg@apple.com>
2607
2608         Parallel GC should not be disabled for all platforms
2609
2610         * wtf/Platform.h: D'oh!
2611
2612 2012-10-15  George Staikos  <staikos@webkit.org>
2613
2614         [BlackBerry] Adapt to Platform API changes in string handling
2615         https://bugs.webkit.org/show_bug.cgi?id=99248
2616
2617         Reviewed by Yong Li.
2618
2619         Convert usage of WebString, char* and std::string to BlackBerry::Platform::String.
2620
2621         * wtf/Assertions.cpp: Use proper log function.
2622         * wtf/text/AtomicString.h: Add BlackBerry support
2623         (AtomicString):
2624         (WTF::AtomicString::AtomicString): Add BlackBerry Support
2625         (WTF::AtomicString::operator BlackBerry::Platform::String):
2626         * wtf/text/StringImpl.h: Conversion support.
2627         * wtf/text/WTFString.h: Conversion support.
2628         (Platform):
2629         (String):
2630
2631 2012-10-15  Michael Saboff  <msaboff@apple.com>
2632
2633         Update RenderText to use String instead of UChar* for text
2634         https://bugs.webkit.org/show_bug.cgi?id=96979
2635
2636         Reviewed by Dan Bernstein.
2637
2638         Added WTF_USE_8BIT_TEXTRUN to encase code that creates 8 bit TextRun's.  Enabled WTF_USE_8BIT_TEXTRUN
2639         for PLATFORM(MAC).  Other platform can update this setting in Platform.h when their platform specific use of
2640         TextRun handle 8 bit data.  Added a new Vector::appendVector to allow appending the contents of a vector
2641         containing one type to the end of vector containing another.  This is used to append a Vector<LChar> to
2642         the end of a Vector<UChar>.
2643
2644         * wtf/Platform.h:
2645         * wtf/Vector.h:
2646         (Vector):
2647         (WTF::Vector::appendVector):
2648
2649 2012-10-15  Ilya Tikhonovsky  <loislo@chromium.org>
2650
2651         Web Inspector: convert manual size calculation of different WebKit things into MemoryInstrumentation.
2652         https://bugs.webkit.org/show_bug.cgi?id=99309
2653
2654         Reviewed by Yury Semikhatsky.
2655
2656         JSHeap, DOMStorage and HeapProfiler data were counted manually.
2657         Now we count the sizes more generic way.
2658
2659         * wtf/MemoryInstrumentation.h: calculateContainerSize were removed.
2660         * wtf/MemoryInstrumentationSequence.h: empty instrumentations were added for 'const char*' and 'const void*' sequences.
2661
2662 2012-10-12  Anders Carlsson  <andersca@apple.com>
2663
2664         Move QDataStream functions into HistoryItemQt.cpp
2665         https://bugs.webkit.org/show_bug.cgi?id=99203
2666
2667         Reviewed by Andreas Kling.
2668
2669         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
2670         inside WebCore, so move them there. If in the future they are required elsewhere, they should
2671         be moved into a separate header instead of polluting headers unnecessarily.
2672
2673         * wtf/Vector.h:
2674         * wtf/qt/StringQt.cpp:
2675         * wtf/text/WTFString.h:
2676
2677 2012-10-12  Michael Saboff  <msaboff@apple.com>
2678
2679         StringBuilder::append(StringBuilder&) doesn't take into account the bit size of the argument string
2680         https://bugs.webkit.org/show_bug.cgi?id=99225
2681
2682         Reviewed by Benjamin Poulain.
2683
2684         Added 8 bit path.
2685
2686         * wtf/text/StringBuilder.h:
2687         (WTF::StringBuilder::append):
2688
2689 2012-10-12  Sheriff Bot  <webkit.review.bot@gmail.com>
2690
2691         Unreviewed, rolling out r131224.
2692         http://trac.webkit.org/changeset/131224
2693         https://bugs.webkit.org/show_bug.cgi?id=99210
2694
2695         It broke the build (Requested by andersca on #webkit).
2696
2697         * wtf/Vector.h:
2698         (WTF):
2699         (WTF::operator<<):
2700         (WTF::operator>>):
2701         * wtf/qt/StringQt.cpp:
2702         (WTF::operator<<):
2703         (WTF):
2704         (WTF::operator>>):
2705         * wtf/text/WTFString.h:
2706         (WTF):
2707
2708 2012-10-12  Anders Carlsson  <andersca@apple.com>
2709
2710         Move QDataStream functions into HistoryItemQt.cpp
2711         https://bugs.webkit.org/show_bug.cgi?id=99203
2712
2713         Reviewed by Andreas Kling.
2714
2715         It seems like the QDataStream stream operators are only used from HistoryItemQt.cpp
2716         inside WebCore, so move them there. If in the future they are required elsewhere, they should
2717         be moved into a separate header instead of polluting headers unnecessarily.
2718
2719         * wtf/Vector.h:
2720         * wtf/qt/StringQt.cpp:
2721         * wtf/text/WTFString.h:
2722
2723 2012-10-11  Mark Toller  <mark.toller@samsung.com>
2724
2725         Removed incorrect pthread_mutex_trylock code in an ASSERT in TCMalloc_PageHeap::signalScavenger. This 
2726         branch is used by the Webkit GTK code.
2727
2728         https://bugs.webkit.org/show_bug.cgi?id=97539
2729
2730         Reviewed by Geoffrey Garen.
2731
2732         The code was never compiled in, and was functionally broken. There is no need for locking around the 
2733         m_scavengeThreadActive flag, however, we should lock pageheap_lock before calling 'shouldScavenge()', as we
2734         only want to scavenge when really required, so it's better to wait for any current memory operation to 
2735         complete before checking. 
2736
2737         * wtf/FastMalloc.cpp:
2738         (WTF::TCMalloc_PageHeap::signalScavenger):
2739
2740 2012-10-10  Yong Li  <yoli@rim.com>
2741
2742         [BlackBerry] Define WTF_USE_EXTRA_MACROS in cmake rather than Platform.h
2743         https://bugs.webkit.org/show_bug.cgi?id=98819
2744
2745         Reviewed by Rob Buis.
2746
2747         And make it depend on SHARED_CORE
2748         RIM PR# 221339.
2749
2750         * wtf/Platform.h:
2751
2752 2012-10-09  Filip Pizlo  <fpizlo@apple.com>
2753
2754         JSC should infer when indexed storage is contiguous, and optimize for it
2755         https://bugs.webkit.org/show_bug.cgi?id=97288
2756
2757         Reviewed by Mark Hahnenberg.
2758
2759         Moved out this helpful math utility to MathExtras, since we now use it in
2760         multiple places.
2761
2762         * wtf/MathExtras.h:
2763         (timesThreePlusOneDividedByTwo):
2764
2765 2012-10-08  Benjamin Poulain  <benjamin@webkit.org>
2766
2767         Generalize moving URLComponent's begin position
2768         https://bugs.webkit.org/show_bug.cgi?id=98626
2769
2770         Reviewed by Adam Barth.
2771
2772         The patch r130609 introduced moving URLComponents's position.
2773         It turns out this concept is really useful in the parser so
2774         this patch generalize the idea.
2775
2776         * wtf/url/api/ParsedURL.cpp:
2777         (WTF::ParsedURL::removePort):
2778         * wtf/url/src/URLCanonEtc.cpp:
2779         * wtf/url/src/URLComponent.h:
2780         (WTF::URLComponent::moveBy):
2781         Rename URLComponent::move() to URLComponent::moveBy() for consistency
2782         with some of WebCore types.
2783
2784         * wtf/url/src/URLParse.cpp:
2785         * wtf/url/src/URLParseFile.cpp:
2786
2787         * wtf/url/src/URLSegments.cpp:
2788         (WTF::URLSegments::moveFromComponentBy):
2789         Change the semantic to everything from a certain component. This is
2790         useful to move everything, including the scheme.
2791
2792         * wtf/url/src/URLSegments.h:
2793         (URLSegments):
2794
2795 2012-10-08  Andreas Kling  <kling@webkit.org>
2796
2797         Lower minimum table size of WTF::HashTable to reduce memory usage.
2798         <http://webkit.org/b/98406>
2799         <rdar://problem/12432140>
2800
2801         Reviewed by Anders Carlsson.
2802
2803         Lower the default minimumTableSize for WTF hash tables from 64 to 8 entries.
2804         This reduces WebProcess memory consumption by ~16MB on Membuster3 (a 6% progression!)
2805
2806         No significant movement on PLT or JSC benchmarks on my machine. If there's a perf regression somewhere
2807         from this, we can tweak individual tables to have a larger minimumTableSize.
2808
2809         * wtf/HashTraits.h:
2810
2811 2012-10-08  Andreas Kling  <kling@webkit.org>
2812
2813         Using float/double as WTF hash table key is unreliable.
2814         <http://webkit.org/b/98627>
2815
2816         Reviewed by Geoffrey Garen.
2817
2818         Change FloatHash::equal() to do a bitwise compare instead of a logical compare.
2819         This fixes a problem where the keys with different binary representation but the
2820         same logical value (e.g 0 and -0) could block each other from being found if they
2821         ended up in the same hash bucket.
2822
2823         * wtf/HashFunctions.h:
2824         (FloatHash):
2825         (WTF::FloatHash::hash):
2826         (WTF::FloatHash::equal):
2827
2828 2012-10-08  Sheriff Bot  <webkit.review.bot@gmail.com>
2829
2830         Unreviewed, rolling out r130619.
2831         http://trac.webkit.org/changeset/130619
2832         https://bugs.webkit.org/show_bug.cgi?id=98634
2833
2834         Causes many crashes on the EFL bots. (Requested by rakuco on
2835         #webkit).
2836
2837         * wtf/efl/MainThreadEfl.cpp:
2838         (WTF::pipeObject):
2839         (WTF):
2840         (WTF::monitorDispatchFunctions):
2841         (WTF::initializeMainThreadPlatform):
2842         (WTF::scheduleDispatchFunctionsOnMainThread):
2843
2844 2012-10-08  Byungwoo Lee  <bw80.lee@samsung.com>
2845
2846         [EFL] Use ecore_main_loop_thread_safe_call_async() to wakeup main loop.
2847         https://bugs.webkit.org/show_bug.cgi?id=98505
2848
2849         Reviewed by Kenneth Rohde Christiansen.
2850
2851         Instead of ecore_pipe_write(),
2852         use ecore_main_loop_thread_safe_call_async() to wakeup ecore main loop.
2853
2854         According to the EFL API document, this function is designed to dispatch
2855         a function on ecore main loop by avoiding dead lock or race condition. 
2856         With this function, webkit doesn't need to maintain ecore pipe also.
2857
2858         * wtf/efl/MainThreadEfl.cpp:
2859         (WTF::monitorDispatchFunctions):
2860         (WTF::initializeMainThreadPlatform):
2861         (WTF::scheduleDispatchFunctionsOnMainThread):
2862
2863 2012-10-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2864
2865         Rename first/second to key/value in HashMap iterators
2866         https://bugs.webkit.org/show_bug.cgi?id=82784
2867
2868         Reviewed by Eric Seidel.
2869
2870         Currently HashMap iterators follow the same interface in std::map: given an
2871         iterator it, we use it->first to access the key and it->second to access the
2872         value. This patch changes these accesses to it->key and it->value, improving the
2873         readability at call sites.
2874
2875         One potential downside of this change would be the confusion between std::map and
2876         HashMap interfaces. However, they are already different in other aspects and the
2877         usage of std::map is more an exception than a rule in WebKit code, so we consider
2878         the confusion will be less likely to happen.
2879
2880         * wtf/HashCountedSet.h:
2881         (WTF::::add):
2882         (WTF::::remove):
2883         (WTF::copyToVector):
2884         * wtf/HashIterators.h:
2885         (WTF::HashTableConstKeysIterator::get):
2886         (WTF::HashTableConstValuesIterator::get):
2887         (WTF::HashTableKeysIterator::get):
2888         (WTF::HashTableValuesIterator::get):
2889         * wtf/HashMap.h:
2890         (WTF::KeyValuePairKeyExtractor::extract):
2891         (WTF::HashMapValueTraits::isEmptyValue):
2892         (WTF::HashMapTranslator::translate):
2893         (WTF::HashMapTranslatorAdapter::translate):
2894         (WTF::::set):
2895         (WTF::::get):
2896         (WTF::::take):
2897         (WTF::operator==):
2898         (WTF::deleteAllValues):
2899         (WTF::deleteAllKeys):
2900         Removed deleteAllPairFirsts() and deleteAllPairSeconds() since they are now unused.
2901
2902         * wtf/HashTable.h:
2903         (WTF::hashTableSwap):
2904         (WTF::::checkTableConsistencyExceptSize):
2905         * wtf/HashTraits.h:
2906         (WTF):
2907         (WTF::KeyValuePair::KeyValuePair):
2908         (KeyValuePair):
2909         (WTF::KeyValuePairHashTraits::constructDeletedValue):
2910         (WTF::KeyValuePairHashTraits::isDeletedValue):
2911         * wtf/MetaAllocator.cpp:
2912         (WTF::MetaAllocator::addFreeSpace):
2913         (WTF::MetaAllocator::incrementPageOccupancy):
2914         (WTF::MetaAllocator::decrementPageOccupancy):
2915         * wtf/RefCountedLeakCounter.cpp:
2916         (WTF::RefCountedLeakCounter::~RefCountedLeakCounter):
2917         * wtf/RefPtrHashMap.h:
2918         (WTF::::set):
2919         (WTF::::get):
2920         (WTF::::inlineGet):
2921         (WTF::::take):
2922         * wtf/Spectrum.h:
2923         (WTF::Spectrum::add):
2924         (WTF::Spectrum::get):
2925         (WTF::Spectrum::buildList):
2926         * wtf/ThreadingPthreads.cpp:
2927         (WTF::identifierByPthreadHandle):
2928
2929 2012-10-07  Benjamin Poulain  <benjamin@webkit.org>
2930
2931         WTFURL: implement URL port removal for HTMLAnchorElement
2932         https://bugs.webkit.org/show_bug.cgi?id=98604
2933
2934         Reviewed by Adam Barth.
2935
2936         Add hasStandardScheme() (similar to isStandard from Google URL),
2937         hasPort() and removePort() to implement the port removal of KURL.
2938
2939         * wtf/url/api/ParsedURL.cpp:
2940         (WTF::ParsedURL::hasStandardScheme):
2941         (WTF::ParsedURL::hasPort):
2942         (WTF::ParsedURL::removePort):
2943         * wtf/url/api/ParsedURL.h:
2944         (ParsedURL):
2945         * wtf/url/src/URLComponent.h:
2946         (WTF::URLComponent::move):
2947         * wtf/url/src/URLSegments.cpp:
2948         (WTF::URLSegments::moveComponentsAfter):
2949         * wtf/url/src/URLSegments.h:
2950         (URLSegments):
2951         * wtf/url/src/URLUtil.cpp:
2952         (URLUtilities):
2953         (WTF::URLUtilities::isStandard):
2954         * wtf/url/src/URLUtil.h:
2955         (URLUtilities):
2956         Remove LowerCaseEqualsASCII() from the interface, make it an internal template.
2957
2958         (WTF::URLUtilities::isStandard):
2959         Since in WebKit, LChar is a superset of char, expose LChar and cast char* to LChar*.
2960
2961 2012-10-06  Ilya Tikhonovsky  <loislo@chromium.org>
2962
2963         Web Inspector: NMI fix String instrumentation the way it was discussed in WK97964
2964         https://bugs.webkit.org/show_bug.cgi?id=98500
2965
2966         Reviewed by Benjamin Poulain.
2967
2968         Current instrumentation incorrectly covers the case when StringImpl object has been created via StringImpl::createWithTerminatingNullCharacter().
2969         Looks like the only way to detect the strings that has been created from literals is to compare the addresses of buffer and stringImpl + 1.
2970
2971         * wtf/MemoryInstrumentationString.h:
2972         (WTF::reportMemoryUsage):
2973         * wtf/text/StringImpl.h:
2974         (WTF::StringImpl::hasInternalBuffer):
2975
2976 2012-10-06  Benjamin Poulain  <benjamin@webkit.org>
2977
2978         Fix build of WTFURL after r130187
2979         https://bugs.webkit.org/show_bug.cgi?id=98588
2980
2981         Reviewed by Kentaro Hara.
2982
2983         * wtf/MemoryInstrumentationParsedURL.h:
2984         (WTF::reportMemoryUsage):
2985         * wtf/url/api/ParsedURL.h:
2986         (WTF::ParsedURL::spec):
2987
2988 2012-10-05  Simon Pena  <spena@igalia.com>
2989
2990         [GTK] Add support for GBytes in GRefPtr
2991         https://bugs.webkit.org/show_bug.cgi?id=98489
2992
2993         Reviewed by Carlos Garcia Campos.
2994
2995         Adding support for GBytes in GRefPtr makes it easier
2996         for them to be used when adding GResources support,
2997         and is more consistent with the rest of the port.
2998
2999         This calls g_bytes_ref and g_bytes_unref in the implementation
3000         of the refPtr and derefPtr template functions, in case the GLib
3001         version is met. Otherwise, it does nothing.
3002
3003         * wtf/gobject/GRefPtr.cpp: Implement templates for ref and deref.
3004         (WTF::refGPtr):
3005         (WTF):
3006         (WTF::derefGPtr):
3007         * wtf/gobject/GRefPtr.h:
3008         (WTF):
3009         * wtf/gobject/GTypedefs.h: Define the GBytes datatype.
3010
3011 2012-10-05  Sheriff Bot  <webkit.review.bot@gmail.com>
3012
3013         Unreviewed, rolling out r130478.
3014         http://trac.webkit.org/changeset/130478
3015         https://bugs.webkit.org/show_bug.cgi?id=98494
3016
3017         It broke the Qt build (Requested by Ossy on #webkit).
3018
3019         * wtf/gobject/GRefPtr.cpp:
3020         * wtf/gobject/GRefPtr.h:
3021         (WTF):
3022         * wtf/gobject/GTypedefs.h:
3023
3024 2012-10-05  Simon Pena  <spena@igalia.com>
3025
3026         [GTK] Add support for GBytes in GRefPtr
3027         https://bugs.webkit.org/show_bug.cgi?id=98489
3028
3029         Reviewed by Carlos Garcia Campos.
3030
3031         Adding support for GBytes in GRefPtr makes it easier
3032         for them to be used when adding GResources support,
3033         and is more consistent with the rest of the port.
3034
3035         This calls g_bytes_ref and g_bytes_unref in the implementation
3036         of the refPtr and derefPtr template functions.
3037
3038         * wtf/gobject/GRefPtr.cpp: Implement templates for ref and deref.
3039         (WTF::refGPtr):
3040         (WTF):
3041         (WTF::derefGPtr):
3042         * wtf/gobject/GRefPtr.h:
3043         (WTF):
3044         * wtf/gobject/GTypedefs.h: Define the GBytes datatype.
3045
3046 2012-10-04  Dirk Pranke  <dpranke@chromium.org>
3047
3048         Unreviewed, rolling out r130419.
3049         http://trac.webkit.org/changeset/130419
3050         https://bugs.webkit.org/show_bug.cgi?id=98406
3051
3052         broke editing/pasteboard/data-transfer-items.html on chromium
3053
3054         * wtf/HashTraits.h:
3055
3056 2012-10-04  Andreas Kling  <kling@webkit.org>
3057
3058         Lower minimum table size of WTF::HashTable to reduce memory usage.
3059         <http://webkit.org/b/98406>
3060         <rdar://problem/12432140>
3061
3062         Reviewed by Anders Carlsson.
3063
3064         Lower the default minimumTableSize for WTF hash tables from 64 to 8 entries.
3065         This reduces WebProcess memory consumption by ~16MB on Membuster3 (a 6% progression!)
3066
3067         No significant movement on PLT or JSC benchmarks on my machine. If there's a perf regression somewhere
3068         from this, we can tweak individual tables to have a larger minimumTableSize.
3069
3070         * wtf/HashTraits.h:
3071
3072 2012-10-04  Michael Saboff  <msaboff@apple.com>
3073
3074         String::remove will convert an 8 bit string to a 16 bit string
3075         https://bugs.webkit.org/show_bug.cgi?id=98299
3076
3077         Reviewed by Benjamin Poulain.
3078
3079         Added an 8 bit path to remove().  Added a private templated helper removeInternal.
3080
3081         * wtf/text/WTFString.cpp:
3082         (WTF::String::removeInternal):
3083         (WTF::String::remove):
3084         * wtf/text/WTFString.h:
3085         (String):
3086
3087 2012-10-03  Kangil Han  <kangil.han@samsung.com>
3088
3089         [Refactoring] Tidy NDEBUG optioning in RefCountedBase.
3090         https://bugs.webkit.org/show_bug.cgi?id=98252
3091
3092         Reviewed by Benjamin Poulain.
3093
3094         Fixed incomplete implementation for NDEBUG option.
3095         Additionally, adopted CHECK_REF_COUNTED_LIFECYCLE definition to suppress abusing NDEBUG option.
3096
3097         * wtf/RefCounted.h:
3098         (WTF):
3099         (WTF::RefCountedBase::ref):
3100         (WTF::RefCountedBase::hasOneRef):
3101         (WTF::RefCountedBase::refCount):
3102         (WTF::RefCountedBase::turnOffVerifier):
3103         (WTF::RefCountedBase::relaxAdoptionRequirement):
3104         (WTF::RefCountedBase::RefCountedBase):
3105         (WTF::RefCountedBase::~RefCountedBase):
3106         (WTF::RefCountedBase::derefBase):
3107         (RefCountedBase):
3108         (WTF::adopted):
3109         (WTF::RefCountedBase::setMutexForVerifier):
3110         (WTF::RefCountedBase::setDispatchQueueForVerifier):
3111
3112 2012-10-03  Yury Semikhatsky  <yurys@chromium.org>
3113
3114         Remove MemoryInstrumentation::addCollectionElements
3115         https://bugs.webkit.org/show_bug.cgi?id=98245
3116
3117         Reviewed by Vsevolod Vlasov.
3118
3119         Removed MemoryInstrumentation::addCollectionElements and switched all call sites
3120         to reportSequenceMemoryUsage.
3121
3122         Drive-by fix: removed some unused methods on MemoryInstrumentation.
3123
3124         * wtf/MemoryInstrumentation.h:
3125         * wtf/MemoryInstrumentationHashSet.h:
3126         (WTF::reportMemoryUsage):
3127         * wtf/MemoryInstrumentationSequence.h:
3128         (WTF::SequenceMemoryInstrumentationTraits::reportMemoryUsage):
3129         * wtf/MemoryInstrumentationVector.h:
3130         (WTF::reportMemoryUsage):
3131
3132 2012-10-02  Yury Semikhatsky  <yurys@chromium.org>
3133
3134         Provide memory instrumentation for HashCountedSet
3135         https://bugs.webkit.org/show_bug.cgi?id=98138
3136
3137         Reviewed by Pavel Feldman.
3138
3139         Added memory instrumentation for HashCountedSet.
3140
3141         Extracted common routines for collecting memory info for an iterable sequence.
3142
3143         * GNUmakefile.list.am:
3144         * WTF.gypi:
3145         * WTF.pro:
3146         * WTF.vcproj/WTF.vcproj:
3147         * WTF.xcodeproj/project.pbxproj:
3148         * wtf/MemoryInstrumentation.h:
3149         (WTF):
3150         * wtf/MemoryInstrumentationHashCountedSet.h: Copied from Source/WTF/wtf/MemoryInstrumentationHashSet.h.
3151         (WTF):
3152         (WTF::reportMemoryUsage):
3153         * wtf/MemoryInstrumentationHashMap.h:
3154         (WTF::reportMemoryUsage):
3155         * wtf/MemoryInstrumentationHashSet.h:
3156         * wtf/MemoryInstrumentationSequence.h: Copied from Source/WTF/wtf/MemoryInstrumentationHashMap.h.
3157         (WTF):
3158         (WTF::SequenceMemoryInstrumentationTraits::reportMemoryUsage):
3159         (WTF::reportSequenceMemoryUsage):
3160
3161 2012-10-02  Joshua Bell  <jsbell@chromium.org>
3162
3163         Add htons/htonl definitions and implementations
3164         https://bugs.webkit.org/show_bug.cgi?id=98054
3165
3166         Reviewed by Darin Adler.
3167
3168         For parsing or serializing binary data, byte order matters. The canonical htons/htonl/
3169         ntohs/ntohl functions are not present everywhere, so implementations are proliferating in
3170         parsers. Expose a new WTF header (wtf/ByteOrder.h) that includes the standard
3171         implementations on UNIX-like OSs and provides basic inlined implementations on Windows.
3172
3173         * GNUmakefile.list.am:
3174         * WTF.gypi:
3175         * WTF.pro:
3176         * WTF.vcproj/WTF.vcproj:
3177         * WTF.xcodeproj/project.pbxproj:
3178         * wtf/ByteOrder.h: Added.
3179         (WTF::wswap32): Inline functions so arguments are only evaluated once.
3180         (WTF::bswap32):
3181         (WTF::bswap16):
3182         (ntohs): Inline functions on OS(WINDOWS) to match macros on OS(UNIX)
3183         (htons):
3184         (ntohl):
3185         (htonl):
3186         * wtf/CMakeLists.txt:
3187
3188 2012-10-02  Michael Saboff  <msaboff@apple.com>
3189
3190         HTMLConstructionSite::insertTextNode isn't optimized for 8 bit strings
3191         https://bugs.webkit.org/show_bug.cgi?id=97740
3192
3193         Reviewed by Darin Adler.
3194
3195         Added an append method that takes an LChar source.  Made both the UChar and LChar versions optimally handle
3196         the appendee and appendend string bitness.
3197
3198         * wtf/text/WTFString.cpp:
3199         (WTF::String::append):
3200         * wtf/text/WTFString.h:
3201         (String):
3202
3203 2012-10-02  Ilya Tikhonovsky  <loislo@chromium.org>
3204
3205         Web Inspector: NMI: switch to non intrusive instrumentation of ParsedURL.
3206         https://bugs.webkit.org/show_bug.cgi?id=98150
3207
3208         Reviewed by Yury Semikhatsky.
3209
3210         Memory instrumentation for ParsedURL was extracted into separate header MemoryInstrumentationParsedURL.h
3211
3212         Drive by fix: unnecessary include was removed from String*.cpp files.
3213
3214         * GNUmakefile.list.am:
3215         * WTF.gypi:
3216         * WTF.pro:
3217         * WTF.xcodeproj/project.pbxproj:
3218         * wtf/MemoryInstrumentation.h:
3219         (WTF):
3220         * wtf/MemoryInstrumentationParsedURL.h: Added.
3221         (WTF):
3222         (WTF::reportMemoryUsage):
3223         * wtf/text/AtomicString.cpp:
3224         * wtf/text/StringImpl.cpp:
3225         * wtf/text/WTFString.cpp:
3226         * wtf/url/api/ParsedURL.cpp:
3227         * wtf/url/api/ParsedURL.h:
3228         * wtf/url/api/URLString.cpp:
3229         * wtf/url/api/URLString.h:
3230
3231 2012-09-29  Ilya Tikhonovsky  <loislo@chromium.org>
3232
3233         Web Inspector: NMI make String* instrumentation non intrusive
3234         https://bugs.webkit.org/show_bug.cgi?id=97964
3235
3236         Reviewed by Yury Semikhatsky.
3237
3238         MemoryInstrumentationString.h was added.
3239         Intrusive instrumentation was removed.
3240
3241         * GNUmakefile.list.am:
3242         * WTF.gypi:
3243         * WTF.pro:
3244         * WTF.vcproj/WTF.vcproj:
3245         * WTF.xcodeproj/project.pbxproj:
3246         * wtf/MemoryInstrumentation.h:
3247         (WTF):
3248         * wtf/MemoryInstrumentationString.h: Added.
3249         (WTF):
3250         (WTF::reportMemoryUsage):
3251         * wtf/text/AtomicString.cpp:
3252         (WTF):
3253         * wtf/text/AtomicString.h:
3254         (AtomicString):
3255         * wtf/text/CString.h:
3256         (WTF::CStringBuffer::length):
3257         * wtf/text/StringImpl.cpp:
3258         * wtf/text/StringImpl.h:
3259         (WTF::StringImpl::usesInternalBuffer):
3260         (WTF::StringImpl::baseString):
3261         (StringImpl):
3262
3263 2012-10-02  Sheriff Bot  <webkit.review.bot@gmail.com>
3264
3265         Unreviewed, rolling out r130129.
3266         http://trac.webkit.org/changeset/130129
3267         https://bugs.webkit.org/show_bug.cgi?id=98125
3268
3269         broke 4 webkit_unit_tests
3270         (MemoryInstrumentationTest.hashMapWith*) (Requested by caseq
3271         on #webkit).
3272
3273         * GNUmakefile.list.am:
3274         * WTF.gypi:
3275         * WTF.pro:
3276         * WTF.vcproj/WTF.vcproj:
3277         * WTF.xcodeproj/project.pbxproj:
3278         * wtf/MemoryInstrumentation.h:
3279         (WTF):
3280         * wtf/MemoryInstrumentationString.h: Removed.
3281         * wtf/text/AtomicString.cpp:
3282         (WTF::AtomicString::reportMemoryUsage):
3283         (WTF):
3284         * wtf/text/AtomicString.h:
3285         (AtomicString):
3286         * wtf/text/CString.h:
3287         (WTF::CStringBuffer::length):
3288         (CStringBuffer):
3289         (WTF::CStringBuffer::reportMemoryUsage):
3290         (CString):
3291         (WTF::CString::reportMemoryUsage):
3292         * wtf/text/StringImpl.cpp:
3293         (WTF::StringImpl::reportMemoryUsage):
3294         (WTF):
3295         * wtf/text/StringImpl.h:
3296         (StringImpl):
3297         * wtf/text/WTFString.cpp:
3298         (WTF::String::reportMemoryUsage):
3299         (WTF):
3300         * wtf/text/WTFString.h:
3301         (String):
3302
3303 2012-09-29  Ilya Tikhonovsky  <loislo@chromium.org>
3304
3305         Web Inspector: NMI make String* instrumentation non intrusive
3306         https://bugs.webkit.org/show_bug.cgi?id=97964
3307
3308         Reviewed by Yury Semikhatsky.
3309
3310         MemoryInstrumentationString.h was added.
3311         Intrusive instrumentation was removed.
3312
3313         * GNUmakefile.list.am:
3314         * WTF.gypi:
3315         * WTF.pro:
3316         * WTF.vcproj/WTF.vcproj:
3317         * WTF.xcodeproj/project.pbxproj:
3318         * wtf/MemoryInstrumentation.h:
3319         (WTF):
3320         * wtf/MemoryInstrumentationString.h: Added.
3321         (WTF):
3322         (WTF::reportMemoryUsage):
3323         * wtf/text/AtomicString.cpp:
3324         (WTF):
3325         * wtf/text/AtomicString.h:
3326         (AtomicString):
3327         * wtf/text/CString.h:
3328         (WTF::CStringBuffer::length):
3329         * wtf/text/StringImpl.cpp:
3330         * wtf/text/StringImpl.h:
3331         (WTF::StringImpl::usesInternalBuffer):
3332         (WTF::StringImpl::baseString):
3333         (StringImpl):
3334
3335 2012-10-01  Daniel Drake  <dsd@laptop.org>
3336
3337         Another SIGILL in JavaScriptCore on a Geode processor
3338         https://bugs.webkit.org/show_bug.cgi?id=96286
3339
3340         Reviewed by Filip Pizlo.
3341
3342         Disable LLint for the GTK build where the build target does not
3343         support SSE2 instructions. Restores support for non-SSE2 processors
3344         such as the AMD Geode.
3345
3346         * wtf/Platform.h:
3347
3348 2012-10-01  Yury Semikhatsky  <yurys@chromium.org>
3349
3350         Web Inspector: provide memory instrumentation for HashMap
3351         https://bugs.webkit.org/show_bug.cgi?id=98005
3352
3353         Reviewed by Pavel Feldman.
3354
3355         Extracted HashMap memory instrumentation into its own file. The map's content
3356         elements will be automatically traversed if their types are supported
3357         by the memory instrumentation. No need to call special method for hash map
3358         fields any more.
3359
3360         * GNUmakefile.list.am:
3361         * WTF.gypi:
3362         * WTF.pro:
3363         * WTF.vcproj/WTF.vcproj:
3364         * wtf/MemoryInstrumentation.h:
3365         (MemoryInstrumentation):
3366         (WTF):
3367         * wtf/MemoryInstrumentationHashMap.h: Added.
3368         (WTF):
3369         (WTF::SequenceMemoryInstrumentationTraits::reportMemoryUsage):
3370         (WTF::reportMemoryUsage):
3371
3372 2012-10-01  Alberto Garcia  <agarcia@igalia.com>
3373
3374         Check that __cplusplus is defined before comparing its value
3375         https://bugs.webkit.org/show_bug.cgi?id=98015
3376
3377         Reviewed by Xan Lopez.
3378
3379         If __cplusplus is not defined is interpreted as having the value
3380         0, but it produces a compilation warning with -Wundef.
3381
3382         This is the case with some API tests that are written in C
3383         (JSNode.c, JSNodeList.c, minidom.c).
3384
3385         * wtf/Compiler.h:
3386
3387 2012-10-01  Carlos Garcia Campos  <cgarcia@igalia.com>
3388
3389         Unreviewed. Fix make distcheck.
3390
3391         * GNUmakefile.list.am: Add missing header files to compilation.
3392
3393 2012-09-30  Mark Hahnenberg  <mhahnenberg@apple.com>
3394
3395         Clean up HasTrivialConstructor/Destructor
3396         https://bugs.webkit.org/show_bug.cgi?id=97754
3397
3398         Reviewed by Sam Weinig.
3399
3400         Mixed up the HasTrivialDestructor/Constructor case for VS2010 and later in the previous patch.
3401
3402         * wtf/TypeTraits.h:
3403
3404 2012-09-29  Sheriff Bot  <webkit.review.bot@gmail.com>
3405
3406         Unreviewed, rolling out r129982.
3407         http://trac.webkit.org/changeset/129982
3408         https://bugs.webkit.org/show_bug.cgi?id=97971
3409
3410         hit assert in fast/overflow/overflow-height-float-not-removed-
3411         crash3.html (Requested by eae on #webkit).
3412
3413         * wtf/Platform.h:
3414
3415 2012-09-29  Emil A Eklund  <eae@chromium.org>
3416
3417         Enable SATURATED_LAYOUT_ARITHMETIC for chromium
3418         https://bugs.webkit.org/show_bug.cgi?id=95053
3419
3420         Reviewed by Abhishek Arya.
3421
3422         Enable the SATURATED_LAYOUT_ARITHMETIC flag for the chromium port.
3423         This changes the behavior of FractionalLayoutUnit to clamp to the
3424         max or min value instead of overflowing.
3425
3426         This may very well impact performance so the current plan is to enable
3427         it for a couple of hours to a day to collect performance data and then
3428         disable it again until we've had a chance to review the perf data.
3429
3430         * wtf/Platform.h:
3431
3432 2012-09-28  Anders Carlsson  <andersca@apple.com>
3433
3434         Remove Java bridge
3435         https://bugs.webkit.org/show_bug.cgi?id=97954
3436
3437         Reviewed by Sam Weinig.
3438
3439         The Java bridge is not used by any port; Mac now has a NPAPI Java plug-in.
3440
3441         * wtf/Platform.h:
3442
3443 2012-09-28  Kai Koehne  <kai.koehne@digia.com>
3444
3445         Disable YARR_JIT for Windows 64 bit
3446         https://bugs.webkit.org/show_bug.cgi?id=97772
3447
3448         Reviewed by Simon Hausmann.
3449
3450         Using YARR_JIT requires ASSEMBLER, which in turn enables the
3451         executable fixed allocator, which is mmap based (not available on
3452         Windows).
3453
3454         * wtf/Platform.h:
3455
3456 2012-09-28  Yury Semikhatsky  <yurys@chromium.org>
3457
3458         Web Inspector: make HashSet memory instrumentation non-intrusive
3459         https://bugs.webkit.org/show_bug.cgi?id=97879
3460
3461         Reviewed by Vsevolod Vlasov.
3462
3463         Removed reportMemoryUsage declarations as a friend of HashSet and HashTable. Also
3464         removed MemoryInstrumentationHashTable which is not needed if we don't have
3465         access to HashSet's guts.
3466
3467         * GNUmakefile.list.am:
3468         * WTF.gypi:
3469         * WTF.pro:
3470         * WTF.vcproj/WTF.vcproj:
3471         * WTF.xcodeproj/project.pbxproj:
3472         * wtf/HashSet.h:
3473         (WTF):
3474         (HashSet):
3475         * wtf/HashTable.h:
3476         (HashTable):
3477         * wtf/MemoryInstrumentation.h:
3478         (WTF::MemoryClassInfo::addPrivateBuffer):
3479         * wtf/MemoryInstrumentationHashSet.h:
3480         (WTF::reportMemoryUsage):
3481         * wtf/MemoryInstrumentationHashTable.h: Removed.
3482
3483 2012-09-27  Anders Carlsson  <andersca@apple.com>
3484
3485         Remove the clang pragmas to disable warnings in Noncopyable.h
3486         https://bugs.webkit.org/show_bug.cgi?id=97826
3487
3488         Reviewed by Beth Dakin.
3489
3490         Warnings about C++11 extensions are already disabled project-wide now so there's no need
3491         to keep these pragmas.
3492
3493         * wtf/Noncopyable.h:
3494
3495 2012-09-26  Mark Hahnenberg  <mhahnenberg@apple.com>
3496
3497         Clean up HasTrivialConstructor/Destructor
3498         https://bugs.webkit.org/show_bug.cgi?id=97754
3499
3500         Reviewed by Darin Adler.
3501
3502         Cleaned up HasTrivialConstructor and HasTrivialDestructor by defining them in terms of 
3503         other type traits we have. Also moved some ifdefs and comments to make things more clear.
3504
3505         * wtf/TypeTraits.h:
3506
3507 2012-09-27  Ilya Tikhonovsky  <loislo@chromium.org>
3508
3509         Web Inspector: NMI: move visited and countObjectSize methods implementation into separate class.
3510         https://bugs.webkit.org/show_bug.cgi?id=97461
3511
3512         Reviewed by Yury Semikhatsky.
3513
3514         These methods and the data collected by them need to be used in the instrumentation code for other components.
3515         As example when we are visiting bitmaps we need to visit platform specific objects.
3516         These objects will be instrumented with help of component's own instrumentation code
3517         but we have to keep the single set of visited objects and the map of counters.
3518
3519         * wtf/MemoryInstrumentation.h:
3520         (MemoryInstrumentationClient):
3521         (WTF::MemoryInstrumentationClient::~MemoryInstrumentationClient):
3522         (WTF):
3523         (WTF::MemoryInstrumentation::MemoryInstrumentation):
3524         (MemoryInstrumentation):
3525         (WTF::MemoryInstrumentation::countObjectSize):
3526         (WTF::MemoryInstrumentation::visited):
3527
3528 2012-09-27  Csaba Osztrogonác  <ossy@webkit.org>, Tor Arne Vestbø  <vestbo@webkit.org>
3529
3530         [Qt] Enable the LLInt on Linux
3531         https://bugs.webkit.org/show_bug.cgi?id=95749
3532
3533         Reviewed by Simon Hausmann.
3534
3535         * wtf/Platform.h:
3536
3537 2012-09-26  Cosmin Truta  <ctruta@rim.com>
3538
3539         [BlackBerry] Allow denormal floats in ARM VFP
3540         https://bugs.webkit.org/show_bug.cgi?id=97008
3541
3542         Reviewed by Filip Pizlo.
3543         Reviewed internally by Yong Li.
3544
3545         Cleared the Flush-to-Zero flag in the ARM FPSCR register on QNX.
3546
3547         * wtf/ThreadingPthreads.cpp:
3548         (WTF::enableIEEE754Denormal): Added.
3549         (WTF::initializeThreading):
3550         (WTF::initializeCurrentThreadInternal):
3551
3552 2012-09-26  Michael Saboff  <msaboff@apple.com>
3553
3554         Update ComplexTextController for 8 bit TextRun changes
3555         https://bugs.webkit.org/show_bug.cgi?id=97378
3556
3557         Reviewed by Geoffrey Garen.
3558
3559         Add a new create method to make a 16 bit string from 8 bit source data.  This is used in 
3560         ComplexTextController when we have LChar* + length text data, but we really want 16 bit
3561         data for the complex text rendering code.
3562
3563         * wtf/text/WTFString.cpp:
3564         (WTF::String::make16BitFrom8BitSource):
3565         (WTF):
3566         * wtf/text/WTFString.h:
3567         (String):
3568
3569 2012-09-26  Ilya Tikhonovsky  <loislo@chromium.org>
3570
3571         Web Inspector: NMI: replace manual JS external resources counting with MemoryInstrumentation
3572         https://bugs.webkit.org/show_bug.cgi?id=97662
3573
3574         Reviewed by Yury Semikhatsky.
3575
3576         Old schema uses sizeInBytes method on StringImpl. This method works incorrect for substrings.
3577         Also we'd like to know exact pointers to strings and buffers for verification purposes.
3578
3579         * GNUmakefile.list.am:
3580         * WTF.gypi:
3581         * WTF.pro:
3582         * WTF.vcproj/WTF.vcproj:
3583         * WTF.xcodeproj/project.pbxproj:
3584         * wtf/MemoryInstrumentationArrayBufferView.h:
3585         (WTF):
3586         (WTF::reportMemoryUsage):
3587
3588 2012-09-25  Ilya Tikhonovsky  <loislo@chromium.org>
3589
3590         Web Inspector: extract HashSet instrumentation from core NMI code and put it into MemoryInstrumentationHashSet.h
3591         https://bugs.webkit.org/show_bug.cgi?id=97198
3592
3593         Reviewed by Yury Semikhatsky.
3594
3595         Current implementation has overloads for HashSet.
3596         This prevents us from instrumenting complex cases like Vector<HashSet<...> >.
3597
3598         * GNUmakefile.list.am:
3599         * WTF.gypi:
3600         * WTF.pro:
3601         * WTF.vcproj/WTF.vcproj:
3602         * WTF.xcodeproj/project.pbxproj:
3603         * wtf/HashSet.h:
3604         (WTF):
3605         (HashSet):
3606         * wtf/HashTable.h:
3607         (WTF):
3608         (HashTable):
3609         * wtf/MemoryInstrumentation.h:
3610         (WTF::MemoryClassInfo::addCollectionElements):
3611         (WTF::MemoryClassInfo::addHashCountedSet):
3612         * wtf/MemoryInstrumentationHashSet.h: Added.
3613         (WTF):
3614         (WTF::reportMemoryUsage):
3615         * wtf/MemoryInstrumentationHashTable.h: Added.
3616         (WTF):
3617         (WTF::reportMemoryUsage):
3618
3619 2012-09-26  Yury Semikhatsky  <yurys@chromium.org>
3620
3621         Web Inspector: compare objects counted by the memory instrumentation with those allocated in the heap
3622         https://bugs.webkit.org/show_bug.cgi?id=97641
3623
3624         Reviewed by Pavel Feldman.
3625
3626         Added a method for checking if reported object was actually allocated in the heap.
3627
3628         * wtf/MemoryInstrumentation.h:
3629         (MemoryInstrumentation):
3630         (WTF::MemoryInstrumentation::addObjectImpl):
3631
3632 2012-09-26  Gavin Barraclough  <barraclough@apple.com>
3633
3634         String.localeCompare should normalize input
3635         https://bugs.webkit.org/show_bug.cgi?id=97639
3636
3637         Reviewed by Filip Pizlo.
3638
3639         From the spec: "It is strongly recommended that this function treat Strings that are
3640         canonically equivalent according to the Unicode standard as identical (in other words,
3641         compare the Strings as if they had both been converted to Normalised Form C or D first).
3642         It is also recommended that this function not honour Unicode compatibility equivalences
3643         or decompositions."
3644
3645         * wtf/unicode/icu/CollatorICU.cpp:
3646         (WTF::Collator::createCollator):
3647             - Enable normalization.
3648
3649 2012-09-25  Cosmin Truta  <ctruta@rim.com>
3650
3651         [BlackBerry] Enable LLInt
3652         https://bugs.webkit.org/show_bug.cgi?id=97604
3653
3654         Reviewed by Yong Li.
3655
3656         Set the prefix of LOCAL_LABEL_STRING to ".L" on QNX.
3657
3658         * wtf/InlineASM.h:
3659
3660 2012-09-25  Patrick Gansterer  <paroga@webkit.org>
3661
3662         Do not enable DFG JIT for COMPILER(MSVC).
3663
3664         The current code does not support MSVC inline assembler, so disable it for now.
3665
3666         * wtf/Platform.h:
3667
3668 2012-09-25  Pratik Solanki  <psolanki@apple.com>
3669
3670         Remove HAVE_SBRK since we never set use_sbrk to true
3671         https://bugs.webkit.org/show_bug.cgi?id=97525
3672         <rdar://problem/12363601>
3673
3674         Reviewed by Geoffrey Garen.
3675
3676         The code under HAVE(SBRK) has not been used since 2005. We use mmap not sbrk for FastMalloc
3677         not sbrk. We can just remove the define and move all of this code inside #ifndef
3678         WTF_CHANGES.
3679
3680         * wtf/Platform.h:
3681         * wtf/TCSystemAlloc.cpp:
3682         (TCMalloc_SystemAlloc):
3683
3684 2012-09-25  Mark Lam  <mark.lam@apple.com>
3685
3686         #undef some symbols before redefining them.
3687         https://bugs.webkit.org/show_bug.cgi?id=97568.
3688
3689         Reviewed by Michael Saboff.
3690
3691         * wtf/Platform.h:
3692
3693 2012-09-21  Ilya Tikhonovsky  <loislo@chromium.org>
3694
3695         Web Inspector: extract Vector instrumentation from core NMI code into MemoryInstrumentationVector.h header.
3696         https://bugs.webkit.org/show_bug.cgi?id=96650
3697
3698         Reviewed by Vsevolod Vlasov.
3699
3700         Added reportMemoryUsage free template function with default body to core NMI code
3701         and add custom version of reportMemoryUsage function for Vectors.
3702
3703         * GNUmakefile.list.am:
3704         * WTF.gypi:
3705         * WTF.pro:
3706         * WTF.vcproj/WTF.vcproj:
3707         * WTF.xcodeproj/project.pbxproj:
3708         * wtf/MemoryInstrumentation.h:
3709         (WTF):
3710         (MemoryInstrumentation):
3711         (WTF::MemoryInstrumentation::addObjectImpl):
3712         * wtf/MemoryInstrumentationVector.h: Added.
3713         (WTF):
3714         (WTF::instrumentVectorValues):
3715         (WTF::reportMemoryUsage):
3716
3717 2012-09-24  Mark Lam  <mark.lam@apple.com>
3718
3719         Deleting the classic interpreter and cleaning up some build options.
3720         https://bugs.webkit.org/show_bug.cgi?id=96969.
3721
3722         Reviewed by Geoffrey Garen.
3723
3724         * wtf/OSAllocatorPosix.cpp:
3725         (WTF::OSAllocator::reserveAndCommit):
3726         * wtf/Platform.h:
3727
3728 2012-09-24  Patrick Gansterer  <paroga@webkit.org>
3729
3730         Remove String::operator+=()
3731         https://bugs.webkit.org/show_bug.cgi?id=96172
3732
3733         Reviewed by Benjamin Poulain.
3734
3735         * wtf/Platform.h:
3736         * wtf/text/WTFString.h:
3737
3738 2012-09-24  Benjamin Poulain  <benjamin@webkit.org>
3739
3740         Add support for query encoding to WTFURL
3741         https://bugs.webkit.org/show_bug.cgi?id=97422
3742
3743         Reviewed by Adam Barth.
3744
3745         Expose character conversion through the new abstract class URLQueryCharsetConverter.
3746         URLQueryCharsetConverter is implemented by WebCore to expose the TextEncoding classes.
3747
3748         Unfortunatelly that forces us to bring over URLBuffer in the public API. We may be able
3749         to mitigate that later when moving WTFURL to more templates.
3750
3751         The change fixes 2 of the URL layout tests.
3752
3753         * WTF.xcodeproj/project.pbxproj:
3754         * wtf/url/api/ParsedURL.cpp:
3755         (WTF::ParsedURL::ParsedURL):
3756         * wtf/url/api/ParsedURL.h:
3757         (ParsedURL):
3758         ParsedURL was using the same constructor for ParsedURLString, and URL without a base.
3759         That was a mistake on my part, I did not intend that, fixed it now :)
3760
3761         * wtf/url/api/URLBuffer.h: Renamed from Source/WTF/wtf/url/src/URLBuffer.h.
3762         (URLBuffer):
3763         (WTF::URLBuffer::URLBuffer):
3764         (WTF::URLBuffer::~URLBuffer):
3765         (WTF::URLBuffer::at):
3766         (WTF::URLBuffer::set):
3767         (WTF::URLBuffer::capacity):
3768         (WTF::URLBuffer::length):
3769         (WTF::URLBuffer::data):
3770         (WTF::URLBuffer::setLength):
3771         (WTF::URLBuffer::append):
3772         (WTF::URLBuffer::grow):
3773         * wtf/url/api/URLQueryCharsetConverter.h: Added.
3774         (URLQueryCharsetConverter):
3775         (WTF::URLQueryCharsetConverter::URLQueryCharsetConverter):
3776         (WTF::URLQueryCharsetConverter::~URLQueryCharsetConverter):
3777         * wtf/url/src/URLCanon.h:
3778         (URLCanonicalizer):
3779         * wtf/url/src/URLCanonFilesystemurl.cpp:
3780         (WTF::URLCanonicalizer::canonicalizeFileSystemURL):
3781         (WTF::URLCanonicalizer::ReplaceFileSystemURL):
3782         * wtf/url/src/URLCanonFileurl.cpp:
3783         (WTF::URLCanonicalizer::CanonicalizeFileURL):
3784         (WTF::URLCanonicalizer::ReplaceFileURL):
3785         * wtf/url/src/URLCanonInternal.h:
3786         (URLCanonicalizer):
3787         * wtf/url/src/URLCanonQuery.cpp:
3788         (WTF::URLCanonicalizer::CanonicalizeQuery):
3789         (WTF::URLCanonicalizer::ConvertUTF16ToQueryEncoding):
3790         * wtf/url/src/URLCanonRelative.cpp:
3791         (WTF::URLCanonicalizer::resolveRelativeURL):
3792         * wtf/url/src/URLCanonStdURL.cpp:
3793         (WTF::URLCanonicalizer::CanonicalizeStandardURL):
3794         (WTF::URLCanonicalizer::ReplaceStandardURL):
3795         * wtf/url/src/URLUtil.cpp:
3796         (URLUtilities):
3797         (WTF::URLUtilities::canonicalize):
3798         (WTF::URLUtilities::resolveRelative):
3799         (WTF::URLUtilities::ReplaceComponents):
3800         * wtf/url/src/URLUtil.h:
3801         (URLUtilities):
3802
3803 2012-09-24  Benjamin Poulain  <benjamin@webkit.org>
3804
3805         Integrate most of GoogleURL in WTFURL
3806         https://bugs.webkit.org/show_bug.cgi?id=97405
3807
3808         Reviewed by Adam Barth.
3809
3810         This patch brings almost all of the implementatation of Google-URL in WTFURL
3811         with only minor changes.
3812
3813         The changes from the original code are mostly:
3814         -Code cleaning.
3815         -Replace url_parse::Parsed by URLSegments.
3816         -Replace url_parse::Component by URLComponent
3817         -More code cleaning.
3818         -Adopt URLBuffer and RawURLBuffer instead of the CanonOutputT and RawCanonOutputT.
3819         -Use URLCharacterTypes instead of the litany of characters functions.
3820         -Some more code cleaning.
3821         -Fix the style to match WebKit as much as possible.
3822         -Rename the files to match WebKit style.
3823
3824         * WTF.xcodeproj/project.pbxproj:
3825         * wtf/url/api/ParsedURL.cpp:
3826         (WTF::ParsedURL::ParsedURL):
3827         (WTF::ParsedURL::segment):
3828         * wtf/url/api/ParsedURL.h:
3829         (WTF::ParsedURL::isValid):
3830         * wtf/url/src/RawURLBuffer.h:
3831         * wtf/url/src/URLCanon.h: Added.
3832         (URLCanonicalizer):
3833         (CharsetConverter):
3834         (WTF::URLCanonicalizer::CharsetConverter::CharsetConverter):
3835         (WTF::URLCanonicalizer::CharsetConverter::~CharsetConverter):
3836         (CanonHostInfo):
3837         (WTF::URLCanonicalizer::CanonHostInfo::CanonHostInfo):
3838         (WTF::URLCanonicalizer::CanonHostInfo::IsIPAddress):
3839         (WTF::URLCanonicalizer::CanonHostInfo::AddressLength):
3840         (URLComponentSource):
3841         (WTF::URLCanonicalizer::URLComponentSource::URLComponentSource):
3842         (Replacements):
3843         (WTF::URLCanonicalizer::Replacements::Replacements):
3844         (WTF::URLCanonicalizer::Replacements::SetScheme):
3845         (WTF::URLCanonicalizer::Replacements::IsSchemeOverridden):
3846         (WTF::URLCanonicalizer::Replacements::SetUsername):
3847         (WTF::URLCanonicalizer::Replacements::ClearUsername):
3848         (WTF::URLCanonicalizer::Replacements::IsUsernameOverridden):
3849         (WTF::URLCanonicalizer::Replacements::SetPassword):
3850         (WTF::URLCanonicalizer::Replacements::ClearPassword):
3851         (WTF::URLCanonicalizer::Replacements::IsPasswordOverridden):
3852         (WTF::URLCanonicalizer::Replacements::SetHost):
3853         (WTF::URLCanonicalizer::Replacements::ClearHost):
3854         (WTF::URLCanonicalizer::Replacements::IsHostOverridden):
3855         (WTF::URLCanonicalizer::Replacements::SetPort):
3856         (WTF::URLCanonicalizer::Replacements::ClearPort):
3857         (WTF::URLCanonicalizer::Replacements::IsPortOverridden):
3858         (WTF::URLCanonicalizer::Replacements::SetPath):
3859         (WTF::URLCanonicalizer::Replacements::ClearPath):
3860         (WTF::URLCanonicalizer::Replacements::IsPathOverridden):
3861         (WTF::URLCanonicalizer::Replacements::SetQuery):
3862         (WTF::URLCanonicalizer::Replacements::ClearQuery):
3863         (WTF::URLCanonicalizer::Replacements::IsQueryOverridden):
3864         (WTF::URLCanonicalizer::Replacements::SetRef):
3865         (WTF::URLCanonicalizer::Replacements::ClearRef):
3866         (WTF::URLCanonicalizer::Replacements::IsRefOverridden):
3867         (WTF::URLCanonicalizer::Replacements::sources):
3868         (WTF::URLCanonicalizer::Replacements::components):
3869         (WTF::URLCanonicalizer::Replacements::Placeholder):
3870         * wtf/url/src/URLCanonEtc.cpp: Added.
3871         (WTF::URLCanonicalizer::removeURLWhitespace):
3872         (URLCanonicalizer):
3873         (WTF::URLCanonicalizer::canonicalSchemeChar):
3874         (WTF::URLCanonicalizer::CanonicalizeScheme):
3875         (WTF::URLCanonicalizer::CanonicalizeUserInfo):
3876         (WTF::URLCanonicalizer::CanonicalizePort):
3877         (WTF::URLCanonicalizer::CanonicalizeRef):
3878         * wtf/url/src/URLCanonFilesystemurl.cpp: Added.
3879         (WTF::URLCanonicalizer::CanonicalizeFileSystemURL):
3880         (URLCanonicalizer):
3881         (WTF::URLCanonicalizer::ReplaceFileSystemURL):
3882         * wtf/url/src/URLCanonFileurl.cpp: Added.
3883         (WTF::URLCanonicalizer::CanonicalizeFileURL):
3884         (URLCanonicalizer):
3885         (WTF::URLCanonicalizer::FileCanonicalizePath):
3886         (WTF::URLCanonicalizer::ReplaceFileURL):
3887         * wtf/url/src/URLCanonHost.cpp: Added.
3888         (WTF::URLCanonicalizer::CanonicalizeHost):
3889         (URLCanonicalizer):
3890         (WTF::URLCanonicalizer::CanonicalizeHostVerbose):
3891         * wtf/url/src/URLCanonICU.cpp: Added.
3892         (WTF::URLCanonicalizer::IDNToASCII):
3893         (URLCanonicalizer):
3894         (WTF::URLCanonicalizer::readUTFChar):
3895         * wtf/url/src/URLCanonIP.cpp: Added.
3896         (WTF::URLCanonicalizer::CanonicalizeIPAddress):
3897         (URLCanonicalizer):
3898         * wtf/url/src/URLCanonInternal.cpp: Added.
3899         (URLCanonicalizer):
3900         (WTF::URLCanonicalizer::AppendInvalidNarrowString):
3901         (WTF::URLCanonicalizer::ConvertUTF16ToUTF8):
3902         (WTF::URLCanonicalizer::ConvertUTF8ToUTF16):
3903         (WTF::URLCanonicalizer::SetupOverrideComponents):
3904         (WTF::URLCanonicalizer::SetupUTF16OverrideComponents):
3905         (WTF::URLCanonicalizer::_itoa_s):
3906         (WTF::URLCanonicalizer::_itow_s):
3907         * wtf/url/src/URLCanonInternal.h: Added.
3908         (URLCanonicalizer):
3909         (WTF::URLCanonicalizer::hexCharToValue):
3910         (WTF::URLCanonicalizer::isDot):
3911         (WTF::URLCanonicalizer::appendURLEscapedCharacter):
3912         (WTF::URLCanonicalizer::doAppendUTF8):
3913         (WTF::URLCanonicalizer::AppendCharToOutput):
3914         (WTF::URLCanonicalizer::AppendUTF8Value):
3915         (WTF::URLCanonicalizer::AppendUTF8EscapedValue):
3916         (WTF::URLCanonicalizer::AppendUTF16Value):
3917         (WTF::URLCanonicalizer::AppendUTF8EscapedChar):
3918         (WTF::URLCanonicalizer::Is8BitChar):
3919         (WTF::URLCanonicalizer::DecodeEscaped):
3920         (WTF::URLCanonicalizer::_itoa_s):
3921         (WTF::URLCanonicalizer::_itow_s):
3922         (WTF::URLCanonicalizer::_strtoui64):
3923         * wtf/url/src/URLCanonMailto.cpp: Added.
3924         (WTF::URLCanonicalizer::CanonicalizeMailtoURL):
3925         (URLCanonicalizer):
3926         (WTF::URLCanonicalizer::ReplaceMailtoURL):
3927         * wtf/url/src/URLCanonPath.cpp: Added.
3928         (WTF::URLCanonicalizer::CanonicalizePath):
3929         (URLCanonicalizer):
3930         (WTF::URLCanonicalizer::CanonicalizePartialPath):
3931         * wtf/url/src/URLCanonPathurl.cpp: Added.
3932         (WTF::URLCanonicalizer::canonicalizePathURL):
3933         (URLCanonicalizer):
3934         (WTF::URLCanonicalizer::ReplacePathURL):
3935         * wtf/url/src/URLCanonQuery.cpp: Added.
3936         (WTF::URLCanonicalizer::CanonicalizeQuery):
3937         (URLCanonicalizer):
3938         (WTF::URLCanonicalizer::ConvertUTF16ToQueryEncoding):
3939         * wtf/url/src/URLCanonRelative.cpp: Added.
3940         (WTF::URLCanonicalizer::isRelativeURL):
3941         (URLCanonicalizer):
3942         (WTF::URLCanonicalizer::resolveRelativeURL):
3943         * wtf/url/src/URLCanonStdURL.cpp: Added.
3944         (WTF::URLCanonicalizer::DefaultPortForScheme):
3945         (URLCanonicalizer):
3946         (WTF::URLCanonicalizer::CanonicalizeStandardURL):
3947         (WTF::URLCanonicalizer::ReplaceStandardURL):
3948         * wtf/url/src/URLCharacterTypes.cpp:
3949         * wtf/url/src/URLCharacterTypes.h:
3950         (WTF::URLCharacterTypes::isComponentChar):
3951         (WTF::URLCharacterTypes::isHexChar):
3952         (WTF::URLCharacterTypes::isIPv4Char):
3953         (WTF::URLCharacterTypes::isQueryChar):
3954         (WTF::URLCharacterTypes::isCharacterOfType):
3955         (URLCharacterTypes):
3956         * wtf/url/src/URLEscape.cpp: Removed.
3957         * wtf/url/src/URLFile.h: Added.
3958         (URLParser):
3959         (WTF::URLParser::isWindowsDriveSeparator):
3960         (WTF::URLParser::isWindowsDriveLetter):
3961         (WTF::URLParser::findNextSlash):
3962         (WTF::URLParser::doesBeginWindowsDriveSpec):
3963         (WTF::URLParser::doesBeginUNCPath):
3964         * wtf/url/src/URLParse.cpp: Added.
3965         (WTF::URLParser::ExtractScheme):
3966         (URLParser):
3967         (WTF::URLParser::IsAuthorityTerminator):
3968         (WTF::URLParser::ExtractFileName):
3969         (WTF::URLParser::ExtractQueryKeyValue):
3970         (WTF::URLParser::ParseAuthority):
3971         (WTF::URLParser::ParsePort):
3972         (WTF::URLParser::ParseStandardURL):
3973         (WTF::URLParser::ParsePathURL):
3974         (WTF::URLParser::ParseFileSystemURL):
3975         (WTF::URLParser::ParseMailtoURL):
3976         (WTF::URLParser::parsePathInternal):
3977         (WTF::URLParser::ParseAfterScheme):
3978         * wtf/url/src/URLParse.h: Added.
3979         (URLParser):
3980         * wtf/url/src/URLParseFile.cpp: Added.
3981         (WTF):
3982         (WTF::URLParser::ParseFileURL):
3983         (URLParser):
3984         * wtf/url/src/URLParseInternal.h: Added.
3985         (URLParser):
3986         (WTF::URLParser::isURLSlash):
3987         (WTF::URLParser::shouldTrimFromURL):
3988         (WTF::URLParser::trimURL):
3989         (WTF::URLParser::countConsecutiveSlashes):
3990         * wtf/url/src/URLParser.h: Removed.
3991         * wtf/url/src/URLQueryCanonicalizer.h: Removed.
3992         * wtf/url/src/URLSegments.cpp:
3993         * wtf/url/src/URLSegments.h:
3994         (WTF::URLSegments::URLSegments):
3995         (URLSegments):
3996         (WTF::URLSegments::operator=):
3997         (WTF::URLSegments::innerURLSegments):
3998         (WTF::URLSegments::setInnerURLSegments):
3999         (WTF::URLSegments::clearInnerURLSegments):
4000         * wtf/url/src/URLUtil.cpp: Added.
4001         (URLUtilities):
4002         (WTF::URLUtilities::IsStandard):
4003         (WTF::URLUtilities::FindAndCompareScheme):
4004         (WTF::URLUtilities::Canonicalize):
4005         (WTF::URLUtilities::resolveRelative):
4006         (WTF::URLUtilities::ReplaceComponents):
4007         (WTF::URLUtilities::LowerCaseEqualsASCII):
4008         (WTF::URLUtilities::DecodeURLEscapeSequences):
4009         (WTF::URLUtilities::EncodeURIComponent):
4010         (WTF::URLUtilities::CompareSchemeComponent):
4011         * wtf/url/src/URLUtil.h: Added.
4012         (URLUtilities):
4013         * wtf/url/src/URLUtilInternal.h: Renamed from Source/WTF/wtf/url/src/URLEscape.h.
4014         (URLUtilities):
4015
4016 2012-09-24  Joone Hur  <joone.hur@intel.com>
4017
4018         [GTK] Implement GraphicsLayer using Clutter
4019         https://bugs.webkit.org/show_bug.cgi?id=73767
4020
4021         Reviewed by Martin Robinson.
4022
4023         Add ClutterActor and GraphicsLayerActor to GTypedefs.h.
4024
4025         * wtf/gobject/GTypedefs.h:
4026
4027 2012-09-23  Byungwoo Lee  <bw80.lee@gmail.com>
4028
4029         Fix build warnings : -Wunused-parameter, -Wparentheses, -Wuninitialized.
4030         https://bugs.webkit.org/show_bug.cgi?id=97306
4031
4032         Reviewed by Benjamin Poulain.
4033
4034         Fix build warning about -Wunused-parameter on FastMalloc.cpp,
4035         OSAllocatorPosix.cpp by using UNUSED_PARAM() macro.
4036         Fix header including order of FastMalloc.cpp.
4037
4038         * wtf/FastMalloc.cpp:
4039         (WTF::fastMallocSize):
4040         * wtf/OSAllocatorPosix.cpp:
4041         (WTF::OSAllocator::reserveAndCommit):
4042
4043 2012-09-22  Sam Weinig  <sam@webkit.org>
4044
4045         Add explicit conversion operator to RetainPtr for easier use in C++11 environments
4046         https://bugs.webkit.org/show_bug.cgi?id=97403
4047
4048         Reviewed by Dan Bernstein.
4049
4050         * wtf/Compiler.h:
4051         Add support for COMPILER_SUPPORTS(CXX_EXPLICIT_CONVERSIONS)
4052
4053         * wtf/RetainPtr.h:
4054         (RetainPtr):
4055         (WTF::RetainPtr::get):
4056         (WTF::RetainPtr::operator PtrType):
4057         Add the explicit conversion operator and group all the underlying
4058         pointer accessors together.
4059
4060 2012-09-21  Simon Hausmann  <simon.hausmann@digia.com>
4061
4062         [Qt] Error out early if we don't have ICU available
4063
4064         Reviewed by Tor Arne Vestbø.
4065
4066         * WTF.pri:
4067
4068 2012-09-20  Patrick Gansterer  <paroga@webkit.org>
4069
4070         Add String::numberToStringFixedWidth()
4071         https://bugs.webkit.org/show_bug.cgi?id=96330
4072
4073         Reviewed by Benjamin Poulain.
4074
4075         Add this new function as replacement for the ShouldRoundDecimalPlaces flag of String::number()
4076         and remove the now unnecessary branch in String::number() for the old flags.
4077
4078         * wtf/text/WTFString.cpp:
4079         (WTF::String::number):
4080         (WTF::String::numberToStringFixedWidth):
4081         * wtf/text/WTFString.h:
4082
4083 2012-09-19  Geoffrey Garen  <ggaren@apple.com>
4084
4085         OSR exit sometimes neglects to create the arguments object
4086         https://bugs.webkit.org/show_bug.cgi?id=97162
4087
4088         Reviewed by Filip Pizlo.
4089
4090         * wtf/HashTraits.h:
4091         (NullableHashTraits):
4092         (WTF::NullableHashTraits::emptyValue):
4093         (WTF):
4094
4095 2012-09-18  Glenn Adams  <glenn@skynav.com>
4096
4097         WTFString::show doesn't dump non-ASCII characters in a readable manner
4098         https://bugs.webkit.org/show_bug.cgi?id=96749
4099
4100         Reviewed by Benjamin Poulain.
4101
4102         Dump non-ASCII characters in a useful form for debugging.
4103
4104         * wtf/text/WTFString.cpp:
4105         (asciiDebug):
4106         Dump non-ASCII characters (i.e., UTF-16 code elements) as well as non-printable ASCII characters
4107         using \uXXXX format. Also escape \ as \\ in order to remove ambiguity.
4108
4109 2012-09-18  Mark Hahnenberg  <mhahnenberg@apple.com>
4110
4111         Use WTF::HasTrivialDestructor instead of compiler-specific versions in JSC::NeedsDestructor
4112         https://bugs.webkit.org/show_bug.cgi?id=96980
4113
4114         Reviewed by Benjamin Poulain.
4115
4116         * wtf/TypeTraits.h:
4117         (WTF):
4118
4119 2012-09-17  Glenn Adams  <glenn@skynav.com>
4120
4121         Including HexNumber.h fails build if hexDigitsForMode is not referenced
4122         https://bugs.webkit.org/show_bug.cgi?id=96873
4123
4124         Reviewed by Benjamin Poulain.
4125
4126         Ensure release build is possible when hexDigitsForMode is not referenced by
4127         template expansion.
4128
4129         * wtf/HexNumber.h:
4130         (WTF::Internal::hexDigitsForMode):
4131         Change hexDigitsForMode to inline (rather than static). Make string literals
4132         {lower,upper}HexDigits non-local and non-static, but const, to which the linker
4133         should merge references in the RO data segment.
4134
4135 2012-09-17  Filip Pizlo  <fpizlo@apple.com>
4136
4137         The ThreadRescrictionVerifier should be more forcibly disabled on systems that use threads
4138         https://bugs.webkit.org/show_bug.cgi?id=96957
4139
4140         Reviewed by Oliver Hunt.
4141
4142         * wtf/ThreadRestrictionVerifier.h:
4143         (WTF):
4144         (WTF::ThreadRestrictionVerifier::ThreadRestrictionVerifier):
4145         (ThreadRestrictionVerifier):
4146         (WTF::ThreadRestrictionVerifier::setMutexMode):
4147         (WTF::ThreadRestrictionVerifier::setDispatchQueueMode):
4148         (WTF::ThreadRestrictionVerifier::turnOffVerification):
4149         (WTF::ThreadRestrictionVerifier::setShared):
4150         (WTF::ThreadRestrictionVerifier::isSafeToUse):
4151
4152 2012-09-17  Sheriff Bot  <webkit.review.bot@gmail.com>
4153
4154         Unreviewed, rolling out r128796.
4155         http://trac.webkit.org/changeset/128796
4156         https://bugs.webkit.org/show_bug.cgi?id=96966
4157
4158         It broke everything (Requested by Ossy_NIGHT on #webkit).
4159
4160         * wtf/OSAllocatorPosix.cpp:
4161         (WTF::OSAllocator::reserveUncommitted):
4162         (WTF::OSAllocator::reserveAndCommit):
4163         (WTF::OSAllocator::commit):
4164         (WTF::OSAllocator::decommit):
4165
4166 2012-09-17  Uli Schlachter  <psychon@znc.in>
4167
4168         Implement uncommitted memory for Linux.
4169         https://bugs.webkit.org/show_bug.cgi?id=65766
4170
4171         Reviewed by Gavin Barraclough.
4172
4173         The old approach used MAP_NORESERVE to allocate address space without
4174         committing it. However, that flag gets ignored if
4175         /proc/sys/vm/overcommit_memory is set to 2. The new approach uses a
4176         mapping with PROT_NONE. This works because mappings which aren't even
4177         readable don't get accounted as committed on Linux.
4178
4179         * wtf/OSAllocatorPosix.cpp:
4180         (WTF::OSAllocator::reserveUncommitted):
4181         (WTF::OSAllocator::reserveAndCommit):
4182         (WTF::OSAllocator::commit):
4183         (WTF::OSAllocator::decommit):
4184
4185 2012-09-17  Filip Pizlo  <fpizlo@apple.com>
4186
4187         Array profiling has convergence issues
4188         https://bugs.webkit.org/show_bug.cgi?id=96891
4189
4190         Reviewed by Gavin Barraclough.
4191
4192         Added functions for testing if something is a power of 2.
4193
4194         * wtf/MathExtras.h:
4195         (hasZeroOrOneBitsSet):
4196         (hasTwoOrMoreBitsSet):
4197
4198 2012-09-17  Ilya Tikhonovsky  <loislo@chromium.org>
4199
4200         Web Inspector: NMI: now when we can detect instrumented classes we can
4201         remove addInstrumentedMember and use addMember for everything.
4202         https://bugs.webkit.org/show_bug.cgi?id=96913
4203
4204         Reviewed by Yury Semikhatsky.
4205
4206         * wtf/MemoryInstrumentation.h:
4207         (WTF::MemoryInstrumentation::addRootObject):
4208         (WTF::MemoryInstrumentation::addObject):
4209         (WTF::MemoryInstrumentation::addObjectImpl):
4210         (WTF):
4211         (WTF::MemoryInstrumentation::addInstrumentedCollection):
4212         (WTF::MemoryInstrumentation::addInstrumentedMapEntries):
4213         (WTF::MemoryInstrumentation::addInstrumentedMapValues):
4214         * wtf/text/AtomicString.cpp:
4215         (WTF::AtomicString::reportMemoryUsage):
4216         * wtf/text/CString.h:
4217         (WTF::CString::reportMemoryUsage):
4218         * wtf/text/StringImpl.cpp:
4219         (WTF::StringImpl::reportMemoryUsage):
4220         * wtf/text/WTFString.cpp:
4221         (WTF::String::reportMemoryUsage):
4222         * wtf/url/api/ParsedURL.cpp:
4223         (WTF::ParsedURL::reportMemoryUsage):
4224         * wtf/url/api/URLString.cpp:
4225         (WTF::URLString::reportMemoryUsage):
4226
4227 2012-09-17  Ilya Tikhonovsky  <loislo@chromium.org>
4228
4229         Unreviewed compilation fix.
4230
4231         * wtf/MemoryInstrumentation.h:
4232         (WTF::MemoryInstrumentation::reportObjectMemoryUsage):
4233
4234 2012-09-15  Yury Semikhatsky  <yurys@chromium.org>
4235
4236         Web Inspector: automatically detect if class has reportMemoryUsage method
4237         https://bugs.webkit.org/show_bug.cgi?id=96756
4238
4239         Reviewed by Alexander Pavlov.
4240
4241         Implemeted automatic selector of the memory reporting method. If
4242         an object has reportMemoryUsage method then call it. Otherwise
4243         count only object's self size. As the next step we will delete
4244         addInstrumentedMember and addInstrumentedObjectImpl and will
4245         have only addMember and addObjectImpl that would automatically
4246         call reportMemoryUsage if it is present.
4247
4248         * wtf/MemoryInstrumentation.h:
4249         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
4250         (MemoryInstrumentation):
4251         (WTF::MemoryInstrumentation::reportObjectMemoryUsage):
4252         (WTF::MemoryInstrumentation::addInstrumentedObjectImpl):
4253         (WTF::MemoryInstrumentation::addObjectImpl):
4254         (WTF::::process):
4255
4256 2012-09-14  Yury Semikhatsky  <yurys@chromium.org>
4257
4258         Web Inspector: OwnPtr and RefPtr reported by pointer can be double counted by the memory instrumentation
4259         https://bugs.webkit.org/show_bug.cgi?id=96791
4260
4261         Reviewed by Alexander Pavlov.
4262
4263         * wtf/MemoryInstrumentation.h:
4264         (WTF::MemoryInstrumentation::addObjectImpl): check if the smart pointer has already
4265         been visited before counting its size.
4266
4267 2012-09-15  Benjamin Poulain  <benjamin@webkit.org>
4268
4269         Fix the build with WTF URL
4270         https://bugs.webkit.org/show_bug.cgi?id=96875
4271
4272         Reviewed by Adam Barth.
4273
4274         Add support for MemoryInstrumentation to WTF's URL classes.
4275
4276         * wtf/url/api/ParsedURL.cpp:
4277         (WTF::ParsedURL::reportMemoryUsage):
4278         * wtf/url/api/ParsedURL.h:
4279         (ParsedURL):
4280         * wtf/url/api/URLString.cpp:
4281         (WTF::URLString::reportMemoryUsage):
4282         * wtf/url/api/URLString.h:
4283         (URLString):
4284
4285 2012-09-15  Raphael Kubo da Costa  <rakuco@FreeBSD.org>