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