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