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