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