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