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