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