fbe3f600f1badb84c9913508f910e279415b1a50
[WebKit-https.git] / Source / WTF / ChangeLog
1 2012-09-11  Michael Saboff  <msaboff@apple.com>
2
3         Build fixed for http://trac.webkit.org/changeset/128243
4
5         Rubber stamped by Stephanie Lewis.
6
7         Added missing include file needed by 96422.
8
9         * icu/unicode/unorm2.h: Added.
10
11 2012-09-11  Michael Saboff  <msaboff@apple.com>
12
13         Build fixed for http://trac.webkit.org/changeset/128243
14
15         Rubber stamped by Stephanie Lewis.
16
17         Added missing include file needed by 96422.
18
19         * icu/unicode/ptypes.h: Added.
20
21 2012-09-11  Michael Saboff  <msaboff@apple.com>
22
23         Update ICU header files to more recent version
24         https://bugs.webkit.org/show_bug.cgi?id=96422
25
26         Reviewed by Geoff Garen.
27
28         Updated ICU header files to 4.6.1.  Modifications made as part of the merge are:
29         platform.h - Changed ifndef / define / endif for U_HAVE_UINT8_T, U_HAVE_UINT16_T, U_HAVE_UINT32_T,
30             U_HAVE_UINT64_T, U_IS_BIG_ENDIAN and U_ENABLE_TRACING to match the existing platform.h
31         putil.h (line 132) - Changes defined(U_WINDOWS) to defined(WIN32) || defined(OS2) to match existing putil.h
32         ustring.h (line 945) - Wrapped macro argument cs with { (const UChar *)cs } to match existing ustring.h
33         utypes.h (line 545) - Changed defined(U_WINDOWS) to defined(WIN32) to match existing utypes.h
34
35         * icu/unicode/localpointer.h: Added.
36         * icu/unicode/parseerr.h:
37         * icu/unicode/platform.h:
38         * icu/unicode/putil.h:
39         * icu/unicode/uchar.h:
40         * icu/unicode/ucnv.h:
41         * icu/unicode/ucnv_err.h:
42         * icu/unicode/ucol.h:
43         * icu/unicode/uconfig.h:
44         * icu/unicode/uenum.h:
45         * icu/unicode/uiter.h:
46         * icu/unicode/uloc.h:
47         * icu/unicode/umachine.h:
48         * icu/unicode/unorm.h:
49         * icu/unicode/urename.h:
50         * icu/unicode/uscript.h:
51         * icu/unicode/uset.h:
52         * icu/unicode/ustring.h:
53         * icu/unicode/utf.h:
54         * icu/unicode/utf16.h:
55         * icu/unicode/utf8.h:
56         * icu/unicode/utypes.h:
57         * icu/unicode/uvernum.h: Added.
58         * icu/unicode/uversion.h:
59
60 2012-09-11  Pratik Solanki  <psolanki@apple.com>
61
62         Add ObjcRuntimeExtras.h to the Xcode project file
63         https://bugs.webkit.org/show_bug.cgi?id=96419
64
65         Reviewed by Alexey Proskuryakov.
66
67         * WTF.xcodeproj/project.pbxproj:
68
69 2012-09-11  Adrienne Walker  <enne@google.com>
70
71         Clang doesn't optimize away undefined OwnPtr copy constructor
72         https://bugs.webkit.org/show_bug.cgi?id=74625
73
74         Reviewed by Anders Carlsson.
75
76         Original patch by Anders Carlsson, with a minor edit.
77
78         The publicly declared-but-not-defined copy constructor is a compiler
79         optimization-dependent landmine. Clang often fails to optimize the use
80         of this function out, leading to internal linkage errors for the missing
81         definition. gcc doesn't have this problem and optimizes that function
82         out, leading to code that inconsistently fails to link across platforms.
83
84         As a partial fix for this problem, on any compiler that supports C++11
85         move semantics, replace the bogus copy constructor with the move
86         constructors.  In the future, if all compilers support this, then the
87         copy constructor can be removed.
88
89         This still leaves other compilers that don't support move semantics
90         like Visual Studio vulnerable to linking inconsistencies.
91
92         * wtf/OwnPtr.h:
93         (OwnPtr):
94         (WTF):
95         (WTF::::OwnPtr):
96         (WTF::=):
97
98 2012-09-11  Raphael Kubo da Costa  <rakuco@webkit.org>
99
100         [EFL] Rewrite the EFL-related Find modules
101         https://bugs.webkit.org/show_bug.cgi?id=95237
102
103         Reviewed by Kenneth Rohde Christiansen.
104
105         * CMakeLists.txt: Stop setting the LINK_FLAGS property.
106         * PlatformEfl.cmake: Add libraries and include directories for
107         each Enlightenment Foundation Library used by the port.
108
109 2012-09-11  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
110
111         [Qt] Add a configure step to the Qt build system
112
113         This allows building the Qt port using just 'qmake WebKit.pro'. Using
114         the build-webkit script is still supported, and will add slightly more
115         logic to the build, such as detecting the need for clean or incremental
116         builds.
117
118         Internally, the build system now uses a new variable, WEBKIT_CONFIG, for
119         all things related to configuring the build, such as use/have/enable flags,
120         and these are translated to defines in default_post. Project files should
121         no longer check contains(DEFINES,...) to detect features, but use the new
122         enable?(), use?(), and have?() functions. The no_webkit1 and no_webkit2
123         options have been translated into WEBKIT_CONFIG options as well, and can
124         be checked using build?().
125
126         Reviewed by Simon Hausmann.
127
128         * WTF.pri:
129         * wtf/Platform.h:
130
131 2012-09-10  Ilya Tikhonovsky  <loislo@chromium.org>
132
133         Web Inspector: NMI: move MemoryInstrumentation.h to wtf
134         https://bugs.webkit.org/show_bug.cgi?id=96356
135
136         Reviewed by Yury Semikhatsky.
137
138         It is necessary step because it helps us to remove dependency between platform and WebCore.
139
140         * GNUmakefile.list.am:
141         * WTF.gypi:
142         * WTF.pro:
143         * WTF.vcproj/WTF.vcproj:
144         * WTF.xcodeproj/project.pbxproj:
145         * wtf/MemoryInstrumentation.h: Renamed from Source/WebCore/dom/MemoryInstrumentation.h.
146         (WebCore):
147         (GenericMemoryTypes):
148         (MemoryInstrumentationTraits):
149         (MemoryInstrumentation):
150         (WebCore::MemoryInstrumentation::~MemoryInstrumentation):
151         (WebCore::MemoryInstrumentation::addRootObject):
152         (InstrumentedPointerBase):
153         (WebCore::MemoryInstrumentation::InstrumentedPointerBase::~InstrumentedPointerBase):
154         (InstrumentedPointer):
155         (WebCore::MemoryInstrumentation::InstrumentedPointer::InstrumentedPointer):
156         (WebCore::MemoryInstrumentation::addObject):
157         (WebCore::MemoryInstrumentation::addInstrumentedObject):
158         (WebCore::MemoryInstrumentation::addRawBuffer):
159         (WebCore::MemoryInstrumentation::OwningTraits::addInstrumentedObject):
160         (WebCore::MemoryInstrumentation::OwningTraits::addObject):
161         (WebCore::MemoryInstrumentationTraits::addInstrumentedObject):
162         (WebCore::MemoryInstrumentationTraits::addObject):
163         (MemoryObjectInfo):
164         (WebCore::MemoryObjectInfo::MemoryObjectInfo):
165         (WebCore::MemoryObjectInfo::objectType):
166         (WebCore::MemoryObjectInfo::objectSize):
167         (WebCore::MemoryObjectInfo::memoryInstrumentation):
168         (WebCore::MemoryObjectInfo::reportObjectInfo):
169         (MemoryClassInfo):
170         (WebCore::MemoryClassInfo::MemoryClassInfo):
171         (WebCore::MemoryClassInfo::addInstrumentedMember):
172         (WebCore::MemoryClassInfo::addMember):
173         (WebCore::MemoryClassInfo::addHashMap):
174         (WebCore::MemoryClassInfo::addHashSet):
175         (WebCore::MemoryClassInfo::addHashCountedSet):
176         (WebCore::MemoryClassInfo::addInstrumentedHashSet):
177         (WebCore::MemoryClassInfo::addInstrumentedVector):
178         (WebCore::MemoryClassInfo::addInstrumentedVectorPtr):
179         (WebCore::MemoryClassInfo::addInstrumentedMapEntries):
180         (WebCore::MemoryClassInfo::addInstrumentedMapValues):
181         (WebCore::MemoryClassInfo::addListHashSet):
182         (WebCore::MemoryClassInfo::addVector):
183         (WebCore::MemoryClassInfo::addVectorPtr):
184         (WebCore::MemoryClassInfo::addRawBuffer):
185         (WebCore::MemoryInstrumentation::addInstrumentedObjectImpl):
186         (WebCore::MemoryInstrumentation::addObjectImpl):
187         (WebCore::MemoryInstrumentation::addHashMap):
188         (WebCore::MemoryInstrumentation::addHashSet):
189         (WebCore::MemoryInstrumentation::addInstrumentedCollection):
190         (WebCore::MemoryInstrumentation::addInstrumentedMapEntries):
191         (WebCore::MemoryInstrumentation::addInstrumentedMapValues):
192         (WebCore::MemoryInstrumentation::addListHashSet):
193         (WebCore::MemoryInstrumentation::addVector):
194         (WebCore::MemoryInstrumentation::calculateContainerSize):
195         (WebCore::::process):
196
197 2012-09-09  Mark Lam  <mark.lam@apple.com>
198
199         Fixed ASSERT() and ASSERT_AT() macros so that they can be used in
200         comma expressions. Also, added UNUSED_LABEL().
201         https://bugs.webkit.org/show_bug.cgi?id=96127.
202
203         Reviewed by Geoffrey Garen.
204
205         * wtf/Assertions.h:
206         * wtf/UnusedParam.h: Added UNUSED_LABEL(). Removed an obsolete comment.
207
208 2012-09-09  Patrick Gansterer  <paroga@webkit.org>
209
210         Add StringBuilder::appendNumber() and use it
211         https://bugs.webkit.org/show_bug.cgi?id=96030
212
213         Reviewed by Eric Seidel.
214
215         Also fix a bunch of append() vs. appendLiteral() issues in the surrounding code.
216
217         * wtf/DateMath.cpp:
218         (WTF::makeRFC2822DateString):
219         * wtf/text/StringBuilder.cpp:
220         (WTF::StringBuilder::appendNumber):
221         * wtf/text/StringBuilder.h:
222         (StringBuilder):
223
224 2012-09-09  Patrick Gansterer  <paroga@webkit.org>
225
226         Make the String initialization on the function side of String::number()
227         https://bugs.webkit.org/show_bug.cgi?id=95940
228
229         Reviewed by Benjamin Poulain.
230
231         Un-Inline String::number() to make the String initialization done on the function side
232         instead of being on the caller side.
233
234         * GNUmakefile.list.am:
235         * WTF.gypi:
236         * WTF.pro:
237         * WTF.vcproj/WTF.vcproj:
238         * WTF.xcodeproj/project.pbxproj:
239         * wtf/CMakeLists.txt:
240         * wtf/text/IntegerToStringConversion.cpp: Removed.
241         * wtf/text/IntegerToStringConversion.h:
242         (WTF::numberToStringImpl):
243         (WTF::numberToStringSigned):
244         (WTF::numberToStringUnsigned):
245         * wtf/text/WTFString.cpp:
246         (WTF::String::number):
247         * wtf/text/WTFString.h:
248
249 2012-09-08  Andreas Kling  <kling@webkit.org>
250
251         Give AtomicString SimpleClassVectorTraits.
252         <http://webkit.org/b/96186>
253
254         Reviewed by Karl Anders Carlsson.
255
256         AtomicString can be initialized/moved/compared with memset/memcpy/memcmp,
257         so add a VectorTraits<AtomicString> to make Vector<AtomicString> a little
258         more efficient.
259
260         * wtf/VectorTraits.h:
261
262 2012-09-07  Sheriff Bot  <webkit.review.bot@gmail.com>
263
264         Unreviewed, rolling out r127938.
265         http://trac.webkit.org/changeset/127938
266         https://bugs.webkit.org/show_bug.cgi?id=96166
267
268         It broke the build (Requested by smfr on #webkit).
269
270         * wtf/Assertions.h:
271
272 2012-09-07  Mark Lam  <mark.lam@apple.com>
273
274         Fixed ASSERT() and ASSERT_AT() macros so that they can be used in
275         comma expressions.
276         https://bugs.webkit.org/show_bug.cgi?id=96127.
277
278         Reviewed by Filip Pizlo.
279
280         * wtf/Assertions.h:
281         (wtfAssert):
282
283 2012-09-07  Michael Saboff  <msaboff@apple.com>
284
285         StringImpl::find(StringImpl*) doesn't handle cases where search and match strings are different bitness
286         https://bugs.webkit.org/show_bug.cgi?id=96125
287
288         Reviewed by Benjamin Poulain.
289
290         Changed findInner and reverseFindInner to be templated on both search and match character types.
291         Changed both find's and reverseFind to use all four bitness combinations of findInner and
292         reverseFindInner.
293
294         * wtf/text/StringImpl.cpp:
295         (WTF::findInner):
296         (WTF::StringImpl::find):
297         (WTF::reverseFindInner):
298         (WTF::StringImpl::reverseFind):
299
300 2012-09-07  Michael Saboff  <msaboff@apple.com>
301
302         equalIgnoringCase of two StringImpls doesn't handle 8 bit strings
303         https://bugs.webkit.org/show_bug.cgi?id=96028
304
305         Reviewed by Benjamin Poulain.
306
307         Added 8 bit checks and paths to CaseFoldingHash::equal.  Also cleaned up StringHash::equal(), removing
308         obvious and in one case wrong comments.  Moved equalIgnoringCase(UChar*, UChar*) from StringImpl.cpp
309         to StringImpl.h.
310
311         * wtf/text/StringHash.h:
312         (WTF::StringHash::equal):
313         (WTF::CaseFoldingHash::equal):
314         * wtf/text/StringImpl.cpp:
315         * wtf/text/StringImpl.h:
316         (WTF::equalIgnoringCase):
317
318 2012-09-07  Patrick Gansterer  <paroga@webkit.org>
319
320         [WIN] Deprecate String += operator
321         https://bugs.webkit.org/show_bug.cgi?id=96083
322
323         Reviewed by Adam Barth.
324
325         * wtf/Platform.h:
326
327 2012-09-06  Michael Saboff  <msaboff@apple.com>
328
329         StringBuilder::toAtomicString() can create an 16 bit string with 8 bit contents
330         https://bugs.webkit.org/show_bug.cgi?id=96029
331
332         Reviewed by Benjamin Poulain.
333
334         Added 8 bit path when creating an AtomicString from a partial 8 bit buffer.
335
336         * wtf/text/StringBuilder.h:
337         (WTF::StringBuilder::toAtomicString):
338
339 2012-09-06  Michael Saboff  <msaboff@apple.com>
340
341         16 bit JSRopeString up converts an 8 bit fibers to 16 bits during resolution
342         https://bugs.webkit.org/show_bug.cgi?id=95810
343
344         Reviewed by Benjamin Poulain.
345
346         New copy routine that takes an 8 bit source and a 16 bit destination.  Used when copying
347         the contents of an 8 bit fiber to the 16 bit buffer when resolving a 16 bit rope.
348
349         * wtf/text/StringImpl.h:
350         (WTF::StringImpl::copyChars):
351         (StringImpl):
352
353 2012-09-06  Michael Saboff  <msaboff@apple.com>
354
355         Unreviewed fix to r127799.
356         https://bugs.webkit.org/show_bug.cgi?id=95807
357
358         Unreviewed fix.
359
360         Removed extraneous "static".  This code is hidden behind STRING_STATS define and 
361         therefore is not enabled by default.
362
363         * wtf/text/StringImpl.cpp:
364
365 2012-09-06  Lauro Neto  <lauro.neto@openbossa.org>
366
367         [Qt] Deprecate String += operator
368         https://bugs.webkit.org/show_bug.cgi?id=95895
369
370         Reviewed by Benjamin Poulain.
371
372         Remove Qt from WTF_DEPRECATED_STRING_OPERATORS guard.
373
374         * wtf/Platform.h:
375
376 2012-09-06  Michael Saboff  <msaboff@apple.com>
377
378         ENH: Add Logging to StringImpl to track String Types
379         https://bugs.webkit.org/show_bug.cgi?id=95807
380
381         Reviewed by Benjamin Poulain.
382
383         Added StringsStats class that keeps track of the number of strings, number of 8 and 16 bit
384         strings as well as the number of 8 bit strings up converted to 16 bits. The number of characrters
385         for each type is also accumulated. These statistics are output via DataLog every 5000
386         calls to StringImpl destructor. The 5000 can be adjusted via s_printStringStatsFrequency.
387         This StringStats code is disabled by default and enabled by defining STRING_STATS in
388         wtf/text/StringImpl.h.
389
390         * wtf/text/StringImpl.cpp:
391         (WTF::StringStats::removeString):
392         (WTF::StringStats::printStats):
393         (WTF::StringImpl::~StringImpl):
394         (WTF::StringImpl::getData16SlowCase):
395         * wtf/text/StringImpl.h:
396         (WTF::StringStats::add8BitString):
397         (StringStats):
398         (WTF::StringStats::add16BitString):
399         (WTF::StringStats::addUpconvertedString):
400         (WTF::StringImpl::StringImpl):
401         (StringImpl):
402         (WTF::StringImpl::isSubString):
403         (WTF::StringImpl::stringStats):
404
405 2012-09-06  Patrick Gansterer  <paroga@webkit.org>
406
407         Fix export macros in IntegerToStringConversion.h
408         https://bugs.webkit.org/show_bug.cgi?id=95900
409
410         Reviewed by Benjamin Poulain.
411
412         The WTF_EXPORT_STRING_API must be used only for symbols which are compiled
413         on windows in "non-WTF" binaries too. Since this isn't valid for the
414         IntegerToStringConversion function replace it with WTF_EXPORT_PRIVATE.
415
416         * wtf/text/IntegerToStringConversion.h:
417
418 2012-09-06  Simon Hausmann  <simon.hausmann@nokia.com>
419
420         [Qt] Various small Windows / MSVC build fixes
421         https://bugs.webkit.org/show_bug.cgi?id=95934
422
423         Reviewed by Kenneth Rohde Christiansen.
424
425         For the Qt build on Windows, do not enable WTF_USE_UNIX_DOMAIN_SOCKETS for
426         WebKit2 IPC.
427
428         * wtf/Platform.h:
429
430 2012-09-06  Adam Barth  <abarth@chromium.org>
431
432         Remove WTF::String::operator+=
433         https://bugs.webkit.org/show_bug.cgi?id=95797
434
435         Reviewed by Sam Weinig.
436
437         This patch encloses WTF::String::operator+= in an ifdef so that we can
438         gradually remove it from the various port-specific files. The ifdef
439         lets us whitelist use of operator+= in individual files during the
440         transition.
441
442         * wtf/Platform.h
443         * wtf/text/WTFString.h:
444
445 2012-09-05  Gabor Rapcsanyi  <rgabor@webkit.org>
446
447         DFG JIT doesn't work properly on ARM hardfp
448         https://bugs.webkit.org/show_bug.cgi?id=95684
449
450         Reviewed by Filip Pizlo.
451
452         Add hardfp support to DFG JIT. The patch is created with the
453         help of Zoltan Herczeg.
454
455         * wtf/Platform.h:
456
457 2012-09-04  Zoltan Horvath  <zoltan@webkit.org>
458
459         Extend the coverage of the Custom Allocation Framework in WTF and in JavaScriptCore
460         https://bugs.webkit.org/show_bug.cgi?id=95737
461
462         Reviewed by Eric Seidel.
463
464         Add WTF_MAKE_FAST_ALLOCATED macro to the following class declarations because these are instantiated by operator new.
465
466         * wtf/CryptographicallyRandomNumber.cpp: CryptographicallyRandomNumber is instantiated at wtf/CryptographicallyRandomNumber.cpp:162.
467         * wtf/MediaTime.h: MediaTime is instantiated at wtf/MediaTime.cpp:288.
468         * wtf/MetaAllocator.h:
469         (MetaAllocatorTracker): MetaAllocatorTracker is instantiated at JavaScriptCore/tools/CodeProfiling.cpp:120.
470         * wtf/ThreadingPthreads.cpp:
471         (PthreadState): PthreadState is instantiated at wtf/ThreadingPthreads.cpp:165.
472         * wtf/text/AtomicString.cpp:
473         (AtomicStringTable): AtomicStringTable is instantiated at wtf/text/AtomicString.cpp:43.
474
475 2012-09-01  Mark Lam  <mark.lam@apple.com>
476
477         LLInt C loop backend.
478         https://bugs.webkit.org/show_bug.cgi?id=91052.
479
480         Reviewed by Filip Pizlo.
481
482         Added configs for the llint C loop backend.
483
484         * wtf/Platform.h:
485
486 2012-08-31  Pratik Solanki  <psolanki@apple.com>
487
488         objc_msgSend and IMP should be cast appropriately before using
489         https://bugs.webkit.org/show_bug.cgi?id=95242
490
491         Reviewed by Benjamin Poulain.
492
493         Fix for older compilers. Pass id as the return type to the template
494         instead of relying on default type.
495
496         * wtf/Functional.h:
497         (WTF::R):
498         * wtf/ObjcRuntimeExtras.h:
499
500 2012-08-31  Michael Saboff  <msaboff@apple.com>
501
502         CSS Parser should directly parse 8 bit source strings
503         https://bugs.webkit.org/show_bug.cgi?id=95207
504
505         Reviewed by Geoffrey Garen.
506
507         * wtf/text/StringImpl.h:
508         (WTF::equalIgnoringCase): Added (const char*, const LChar*, unsigned) flavor to support
509         8 bit CSS parser work.
510
511 2012-08-30  Benjamin Poulain  <bpoulain@apple.com>
512
513         AtomicString(ASCIILiteral) should not compile
514         https://bugs.webkit.org/show_bug.cgi?id=95413
515
516         Reviewed by Adam Barth.
517
518         * wtf/text/AtomicString.h:
519         (AtomicString): Declare the constructor from ASCIILiteral private to ensure it is
520         not used by accident.
521
522 2012-08-30  Benjamin Poulain  <bpoulain@apple.com>
523
524         Ambiguous operator[]  after r127191 on some compiler
525         https://bugs.webkit.org/show_bug.cgi?id=95509
526
527         Reviewed by Simon Fraser.
528
529         * wtf/text/WTFString.h:
530         (WTF::String::characterAt): At this as a synonym to operator[] to attempt a build fix.
531
532 2012-08-30  Mark Lam  <mark.lam@apple.com>
533
534         Render unto #ifdef's that which belong to them.
535         https://bugs.webkit.org/show_bug.cgi?id=95482.
536
537         Reviewed by Filip Pizlo.
538
539         * wtf/Platform.h: Added ENABLE(COMPUTED_GOTO_OPCODES).
540
541 2012-08-30  Pratik Solanki  <psolanki@apple.com>
542
543         objc_msgSend and IMP should be cast appropriately before using
544         https://bugs.webkit.org/show_bug.cgi?id=95242
545
546         Reviewed by Benjamin Poulain.
547
548         Add new templates wtfObjcMsgSend and wtfCallIMP that do the appropriate
549         casts to correctly typed function pointers before calling objc_msgSend
550         and IMP methods directly.
551
552         * wtf/Functional.h:
553         (WTF::R): Use wtfObjcMsgSend.
554         * wtf/ObjcRuntimeExtras.h: Added.
555         (wtfObjcMsgSend):
556         (wtfCallIMP):
557
558 2012-08-30  Benjamin Poulain  <bpoulain@apple.com>
559
560         Replace JSC::UString by WTF::String
561         https://bugs.webkit.org/show_bug.cgi?id=95271
562
563         Reviewed by Geoffrey Garen.
564
565         * wtf/Platform.h: Useless edit to force a full build. This is needed for some bots for some reason.
566         * wtf/text/WTFString.h: Export a symbol that was exported on UString and needed in WebCore.
567
568         Add String::getCharactersWithUpconvert<>(), which is similar to String::getCharacters<>() but with the same
569         behaviors as UString::getCharacters<>().
570
571         String::getCharactersWithUpconvert<>() is useful when manipulating multiple strings, it allow writting code
572         using 16bits characters if any of the input String is not 8bit.
573
574 2012-08-30  Yong Li  <yoli@rim.com>
575
576         Vector::shrinkToFit should use realloc when suitable.
577         https://bugs.webkit.org/show_bug.cgi?id=94810
578
579         Reviewed by Benjamin Poulain.
580
581         Only tested on BlackBerry. So it is wrapped with PLATFORM(BLACKBERRY) in the mean time.
582         Use realloc to shrink buffer when inline buffer isn't involved and and canMoveWithMemcpy is true.
583
584         When running the test code attached to the bug, it gives 30-45% performance boost for the large blocks
585         (Every test cycle includes an extra pair of malloc/free, so the boost on shrinkToFit() is even bigger)
586         Performance impact on small blocks is not noticeable. (Tested on BlackBerry)
587
588         * wtf/Vector.h:
589         (WTF::VectorBufferBase::shouldReallocateBuffer):
590         (VectorBufferBase):
591         (WTF::VectorBufferBase::reallocateBuffer):
592         (VectorBuffer):
593         (WTF::VectorBuffer::shouldReallocateBuffer):
594         (WTF::VectorBuffer::reallocateBuffer):
595         (WTF::VectorBuffer::inlineBuffer):
596         (WTF::::shrinkCapacity):
597
598 2012-08-30  Patrick Gansterer  <paroga@webkit.org>
599
600         Build fix for COMPILER(MSVC) && !CPU(X86) after r127001.
601
602         * wtf/MathExtras.h:
603         (lrint): Added additional parentheses to silence compiler warning.
604
605 2012-08-29  Benjamin Poulain  <bpoulain@apple.com>
606
607         REGRESSION(r126780): Crash using StringImpl::is8Bit before checking if there is an impl
608         https://bugs.webkit.org/show_bug.cgi?id=95380
609
610         Reviewed by Michael Saboff.
611
612         Blindly copying code from UString in r126780 was stupid. I just brought over a bug.
613         This patch adds the zero length branch back so that null strings are handled correctly.
614
615         * wtf/text/WTFString.cpp:
616         (WTF::String::ascii): Return a empty CString if the String is null or empty.
617
618 2012-08-29  Dominik Röttsches  <dominik.rottsches@intel.com>
619
620         The 2d.imageData.object.round canvas test is failing
621         https://bugs.webkit.org/show_bug.cgi?id=40272
622
623         Reviewed by Benjamin Poulain.
624
625         Updating previous patch to address Benjamin's comments.
626         #ifdef in Uint8ClampedArray removed, fallback implementation for MSVC on non-X86 added.
627
628         * wtf/MathExtras.h:
629         (lrint): Fallback implementation for non-X86 & MSVC case.
630         * wtf/Uint8ClampedArray.h: Removed #ifdef.
631
632 2012-08-28  Sheriff Bot  <webkit.review.bot@gmail.com>
633
634         Unreviewed, rolling out r126914.
635         http://trac.webkit.org/changeset/126914
636         https://bugs.webkit.org/show_bug.cgi?id=95239
637
638         it breaks everything and fixes nothing (Requested by pizlo on
639         #webkit).
640
641         * wtf/HashCountedSet.h:
642         (WTF::::add):
643         (WTF::::remove):
644         (WTF::copyToVector):
645         * wtf/HashIterators.h:
646         (WTF::HashTableConstKeysIterator::get):
647         (WTF::HashTableConstValuesIterator::get):
648         (WTF::HashTableKeysIterator::get):
649         (WTF::HashTableValuesIterator::get):
650         * wtf/HashMap.h:
651         (WTF::KeyValuePairKeyExtractor::extract):
652         (WTF::HashMapValueTraits::isEmptyValue):
653         (WTF::HashMapTranslator::translate):
654         (WTF::HashMapTranslatorAdapter::translate):
655         (WTF::::set):
656         (WTF::::get):
657         (WTF::::take):
658         (WTF::operator==):
659         (WTF):
660         (WTF::deleteAllPairSeconds):
661         (WTF::deleteAllValues):
662         (WTF::deleteAllPairFirsts):
663         (WTF::deleteAllKeys):
664         * wtf/HashTable.h:
665         (WTF::hashTableSwap):
666         (WTF::::checkTableConsistencyExceptSize):
667         * wtf/HashTraits.h:
668         (WTF::KeyValuePair::KeyValuePair):
669         (KeyValuePair):
670         (WTF::KeyValuePairHashTraits::constructDeletedValue):
671         (WTF::KeyValuePairHashTraits::isDeletedValue):
672         * wtf/MetaAllocator.cpp:
673         (WTF::MetaAllocator::addFreeSpace):
674         (WTF::MetaAllocator::incrementPageOccupancy):
675         (WTF::MetaAllocator::decrementPageOccupancy):
676         * wtf/RefCountedLeakCounter.cpp:
677         (WTF::RefCountedLeakCounter::~RefCountedLeakCounter):
678         * wtf/RefPtrHashMap.h:
679         (WTF::::set):
680         (WTF::::get):
681         (WTF::::inlineGet):
682         (WTF::::take):
683         * wtf/Spectrum.h:
684         (WTF::Spectrum::add):
685         (WTF::Spectrum::get):
686         (WTF::Spectrum::buildList):
687         * wtf/ThreadingPthreads.cpp:
688         (WTF::identifierByPthreadHandle):
689
690 2012-08-28  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
691
692         Rename first/second to key/value in HashMap iterators
693         https://bugs.webkit.org/show_bug.cgi?id=82784
694
695         Reviewed by Eric Seidel.
696
697         * wtf/HashCountedSet.h:
698         (WTF::::add):
699         (WTF::::remove):
700         (WTF::copyToVector):
701         * wtf/HashIterators.h:
702         (WTF::HashTableConstKeysIterator::get):
703         (WTF::HashTableConstValuesIterator::get):
704         (WTF::HashTableKeysIterator::get):
705         (WTF::HashTableValuesIterator::get):
706         * wtf/HashMap.h:
707         (WTF::KeyValuePairKeyExtractor::extract):
708         (WTF::HashMapValueTraits::isEmptyValue):
709         (WTF::HashMapTranslator::translate):
710         (WTF::HashMapTranslatorAdapter::translate):
711         (WTF::::set):
712         (WTF::::get):
713         (WTF::::take):
714         (WTF::operator==):
715         (WTF::deleteAllValues):
716         (WTF::deleteAllKeys):
717         Remove deleteAllPairFirsts/Seconds.
718
719         * wtf/HashTable.h:
720         (WTF::hashTableSwap):
721         (WTF::::checkTableConsistencyExceptSize):
722         * wtf/HashTraits.h:
723         (WTF::KeyValuePair::KeyValuePair):
724         (KeyValuePair):
725         (WTF::KeyValuePairHashTraits::constructDeletedValue):
726         (WTF::KeyValuePairHashTraits::isDeletedValue):
727         * wtf/MetaAllocator.cpp:
728         (WTF::MetaAllocator::addFreeSpace):
729         (WTF::MetaAllocator::incrementPageOccupancy):
730         (WTF::MetaAllocator::decrementPageOccupancy):
731         * wtf/RefCountedLeakCounter.cpp:
732         (WTF::RefCountedLeakCounter::~RefCountedLeakCounter):
733         * wtf/RefPtrHashMap.h:
734         (WTF::::set):
735         (WTF::::get):
736         (WTF::::inlineGet):
737         (WTF::::take):
738         * wtf/Spectrum.h:
739         (WTF::Spectrum::add):
740         (WTF::Spectrum::get):
741         (WTF::Spectrum::buildList):
742         * wtf/ThreadingPthreads.cpp:
743         (WTF::identifierByPthreadHandle):
744
745 2012-08-27  Sheriff Bot  <webkit.review.bot@gmail.com>
746
747         Unreviewed, rolling out r126836.
748         http://trac.webkit.org/changeset/126836
749         https://bugs.webkit.org/show_bug.cgi?id=95163
750
751         Broke all Apple ports, EFL, and Qt. (Requested by tkent on
752         #webkit).
753
754         * wtf/HashCountedSet.h:
755         (WTF::::add):
756         (WTF::::remove):
757         (WTF::copyToVector):
758         * wtf/HashIterators.h:
759         (WTF::HashTableConstKeysIterator::get):
760         (WTF::HashTableConstValuesIterator::get):
761         (WTF::HashTableValuesIterator::get):
762         * wtf/HashMap.h:
763         (WTF::KeyValuePairKeyExtractor::extract):
764         (WTF::HashMapValueTraits::isEmptyValue):
765         (WTF::HashMapTranslator::translate):
766         (WTF::HashMapTranslatorAdapter::translate):
767         (WTF::::set):
768         (WTF::::get):
769         (WTF::::take):
770         (WTF::operator==):
771         (WTF):
772         (WTF::deleteAllPairSeconds):
773         (WTF::deleteAllValues):
774         (WTF::deleteAllPairFirsts):
775         (WTF::deleteAllKeys):
776         * wtf/HashTable.h:
777         (WTF::hashTableSwap):
778         (WTF::::checkTableConsistencyExceptSize):
779         * wtf/HashTraits.h:
780         (WTF::KeyValuePair::KeyValuePair):
781         (KeyValuePair):
782         (WTF::KeyValuePairHashTraits::constructDeletedValue):
783         (WTF::KeyValuePairHashTraits::isDeletedValue):
784         * wtf/MetaAllocator.cpp:
785         (WTF::MetaAllocator::addFreeSpace):
786         (WTF::MetaAllocator::incrementPageOccupancy):
787         (WTF::MetaAllocator::decrementPageOccupancy):
788         * wtf/RefCountedLeakCounter.cpp:
789         (WTF::RefCountedLeakCounter::~RefCountedLeakCounter):
790         * wtf/RefPtrHashMap.h:
791         (WTF::::set):
792         (WTF::::get):
793         (WTF::::inlineGet):
794         (WTF::::take):
795         * wtf/Spectrum.h:
796         (WTF::Spectrum::add):
797         (WTF::Spectrum::get):
798         (WTF::Spectrum::buildList):
799         * wtf/ThreadingPthreads.cpp:
800         (WTF::identifierByPthreadHandle):
801
802 2012-08-27  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
803
804         Rename first/second to key/value in HashMap iterators
805         https://bugs.webkit.org/show_bug.cgi?id=82784
806
807         Reviewed by Eric Seidel.
808
809         * wtf/HashCountedSet.h:
810         (WTF::::add):
811         (WTF::::remove):
812         (WTF::copyToVector):
813         * wtf/HashIterators.h:
814         (WTF::HashTableConstKeysIterator::get):
815         (WTF::HashTableConstValuesIterator::get):
816         (WTF::HashTableValuesIterator::get):
817         * wtf/HashMap.h:
818         (WTF::KeyValuePairKeyExtractor::extract):
819         (WTF::HashMapValueTraits::isEmptyValue):
820         (WTF::HashMapTranslator::translate):
821         (WTF::HashMapTranslatorAdapter::translate):
822         (WTF::::set):
823         (WTF::::get):
824         (WTF::::take):
825         (WTF::operator==):
826         (WTF::deleteAllValues):
827         (WTF::deleteAllKeys):
828         Remove deleteAllPairFirsts/Seconds.
829
830         * wtf/HashTable.h:
831         (WTF::hashTableSwap):
832         (WTF::::checkTableConsistencyExceptSize):
833         * wtf/HashTraits.h:
834         (WTF::KeyValuePair::KeyValuePair):
835         (KeyValuePair):
836         (WTF::KeyValuePairHashTraits::constructDeletedValue):
837         (WTF::KeyValuePairHashTraits::isDeletedValue):
838         * wtf/MetaAllocator.cpp:
839         (WTF::MetaAllocator::addFreeSpace):
840         (WTF::MetaAllocator::incrementPageOccupancy):
841         (WTF::MetaAllocator::decrementPageOccupancy):
842         * wtf/RefCountedLeakCounter.cpp:
843         (WTF::RefCountedLeakCounter::~RefCountedLeakCounter):
844         * wtf/RefPtrHashMap.h:
845         (WTF::::set):
846         (WTF::::get):
847         (WTF::::inlineGet):
848         (WTF::::take):
849         * wtf/Spectrum.h:
850         (WTF::Spectrum::add):
851         (WTF::Spectrum::get):
852         (WTF::Spectrum::buildList):
853         * wtf/ThreadingPthreads.cpp:
854         (WTF::identifierByPthreadHandle):
855
856 2012-08-27  Benjamin Poulain  <benjamin@webkit.org>
857
858         Add ECMAScript Number to String conversion to WTF::String
859         https://bugs.webkit.org/show_bug.cgi?id=95016
860
861         Reviewed by Geoffrey Garen.
862
863         * wtf/text/WTFString.cpp:
864         (WTF::String::numberToStringECMAScript):
865         * wtf/text/WTFString.h:
866         Add the implementation of numberToStringECMAScript(double) from UString to String.
867         This will make it easier to replace UString in the future.
868
869 2012-08-27  Benjamin Poulain  <benjamin@webkit.org>
870
871         Even up WTF::String to CString functions
872         https://bugs.webkit.org/show_bug.cgi?id=95008
873
874         Reviewed by Sam Weinig.
875
876         Apply advantages from UString to WTF::String.
877
878         * wtf/text/WTFString.cpp:
879         (WTF::String::ascii): There is no need to special case the null length, both
880         following branches use CString::newUninitialized(), which create empty string
881         for null length.
882         (WTF::String::latin1): Use characters16() instead of characters() to avoid
883         testing is8Bit() a second time.
884
885 2012-08-24  Benjamin Poulain  <benjamin@webkit.org>
886
887         Touch Platform.h to solve a build dependency issue
888
889         Unreviewed.
890
891         * wtf/Platform.h:
892
893 2012-08-24  Benjamin Poulain  <bpoulain@apple.com>
894
895         Unify Number to StringImpl conversion
896         https://bugs.webkit.org/show_bug.cgi?id=94879
897
898         Reviewed by Geoffrey Garen.
899
900         Previously, UString::number() and String::number() used different implementations.
901
902         WTF::String::number() was simply forwarding to String::format().
903         UString::number() had an optimized version of the conversion.
904
905         This patch replace both implementation by a new version, faster than the two previous versions.
906
907         The new functions numberToStringImpl improvements are:
908         -about 3 times faster than String::number().
909         -14% faster than UString::number() on signed numbers.
910         -9% faster than UString::number() on unsigned numbers.
911
912         * GNUmakefile.list.am:
913         * WTF.gypi:
914         * WTF.pro:
915         * WTF.vcproj/WTF.vcproj:
916         * WTF.xcodeproj/project.pbxproj:
917         * wtf/CMakeLists.txt:
918         * wtf/text/IntegerToStringConversion.cpp: Added.
919         (WTF::numberToStringImplSigned):
920         (WTF::numberToStringImpl):
921         (WTF::numberToStringImplUnsigned):
922         * wtf/text/IntegerToStringConversion.h: Added.
923         * wtf/text/WTFString.cpp:
924         (WTF::String::format):
925         * wtf/text/WTFString.h:
926         (WTF::String::number):
927
928 2012-08-24  Andras Becsi  <andras.becsi@nokia.com>
929
930         [Qt] Be more explicit about the ICU dependency in the error message
931
932         Rubber-stamped by Simon Hausmann.
933
934         When building QtWebKit with a Qt5 which was not configured with libICU support
935         the error message is somewhat ambiguous about the indirect dependency.
936
937         * WTF.pri:
938
939 2012-08-23  Julien Chaffraix  <jchaffraix@webkit.org>
940
941         [Chromium] Enable AtomicString && CString && WTFString && StringImpl unit tests
942         https://bugs.webkit.org/show_bug.cgi?id=94871
943
944         Reviewed by Benjamin Poulain.
945
946         * wtf/PassRefPtr.h:
947         We need to include Assertions.h due to the COMPILE_ASSERT added in r89283.
948         This matches other files in WTF though I am not sure why Chromium is the only
949         platform complaining about that.
950
951 2012-08-23  Mark Rowe  <mrowe@apple.com>
952
953         Build fix for old, old versions of Clang.
954
955         * wtf/FastMalloc.cpp:
956         (WTF): Rejigger things so that they parse correctly if __has_warning isn't defined.
957
958 2012-08-23  Emil A Eklund  <eae@chromium.org>
959
960         Add saturation arithmetic support to FractionalLayoutUnit
961         https://bugs.webkit.org/show_bug.cgi?id=94364
962
963         Reviewed by Benjamin Poulain.
964
965         Add support functions for saturated addition and subtraction.
966
967         Test: TestWebKitAPI/Tests/WTF/SaturatedArithmeticOperations.cpp
968
969         * GNUmakefile.list.am:
970         * WTF.gypi:
971         * WTF.pro:
972         * WTF.vcproj/WTF.vcproj:
973         * WTF.xcodeproj/project.pbxproj:
974         * WTF/wtf/CMakeLists.txt:
975         Add SaturatedArithmetic.h to build files.
976
977         * wtf/SaturatedArithmetic.h: Added.
978         (saturatedAddition):
979         (saturatedSubtraction):
980         Support functions for saturated addition/subtraction. Compares the signed
981         bit of the values instead of using range checks to reduce branching.
982
983         * wtf/Platform.h:
984         Add ENABLE_SATURATED_LAYOUT_ARITHMETIC flag.
985
986 2012-08-23  Mark Rowe  <mrowe@apple.com>
987
988         Roll back in the part of r126475 that I had rolled out.
989
990         * wtf/FastMalloc.cpp:
991         (WTF): Disable the -Wunused-private-field warning around the declaration of
992         TCMalloc_Central_FreeListPadded since the padding is intentionally unused.
993         Only disable the warning if we detect it is enabled, since the warning may not
994         be supported by the version of Clang that is being used.
995
996 2012-08-23  Mark Rowe  <mrowe@apple.com>
997
998         Roll out part of r126475 that breaks the build with older versions of Clang.
999
1000         * wtf/FastMalloc.cpp:
1001
1002 2012-08-23  Mark Rowe  <mrowe@apple.com>
1003
1004         Make WTF build with the latest version of clang.
1005
1006         Reviewed by Dan Bernstein.
1007
1008         * wtf/FastMalloc.cpp:
1009         (WTF): Disable the -Wunused-private-field warning around the declaration of
1010         TCMalloc_Central_FreeListPadded since the padding is intentionally unused.
1011         (WTF::AdminRegionRecorder): Remove the unused m_reader member.
1012         (WTF::FastMallocZone::enumerate): Don't pass in the RemoteMemoryReader since
1013         it is no longer needed.
1014
1015 2012-08-22  Geoffrey Garen  <ggaren@apple.com>
1016
1017         Fixed a fastMallocForbid/Allow compile error for some compilers
1018         https://bugs.webkit.org/show_bug.cgi?id=94775
1019
1020         Reviewed by Gavin Barraclough.
1021
1022         * wtf/FastMalloc.h:
1023         (WTF::fastMallocForbid()):
1024         (WTF::fastMallocAllow()): Export, since these are called by JavaScriptCore.
1025
1026 2012-08-22  Geoffrey Garen  <ggaren@apple.com>
1027
1028         ThreadRestrictionVerifier should be opt-in, not opt-out
1029         https://bugs.webkit.org/show_bug.cgi?id=94761
1030
1031         Reviewed by Mark Hahnenberg.
1032
1033         WebKit's JavaScript engine supports use on multiple threads, so default-on
1034         is not appropriate for most of our objects, and it causes lots of suprious
1035         assertions.
1036
1037         * wtf/MetaAllocator.cpp:
1038         (WTF::MetaAllocatorHandle::MetaAllocatorHandle): No need to turn off
1039         explicitly, since it's off by default now.
1040
1041         * wtf/ThreadRestrictionVerifier.h:
1042         (WTF::ThreadRestrictionVerifier::ThreadRestrictionVerifier): Turn off by default.
1043
1044         (WTF::ThreadRestrictionVerifier::setMutexMode):
1045         (WTF::ThreadRestrictionVerifier::setDispatchQueueMode):
1046         (WTF::ThreadRestrictionVerifier::turnOffVerification): These assertions
1047         about state transitions were inconsistent with each other, and impossible
1048         to maintain with default off, so I removed them.
1049
1050 2012-08-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
1051
1052         [Qt] Optionally support smooth-scrolling on all platforms
1053         https://bugs.webkit.org/show_bug.cgi?id=74926
1054
1055         Reviewed by Simon Hausmann.
1056
1057         Initialize GESTURE_ANIMATION feature flag.
1058
1059         * wtf/Platform.h:
1060
1061 2012-08-21  Mark Hahnenberg  <mhahnenberg@apple.com>
1062
1063         WTF Threading leaks kernel objects on platforms that use pthreads
1064         https://bugs.webkit.org/show_bug.cgi?id=94636
1065
1066         Reviewed by Geoffrey Garen.
1067
1068         Creating lots of Web workers on Mac platforms leaks lots of Mach ports. Eventually, the 
1069         process can exhaust its allocation of Mach ports from the kernel, which can then cause 
1070         all sorts of badness, including the inability to allocate new virtual memory from the 
1071         kernel. ThreadingPthreads.cpp and ThreadIdentifierDataPthreads.cpp need to be refactored 
1072         so that we do not leak these kernel resources. I would assume that we also leak kernel 
1073         resources on other pthreads platforms as well.
1074
1075         * wtf/ThreadIdentifierDataPthreads.cpp:
1076         (WTF):
1077         (WTF::ThreadIdentifierData::~ThreadIdentifierData): Now calls the event threadDidExit, which 
1078         handles all relevant tear-down of the thread metadata in the thread map.
1079         * wtf/ThreadingPthreads.cpp: Added a new class called PthreadState that encapsulates the 
1080         state of a thread and the possible transitions between those states.
1081         (PthreadState):
1082         (WTF::PthreadState::PthreadState):
1083         (WTF::PthreadState::joinableState): Returns the current state of the pthread.
1084         (WTF::PthreadState::pthreadHandle): Returns the pthread_t for this particular thread. This needs to 
1085         remain valid even after the thread has exited because somebody could come along at any time in the 
1086         future and call join on the thread.
1087         (WTF::PthreadState::didBecomeDetached): Signals that the thread was detached.
1088         (WTF::PthreadState::didExit): Signals that the thread's exit destructor (~ThreadIdentifierData) has run.
1089         (WTF::PthreadState::didJoin): Signals that the thread has been joined on successfully.
1090         (WTF::PthreadState::hasExited): Returns whether or not the thread's exit destructor has run.
1091         (WTF):
1092         (WTF::identifierByPthreadHandle): Changed to also check hasExited() on the threads it finds in the map. We 
1093         should only have one valid pthread_t in the map, but there are other pthread_t's that need to remain in the 
1094         thread map for when somebody joins on that thread id later.
1095         (WTF::establishIdentifierForPthreadHandle): Changed to put the allocate the new PthreadState data structure and 
1096         put it in the map.
1097         (WTF::pthreadHandleForIdentifierWithLockAlreadyHeld):
1098         (WTF::wtfThreadEntryPoint):
1099         (WTF::waitForThreadCompletion): We now do the relevant cleanup after the specified thread has been 
1100         successfully joined on depending on if the joined thread has already exited.
1101         (WTF::detachThread): Performs relevant cleanup if the thread has already exited. Otherwise signals to the 
1102         PthreadState that the thread has been detached.
1103         (WTF::threadDidExit): Function called by ~ThreadIdentifierData to indicate that the thread has exited. 
1104         Only cleans up after itself if the thread isn't Joinable (i.e. Joined or Detached).
1105
1106 2012-08-21  Ulan Degenbaev  <ulan@chromium.org>
1107
1108         Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer constructed and destructed
1109         https://bugs.webkit.org/show_bug.cgi?id=92993
1110
1111         Reviewed by Kenneth Russell.
1112
1113         Call AdjustAmountOfExternalAllocatedMemory when V8ArrayBuffer
1114         is constructed and destructed so that V8's garbage collection
1115         heuristics can account for the memory held by these objects.
1116
1117         * wtf/ArrayBuffer.h:
1118         (WTF):
1119         (ArrayBufferDeallocationObserver):
1120         (WTF::ArrayBufferContents::ArrayBufferContents):
1121         (WTF::ArrayBufferContents::transfer):
1122         (ArrayBufferContents):
1123         (ArrayBuffer):
1124         (WTF::ArrayBuffer::setDeallocationObserver):
1125         (WTF::ArrayBufferContents::~ArrayBufferContents):
1126
1127 2012-08-21  Benjamin Poulain  <bpoulain@apple.com>
1128
1129         Store CString data in the CStringBuffer to avoid the double indirection
1130         https://bugs.webkit.org/show_bug.cgi?id=94562
1131
1132         Reviewed by Darin Adler.
1133
1134         Previously, any non-trivial CString would require two allocations:
1135         1) CStringBuffer (ref-counted container for CString's data).
1136         2) VectorBuffer's m_buffer (the actual char data).
1137
1138         This patches changes CStringBuffer to hold the data previously owned by
1139         WTF::Vector and WTF::VectorBuffer. This makes CString more efficient
1140         both in CPU time and memory use.
1141
1142         * wtf/text/CString.cpp:
1143         (WTF::CStringBuffer::createUninitialized): This new method allocate the memory
1144         for CStringBuffer and its data. We simply allocate more memory after CStringBuffer
1145         to hold the data.
1146
1147         The extra memory needed to store the terminating zero is now handled by design.
1148         (WTF::CString::CString): Move the test for "str" one level up the stack from CString::init().
1149         This avoid double checking the pointer when using the other constructor.
1150         (WTF::CString::init):
1151         (WTF::CString::newUninitialized):
1152         (WTF::CString::copyBufferIfNeeded):
1153         * wtf/text/CString.h:
1154         (WTF::CStringBuffer::data):
1155         (WTF::CStringBuffer::length):
1156         (CStringBuffer):
1157         (WTF::CStringBuffer::CStringBuffer):
1158         (WTF::CStringBuffer::mutableData):
1159         (WTF::CString::length):
1160
1161 2012-08-21  Patrick Gansterer  <paroga@webkit.org>
1162
1163         Build fix for COMPILER(MSVC) && !CPU(X86) after r126023.
1164
1165         * wtf/MathExtras.h:
1166         (lrint):
1167
1168 2012-08-20  Dominik Röttsches  <dominik.rottsches@intel.com>
1169
1170         The 2d.imageData.object.round canvas test is failing
1171         https://bugs.webkit.org/show_bug.cgi?id=40272
1172
1173         Reviewed by Kenneth Rohde Christiansen.
1174
1175         According to the Uint8ClampedArray spec (http://www.khronos.org/registry/typedarray/specs/latest/#7.1)
1176         which references WebIDL's clamping rules, with implications defined in http://www.w3.org/TR/WebIDL/#es-octet
1177         we need to round to nearest integer, and to the even one if exactly halfway in between.
1178         As a solution: applying C99's lrint which, in default rounding mode, does that.
1179
1180         The updated version of test 2d.imageData.object.round.html test passes now.
1181
1182         * wtf/MathExtras.h:
1183         (lrint): Assembly based implementation for MSVC under X86, otherwise falling back to casting.
1184         * wtf/Uint8ClampedArray.h:
1185         (WTF::Uint8ClampedArray::set): lrint instead of simple rounding.
1186
1187 2012-08-17  Michael Saboff  <msaboff@apple.com>
1188
1189         Add ability to create AtomicString using LChar* buffer and length
1190         https://bugs.webkit.org/show_bug.cgi?id=94381
1191
1192         Reviewed by Geoffrey Garen.
1193
1194         Allows the use of 8 bit string data directly without converting to 16 bits first.
1195
1196         * wtf/text/AtomicString.cpp:
1197         (WTF::LCharBufferTranslator::hash):
1198         (LCharBufferTranslator):
1199         (WTF::LCharBufferTranslator::equal):
1200         (WTF::LCharBufferTranslator::translate):
1201         (WTF::AtomicString::add):
1202         * wtf/text/AtomicString.h:
1203         (WTF::AtomicString::AtomicString):
1204         (AtomicString):
1205         * wtf/text/StringImpl.h:
1206         (StringImpl):
1207
1208 2012-08-17  Benjamin Poulain  <bpoulain@apple.com>
1209
1210         Make it easier to append a literal to StringBuilder
1211         https://bugs.webkit.org/show_bug.cgi?id=94273
1212
1213         Reviewed by Kentaro Hara.
1214
1215         * wtf/text/StringBuilder.h:
1216         (WTF::StringBuilder::appendLiteral): Add the method StringBuilder::appendLiteral() for efficiently
1217         adding a string literal to the StringBuilder.
1218
1219 2012-08-17  Yong Li  <yoli@rim.com>
1220
1221         [BlackBerry] Turn on a few macros for jpeg decoding and image interpolation
1222         https://bugs.webkit.org/show_bug.cgi?id=94244
1223
1224         Reviewed by Antonio Gomes.
1225
1226         Turn on these macros to get better performance.
1227
1228         * wtf/Platform.h:
1229
1230 2012-08-17  Milian Wolff  <milian.wolff@kdab.com>
1231
1232         [Qt] QNX build fails due to ctype usage in system headers
1233         https://bugs.webkit.org/show_bug.cgi?id=93849
1234
1235         Reviewed by Simon Hausmann.
1236
1237         Move the check for whether DisallowCType should be active or not
1238         to the DisallowCType.h header. This way, we can update the list
1239         of platforms or OSes which do not work with this header in a
1240         central place. All users can now safely include the header
1241         and do not need to place custom guards around it.
1242
1243         * config.h:
1244         * wtf/DisallowCType.h:
1245
1246 2012-08-17  Milian Wolff  <milian.wolff@kdab.com>
1247
1248         [Qt] QNX build fails due to missing timegm declaration
1249         https://bugs.webkit.org/show_bug.cgi?id=93842
1250
1251         Reviewed by Simon Hausmann.
1252
1253         On QNX, timegm is declared in nbutils.h and one must link against
1254         nbutils to use it.
1255
1256         * WTF.pri:
1257         * wtf/DateMath.cpp:
1258
1259 2012-08-16  Kent Tamura  <tkent@chromium.org>
1260
1261         Build fix for Chromium-mac.
1262
1263         * wtf/text/WTFString.cpp: Remove unnecessary includes.
1264
1265 2012-08-16  Michael Saboff  <msaboff@apple.com>
1266
1267         HTML Parser should produce 8bit substrings for inline style and script elements
1268         https://bugs.webkit.org/show_bug.cgi?id=93742
1269
1270         Reviewed by Benjamin Poulain.
1271
1272         Added 8 bit path to String::isAllSpecialCharacters(). Added new String creator
1273         that takes a pointer to a UChar array that is known to contain only 8 bit
1274         characters (LChar's). Added new helper method to copy contents of a
1275         UChar buffer to a LChar buffer. The helper method includes X86-64 intrinsics
1276         of SSE family instructions for performance.
1277
1278         * wtf/Alignment.h:
1279         (WTF::isAlignedTo):
1280         * wtf/text/ASCIIFastPath.h:
1281         (WTF::copyLCharsFromUCharSource):
1282         * wtf/text/WTFString.cpp:
1283         (WTF::String::make8BitFrom16BitSource):
1284         * wtf/text/WTFString.h:
1285         (String):
1286         (WTF::isAllSpecialCharacters):
1287         (WTF::String::isAllSpecialCharacters):
1288
1289 2012-08-16  Benjamin Poulain  <bpoulain@apple.com>
1290
1291         Use initialization from literals for StringStatics
1292         https://bugs.webkit.org/show_bug.cgi?id=94185
1293
1294         Reviewed by Geoffrey Garen.
1295
1296         * wtf/text/StringStatics.cpp:
1297         Remove the arguments for DEFINE_GLOBAL. They are no longer used by the macro.
1298         (WTF::AtomicString::init):
1299         Use ConstructFromLiteral to initialize the strings faster and to save memory.
1300
1301 2012-08-14  Milian Wolff  <milian.wolff@kdab.com>
1302
1303         [Qt] QNX build fails due to reference to MADV_FREE_REUSE and MADV_FREE_REUSABLE
1304         https://bugs.webkit.org/show_bug.cgi?id=93843
1305
1306         Reviewed by Simon Hausmann.
1307
1308         QNX does not implement MADV_FREE_REUSE nor MADV_FREE_REUSABLE.
1309         The Blackberry port already sets the define to use the system
1310         malloc, which is now also done for QNX in general.
1311
1312         * wtf/Platform.h:
1313
1314 2012-08-13  Raphael Kubo da Costa  <rakuco@webkit.org>
1315
1316         [CMake] Remove glib-related Find modules and write single new one instead.
1317         https://bugs.webkit.org/show_bug.cgi?id=93786
1318
1319         Reviewed by Rob Buis.
1320
1321         * wtf/PlatformEfl.cmake: Use GLIB_* instead of Glib_*, and link directly to GIO, as wtf/gobject uses functions from it.
1322
1323 2012-08-11  Sam Weinig  <sam@webkit.org>
1324
1325         Enable XPC Service based WebProcess with runtime flag
1326         https://bugs.webkit.org/show_bug.cgi?id=93773
1327
1328         Reviewed by Dan Bernstein.
1329
1330         * wtf/Platform.h:
1331         Define HAVE_XPC on 10.7 and later.
1332
1333 2012-08-11  Benjamin Poulain  <bpoulain@apple.com>
1334
1335         Do the DecimalNumber to String conversion on 8 bits
1336         https://bugs.webkit.org/show_bug.cgi?id=93683
1337
1338         Reviewed by Andreas Kling.
1339
1340         Modify DecimalNumber to do the conversion to string on LChar instead of UChar.
1341
1342         * wtf/DecimalNumber.cpp:
1343         (WTF::DecimalNumber::toStringDecimal):
1344         (WTF::DecimalNumber::toStringExponential):
1345         * wtf/DecimalNumber.h:
1346         (DecimalNumber):
1347         * wtf/dtoa.h:
1348         * wtf/text/StringBuffer.h:
1349         (WTF::StringBuffer::operator[]): StringBuffer::operator[] was incorrectly typed to UChar, making
1350         the method impossible to instanciate with LChar.
1351         * wtf/text/WTFString.h:
1352         (String):
1353         (WTF::String::adopt): String::adopt() is modified to work with both LChar and UChar. StringImpl
1354         already support that.
1355         (WTF::appendNumber): Add support for any type that can instanciate the template.
1356
1357 2012-08-11  Benjamin Poulain  <benjamin@webkit.org>
1358
1359         WebCore::findAtomicString(PropertyName) always convert the name to 16bits
1360         https://bugs.webkit.org/show_bug.cgi?id=93685
1361
1362         Reviewed by Geoffrey Garen.
1363
1364         Previously, WebCore::findAtomicString() was causing a conversion for the 8bit property name
1365         to a 16bits due to the call to StringImpl::character16().
1366
1367         This patch fixes the issue by adding support for both 8bits and 16bits string in AtomicString::find().
1368
1369         * wtf/text/AtomicString.cpp:
1370         (HashAndCharacters):
1371         (WTF::HashAndCharactersTranslator::hash):
1372         (WTF::HashAndCharactersTranslator::equal):
1373         (WTF::HashAndCharactersTranslator::translate):
1374         Use a template to make the struct and the translator independant of the CharacterType.
1375
1376         (WTF::AtomicString::add):
1377         (WTF::findString):
1378         (WTF::AtomicString::find): Change the API to take a StringImpl*. AtomicString can use
1379         it efficiently to find the right string.
1380         * wtf/text/AtomicString.h:
1381         (AtomicString):
1382         * wtf/text/StringImpl.h:
1383         (StringImpl): Adapt the friends translator to support the template.
1384
1385 2012-08-10  Benjamin Poulain  <bpoulain@apple.com>
1386
1387         Add support for String initialization from literal to WTFString
1388         https://bugs.webkit.org/show_bug.cgi?id=93426
1389
1390         Reviewed by Anders Carlsson.
1391
1392         This patch adds two constructor to WTF::String in order to support fast initialization from literal:
1393         -String(ASCIILiteral): Constructor similar to String(const char*) while being faster. This constructor
1394          does not incur any overhead over String(const char*).
1395         -String(char[], ConstructFromLiteralTag): Template constructor that encode explicitely the size of the
1396          string.
1397
1398         String(ASCIILiteral) is expected to be used in most cases to avoid regressions. This constructor was
1399         added because of what we have learned from r124922: inlining the string length in the code causes a code bloat
1400         that is not always welcome.
1401
1402         Regarding performance of string initialization, the constructors performance are (6 characters string):
1403         -String(ASCIILiteral): 16% faster.
1404         -String(char[], ConstructFromLiteralTag): 33% faster (the delta increases with the string length).
1405
1406         In addition, no memory is allocated for the characters.
1407
1408         * wtf/text/StringImpl.cpp:
1409         * wtf/text/StringImpl.h:
1410         (WTF::StringImpl::createFromLiteral): Extend StringImpl::createFromLiteral to have a version
1411         with strlen() which avoids loading one extra argument.
1412         * wtf/text/WTFString.cpp:
1413         (WTF::String::String):
1414         * wtf/text/WTFString.h:
1415         (WTF::String::String):
1416         (ASCIILiteral): This class is aimed at making the construction of WTFString from a literal very easy.
1417         By using the explicit constructor ASCIILiteral(char *), one can expect the implicit conversion to String
1418         when needed.
1419         (WTF::ASCIILiteral::ASCIILiteral):
1420         (WTF::ASCIILiteral::operator const char*):
1421
1422 2012-08-08  Benjamin Poulain  <bpoulain@apple.com>
1423
1424         Use char* instead of LChar* for the public interface of String construction from literals
1425         https://bugs.webkit.org/show_bug.cgi?id=93402
1426
1427         Reviewed by Michael Saboff.
1428
1429         When the initialization from literal was added, some constructor/initialization function were
1430         using LChar for convenience.
1431
1432         Since those function should only take ASCII characters, using LChar* could cause confusion. This
1433         patch intents to clarify this by using char* for all those APIs.
1434
1435         * wtf/text/AtomicString.cpp:
1436         (WTF::CharBufferFromLiteralDataTranslator::hash):
1437         (WTF::CharBufferFromLiteralDataTranslator::equal):
1438         (WTF::CharBufferFromLiteralDataTranslator::translate):
1439         (WTF::AtomicString::addFromLiteralData):
1440         * wtf/text/AtomicString.h:
1441         (WTF::AtomicString::AtomicString):
1442         (AtomicString):
1443         * wtf/text/StringImpl.cpp:
1444         (WTF::StringImpl::createFromLiteral):
1445         * wtf/text/StringImpl.h:
1446         (StringImpl):
1447         (WTF::StringImpl::StringImpl):
1448         (WTF::StringImpl::createFromLiteral):
1449
1450 2012-08-08  Patrick Gansterer  <paroga@webkit.org>
1451
1452         Remove ce_time.(cpp|h) from list of source files
1453         https://bugs.webkit.org/show_bug.cgi?id=93446
1454
1455         Reviewed by Simon Hausmann.
1456
1457         r125004 removed the last dependency on functions defined in ce_time.cpp.
1458
1459         * wtf/PlatformWinCE.cmake:
1460
1461 2012-08-08  Alvaro Lopez Ortega  <alvaro@alobbs.com>
1462
1463         Atomics.h has incorrect GCC test for ext/atomicity.h when using LSB compilers
1464         https://bugs.webkit.org/show_bug.cgi?id=51974
1465
1466         Reviewed by Simon Hausmann.
1467
1468         * wtf/Atomics.h: Inhibits the inclusion of the atomicity.h GNU C++
1469         extension when compiling with a LSB compliant compiler. Thanks to
1470         Craig Scott for the new precompiler check code.
1471
1472 2012-08-07  Yoshifumi Inoue  <yosin@chromium.org>
1473
1474         [WTF] Add using WTF::msPerHour into DateMath.h
1475         https://bugs.webkit.org/show_bug.cgi?id=93428
1476
1477         Reviewed by Kent Tamura.
1478
1479         This patch adds "using WTF::msPerHour" into DateMath.h for some codes
1480         which will use it, e.g. bug 92960. Note: DateMath.h already has had
1481         using statements for msPerDay, msPerMinute and msPerSecond.
1482
1483         * wtf/DateMath.h: Added "using WTF::msPerHour".
1484
1485 2012-08-07  Benjamin Poulain  <benjamin@webkit.org>
1486
1487         Use the initialization from literal for JSC's Identifiers
1488         https://bugs.webkit.org/show_bug.cgi?id=93193
1489
1490         Reviewed by Geoffrey Garen.
1491
1492         * wtf/text/StringImpl.h: Update the names for the HashTranslator used by Identifier.
1493
1494 2012-07-19  Simon Hausmann  <simon.hausmann@nokia.com>
1495
1496         [Qt] Remove Qt 4 specific code paths
1497         https://bugs.webkit.org/show_bug.cgi?id=88161
1498
1499         Reviewed by Kenneth Rohde Christiansen.
1500
1501         * WTF.pri:
1502         * WTF.pro:
1503         * wtf/qt/StringQt.cpp:
1504         (WTF::String::String):
1505         (WTF::String::operator QString):
1506         * wtf/qt/UtilsQt.h: Removed.
1507         * wtf/qt/compat/QGuiApplication: Removed.
1508         * wtf/qt/compat/qguiapplication.h: Removed.
1509         * wtf/text/StringImpl.cpp:
1510         (WTF::StringImpl::~StringImpl):
1511         (WTF):
1512         * wtf/text/StringImpl.h:
1513         (StringImpl):
1514
1515 2012-08-06  Patrick Gansterer  <paroga@webkit.org>
1516
1517         [WIN] Remove dependency on pthread from MachineStackMarker
1518         https://bugs.webkit.org/show_bug.cgi?id=68429
1519
1520         Reviewed by Geoffrey Garen.
1521
1522         Windows has no support for calling a destructor for thread specific data.
1523         Since we need more control over creating and deleting thread specific keys
1524         we can not simply extend WTF::ThreadSpecific with this functionality.
1525
1526         All thread specific keys created via the new API get stored in a list.
1527         After a thread function finished we iterate over this list and call
1528         the registered destructor for every item if needed.
1529
1530         * wtf/ThreadSpecific.h:
1531         (WTF):
1532         (WTF::threadSpecificKeyCreate): Added wrapper around pthread_key_create.
1533         (WTF::threadSpecificKeyDelete): Added wrapper around pthread_key_delete.
1534         (WTF::threadSpecificSet): Added wrapper around pthread_setspecific.
1535         (WTF::threadSpecificGet): Added wrapper around pthread_getspecific.
1536         * wtf/ThreadSpecificWin.cpp:
1537
1538 2012-08-04  No'am Rosenthal  <noam.rosenthal@nokia.com>
1539
1540         [Qt] UI_SIDE_COMPOSITING code has confusing names
1541         https://bugs.webkit.org/show_bug.cgi?id=93164
1542
1543         Reviewed by Kenneth Rohde Christiansen.
1544
1545         Renamed UI_SIDE_COMPOSITING to COORDINATED_GRAPHICS.
1546
1547         * wtf/Platform.h:
1548
1549 2012-08-03  Michael Saboff  <msaboff@apple.com>
1550
1551         Convert HTML parser to handle 8-bit resources without converting to UChar*
1552         https://bugs.webkit.org/show_bug.cgi?id=90321
1553
1554         Reviewed by Adam Barth.
1555
1556         * wtf/text/WTFString.h:
1557         (WTF::String::dataSize): New method to return the number of bytes 
1558         the string requires.  This replaces a harcoded calculation based on
1559         length and sizeof(UChar).
1560
1561 2012-08-03  Benjamin Poulain  <benjamin@webkit.org>
1562
1563         StringImpl created from literal should be BufferInternal
1564         https://bugs.webkit.org/show_bug.cgi?id=92940
1565
1566         Reviewed by Anders Carlsson.
1567
1568         The ownership of string created from literal should be BufferInternal so that
1569         StringImpl never tries to delete the characters.
1570
1571         The ownership was accidentaly set to BufferOwned in r123689.
1572
1573         * wtf/text/StringImpl.cpp:
1574         (WTF::StringImpl::createFromLiteral): Update to use the new constructor.
1575         * wtf/text/StringImpl.h:
1576         (WTF::StringImpl::StringImpl):
1577         Add a new constructor making the construction from literal explicit.
1578         Add the flag s_hashFlagHasTerminatingNullCharacter since the data has the terminating
1579         null character.
1580
1581 2012-08-02  Patrick Gansterer  <paroga@webkit.org>
1582
1583         Move getLocalTime() as static inline function to DateMath
1584         https://bugs.webkit.org/show_bug.cgi?id=92955
1585
1586         Reviewed by Ryosuke Niwa.
1587
1588         getCurrentLocalTime() and getLocalTime() has been superseded with the
1589         GregorianDateTime class. So we can move it into DateMath.cpp as an static inline
1590         function. This allows us to remove the dependecy on time() and localtime()
1591         for Windows CE, where this functions require the ce_time library to work.
1592
1593         * wtf/CurrentTime.cpp:
1594         (WTF):
1595         * wtf/CurrentTime.h:
1596         * wtf/DateMath.cpp:
1597         (WTF):
1598         (WTF::getLocalTime):
1599
1600 2012-08-02  Patrick Gansterer  <paroga@webkit.org>
1601
1602         [WINCE] Return 0 at calculateDSTOffset(double, double)
1603         https://bugs.webkit.org/show_bug.cgi?id=92953
1604
1605         Reviewed by Ryosuke Niwa.
1606
1607         localtime() is implemented as a call to gmtime() in ce_time.c.
1608         Since this will never return correct values, returning 0 instead
1609         does not remove any existing functionality, but decreases the
1610         dependency on the (external) ce_time implementation.
1611
1612         * wtf/DateMath.cpp:
1613         (WTF::calculateDSTOffsetSimple):
1614
1615 2012-08-02  Arnaud Renevier  <a.renevier@sisa.samsung.com>
1616
1617         TypedArray set method is slow when called with another typed array
1618         https://bugs.webkit.org/show_bug.cgi?id=92556
1619
1620         Reviewed by Kenneth Russell.
1621
1622         Add an checkInboundData function to TypedArrayBase to check if a
1623         position will be not be out of bound or overflow from the typed array.
1624
1625         * wtf/TypedArrayBase.h:
1626         (WTF::TypedArrayBase::checkInboundData):
1627         (TypedArrayBase):
1628
1629 2012-08-01  Patrick Gansterer  <paroga@webkit.org>
1630
1631         Replace WTF::getCurrentLocalTime() with GregorianDateTime::setToCurrentLocalTime()
1632         https://bugs.webkit.org/show_bug.cgi?id=92286
1633
1634         Reviewed by Geoffrey Garen.
1635
1636         Add a method to GregorianDateTime to set its values to the current locale time.
1637         Replacing all occurrences of getCurrentLocalTime with the new function allows
1638         us to remove getCurrentLocalTime in a next step.
1639
1640         * GNUmakefile.list.am:
1641         * WTF.gypi:
1642         * WTF.pro:
1643         * WTF.vcproj/WTF.vcproj:
1644         * WTF.xcodeproj/project.pbxproj:
1645         * wtf/CMakeLists.txt:
1646         * wtf/DateMath.cpp:
1647         (WTF::dayInYear):
1648         * wtf/DateMath.h:
1649         (WTF):
1650         * wtf/GregorianDateTime.cpp: Added.
1651         (WTF):
1652         (WTF::GregorianDateTime::setToCurrentLocalTime):
1653         * wtf/GregorianDateTime.h:
1654         (GregorianDateTime):
1655
1656 2012-08-01  Patrick Gansterer  <paroga@webkit.org>
1657
1658         Fix FastMalloc build with assertions enabled.
1659
1660         * wtf/FastMalloc.cpp:
1661         (WTF::TCMalloc_PageHeap::isScavengerSuspended):
1662         (WTF::TCMalloc_PageHeap::scheduleScavenger):
1663         (WTF::TCMalloc_PageHeap::suspendScavenger):
1664
1665 2012-08-01  Patrick Gansterer  <paroga@webkit.org>
1666
1667         Export StringImpl::sizeInBytes() with WTF_EXPORT_STRING_API
1668         https://bugs.webkit.org/show_bug.cgi?id=92851
1669
1670         Reviewed by Hajime Morita.
1671
1672         r124069 missed to change one export macro, which is needed
1673         to make the windows port with USE(EXPORT_MACROS).
1674
1675         * wtf/text/StringImpl.h:
1676         (StringImpl):
1677
1678 2012-08-01  Patrick Gansterer  <paroga@webkit.org>
1679
1680         [WIN] Add missing WTF export macros to functions
1681         https://bugs.webkit.org/show_bug.cgi?id=92842
1682
1683         Reviewed by Hajime Morita.
1684
1685         When we switch the windows port to USE(EXPORT_MACROS) we
1686         need to export all functions referenced by WebKit.dll.
1687
1688         * wtf/ThreadingPrimitives.h:
1689         (WTF):
1690         * wtf/dtoa.h:
1691         (WTF):
1692         * wtf/dtoa/double-conversion.h:
1693         (StringToDoubleConverter):
1694         * wtf/unicode/UTF8.h:
1695
1696 2012-07-31  Sam Weinig  <sam@webkit.org>
1697
1698         Stop masking 8 bits off of the visited link hash. We need all the bits!
1699         https://bugs.webkit.org/show_bug.cgi?id=92799
1700
1701         Reviewed by Anders Carlsson.
1702
1703         * wtf/StringHasher.h:
1704         (WTF::StringHasher::hashWithTop8BitsMasked):
1705         (WTF::StringHasher::hash):
1706         (StringHasher):
1707         (WTF::StringHasher::computeHashAndMaskTop8Bits):
1708         (WTF::StringHasher::hashMemory):
1709         (WTF::StringHasher::avalancheBits):
1710         Rename existing computeHash and hash functions to computeHashAndMaskTop8Bits
1711         and hashWithTop8BitsMasked respectively. Add new computeHash and hash functions
1712         that do the StringHash without the masking.
1713
1714         * wtf/text/AtomicString.cpp:
1715         (WTF::CStringTranslator::hash):
1716         (WTF::UCharBufferTranslator::hash):
1717         (WTF::HashAndCharactersTranslator::hash):
1718         (WTF::SubstringTranslator::hash):
1719         (WTF::LCharBufferFromLiteralDataTranslator::hash):
1720         (WTF::AtomicString::fromUTF8Internal):
1721         * wtf/text/StringHash.h:
1722         (WTF::CaseFoldingHash::hash):
1723         * wtf/text/StringImpl.h:
1724         (WTF::StringImpl::setHash):
1725         * wtf/text/StringStatics.cpp:
1726         (WTF::StringImpl::hashSlowCase):
1727         * wtf/unicode/UTF8.cpp:
1728         (WTF::Unicode::calculateStringHashAndLengthFromUTF8MaskingTop8Bits):
1729         * wtf/unicode/UTF8.h:
1730         Update for new function names.
1731
1732 2012-07-31  Thiago Marcos P. Santos  <thiago.santos@intel.com>
1733
1734         Add a mechanism to dump the stack trace in case of a crash
1735         https://bugs.webkit.org/show_bug.cgi?id=92666
1736
1737         Reviewed by Csaba Osztrogonác.
1738
1739         Unix based ports can make use of signal handlers to dump the stack
1740         trace in case of a crash. This is specially handy when a test crashes on
1741         the bot without hitting an assertion, we might have a chance to see
1742         some insightful information at the reports.
1743
1744         * wtf/Assertions.cpp:
1745         * wtf/Assertions.h:
1746
1747 2012-07-31  Stephen Chenney  <schenney@chromium.org>
1748
1749         xmlserializer strips xlink from xlink:html svg image tag
1750         https://bugs.webkit.org/show_bug.cgi?id=79586
1751
1752         Reviewed by Nikolas Zimmermann.
1753
1754         Add WTF::xlinkAtom as a global AtomicString constant.
1755
1756         * wtf/text/AtomicString.h:
1757         (WTF): Add xlinkAtom.
1758         * wtf/text/StringStatics.cpp:
1759         (WTF): Add xlinkAtom.
1760         (WTF::AtomicString::init): Add xlinkAtom.
1761
1762 2012-07-30  Patrick Gansterer  <paroga@webkit.org>
1763
1764         Add WTF_EXPORT_PRIVATE to deleteOwnedPtr()
1765         https://bugs.webkit.org/show_bug.cgi?id=92668
1766
1767         Reviewed by Hajime Morita.
1768
1769         When using export macros all non-inlined deleteOwnedPtr()
1770         functions need to be declared with WTF_EXPORT_PRIVATE.
1771
1772         * wtf/OwnPtrCommon.h:
1773         (WTF):
1774
1775 2012-07-30  Wei James  <james.wei@intel.com>
1776
1777         atomicDecrement() never reach 0 on Android so no deref() will be called
1778         https://bugs.webkit.org/show_bug.cgi?id=92635
1779
1780         Reviewed by Adam Barth.
1781
1782         With Android NDK 7b and later, __atomic_dec()  is implemented by
1783         __sync_fetch_and_sub(), which will result in that atomicDecrement()
1784         returns the old value instead of new one.
1785
1786         * wtf/Atomics.h:
1787         (WTF):
1788         (WTF::atomicIncrement):
1789         (WTF::atomicDecrement):
1790
1791 2012-07-30  Patrick Gansterer  <paroga@webkit.org>
1792
1793         Add function to calculate the day in year from a date
1794         https://bugs.webkit.org/show_bug.cgi?id=92671
1795
1796         Reviewed by Ryosuke Niwa.
1797
1798         Replace monthToDayInYear() with dayInYear() which takes a whole
1799         date for calculation and will be used for bug 92286 later.
1800
1801         * wtf/DateMath.cpp:
1802         (WTF::dayInYear):
1803         (WTF::dateToDaysFrom1970):
1804
1805 2012-07-30  Patrick Gansterer  <paroga@webkit.org>
1806
1807         Add special export macro for string related functions
1808         https://bugs.webkit.org/show_bug.cgi?id=92624
1809
1810         Reviewed by Hajime Morita.
1811
1812         The windows port compiles string related code into every binary for performance reasons (see r59187).
1813         Add the WTF_EXPORT_STRING_API define to allow this behaviour with export macros too.
1814
1815         * wtf/ExportMacros.h:
1816         * wtf/text/AtomicString.h:
1817         (AtomicString):
1818         * wtf/text/StringImpl.h:
1819         (StringImpl):
1820         (WTF):
1821         * wtf/text/WTFString.h:
1822         (WTF):
1823         (String):
1824
1825 2012-07-30  Patrick Gansterer  <paroga@webkit.org>
1826
1827         Replace UnicodeWinCE with UnicodeWchar
1828         https://bugs.webkit.org/show_bug.cgi?id=92539
1829
1830         Reviewed by Ryosuke Niwa.
1831
1832         UnicodeWinCE never contained WinCE specific code. UnicodeWchar
1833         is a replacement for it, which is mainly based on the functions
1834         from <wchar.h>. It is ment as a minimal Unicode backend, which
1835         can be used very easy and has no external dependencies.
1836
1837         * WTF.gyp/WTF.gyp:
1838         * WTF.gypi:
1839         * wtf/Platform.h:
1840         * wtf/PlatformWinCE.cmake:
1841         * wtf/unicode/Unicode.h:
1842         * wtf/unicode/wchar/UnicodeWchar.cpp: Added.
1843         (Unicode):
1844         (WTF::Unicode::category):
1845         (WTF::Unicode::combiningClass):
1846         (WTF::Unicode::direction):
1847         (WTF::Unicode::decompositionType):
1848         (WTF::Unicode::hasLineBreakingPropertyComplexContext):
1849         (WTF::Unicode::mirroredChar):
1850         (WTF::Unicode::convertWithFunction):
1851         (WTF::Unicode::foldCase):
1852         (WTF::Unicode::toLower):
1853         (WTF::Unicode::toUpper):
1854         * wtf/unicode/wchar/UnicodeWchar.h: Added.
1855         (Unicode):
1856         (WTF::Unicode::isAlphanumeric):
1857         (WTF::Unicode::isDigit):
1858         (WTF::Unicode::isLetter):
1859         (WTF::Unicode::isLower):
1860         (WTF::Unicode::isPrintableChar):
1861         (WTF::Unicode::isPunct):
1862         (WTF::Unicode::isSpace):
1863         (WTF::Unicode::isUpper):
1864         (WTF::Unicode::isArabicChar):
1865         (WTF::Unicode::isSeparatorSpace):
1866         (WTF::Unicode::foldCase):
1867         (WTF::Unicode::toLower):
1868         (WTF::Unicode::toUpper):
1869         (WTF::Unicode::toTitleCase):
1870         (WTF::Unicode::umemcasecmp):
1871         * wtf/unicode/wince/UnicodeWinCE.cpp: Removed.
1872         * wtf/unicode/wince/UnicodeWinCE.h: Removed.
1873
1874 2012-07-26  Yury Semikhatsky  <yurys@chromium.org>
1875
1876         Web Inspector: move StringImpl size calculation to StringImpl
1877         https://bugs.webkit.org/show_bug.cgi?id=92359
1878
1879         Reviewed by Pavel Feldman.
1880
1881         Moved stringSize(StringImpl*) implementation from InspectorMemoryAgent to
1882         StringImpl::sizeInBytes();
1883
1884         * wtf/text/StringImpl.cpp:
1885         (WTF::StringImpl::sizeInBytes):
1886         (WTF):
1887         * wtf/text/StringImpl.h:
1888         (StringImpl):
1889
1890 2012-07-28  Patrick Gansterer  <paroga@webkit.org>
1891
1892         [WIN] Add missing export macro to friend decleration.
1893
1894         Since the __declspec is part of the function signature
1895         on windows, we need it at all friend declerations too.
1896
1897         * wtf/MediaTime.h:
1898
1899 2012-07-28  Patrick Gansterer  <paroga@webkit.org>
1900
1901         [CMake] Add missing MediaTime files after r123878.
1902
1903         * wtf/CMakeLists.txt:
1904
1905 2012-07-28  Patrick Gansterer  <paroga@webkit.org>
1906
1907         Remove obsolete functions from WTF::Unicode
1908         https://bugs.webkit.org/show_bug.cgi?id=92571
1909
1910         Reviewed by Kentaro Hara.
1911
1912         Remove hasLineBreakingPropertyComplexContextOrIdeographic() and digitValue(),
1913         since they are never used and defined for a few Unicode backends only.
1914
1915         * wtf/unicode/glib/UnicodeGLib.h:
1916         * wtf/unicode/icu/UnicodeIcu.h:
1917
1918 2012-07-27  Sheriff Bot  <webkit.review.bot@gmail.com>
1919
1920         Unreviewed, rolling out r123679.
1921         http://trac.webkit.org/changeset/123679
1922         https://bugs.webkit.org/show_bug.cgi?id=92565
1923
1924         Slowed down HTML parsing by 3.6% (Requested by abarth on
1925         #webkit).
1926
1927         * wtf/text/WTFString.h:
1928
1929 2012-07-27  Arnaud Renevier  <a.renevier@sisa.samsung.com>
1930
1931         use createUninitialized when creating TypedArray from another array
1932         https://bugs.webkit.org/show_bug.cgi?id=92518
1933
1934         Reviewed by Kenneth Russell.
1935
1936         Expose a createUninitialized static method on TypedArray classes.
1937
1938         * wtf/Float32Array.h:
1939         (Float32Array):
1940         (WTF::Float32Array::createUninitialized):
1941         (WTF):
1942         * wtf/Float64Array.h:
1943         (Float64Array):
1944         (WTF::Float64Array::createUninitialized):
1945         (WTF):
1946         * wtf/Int16Array.h:
1947         (Int16Array):
1948         (WTF::Int16Array::createUninitialized):
1949         (WTF):
1950         * wtf/Int32Array.h:
1951         (Int32Array):
1952         (WTF::Int32Array::createUninitialized):
1953         (WTF):
1954         * wtf/Int8Array.h:
1955         (Int8Array):
1956         (WTF::Int8Array::createUninitialized):
1957         (WTF):
1958         * wtf/Uint16Array.h:
1959         (Uint16Array):
1960         (WTF::Uint16Array::createUninitialized):
1961         (WTF):
1962         * wtf/Uint32Array.h:
1963         (Uint32Array):
1964         (WTF::Uint32Array::createUninitialized):
1965         (WTF):
1966         * wtf/Uint8Array.h:
1967         (Uint8Array):
1968         (WTF::Uint8Array::createUninitialized):
1969         (WTF):
1970         * wtf/Uint8ClampedArray.h:
1971         (Uint8ClampedArray):
1972
1973 2012-07-27  Patrick Gansterer  <paroga@webkit.org>
1974
1975         [WINCE] Use macros from ICU instead of defining the same functionality again
1976         https://bugs.webkit.org/show_bug.cgi?id=92530
1977
1978         Reviewed by Ryosuke Niwa.
1979
1980         Replace isHighSurrogate() with U16_IS_LEAD(), isLowSurrogate() with
1981         U16_IS_TRAIL() and surrogateToUcs4() with U16_GET_SUPPLEMENTARY().
1982
1983         * wtf/unicode/wince/UnicodeWinCE.h:
1984
1985 2012-07-27  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
1986
1987         [Qt] Fix build after r123917
1988         https://bugs.webkit.org/show_bug.cgi?id=92555
1989
1990         Unreviewed.
1991
1992         * wtf/GregorianDateTime.h: Needs string.h for memset().
1993
1994 2012-07-27  Paweł Forysiuk  <tuxator@o2.pl>
1995
1996         MinGW build fails because of missing header in GregorianDateTime.h
1997         https://bugs.webkit.org/show_bug.cgi?id=92531
1998
1999         * wtf/GregorianDateTime.h: Include time.h
2000
2001 2012-07-27  Jer Noble  <jer.noble@apple.com>
2002
2003         Unreviewed build fix.
2004
2005         Use MathExtras.h and the non std:: versions of isnan and signbit.
2006
2007         * wtf/MediaTime.cpp:
2008         (WTF::MediaTime::createWithFloat):
2009         (WTF::MediaTime::createWithDouble):
2010
2011 2012-07-27  Jer Noble  <jer.noble@apple.com>
2012
2013         Support a rational time class for use by media elements.
2014         https://bugs.webkit.org/show_bug.cgi?id=88787
2015
2016         Reviewed by Eric Carlson.
2017
2018         Add a new MediaTime class which implements rational math operations.
2019
2020         Add common constructors and assignment operators:
2021         * wtf/MediaTime.cpp: Added.
2022         (WTF::MediaTime::MediaTime):
2023         (WTF::MediaTime::~MediaTime):
2024         (WTF::MediaTime::operator=):
2025
2026         Add common math operators:
2027         * wtf/MediaTime.cpp:
2028         (WTF::MediaTime::operator+):
2029         (WTF::MediaTime::operator-):
2030         (WTF::MediaTime::operator<):
2031         (WTF::MediaTime::operator>):
2032         (WTF::MediaTime::operator==):
2033         (WTF::MediaTime::operator>=):
2034         (WTF::MediaTime::operator<=):
2035
2036         Add functions to check the MeiaTime time type flags:
2037         * wtf/MediaTime.h:
2038         (WTF::MediaTime::isValid):
2039         (WTF::MediaTime::isInvalid):
2040         (WTF::MediaTime::hasBeenRounde):
2041         (WTF::MediaTime::isPositiveInfinite):
2042         (WTF::MediaTime::isNegativeInfinite):
2043         (WTF::MediaTime::isIndefinite):
2044
2045         Add constants for commonly used MediaTime values:
2046         (WTF::MediaTime::zeroTime):
2047         (WTF::MediaTime::invalidTime):
2048         (WTF::MediaTime::positiveInfiniteTime):
2049         (WTF::MediaTime::negativeInfiniteTime):
2050         (WTF::MediaTime::indefiniteTime):
2051
2052         Add explicit conversion functions to convert to and from floating point values.
2053         * wtf/MediaTime.cpp:
2054         (WTF::MediaTime::createWithFloat):
2055         (WTF::MediaTime::createWithDouble):
2056         (WTF::MediaTime::toFloat):
2057         (WTF::MediaTime::toDouble):
2058
2059         Add some useful exported functions:
2060         * wtf/MediaTime.cpp:
2061         (WTF::MediaTime::compare): Master function for the comparison operators above.
2062         (WTF::MediaTime::setTimeScale): Rescale the time value to a new time scale.
2063         (WTF::abs): Return an absolute value for the current MediaTime.
2064
2065         Static utility functions to implement the above:
2066         * wtf/MediaTime.cpp:
2067         (WTF::greatestCommonDivisor):
2068         (WTF::leastCommonMultiple):
2069         (WTF::signum):
2070
2071         Windows-only implementations of isinf and signbit:
2072         * wtf/MediaTime.cpp:
2073         (std::isinf):
2074         (std::signbit):
2075
2076         Add the new class to platform build files:
2077         * GNUmakefile.list.am:
2078         * WTF.gypi:
2079         * WTF.pro:
2080         * WTF.vcproj/WTF.vcproj:
2081         * WTF.xcodeproj/project.pbxproj:
2082
2083 2012-07-27  Wei James  <james.wei@intel.com>
2084
2085         set WTF_USE_LOCKFREE_THREADSAFEREFCOUNTED for chromium android
2086         https://bugs.webkit.org/show_bug.cgi?id=91746
2087
2088         Reviewed by Adam Barth.
2089
2090         This patch is part of efforts to enable web audio for chromium android.
2091         Web audio component needs to use atomicIncrement and atomicDecrement,
2092         which are enabled by this MACRO.
2093
2094         As mentioned in https://bugs.webkit.org/show_bug.cgi?id=89428#c19, make
2095         this patch standalone.
2096
2097         * wtf/Atomics.h:
2098         (WTF):
2099
2100 2012-07-27  Wei James  <james.wei@intel.com>
2101
2102         set WTF_USE_LOCKFREE_THREADSAFEREFCOUNTED for chromium android
2103         https://bugs.webkit.org/show_bug.cgi?id=91746
2104
2105         Reviewed by Adam Barth.
2106
2107         This patch is part of efforts to enable web audio for chromium android.
2108         Web audio component needs to use atomicIncrement and atomicDecrement,
2109         which are enabled by this MACRO.
2110
2111         As mentioned in https://bugs.webkit.org/show_bug.cgi?id=89428#c19, make
2112         this patch standalone.
2113
2114         * wtf/Atomics.h:
2115         (WTF):
2116
2117 2012-07-26  Arnaud Renevier  <a.renevier@sisa.samsung.com>
2118
2119         constructing TypedArray from another TypedArray is slow
2120         https://bugs.webkit.org/show_bug.cgi?id=90838
2121
2122         Reviewed by Kenneth Russell.
2123
2124         Introduce virtual method getType on ArrayBufferView. It returns the actual
2125         type of the view. This method replaces previous is<Type>Array() methods.
2126
2127         * wtf/ArrayBufferView.h:
2128         * wtf/Float32Array.h:
2129         (WTF::Float32Array::getType):
2130         (Float32Array):
2131         * wtf/Float64Array.h:
2132         (WTF::Float64Array::getType):
2133         (Float64Array):
2134         * wtf/Int16Array.h:
2135         (WTF::Int16Array::getType):
2136         (Int16Array):
2137         * wtf/Int32Array.h:
2138         (WTF::Int32Array::getType):
2139         (Int32Array):
2140         * wtf/Int8Array.h:
2141         (WTF::Int8Array::getType):
2142         (Int8Array):
2143         * wtf/IntegralTypedArrayBase.h:
2144         * wtf/TypedArrayBase.h:
2145         (TypedArrayBase):
2146         (WTF::TypedArrayBase::item):
2147         * wtf/Uint16Array.h:
2148         (WTF::Uint16Array::getType):
2149         (Uint16Array):
2150         * wtf/Uint32Array.h:
2151         (WTF::Uint32Array::getType):
2152         (Uint32Array):
2153         * wtf/Uint8Array.h:
2154         (WTF::Uint8Array::getType):
2155         (Uint8Array):
2156         * wtf/Uint8ClampedArray.h:
2157         (WTF::Uint8ClampedArray::getType):
2158         (Uint8ClampedArray):
2159
2160 2012-07-26  Zeno Albisser  <zeno@webkit.org>
2161
2162         [Qt] requestAnimationFrame should only trigger when a new frame can be displayed.
2163         https://bugs.webkit.org/show_bug.cgi?id=88638
2164
2165         Disable REQUEST_ANIMATION_FRAME_TIMER for the Qt port and tie
2166         the servicing of scripted animations to layer syncing for WK2.
2167         For WK1 we rely on the RefreshAnimation that is based on QAbstractAnimation.
2168
2169         Reviewed by Jocelyn Turcotte.
2170
2171         * wtf/Platform.h:
2172
2173 2012-07-26  Yury Semikhatsky  <yurys@chromium.org>
2174
2175         Unreviewed. Revert r123740 as it breaks AppleMac compilation.
2176
2177         * wtf/text/StringImpl.cpp:
2178         * wtf/text/StringImpl.h:
2179
2180 2012-07-26  Yury Semikhatsky  <yurys@chromium.org>
2181
2182         Web Inspector: move StringImpl size calculation to StringImpl
2183         https://bugs.webkit.org/show_bug.cgi?id=92359
2184
2185         Reviewed by Pavel Feldman.
2186
2187         Moved stringSize(StringImpl*) implementation from InspectorMemoryAgent to
2188         StringImpl::sizeInBytes();
2189
2190         * wtf/text/StringImpl.cpp:
2191         (WTF::StringImpl::sizeInBytes):
2192         (WTF):
2193         * wtf/text/StringImpl.h:
2194         (StringImpl):
2195
2196 2012-07-25  Benjamin Poulain  <bpoulain@apple.com>
2197
2198         Initialize QualifiedName's strings from the read only data segment
2199         https://bugs.webkit.org/show_bug.cgi?id=92226
2200
2201         Reviewed by Anders Carlsson.
2202
2203         Add constructors for StringImpl and AtomicString to be able to create
2204         the strings from the literal in read only memory.
2205
2206         * wtf/text/AtomicString.cpp:
2207         (HashTranslatorCharBuffer):
2208         (WTF::LCharBufferFromLiteralDataTranslator::hash):
2209         (LCharBufferFromLiteralDataTranslator):
2210         (WTF::LCharBufferFromLiteralDataTranslator::equal):
2211         (WTF::LCharBufferFromLiteralDataTranslator::translate):
2212         (WTF::AtomicString::addFromLiteralData):
2213         * wtf/text/AtomicString.h:
2214         (WTF::AtomicString::AtomicString):
2215         (AtomicString):
2216         * wtf/text/StringImpl.cpp:
2217         (WTF::StringImpl::createFromLiteral):
2218         * wtf/text/StringImpl.h:
2219         (WTF):
2220         (StringImpl):
2221         (WTF::StringImpl::createFromLiteral):
2222
2223 2012-07-25  Michael Saboff  <msaboff@apple.com>
2224
2225         Convert HTML parser to handle 8-bit resources without converting to UChar*
2226         https://bugs.webkit.org/show_bug.cgi?id=90321
2227
2228         Reviewed by Geoffrey Garen.
2229
2230         * wtf/text/WTFString.h:
2231         (WTF::String::dataSize): New method to return the number of bytes 
2232         the string requires.  This replaces a harcoded calculation based on
2233         length and sizeof(UChar).
2234
2235 2012-07-25  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2236
2237         Create a specialized pair for use in HashMap iterators
2238         https://bugs.webkit.org/show_bug.cgi?id=92137
2239
2240         Reviewed by Ryosuke Niwa.
2241
2242         The type used for internal storage in HashMap is exposed in its interface as iterator
2243         "contents". Currently HashMap uses std::pair<>, which this patch replaces with
2244         KeyValuePair.
2245
2246         Having this specialized structure will allow us to customize the members to be called
2247         key/value, improving readability in code using HashMap iterators. They are still called
2248         first/second to separate this change from the mechanical change of updating callsites.
2249
2250         * wtf/HashIterators.h:
2251         (HashTableConstKeysIterator):
2252         (HashTableConstValuesIterator):
2253         (HashTableKeysIterator):
2254         (HashTableValuesIterator):
2255         Use KeyValuePair instead of std::pair when defining the iterators.
2256
2257         * wtf/HashMap.h:
2258         (WTF):
2259         (WTF::KeyValuePairKeyExtractor::extract):
2260         (HashMap):
2261         Remove PairFirstExtractor. Add and use the KeyValuePair corresponding extractor.
2262
2263         (WTF::HashMapValueTraits::isEmptyValue): Use KeyValuePairHashTraits for HashMaps.
2264         (WTF::HashMapTranslator::translate):
2265         (WTF::HashMapTranslatorAdapter::translate):
2266         The traits of the mapped value is now called ValueTraits instead of SecondTraits.
2267
2268         * wtf/HashTable.h:
2269         (WTF::hashTableSwap): Add specialization for swapping KeyValuePairs.
2270         (WTF): Remove now unneeded specialization for std::pairs.
2271
2272         * wtf/HashTraits.h:
2273         (KeyValuePair):
2274         (WTF::KeyValuePair::KeyValuePair):
2275         (WTF):
2276         Specialized pair. In the future difference from pair should be the member names.
2277
2278         (KeyValuePairHashTraits):
2279         (WTF::KeyValuePairHashTraits::emptyValue):
2280         (WTF::KeyValuePairHashTraits::constructDeletedValue):
2281         (WTF::KeyValuePairHashTraits::isDeletedValue):
2282         These traits are analogous to PairHashTraits but for KeyValuePair.
2283
2284         * wtf/RefPtrHashMap.h: Use KeyValuePairHashTraits.
2285
2286 2012-07-25  Andrew Wilson  <atwilson@chromium.org>
2287
2288         Unreviewed, rolling out r123560.
2289         http://trac.webkit.org/changeset/123560
2290         https://bugs.webkit.org/show_bug.cgi?id=90321
2291
2292         Breaks chromium valgrind tests.
2293
2294         * wtf/text/WTFString.h:
2295
2296 2012-07-25  Csaba Osztrogonác  <ossy@webkit.org>
2297
2298         [Qt] There are parallel GC related crashes regularly
2299         https://bugs.webkit.org/show_bug.cgi?id=90957
2300
2301         Rubber-stamped by Zoltan Herczeg.
2302
2303         * wtf/Platform.h: Disable parallel GC temporarily on Qt until proper fix.
2304
2305 2012-07-24  Benjamin Poulain  <bpoulain@apple.com> && Joseph Pecoraro  <pecoraro@apple.com>
2306
2307         QualifiedName's HashSet should be big enough to hold at least all the static names
2308         https://bugs.webkit.org/show_bug.cgi?id=91891
2309
2310         Reviewed by Darin Adler.
2311
2312         Add a static struct to compute the HashTable capacity for any given size at compile time.
2313         This allow us to create HashTraits giving the minimumSize without hardcoding the values.
2314
2315         * wtf/HashTable.h:
2316         (OneifyLowBits):
2317         (UpperPowerOfTwoBound):
2318         (HashTableCapacityForSize): Compute the HashTable capacity at compile time.
2319
2320 2012-07-24  Michael Saboff  <msaboff@apple.com>
2321
2322         Convert HTML parser to handle 8-bit resources without converting to UChar*
2323         https://bugs.webkit.org/show_bug.cgi?id=90321
2324
2325         Reviewed by Geoffrey Garen.
2326
2327         * wtf/text/WTFString.h:
2328         (WTF::String::dataSize): New method to return the number of bytes 
2329         the string requires.  This replaces a harcoded calculation based on
2330         length and sizeof(UChar).
2331
2332 2012-07-24  Sam Weinig  <sam@webkit.org>
2333
2334         Add per-HashTable stats
2335         https://bugs.webkit.org/show_bug.cgi?id=92185
2336
2337         Reviewed by Anders Carlsson.
2338
2339         Add per-HashTable stats, so we can look at the effectiveness of an individual HashTable.
2340
2341         * wtf/HashTable.h:
2342         (WTF::HashTable::Stats::Stats):
2343         Add a HashTable::Stats to hold the stats.
2344
2345         (WTF::HashTable::Stats::recordCollisionAtCount):
2346         (WTF::HashTable::Stats::dumpStats):
2347         Add versions of recordCollisionAtCount and dumpStats for per-HashTable version.
2348
2349         (WTF::HashTable):
2350         Keep the stats, if enabled, in an OwnPtr, to not blow JSCell max size restrictions.
2351
2352         (WTF::lookup):
2353         (WTF::lookupForWriting):
2354         (WTF::fullLookupForWriting):
2355         (WTF::add):
2356         (WTF::reinsert):
2357         (WTF::remove):
2358         (WTF::rehash):
2359         Keep track of the stats as the table is used.
2360
2361 2012-07-24  Patrick Gansterer  <paroga@webkit.org>
2362
2363         Store the full year in GregorianDateTime
2364         https://bugs.webkit.org/show_bug.cgi?id=92067
2365
2366         Reviewed by Geoffrey Garen.
2367
2368         Use the full year instead of the offset from year 1900 
2369         for the year member variable of GregorianDateTime.
2370
2371         * wtf/GregorianDateTime.h:
2372         (WTF::GregorianDateTime::operator tm):
2373
2374 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
2375
2376         Move GregorianDateTime from JSC to WTF namespace
2377         https://bugs.webkit.org/show_bug.cgi?id=91948
2378
2379         Reviewed by Geoffrey Garen.
2380
2381         Moving GregorianDateTime into the WTF namespace allows us to us to
2382         use it in WebCore too. The new class has the same behaviour as the
2383         old struct. Only the unused timeZone member has been removed.
2384
2385         * GNUmakefile.list.am:
2386         * WTF.gypi:
2387         * WTF.pro:
2388         * WTF.vcproj/WTF.vcproj:
2389         * WTF.xcodeproj/project.pbxproj:
2390         * wtf/CMakeLists.txt:
2391         * wtf/GregorianDateTime.h: Added.
2392         (GregorianDateTime):
2393
2394 2012-07-23  Rob Buis  <rbuis@rim.com>
2395
2396         [BlackBerry] Merge createThreadInternal implementations
2397         https://bugs.webkit.org/show_bug.cgi?id=91899
2398
2399         Reviewed by Yong Li.
2400
2401         PR 111675
2402
2403         Remove our implementation since the default thread stack size on QNX is fine.
2404
2405         * wtf/ThreadingPthreads.cpp:
2406         (WTF::createThreadInternal):
2407         (WTF::initializeCurrentThreadInternal): make sure we set the thread name.
2408
2409 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
2410
2411         [WINCE] Define NOMINMAX in the build system instead of Platform.h
2412         https://bugs.webkit.org/show_bug.cgi?id=91938
2413
2414         Reviewed by Ryosuke Niwa.
2415
2416         * wtf/Platform.h:
2417
2418 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
2419
2420         Build fix for Windows after r123317.
2421
2422         * wtf/DateMath.cpp: Added missing header include.
2423
2424 2012-07-23  Patrick Gansterer  <paroga@webkit.org>
2425
2426         [WIN] Use GetTimeZoneInformation() for calculateUTCOffset()
2427         https://bugs.webkit.org/show_bug.cgi?id=91935
2428
2429         Reviewed by Ryosuke Niwa.
2430
2431         GetTimeZoneInformation() returns the offset directly. Using it
2432         avoids unnecessary calculations and remove dependencies on
2433         other time related function, which do not exist on WinCE.
2434
2435         * wtf/DateMath.cpp:
2436         (WTF::calculateUTCOffset):
2437
2438 2012-07-20  Han Shen  <shenhan@google.com>
2439
2440         [Chromium] Compilation fails under gcc 4.7
2441         https://bugs.webkit.org/show_bug.cgi?id=90227
2442
2443         Reviewed by Tony Chang.
2444
2445         Disable warnings about c++0x compatibility in gcc newer than 4.6.
2446
2447         * WTF.gyp/WTF.gyp:
2448
2449 2012-07-19  Dan Bernstein  <mitz@apple.com>
2450
2451         The ATSUI-based complex text code is unused
2452         https://bugs.webkit.org/show_bug.cgi?id=91816
2453
2454         Reviewed by Sam Weinig.
2455
2456         Removed definitions of WTF_USE_ATSUI and WTF_USE_CORE_TEXT.
2457
2458         * wtf/Platform.h:
2459
2460 2012-07-19  Wei James  <james.wei@intel.com>
2461
2462         enable Web Audio for chromium android port
2463         https://bugs.webkit.org/show_bug.cgi?id=89428
2464
2465         Reviewed by Kenneth Russell.
2466
2467         * wtf/MathExtras.h:
2468         (log2):
2469         (log2f):
2470
2471 2012-07-19  Scott Graham  <scottmg@chromium.org>
2472
2473         [Chromium] disable warning on Windows from gcc-only pragma in Assertions.cpp"
2474         https://bugs.webkit.org/show_bug.cgi?id=91776
2475
2476         Reviewed by Ryosuke Niwa.
2477
2478         Avoids:
2479             ...\source\wtf\wtf\assertions.cpp(31) : warning C4068: unknown pragma
2480
2481         * WTF.gyp/WTF.gyp:
2482
2483 2012-07-19  Robert Sesek  <rsesek@chromium.org>
2484
2485         [chromium][Mac] Switch the MACOSX_DEPLOYMENT_TARGET to 10.6
2486         https://bugs.webkit.org/show_bug.cgi?id=91752
2487
2488         Reviewed by Eric Seidel.
2489
2490         When building CHROMIUM && DARWIN, do not enable ATSUI support.
2491
2492         * wtf/Platform.h:
2493
2494 2012-07-18  Yong Li  <yoli@rim.com>
2495
2496         [BlackBerry] Implement currentTime() and monotonicallyIncreasingTime() for OS(QNX)
2497         https://bugs.webkit.org/show_bug.cgi?id=91659
2498
2499         Reviewed by Rob Buis.
2500
2501         Implement currentTime() and monotonicallyIncreasingTime() for OS(QNX) with clock_gettime().
2502
2503         * wtf/CurrentTime.cpp:
2504         (WTF):
2505         (WTF::currentTime):
2506         (WTF::monotonicallyIncreasingTime):
2507
2508 2012-07-18  Tom Sepez  <tsepez@chromium.org>
2509
2510         OOB read of stack buffer below DoubleToStringConverter::CreateExponentialRepresentation() in debug builds
2511         https://bugs.webkit.org/show_bug.cgi?id=91642
2512
2513         Reviewed by Abhishek Arya.
2514
2515         * wtf/dtoa/double-conversion.cc:
2516         (DoubleToStringConverter::CreateExponentialRepresentation): NUL-terminate string buffer before passing it to StringBuilder::AddSubstring()
2517         
2518 2012-07-18  Michael Saboff  <msaboff@apple.com>
2519
2520         Make TextCodecLatin1 handle 8 bit data without converting to UChar's
2521         https://bugs.webkit.org/show_bug.cgi?id=90319
2522
2523         Reviewed by Oliver Hunt.
2524
2525         * wtf/text/StringImpl.h:
2526         (StringImpl): Exported LChar variant of adopt().
2527         * wtf/text/WTFString.h:
2528         (WTF::String::createUninitialized): Exported LChar variant.
2529
2530 2012-07-18  Rob Buis  <rbuis@rim.com>
2531
2532         Alignment crash in MIMESniffer
2533         https://bugs.webkit.org/show_bug.cgi?id=89787
2534
2535         Reviewed by Yong Li.
2536
2537         PR 169064
2538
2539         Change isPointerTypeAlignmentOkay so calling it does not require ifdefs.
2540
2541         * wtf/StdLibExtras.h:
2542         (isPointerTypeAlignmentOkay):
2543
2544 2012-07-17  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
2545
2546         [Qt][V8] Remove the V8 related codepaths and configuration
2547         https://bugs.webkit.org/show_bug.cgi?id=90863
2548
2549         Reviewed by Simon Hausmann.
2550
2551         * WTF.pri:
2552
2553 2012-07-17  Sheriff Bot  <webkit.review.bot@gmail.com>
2554
2555         Unreviewed, rolling out r122834.
2556         http://trac.webkit.org/changeset/122834
2557         https://bugs.webkit.org/show_bug.cgi?id=91492
2558
2559         it broke the chromium (Requested by kkristof on #webkit).
2560
2561         * WTF.pri:
2562
2563 2012-07-17  Gabor Ballabas  <gaborb@inf.u-szeged.hu>
2564
2565         [Qt][V8] Remove the V8 related codepaths and configuration
2566         https://bugs.webkit.org/show_bug.cgi?id=90863
2567
2568         Reviewed by Simon Hausmann.
2569
2570         * WTF.pri:
2571
2572 2012-07-16  Hajime Morrita  <morrita@chromium.org>
2573
2574         WebCore needs WEBCORE_TESTING macro to mark methods being exported for testing.
2575         https://bugs.webkit.org/show_bug.cgi?id=90764
2576
2577         Reviewed by Adam Barth.
2578
2579         Added USE(EXPORT_MACROS_FOR_TESTING) and enabled it on GTK and Windows.
2580
2581         * wtf/ExportMacros.h:
2582         * wtf/Platform.h:
2583
2584 2012-07-16  Filip Pizlo  <fpizlo@apple.com>
2585
2586         Unreviewed build fix.
2587
2588         * wtf/FastMalloc.cpp:
2589         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2590
2591 2012-07-16  Adam Treat  <atreat@rim.com>
2592
2593         [BlackBerry] Use newer version of platform API to implement callOnMainThread
2594         https://bugs.webkit.org/show_bug.cgi?id=91404
2595
2596         Reviewed by Yong Li.
2597
2598         Right now we're using an outdated API that involves a virtual function call for no reason.
2599         Use the new API that is much more direct and to the point.
2600
2601         * wtf/blackberry/MainThreadBlackBerry.cpp:
2602         (WTF::scheduleDispatchFunctionsOnMainThread):
2603
2604 2012-07-14  Filip Pizlo  <fpizlo@apple.com>
2605
2606         Unreviewed, build fix.
2607
2608         * wtf/Assertions.cpp:
2609         * wtf/Platform.h:
2610         * wtf/unicode/icu/CollatorICU.cpp:
2611         (WTF::Collator::userDefault):
2612
2613 2012-07-13  Xianzhu Wang  <wangxianzhu@chromium.org>
2614
2615         Move WebCore/platform/text/Base64 to WTF/wtf/text
2616         https://bugs.webkit.org/show_bug.cgi?id=91162
2617
2618         Reviewed by Adam Barth.
2619
2620         * GNUmakefile.list.am:
2621         * WTF.gypi:
2622         * WTF.pro:
2623         * WTF.vcproj/WTF.vcproj:
2624         * WTF.xcodeproj/project.pbxproj:
2625         * wtf/CMakeLists.txt:
2626         * wtf/text/Base64.cpp: Renamed from Source/WebCore/platform/text/Base64.cpp.
2627         (WTF):
2628         (WTF::base64Encode):
2629         (WTF::base64Decode):
2630         (WTF::base64DecodeInternal):
2631         * wtf/text/Base64.h: Renamed from Source/WebCore/platform/text/Base64.h.
2632         (WTF):
2633         (WTF::base64Encode):
2634
2635 2012-07-12  Carlos Garcia Campos  <cgarcia@igalia.com>
2636
2637         [GTK] Add API to get HTTPS status to WebKit2 GTK+
2638         https://bugs.webkit.org/show_bug.cgi?id=91100
2639
2640         Reviewed by Martin Robinson.
2641
2642         Add support for GByteArray.
2643
2644         * wtf/gobject/GRefPtr.cpp:
2645         (WTF::refGPtr):
2646         (WTF):
2647         (WTF::derefGPtr):
2648         * wtf/gobject/GRefPtr.h:
2649         (WTF):
2650         * wtf/gobject/GTypedefs.h:
2651
2652 2012-07-12  Maciej Stachowiak  <mjs@apple.com>
2653
2654         Document ListHashSet iteration guarantees
2655         https://bugs.webkit.org/show_bug.cgi?id=91106
2656
2657         Reviewed by Eric Seidel.
2658
2659         * wtf/ListHashSet.h:
2660         (WTF): Expand class comment to document this.
2661
2662 2012-07-11  Mark Rowe  <mrowe@apple.com>
2663
2664         <http://webkit.org/b/91024> Build against the latest SDK when targeting older OS X versions.
2665
2666         Reviewed by Dan Bernstein.
2667
2668         The deployment target is already set to the version that we're targeting, and it's that setting
2669         which determines which functionality from the SDK is available to us.
2670
2671         * Configurations/Base.xcconfig:
2672
2673 2012-07-11  Mark Rowe  <mrowe@apple.com>
2674
2675         Replace definitions of BUILDING_ON / TARGETING macros with macros that will error when used.
2676
2677         Part of <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros.
2678
2679         Reviewed by Anders Carlsson.
2680
2681         * wtf/Platform.h:
2682
2683 2012-07-11  Mark Rowe  <mrowe@apple.com>
2684
2685         Switch a few cases that care about the SDK over to checking __MAC_OS_X_VERSION_MAX_ALLOWED so that things build.
2686
2687         Part of <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros
2688
2689         Reviewed by Filip Pizlo.
2690
2691         * wtf/FastMalloc.cpp:
2692         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary): The SDK we're building against determines how many elements
2693         the structure is declared as having.
2694
2695 2012-07-11  Mark Rowe  <mrowe@apple.com>
2696
2697         <http://webkit.org/b/91015> Remove BUILDING_ON / TARGETING macros in favor of system availability macros
2698
2699         This removal was handled by a script that translates the relevant macros in to the equivalent checks
2700         using the system availability macros.
2701
2702         Reviewed by Filip Pizlo.
2703
2704         * wtf/Assertions.cpp:
2705         * wtf/FastMalloc.cpp:
2706         * wtf/Platform.h:
2707         * wtf/ThreadingPthreads.cpp:
2708         * wtf/unicode/icu/CollatorICU.cpp:
2709
2710 2012-07-11  Anders Carlsson  <andersca@apple.com>
2711
2712         Add -Wtautological-compare and -Wsign-compare warning flags
2713         https://bugs.webkit.org/show_bug.cgi?id=90994
2714
2715         Reviewed by Mark Rowe.
2716
2717         * Configurations/Base.xcconfig:
2718
2719 2012-07-10  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
2720
2721         Re-enable __declspec(dl{import,export}) for MinGW when using EXPORT_MACROS
2722         https://bugs.webkit.org/show_bug.cgi?id=90612
2723
2724         Reviewed by Csaba Osztrogonác.
2725
2726         MinGW was switched to use auto import/export of symbols on r44184.
2727         From my understanding of the documentation, MinGW will not auto-export symbols
2728         unless there are no explicit __declspec(dlexport) in the DLL already.
2729
2730         The issues that originally made us rely on the auto-import feature of MinGW
2731         should now be resolved with the EXPORT_MACROS work. This patch re-enables them.
2732
2733         It also removes the GCC check for internal symbols hiding as the visibility should
2734         already be hidden by default for both MSVC and GCC on Windows anyway.
2735
2736         * wtf/ExportMacros.h:
2737
2738 2012-07-09  No'am Rosenthal  <noam.rosenthal@nokia.com>
2739
2740         Shared code that is guarded with ENABLE(WEBGL) should be guarded with USE()
2741         https://bugs.webkit.org/show_bug.cgi?id=90506
2742
2743         Reviewed by Martin Robinson.
2744
2745         Made USE(3D_GRAPHICS) default to true when ENABLE(WEBGL) is true.
2746         Also updated the Qt default to always use TEXTURE_MAPPER, and to use TEXTURE_MAPPER_GL when
2747         3D_GRAPHICS is used.
2748
2749         * wtf/Platform.h:
2750
2751 2012-07-08  Laszlo Gombos  <laszlo.1.gombos@nokia.com>
2752
2753         Introduce a build flag for low quality JPEG images
2754         https://bugs.webkit.org/show_bug.cgi?id=90748
2755
2756         Reviewed by Adam Barth.
2757
2758         Turn on the newly introduced flags for android.
2759
2760         * wtf/Platform.h:
2761
2762 2012-07-05  Filip Pizlo  <fpizlo@apple.com>
2763
2764         INLINE_ARM_FUNCTION(thingy) should make thingy be thumb2 if we're using thumb2
2765         https://bugs.webkit.org/show_bug.cgi?id=90644
2766
2767         Reviewed by Mark Hahnenberg.
2768         
2769         Fix breakage introduced in http://trac.webkit.org/changeset/121885
2770
2771         * wtf/InlineASM.h:
2772
2773 2012-07-05  Zoltan Herczeg  <zherczeg@webkit.org>
2774
2775         Port DFG JIT to traditional ARM
2776         https://bugs.webkit.org/show_bug.cgi?id=90198
2777
2778         Reviewed by Filip Pizlo.
2779
2780         Enabling DFG JIT on ARM systems with 32 bit instruction set.
2781
2782         * wtf/InlineASM.h:
2783         * wtf/Platform.h:
2784
2785 2012-07-04  Andy Wingo  <wingo@igalia.com>
2786
2787         [GTK] Enable parallel GC
2788         https://bugs.webkit.org/show_bug.cgi?id=90568
2789
2790         Reviewed by Martin Robinson.
2791
2792         * wtf/Platform.h: Add GTK to the ENABLE_PARALLEL_GC party.
2793
2794 2012-07-04  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2795
2796         [Qt] Get rid of un-needed QT += declarative for Qt 5
2797
2798         The declarative module has been renamed to quick1 in Qt 5, and the
2799         engine-only module for Qt 5 is named 'qml'. For many of the instances
2800         we could just remove 'declarative', since the project file was only
2801         used for Qt5/WebKit2 builds. In the other cases the module was wrapped
2802         in a haveQt(4) scope.
2803
2804         Reviewed by Csaba Osztrogonác.
2805
2806         * WTF.pri:
2807
2808 2012-07-03  Yong Li  <yoli@rim.com>
2809
2810         [BlackBerry] Turn on DFGJIT in Platform.h
2811         https://bugs.webkit.org/show_bug.cgi?id=90482
2812
2813         Set ENABLE_DFG_JIT for PLATFORM(BLACKBERRY).
2814
2815         Reviewed by Rob Buis.
2816
2817         * wtf/Platform.h:
2818
2819 2012-07-03  Tony Chang  <tony@chromium.org>
2820
2821         [chromium] Unreviewed, update .gitignore to handle VS2010 files.
2822
2823         * WTF.gyp/.gitignore:
2824
2825 2012-07-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2826
2827         [Qt] Make use of .qmake.cache for caching features
2828
2829         Instead of loading() features from the files that need them (and re-running
2830         a bunch of checks), we now run feature detection as part of configure.pro,
2831         and have build-webkit write the computed feature-defines and CONFIG to
2832         .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
2833         when building WebKit.pro.
2834
2835         At some point we'll be able to selectivly prevent running of config tests
2836         in configure.pro, which means we don't need a separate code-path for
2837         the build-webkit --help case.
2838
2839         We should also move the code in build-webkit that now uses .webkit.config
2840         to detect clean builds, to use .qmake.cache, since we now store the same
2841         thing there.
2842
2843         Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2844
2845         Reviewed by Tor Arne Vestbø.
2846
2847         * WTF.pri:
2848
2849 2012-07-03  Sheriff Bot  <webkit.review.bot@gmail.com>
2850
2851         Unreviewed, rolling out r121766.
2852         http://trac.webkit.org/changeset/121766
2853         https://bugs.webkit.org/show_bug.cgi?id=90465
2854
2855         It caused flakey build errors on the bots (Requested by Ossy
2856         on #webkit).
2857
2858         * WTF.pri:
2859
2860 2012-07-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2861
2862         [Qt] Make use of .qmake.cache for caching features
2863
2864         Instead of loading() features from the files that need them (and re-running
2865         a bunch of checks), we now run feature detection as part of configure.pro,
2866         and have build-webkit write the computed feature-defines and CONFIG to
2867         .qmake.cache, which is then loaded by qmake _before_ even defaults_pre
2868         when building WebKit.pro.
2869
2870         At some point we'll be able to selectivly prevent running of config tests
2871         in configure.pro, which means we don't need a separate code-path for
2872         the build-webkit --help case.
2873
2874         We should also move the code in build-webkit that now uses .webkit.config
2875         to detect clean builds, to use .qmake.cache, since we now store the same
2876         thing there.
2877
2878         Original patch by Oswald Buddenhagen <oswald.buddenhagen@nokia.com>
2879
2880         Reviewed by Tor Arne Vestbø.
2881
2882         * WTF.pri:
2883
2884 2012-07-03  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>  Joel Dillon <joel.dillon@codethink.co.uk>
2885
2886         [Qt][Win] Fix broken QtWebKit5.lib linking
2887         https://bugs.webkit.org/show_bug.cgi?id=88321
2888
2889         Reviewed by Kenneth Rohde Christiansen.
2890
2891         Instead of letting a module's headers know which other modules depend on them,
2892         have depending modules define explicitely that they want its symbols exported too.
2893
2894         JavaScriptCore should then be compiled with both BUILDING_JavaScriptCore and
2895         STATICALLY_LINKED_WITH_WTF.
2896
2897         * wtf/ExportMacros.h:
2898
2899 2012-06-29  Tony Chang  <tony@chromium.org>
2900
2901         Unreviewed, rolling out r121572.
2902         http://trac.webkit.org/changeset/121572
2903         https://bugs.webkit.org/show_bug.cgi?id=90249
2904
2905         Breaks Mac build since it depends on r121547, which was rolled
2906         out
2907
2908         * wtf/ThreadingPthreads.cpp:
2909         (WTF::initializeCurrentThreadInternal):
2910
2911 2012-06-29  Eric Seidel  <eric@webkit.org>
2912
2913         Remove BUILDING_ON_LEOPARD now that no ports build on Leopard
2914         https://bugs.webkit.org/show_bug.cgi?id=90249
2915
2916         Reviewed by Ryosuke Niwa.
2917
2918         * wtf/ThreadingPthreads.cpp:
2919         (WTF::initializeCurrentThreadInternal):
2920
2921 2012-06-29  Sheriff Bot  <webkit.review.bot@gmail.com>
2922
2923         Unreviewed, rolling out r121529.
2924         http://trac.webkit.org/changeset/121529
2925         https://bugs.webkit.org/show_bug.cgi?id=90260
2926
2927         Failed to compile on Chromium WebKitMacBuilder (Requested by
2928         keishi on #webkit).
2929
2930         * wtf/FastMalloc.cpp:
2931         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2932         * wtf/unicode/icu/CollatorICU.cpp:
2933         (WTF::Collator::userDefault):
2934
2935 2012-06-29  Eric Seidel  <eric@webkit.org>
2936
2937         Remove more BUILDING_ON_LEOPARD branches now that no port builds on Leopard
2938         https://bugs.webkit.org/show_bug.cgi?id=90252
2939
2940         Reviewed by Ryosuke Niwa.
2941
2942         * wtf/FastMalloc.cpp:
2943         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2944         * wtf/unicode/icu/CollatorICU.cpp:
2945         (WTF::Collator::userDefault):
2946
2947 2012-06-29  Eric Seidel  <eric@webkit.org>
2948
2949         Remove more BUILDING_ON_LEOPARD usage in PLATFORM(MAC) code
2950         https://bugs.webkit.org/show_bug.cgi?id=85846
2951
2952         Reviewed by Adam Barth.
2953
2954         PLATFORM(MAC) has not supported Leopard for several months now.
2955         This change removes about 1/3 of the remaining BUILDING_ON_LEOPARD
2956         uses in the PLATFORM(MAC) codepaths.  PLATFORM(CHROMIUM) still
2957         supports BUILDING_ON_LEOPARD for now.
2958
2959         * wtf/Platform.h:
2960
2961 2012-06-28  Kalev Lember  <kalevlember@gmail.com>
2962
2963         ThreadingWin: Silence GCC compiler warnings
2964         https://bugs.webkit.org/show_bug.cgi?id=89491
2965
2966         Reviewed by Adam Roben.
2967
2968         * wtf/ThreadingWin.cpp:
2969         (WTF::createThreadInternal):
2970         (WTF::PlatformCondition::timedWait):
2971         (WTF::PlatformCondition::signal): Fix unused-but-set-variable
2972         warnings.
2973
2974 2012-06-26  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
2975
2976         [Qt] Add missing heades to HEADERS
2977
2978         For JavaScriptCore there aren't any Qt specific files, so we include all
2979         headers for easy editing in Qt Creator.
2980
2981         Reviewed by Simon Hausmann.
2982
2983         * WTF.pro:
2984
2985 2012-06-25  Kent Tamura  <tkent@chromium.org>
2986
2987         Unreviewed, rolling out r121145.
2988         http://trac.webkit.org/changeset/121145
2989         https://bugs.webkit.org/show_bug.cgi?id=89847
2990
2991         Had an objection for the change.
2992
2993         * wtf/text/StringBuilder.h:
2994
2995 2012-06-25  Yong Li  <yoli@rim.com>
2996
2997         [BlackBerry] Add JSC statistics into about:memory
2998         https://bugs.webkit.org/show_bug.cgi?id=89779
2999
3000         Reviewed by Rob Buis.
3001
3002         Turn on WTF_USE_EXPORT_MACROS for BlackBerry port.
3003         This will make macros like JS_EXPORT_PRIVATE work without
3004         extra porting.
3005
3006         * wtf/Platform.h:
3007
3008 2012-06-25  Adam Barth  <abarth@webkit.org>
3009
3010         Use InterpolationLow on chromium-android
3011         https://bugs.webkit.org/show_bug.cgi?id=89849
3012
3013         Reviewed by Daniel Bates.
3014
3015         Introduce a USE macro to control image interpolation quality.
3016
3017         * wtf/Platform.h:
3018
3019 2012-06-25  Kent Tamura  <tkent@chromium.org>
3020
3021         Change the serialization format of form control state to make the code simple
3022         https://bugs.webkit.org/show_bug.cgi?id=89847
3023
3024         Reviewed by Hajime Morita.
3025
3026         * wtf/text/StringBuilder.h:
3027         (WTF::StringBuilder::appendEscaped): Added. This function adds the
3028         escaped form of the input string. e.g. if stiring="foo,bar" escape='\'
3029         special=',', the appended string is foo\,bar.
3030
3031 2012-06-24  Adam Barth  <abarth@webkit.org>
3032
3033         Remove USE(CHROMIUM_NET) because it is unused
3034         https://bugs.webkit.org/show_bug.cgi?id=89850
3035
3036         Reviewed by Eric Seidel.
3037
3038         I didn't see any mentions of CHROMIUM_NET when I grepped the Source
3039         directory. Also, this USE macro isn't defined on OS(DARWIN) or
3040         OS(ANDROID), which seems a bit odd given that Chromium uses the same
3041         network stack on all platforms.
3042
3043         * wtf/Platform.h:
3044
3045 2012-06-22  Peter Beverloo  <peter@chromium.org>
3046
3047         [Chromium] Disable c++0x compatibility warnings in JavaScriptCore.gyp when building for Android
3048         https://bugs.webkit.org/show_bug.cgi?id=88853
3049
3050         Reviewed by Steve Block.
3051
3052         The Android exclusions were necessary to fix a gyp generation error, as
3053         the gcc_version variable wasn't being defined for Android. Remove these
3054         exceptions when Chromium is able to define the gcc_version variable.
3055
3056         * WTF.gyp/WTF.gyp:
3057
3058 2012-06-18  Gustavo Noronha Silva  <gustavo.noronha@collabora.com>
3059
3060         Causes crashes in LLVMPipe
3061         https://bugs.webkit.org/show_bug.cgi?id=89358
3062
3063         Reviewed by Martin Robinson.
3064
3065         Change suggested by Dave Airlie and Xan Lopez.
3066
3067         * wtf/Platform.h: disable global fastMalloc for GTK+
3068
3069 2012-06-22  Mario Sanchez Prada  <msanchez@igalia.com>
3070
3071         Memory corruption on HashTable.h
3072         https://bugs.webkit.org/show_bug.cgi?id=88419
3073
3074         Reviewed by Martin Robinson.
3075
3076         Simplify definition of WTF_USE_PTHREADS and HAVE_PTHREAD_RWLOCK
3077         for the GTK platform using OS(LINUX) instead of HAVE(PTHREAD_H).
3078
3079         * wtf/Platform.h:
3080
3081 2012-06-21  Parth Patel  <parpatel@rim.com>
3082
3083         [Blackberry] BlackBerry::Platform::Settings::get() rename to BlackBerry::Platform::Settings::instance() to make it consistent with our other singletons
3084         https://bugs.webkit.org/show_bug.cgi?id=89684
3085
3086         Reviewed by Yong Li.
3087         
3088         Update setting instance access to use instance() instead of get().
3089
3090         * wtf/ThreadingPthreads.cpp:
3091         (WTF::createThreadInternal):
3092
3093 2012-06-21  Kalev Lember  <kalevlember@gmail.com>
3094
3095         [GTK] Fix NPAPI plugins on Windows
3096         https://bugs.webkit.org/show_bug.cgi?id=54531
3097
3098         Reviewed by Martin Robinson.
3099
3100         Define ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH for the GTK+ port, and
3101         include OwnPtrWin.cpp in the list of files built on Windows.
3102
3103         * GNUmakefile.am:
3104         * GNUmakefile.list.am:
3105         * wtf/Platform.h:
3106
3107 2012-06-21  Balazs Kelemen  <kbalazs@webkit.org>
3108
3109         Compile error: 'bool std::isinf(float)' is not 'constexpr' with GCC 4.6 in C++11 mode
3110         https://bugs.webkit.org/show_bug.cgi?id=88721
3111
3112         Reviewed by Csaba Osztrogonác.
3113
3114         Don't define these as consexpr because with gcc 4.6
3115         they call non constexpr functions.
3116         * wtf/MathExtras.h:
3117         (std::wtf_isinf):
3118         (std::wtf_isnan):
3119
3120 2012-06-17  Filip Pizlo  <fpizlo@apple.com>
3121
3122         It should be possible to look at disassembly
3123         https://bugs.webkit.org/show_bug.cgi?id=89319
3124
3125         Reviewed by Sam Weinig.
3126         
3127         Made changes to Assertions.h to make it friendly to C code again.
3128         
3129         Added ENABLE(DISASSEMBLER) and USE(UDIS86) logic to Platform.h.
3130
3131         * wtf/Assertions.h:
3132         * wtf/Platform.h:
3133
3134 2012-06-19  Jon Honeycutt  <jhoneycutt@apple.com>
3135
3136         REGRESSION(r120552): Many tests timing out on Windows
3137         https://bugs.webkit.org/show_bug.cgi?id=89433
3138
3139         Reviewed by Andy Estes.
3140
3141         * wtf/CurrentTime.cpp:
3142         (WTF::lowResUTCTime):
3143         It looks like there were two bugs:
3144         1) the function was converting from 100ths of nanoseconds to seconds
3145            rather than 100s of nanoseconds to seconds by dividing by
3146            (nsPerSecond * 100) rather than (nsPerSecond / 100)
3147         2) the function should've been returning milliseconds, not seconds
3148
3149 2012-06-18  Tony Payne  <tpayne@chromium.org>
3150
3151         [chromium] Add iccjpeg and qcms to chromium port.
3152         https://bugs.webkit.org/show_bug.cgi?id=81974
3153
3154         * wtf/Platform.h: Add Chromium USE defines for ICCJPEG and QCMSLIB
3155         to each Chromium platform, excluding Android.
3156
3157         Reviewed by Adam Barth.
3158
3159 2012-06-18  Sheriff Bot  <webkit.review.bot@gmail.com>
3160
3161         Unreviewed, rolling out r120485 and r120582.
3162         http://trac.webkit.org/changeset/120485
3163         http://trac.webkit.org/changeset/120582
3164         https://bugs.webkit.org/show_bug.cgi?id=89345
3165
3166         chromeos tree breakage (Requested by morrita on #webkit).
3167
3168         * wtf/Platform.h:
3169
3170 2012-06-17  Patrick Gansterer  <paroga@webkit.org>
3171
3172         [WIN] Simplify implementation of currentTime()
3173         https://bugs.webkit.org/show_bug.cgi?id=83156
3174
3175         Reviewed by Brent Fulgham.
3176
3177         Use GetSystemTimeAsFileTime() instead of ftime().
3178         This avoids an unneeded call to the MS CRT and
3179         brings the Win/WinCE code closer together.
3180
3181         * wtf/CurrentTime.cpp:
3182         (WTF::lowResUTCTime):
3183         (WTF::currentTime):
3184
3185 2012-06-15  Tony Payne  <tpayne@chromium.org>
3186
3187         [chromium] Add iccjpeg and qcms to chromium port.
3188         https://bugs.webkit.org/show_bug.cgi?id=81974
3189
3190         * wtf/Platform.h: Add Chromium USE defines for ICCJPEG and QCMSLIB
3191         to each Chromium platform, excluding Android.
3192
3193         Reviewed by Adam Barth.
3194
3195 2012-06-14  Sheriff Bot  <webkit.review.bot@gmail.com>
3196
3197         Unreviewed, rolling out r120393.
3198         http://trac.webkit.org/changeset/120393
3199         https://bugs.webkit.org/show_bug.cgi?id=89163
3200
3201         breaks cr-mac build (Requested by morrita on #webkit).
3202
3203         * wtf/Platform.h:
3204
3205 2012-06-14  Tony Payne  <tpayne@chromium.org>
3206
3207         [chromium] Add iccjpeg and qcms to chromium port.
3208         https://bugs.webkit.org/show_bug.cgi?id=81974
3209
3210         * wtf/Platform.h: Add Chromium USE defines for ICCJPEG and QCMSLIB
3211         to each Chromium platform, excluding Android.
3212
3213         Reviewed by Adam Barth.
3214
3215 2012-06-14  Yong Li  <yoli@rim.com>
3216
3217         [BlackBerry] Implement computeRAMSize for QNX
3218         https://bugs.webkit.org/show_bug.cgi?id=89110
3219
3220         Reviewed by Rob Buis.
3221
3222         * wtf/RAMSize.cpp:
3223         (WTF::computeRAMSize):
3224
3225 2012-06-14  Geoffrey Garen  <ggaren@apple.com>
3226
3227         ARMv7 should support spinlocks
3228         https://bugs.webkit.org/show_bug.cgi?id=88957
3229
3230         Reviewed by Darin Adler.
3231
3232         More info @ http://infocenter.arm.com/help/topic/
3233         com.arm.doc.genc007826/Barrier_Litmus_Tests_and_Cookbook_A08.pdf
3234
3235         * wtf/Atomics.h:
3236         (WTF::memoryBarrierAfterLock):
3237         (WTF::memoryBarrierBeforeUnlock): Added memory barrier primitives since
3238         ARMv7 has a weakly ordered memory model.
3239
3240         * wtf/Platform.h: Enabled compare-and-swap on Windows so our spinlock
3241         implementation would continue working on Windows.
3242
3243         * wtf/TCSpinLock.h:
3244         (TCMalloc_SpinLock::Lock):
3245         (TCMalloc_SpinLock::Unlock):
3246         (TCMalloc_SpinLock): Use our compare-and-swap helper function to avoid
3247         rewriting it in assembly here.
3248
3249         Added memory barriers since ARMv7 needs them.
3250
3251         Removed PPC support because our helper function doesn't support PPC.
3252
3253 2012-06-13  Arnaud Renevier  <arno@renevier.net>
3254
3255         make sure headers are included only once per file
3256         https://bugs.webkit.org/show_bug.cgi?id=88929
3257
3258         Reviewed by Kentaro Hara.
3259
3260         * wtf/FastMalloc.cpp:
3261         * wtf/MathExtras.h:
3262         * wtf/OSAllocator.h:
3263
3264 2012-06-13  Benjamin Poulain  <benjamin@webkit.org>
3265
3266         Implement the simple constructors WTFURL's KURL
3267         https://bugs.webkit.org/show_bug.cgi?id=85724
3268
3269         Reviewed by Adam Barth.
3270
3271         This patch extends WTFURL with:
3272         -support basic debugging using print() methods
3273         -parsing in the incomming string character set (8bits or 16bits)
3274         -add a function for parsing of relative URL (but no implementation yet)
3275
3276         * WTF.xcodeproj/project.pbxproj:
3277         * wtf/text/WTFString.h:
3278         (String):
3279         * wtf/url/api/ParsedURL.cpp:
3280         (WTF::ParsedURL::ParsedURL):
3281         (WTF):
3282         (WTF::ParsedURL::hasFragment): Add this method to query the framgent availability without
3283         allocating a new String.
3284         (WTF::ParsedURL::withoutFragment): This method is added to implement KURL::removeFragmentIdentifier() and
3285         the parsing of empty relative URL (where we return the base without fragment).
3286         (WTF::ParsedURL::print):
3287         * wtf/url/api/ParsedURL.h:
3288         (ParsedURL):
3289         (WTF::ParsedURL::spec):
3290         * wtf/url/api/URLString.h:
3291         (URLString):
3292         * wtf/url/src/URLParser.h:
3293         (WTF):
3294         (URLParser):
3295         (WTF::URLParser::parseURLWithBase):
3296         * wtf/url/src/URLSegments.cpp:
3297         (WTF::URLSegments::length):
3298         (WTF::URLSegments::charactersBefore):
3299         * wtf/url/src/URLSegments.h:
3300         (URLSegments):
3301         Change the boolean argument includeDelimiter in favor of an enum to improve readability.
3302
3303 2012-06-13  Filip Pizlo  <fpizlo@apple.com>
3304
3305         DFG should be able to set watchpoints on global variables
3306         https://bugs.webkit.org/show_bug.cgi?id=88692
3307
3308         Reviewed by Geoffrey Garen.
3309         
3310         Added ability to set the inline capacity of segmented vectors.
3311         
3312         Also added the ability ot ASSERT_NOT_REACHED() without having to
3313         propagate NO_RETURN macros, which would be a show-stopper for code
3314         that is conditionally unreachable.
3315
3316         * wtf/Assertions.h:
3317         (UNREACHABLE_FOR_PLATFORM):
3318         * wtf/SegmentedVector.h:
3319         (WTF):
3320         (SegmentedVectorIterator):
3321         (WTF::SegmentedVectorIterator::operator=):
3322         (WTF::SegmentedVectorIterator::SegmentedVectorIterator):
3323         (SegmentedVector):
3324
3325 2012-06-13  Sheriff Bot  <webkit.review.bot@gmail.com>
3326
3327         Unreviewed, rolling out r120172.
3328         http://trac.webkit.org/changeset/120172
3329         https://bugs.webkit.org/show_bug.cgi?id=88976
3330
3331         The patch causes compilation failures on Gtk, Qt and Apple Win
3332         bots (Requested by zdobersek on #webkit).
3333
3334         * wtf/SegmentedVector.h:
3335         (WTF):
3336         (SegmentedVectorIterator):
3337         (WTF::SegmentedVectorIterator::operator=):
3338         (WTF::SegmentedVectorIterator::SegmentedVectorIterator):
3339         (SegmentedVector):
3340
3341 2012-06-10  Filip Pizlo  <fpizlo@apple.com>
3342
3343         DFG should be able to set watchpoints on global variables
3344         https://bugs.webkit.org/show_bug.cgi?id=88692
3345
3346         Reviewed by Geoffrey Garen.
3347         
3348         Added ability to set the inline capacity of segmented vectors.
3349
3350         * wtf/SegmentedVector.h:
3351         (WTF):
3352         (SegmentedVectorIterator):
3353         (WTF::SegmentedVectorIterator::operator=):
3354         (WTF::SegmentedVectorIterator::SegmentedVectorIterator):
3355         (SegmentedVector):
3356
3357 2012-06-12  Geoffrey Garen  <ggaren@apple.com>
3358
3359         Try to fix the build.
3360
3361         Maybe don't export inlined functions.
3362
3363         * wtf/ThreadingPrimitives.h:
3364         (WTF::MutexTryLocker::MutexTryLocker):
3365         (WTF::MutexTryLocker::~MutexTryLocker):
3366         (WTF::MutexTryLocker::locked):
3367
3368 2012-06-11  Jocelyn Turcotte  <jocelyn.turcotte@nokia.com>
3369
3370         Using extrernal ICU library on case unsensitive drives will not work
3371         https://bugs.webkit.org/show_bug.cgi?id=70913
3372
3373         Reviewed by Csaba Osztrogonác.
3374
3375         Properly set the include path for the WTF module and for modules using it.
3376         The path should include Source/WTF/wtf only when building WTF itself. Other
3377         modules are expected to include the headers as #include <wtf/Header.h>, so
3378         only add Source/WTF to their include path.
3379
3380         "unicode/utf8.h" should now then always reference to ICU in the include path
3381         and "wtf/unicode/UTF8.h" reference to the WTF version.
3382         This will work as long as WTF object files don't depend on ICU themselves.
3383
3384         Removed gobject, qt and unicode from the include path as those directories
3385         don't exist anymore.
3386
3387         * WTF.pri:
3388         * WTF.pro:
3389
3390 2012-06-11  Carlos Garcia Campos  <cgarcia@igalia.com>
3391
3392         Unreviewed. Fix make distcheck issues.
3393
3394         * GNUmakefile.list.am: Add missing header file.
3395
3396 2012-06-09  Dominic Cooney  <dominicc@chromium.org>
3397
3398         [Chromium] Remove JavaScriptCore dependencies from gyp
3399         https://bugs.webkit.org/show_bug.cgi?id=88510
3400
3401         Reviewed by Adam Barth.
3402
3403         Chromium doesn't support JSC any more and there doesn't seem to be
3404         a strong interest in using GYP as the common build system in other
3405         ports.
3406
3407         * WTF.gyp/WTF.gyp:
3408
3409 2012-06-08  Andy Wingo  <wingo@igalia.com>
3410
3411         Explictly mark stubs called by JIT as being internal
3412         https://bugs.webkit.org/show_bug.cgi?id=88552
3413
3414         Reviewed by Filip Pizlo.
3415
3416         * wtf/ExportMacros.h (WTF_INTERNAL, HAVE_INTERNAL_VISIBILITY): New
3417         defines.  Regardless of what the port does about visibility in
3418         general, for code referenced only from assembly it is useful to
3419         give it internal visibility.
3420         * wtf/InlineASM.h: Split SYMBOL_STRING_RELOCATION into
3421         LOCAL_REFERENCE and GLOBAL_REFERENCE; the former will try to avoid
3422         indirection if HAVE(INTERNAL_VISIBILITY).
3423
3424 2012-06-07  Csaba Osztrogonác  <ossy@webkit.org>
3425
3426         [Qt][Win] Fix linking WTF with ICU
3427         https://bugs.webkit.org/show_bug.cgi?id=88302
3428
3429         Reviewed by Simon Hausmann.
3430
3431         * WTF.pri: Use proper library names on win32 platforms.
3432
3433 2012-06-06  Michael Saboff  <msaboff@apple.com>
3434
3435         ENH: Add Logging to GC Marking Phase
3436         https://bugs.webkit.org/show_bug.cgi?id=88364
3437
3438         Reviewed by Filip Pizlo.
3439
3440         * wtf/DataLog.cpp:
3441         (WTF::dataLogString): Additional method to support GC Mark logging.
3442         * wtf/DataLog.h:
3443         * wtf/Platform.h: New ENABLE_OBJECT_MARK_LOGGING flag macro.
3444
3445 2012-06-06  Andy Wingo  <wingo@igalia.com>
3446
3447         [GTK] Enable the LLInt
3448         https://bugs.webkit.org/show_bug.cgi?id=88315
3449
3450         Reviewed by Filip Pizlo.
3451
3452         * wtf/InlineASM.h: Add an implementation of LOCAL_LABEL_STRING for
3453         OS(LINUX).
3454         * wtf/Platform.h: Add OS(LINUX) to the set of operating systems
3455         for ENABLE_LLINT.  Add a specific check for PLATFORM(MAC) or
3456         PLATFORM(IOS), and add to that a check for PLATFORM(GTK).
3457
3458 2012-06-05  Roland Takacs  <takacs.roland@stud.u-szeged.hu>
3459
3460         [Qt] Use GraphicsContext3DOpenGLES.cpp when using OpenGL ES
3461         https://bugs.webkit.org/show_bug.cgi?id=78720
3462
3463         Reviewed by Noam Rosenthal.
3464
3465         Defined a global Opengl ES macro to check OpenGL ES on every platforms.
3466
3467         * wtf/Platform.h:
3468
3469 2012-06-04  Takashi Toyoshima  <toyoshim@chromium.org>
3470
3471         [WebSocket] Send requires super linear time against data size
3472         https://bugs.webkit.org/show_bug.cgi?id=87383
3473
3474         Reviewed by Kent Tamura.
3475
3476         * wtf/StreamBuffer.h: Added.
3477         (WTF):
3478         (StreamBuffer):
3479         (WTF::StreamBuffer::StreamBuffer):
3480         (WTF::StreamBuffer::~StreamBuffer):
3481         (WTF::StreamBuffer::isEmpty):
3482         (WTF::StreamBuffer::append):
3483         (WTF::StreamBuffer::consume):
3484         (WTF::StreamBuffer::size):
3485         (WTF::StreamBuffer::firstBlockData):
3486         (WTF::StreamBuffer::firstBlockSize):
3487
3488 2012-06-04  Patrick Gansterer  <paroga@webkit.org>
3489
3490         Port RAMSize to WinCE
3491         https://bugs.webkit.org/show_bug.cgi?id=87854
3492
3493         Reviewed by Geoffrey Garen.
3494
3495         WinCE has no GlobalMemoryStatusEx() function. Use GlobalMemoryStatus() instead.
3496
3497         * wtf/RAMSize.cpp:
3498         (WTF::computeRAMSize):
3499
3500 2012-06-01  Xianzhu Wang  <wangxianzhu@chromium.org>
3501
3502         Remove dependency from ImageDiff to WTF
3503         https://bugs.webkit.org/show_bug.cgi?id=88147
3504
3505         Reviewed by Adam Barth.
3506
3507         * WTF.gyp/WTF.gyp:
3508
3509 2012-06-01  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
3510
3511         [Qt] Save one copy when going from 8-bit WTF::String to QString
3512
3513         Asking for characters() of an 8-bit string will make a 16-bit copy internally
3514         in WTF::String. Since we're going to copy the data to QStringData anyways, which
3515         is 16-bit, we can do the conversion ourselves and save one copy.
3516
3517         Reviewed by Simon Hausmann.
3518
3519         * wtf/qt/StringQt.cpp:
3520         (WTF::String::operator QString):
3521
3522 2012-05-30  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
3523
3524         [Qt] Make conversion from QString to WTF::String (and back again) ~free
3525
3526         https://bugs.webkit.org/show_bug.cgi?id=87847
3527
3528         Instead of copying the QString data when converting to a WTF::String we
3529         make the WTF::String adopt the QString data by introducing a new buffer
3530         ownership type, and pointing the internal WTF::StringImpl 16-bit data
3531         member to the string data managed by QStringData.
3532
3533         We make sure to reference the QStringData when adopting, so that the
3534         data will stay alive, and then dereference it when the WTF::StringImpl
3535         is deleted, which will free the QStringData (either straight away, if
3536         we're the only one holding a reference still, or later, when the ref
3537         count goes to 0).
3538
3539         In the case of going back from a WTF::String to a QString we can cheat
3540         a bit (avoid a copy), if we know that the WTF::String was adopted from
3541         a QString, since it's then just a matter of having the QString adopt
3542         the existing QStringData (just like a regular QString copy).
3543
3544         If the WTF::String buffer is not owned by QStringData, eg a regular
3545         8-bit or 16-bit string/substring, we have to fall back to copying,
3546         as before (though there are potential optimization tricks we can
3547         apply here later on).
3548
3549         Reviewed by Gavin Barraclough.
3550
3551         * wtf/qt/StringQt.cpp:
3552         * wtf/text/StringImpl.cpp:
3553         * wtf/text/StringImpl.h:
3554
3555 2012-06-01  Sudarsana Nagineni  <sudarsana.nagineni@linux.intel.com>
3556
3557         [EFL] Implement PlatformStrategies
3558         https://bugs.webkit.org/show_bug.cgi?id=86946
3559
3560         Reviewed by Carlos Garcia Campos.
3561
3562         * wtf/Platform.h: Enable PLATFORM_STRATEGIES for EFL platform.
3563
3564 2012-05-31  Anders Carlsson  <andersca@apple.com>
3565
3566         Enable support for rvalue references when building with a version of clang that supports them
3567         https://bugs.webkit.org/show_bug.cgi?id=88018
3568
3569         Re-enable support for rvalue references when building with a version of Xcode newer than 4.2.
3570
3571         * wtf/Compiler.h:
3572
3573 2012-05-31  Filip Pizlo  <fpizlo@apple.com>
3574
3575         DataLog should be usable outside of JSC
3576         https://bugs.webkit.org/show_bug.cgi?id=88015
3577
3578         Reviewed by Oliver Hunt.
3579
3580         * wtf/DataLog.h:
3581         (WTF):
3582
3583 2012-05-31  Anders Carlsson  <andersca@apple.com>
3584
3585         Disable support for rvalue references until I figure out why this is breaking the Xcode 4.2 build.
3586
3587         * wtf/Compiler.h:
3588
3589 2012-05-31  Anders Carlsson  <andersca@apple.com>
3590
3591         Vector should have a move constructor and move assignment operator
3592         https://bugs.webkit.org/show_bug.cgi?id=87997
3593
3594         Reviewed by Andreas Kling.
3595
3596         * wtf/Compiler.h:
3597         Use __has_extension so we can use move semantics and other C++11 features even when building as C++98.
3598
3599         * wtf/Vector.h:
3600         Add a move constructor and a move assignment operator to Vector.
3601
3602 2012-05-31  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
3603
3604         [Qt] Simplify QT_VERSION_CHECKS for Qt5 by introducing HAVE(QT5)
3605         https://bugs.webkit.org/show_bug.cgi?id=87955
3606
3607         Reviewed by Simon Hausmann.
3608
3609         * wtf/qt/UtilsQt.h:
3610
3611 2012-05-30  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
3612
3613         HashTable.h has using directives for std::pair and std::make_pair
3614         https://bugs.webkit.org/show_bug.cgi?id=29919
3615
3616         Reviewed by Darin Adler.
3617
3618         * wtf/HashTraits.h:
3619         (WTF): Remove the directives.
3620
3621 2012-05-30  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
3622
3623         HashTable.h has using directives for std::pair and std::make_pair
3624         https://bugs.webkit.org/show_bug.cgi?id=29919
3625
3626         Reviewed by Darin Adler.
3627
3628         Change code to use std::pair and std::make_pair. Later patch will remove the
3629         'using' directives.
3630
3631         * wtf/HashTable.h:
3632         (WTF::hashTableSwap):
3633         (HashTable):
3634         * wtf/HashTraits.h:
3635         (PairHashTraits):
3636         (WTF::PairHashTraits::emptyValue):
3637
3638 2012-05-30  Patrick Gansterer  <paroga@webkit.org>
3639
3640         Build fix for WinCE after r118603.
3641
3642         * wtf/Atomics.h:
3643         (WTF::weakCompareAndSwap):
3644
3645 2012-05-29  Anders Carlsson  <andersca@apple.com>
3646
3647         String should be move enabled/optimized
3648         https://bugs.webkit.org/show_bug.cgi?id=87596
3649
3650         Reviewed by Andreas Kling.
3651
3652         Add move constructors and move assignment operators to String and AtomicString when building with
3653         compilers that support rvalue references. This gets rid of ref-churn when the source of the 
3654         constructor or assignment is a temporary object.
3655
3656         * wtf/text/AtomicString.h:
3657         (AtomicString):
3658         (WTF::AtomicString::AtomicString):
3659         (WTF::AtomicString::operator=):
3660         * wtf/text/WTFString.h:
3661         (String):
3662         (WTF::String::String):
3663         (WTF::String::operator=):
3664
3665 2012-05-29  Alexandre Elias  <aelias@google.com>
3666
3667         Support WebKit log messages on Android
3668         https://bugs.webkit.org/show_bug.cgi?id=87773
3669
3670         Reviewed by Darin Adler.
3671
3672         This sends WebKit log messages to the Android "logcat" facility, as
3673         Android sends stderr to /dev/null.
3674
3675         * wtf/Assertions.cpp:
3676
3677 2012-05-29  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>
3678
3679         [Qt] Remove duplication of logic for disabling selected warnings related to C++11
3680
3681         This is already handled in unix/default_post.prf
3682
3683         Reviewed by Simon Hausmann.
3684
3685         * WTF.pro:
3686
3687 2012-05-27  Darin Adler  <darin@apple.com>
3688
3689         Fix an incorrect assertion in Vector::remove
3690         https://bugs.webkit.org/show_bug.cgi?id=87612
3691
3692         Reviewed by Dan Bernstein.
3693
3694         * wtf/Vector.h: There's no good reason to disallow calling remove
3695         with a size of 0, even when the position is at the end of the vector,
3696         so changed the two-argument Vector::remove assertion to assert that
3697         the position is <= size rather than < size.
3698
3699 2012-05-27  Yoshifumi Inoue  <yosin@chromium.org>
3700
3701         [WTF] Introduce UINT64_C to MathExtras.h
3702         https://bugs.webkit.org/show_bug.cgi?id=87485
3703
3704         Reviewed by Kent Tamura.
3705
3706         * wtf/MathExtras.h:
3707
3708 2012-05-25  Filip Pizlo  <fpizlo@apple.com>
3709
3710         weakCompareAndSwap should work on Windows
3711         https://bugs.webkit.org/show_bug.cgi?id=87549
3712
3713         Reviewed by Jessie Berlin.
3714
3715         * wtf/Atomics.h:
3716         (WTF):
3717         (WTF::weakCompareAndSwap):
3718
3719 2012-05-24  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3720
3721         cti_vm_throw gets kicked out by gcc 4.6 -flto
3722         https://bugs.webkit.org/show_bug.cgi?id=56088
3723
3724         Reviewed by Darin Adler.
3725
3726         Define REFERENCED_FROM_ASM to __attribute__((used)) on GCC.
3727
3728         * wtf/Compiler.h:
3729
3730 2012-05-23  Darin Adler  <darin@apple.com>
3731
3732         Optimize iteration of empty hash tables
3733         https://bugs.webkit.org/show_bug.cgi?id=87215
3734
3735         Reviewed by Geoffrey Garen.
3736
3737         Iteration of empty hash tables was showing up on simple page loading
3738         profiles due to the use of hash tables in the
3739         NodeListsNodeData::invalidateCaches and
3740         NodeListsNodeData::invalidateCachesThatDependOnAttributes functions.
3741         It's worth optimizing the case of an empty table.
3742
3743         * wtf/HashTable.h:
3744         (WTF::HashTable::begin): Return the known-good end iterator when the
3745         table is empty. This makes iterating an empty table faster because we
3746         avoid skipping empty and deleted buckets.
3747
3748 2012-05-22  Geoffrey Garen  <ggaren@apple.com>
3749
3750         Build fix.
3751
3752         * wtf/RAMSize.cpp:
3753         (WTF::computeRAMSize): sysctl expects a uint64_t, so use that and then
3754         cast back to size_t. Since it's coneivable that a 32bit process would
3755         run on a system with more than 4GB RAM, I added a paranoid check for
3756         that condition.
3757
3758 2012-05-22  Jessie Berlin  <jberlin@apple.com>
3759
3760         Build fix.
3761
3762         * wtf/RAMSize.cpp:
3763         (WTF::computeRAMSize):
3764         If you say you are going to return a size_t, actually return a size_t.
3765
3766 2012-05-21  Geoffrey Garen  <ggaren@apple.com>
3767
3768         GC allocation trigger should be tuned to system RAM
3769         https://bugs.webkit.org/show_bug.cgi?id=87039
3770
3771         Reviewed by Darin Adler.
3772
3773         Added a helper function for measuring system RAM.
3774
3775         * GNUmakefile.list.am:
3776         * WTF.gypi:
3777         * WTF.pro:
3778         * WTF.vcproj/WTF.vcproj:
3779         * WTF.xcodeproj/project.pbxproj:
3780         * wtf/AmountOfRAM.cpp: Added.
3781         (WTF):
3782         (WTF::computeAmountOfRAM):
3783         (WTF::amountOfRAM):
3784         * wtf/AmountOfRAM.h: Added.
3785         (WTF):
3786         * wtf/CMakeLists.txt:
3787         * wtf/StdLibExtras.h:
3788         (WTF):
3789
3790 2012-05-22  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3791
3792         GCC 4.7 and C++11 support.
3793         https://bugs.webkit.org/show_bug.cgi?id=86465
3794
3795         Reviewed by Darin Adler.
3796
3797         Detect C++11 mode in GCC 4.7 and set appropiate compiler feature flags.
3798         Turn C++11 override control into a compiler feature flag.
3799         Fix non-clang support of compiler feature CXX_DELETED_FUNCTIONS.
3800
3801         * wtf/Compiler.h:
3802         * wtf/Noncopyable.h:
3803
3804 2012-05-22  Filip Pizlo  <fpizlo@apple.com>
3805
3806         REGRESSION(r117861): It made almost all tests crash on Qt
3807         https://bugs.webkit.org/show_bug.cgi?id=87082
3808
3809         Reviewed by Csaba Osztrogonác.
3810         
3811         Using OwnArrayPtr is a bad idea if you allocate array with fastCalloc.
3812
3813         * wtf/FastBitVector.h:
3814         (WTF::FastBitVector::FastBitVector):
3815         (WTF::FastBitVector::~FastBitVector):
3816         (FastBitVector):
3817         (WTF::FastBitVector::operator=):
3818         (WTF::FastBitVector::resize):
3819         (WTF::FastBitVector::setAll):
3820         (WTF::FastBitVector::clearAll):
3821         (WTF::FastBitVector::set):
3822
3823 2012-05-21  Filip Pizlo  <fpizlo@apple.com>
3824
3825         DFG should be able to compute dominators
3826         https://bugs.webkit.org/show_bug.cgi?id=85269
3827
3828         Reviewed by Oliver Hunt.
3829         
3830         Merged r115754 from dfgopt.
3831         
3832         Added a bitvector class suitable for cheap static analysis. This class
3833         differs from BitVector in that instead of optimizing for space, it
3834         optimizes for execution time. Its API is also somewhat less friendly,
3835         which is intentional; it's meant to be used in places where you know
3836         up front how bit your bitvectors are going to be.
3837
3838         * GNUmakefile.list.am:
3839         * WTF.vcproj/WTF.vcproj:
3840         * WTF.xcodeproj/project.pbxproj:
3841         * wtf/FastBitVector.h: Added.
3842         (WTF):
3843         (FastBitVector):
3844         (WTF::FastBitVector::FastBitVector):
3845         (WTF::FastBitVector::operator=):
3846         (WTF::FastBitVector::numBits):
3847         (WTF::FastBitVector::resize):
3848         (WTF::FastBitVector::setAll):
3849         (WTF::FastBitVector::clearAll):
3850         (WTF::FastBitVector::set):
3851         (WTF::FastBitVector::setAndCheck):
3852         (WTF::FastBitVector::equals):
3853         (WTF::FastBitVector::merge):
3854         (WTF::FastBitVector::filter):
3855         (WTF::FastBitVector::exclude):
3856         (WTF::FastBitVector::clear):
3857         (WTF::FastBitVector::get):
3858         (WTF::FastBitVector::arrayLength):
3859
3860 2012-05-15  Gavin Barraclough  <barraclough@apple.com>
3861
3862         Add support for private names
3863         https://bugs.webkit.org/show_bug.cgi?id=86509
3864
3865         Reviewed by Oliver Hunt.
3866
3867         The spec isn't final, but we can start adding support to allow property maps
3868         to contain keys that aren't identifiers.
3869
3870         * wtf/text/StringImpl.h:
3871         (WTF::StringImpl::StringImpl):
3872         (StringImpl):
3873         (WTF::StringImpl::createEmptyUnique):
3874         (WTF::StringImpl::isEmptyUnique):
3875             - Allow empty string impls to be allocated, which can be used as unique keys.
3876
3877 2012-05-21  Emil A Eklund <eae@chromium.org> and Levi Weintraub  <leviw@chromium.org>
3878
3879         Enable SUBPIXEL_LAYOUT feature flag on Chromium
3880         https://bugs.webkit.org/show_bug.cgi?id=85555
3881
3882         Reviewed by Eric Seidel.
3883
3884         Enabling sub-pixel layout on Chromium port.
3885
3886         * wtf/Platform.h:
3887
3888 2012-05-21  Andreas Kling  <kling@webkit.org>
3889
3890         CSS: Move duplicate property elimination to parser.
3891         <http://webkit.org/b/86948>
3892
3893         Reviewed by Antti Koivisto.
3894
3895         Add WTF::BitArray, a simple, malloc free, fixed-size bit array class.
3896
3897         * GNUmakefile.list.am:
3898         * WTF.gypi:
3899         * WTF.pro:
3900         * WTF.vcproj/WTF.vcproj:
3901         * WTF.xcodeproj/project.pbxproj:
3902         * wtf/BitArray.h: Added.
3903         (WTF):
3904         (BitArray):
3905         (WTF::BitArray::BitArray):
3906         (WTF::BitArray::set):
3907         (WTF::BitArray::get):
3908         * wtf/CMakeLists.txt:
3909
3910 2012-05-21  Allan Sandfeld Jensen  <allan.jensen@nokia.com>
3911
3912         Colliding isinf/isnan between C99 and C++11 with GCC >=4.6
3913         https://bugs.webkit.org/show_bug.cgi?id=59249
3914
3915         Reviewed by Darin Adler.
3916
3917         Workaround the isinf and isnan conflict in GCC C++11.
3918
3919         * wtf/Compiler.h:
3920         * wtf/MathExtras.h:
3921         (std::wtf_isinf):
3922         (std::wtf_isnan):
3923
3924 2012-05-21  Andreas Kling  <kling@webkit.org>
3925
3926         REGRESSION(r117501): IconDatabase asserts on startup in synchronousIconForPageURL().
3927         <http://webkit.org/b/86935>
3928         <rdar://problem/11480012>
3929
3930         Reviewed by Anders Carlsson.
3931
3932         Added a swap() to HashCountedSet.
3933
3934         * wtf/HashCountedSet.h:
3935         (HashCountedSet::swap):
3936
3937 2012-05-16  Geoffrey Garen  <ggaren@apple.com>
3938
3939         This is not a joke: 3.7X speedup from removing a call to sleep
3940         https://bugs.webkit.org/show_bug.cgi?id=86702
3941
3942         Reviewed by Eric Seidel.
3943
3944         The speedup was on a GC benchmark, with a custom VM caching layer
3945         not in TOT yet.
3946
3947         Instruments showed most GC threads spending the majority of their
3948         time sleeping instead of doing useful work. Removing the call to
3949         sleep sped up the benchmark.
3950
3951         * wtf/TCSpinLock.h:
3952         (TCMalloc_SlowLock): Since a spin lock is only ever held for a short
3953         amount of time, don't sleep for a long amount of time waiting for it
3954         to unlock -- yielding to the scheduler is sufficient.
3955
3956         If we find a case where someone is sitting on a spin lock for over 2ms,
3957         we should fix the spin lock holder, not the spin lock.
3958
3959 2012-05-16  Simon Fraser  <simon.fraser@apple.com>
3960
3961         Make things build with DUMP_HASHTABLE_STATS=1
3962         https://bugs.webkit.org/show_bug.cgi?id=86571
3963
3964         Reviewed by Geoffrey Garen.
3965         
3966         DUMP_HASHTABLE_STATS bitrotted after the WTF separation. This patch
3967         makes it build.
3968         
3969         Added WTF_EXPORTDATA to the global data, and WTF_EXPORT_PRIVATE to
3970         the static HashTableStats methods. Added a dumpStats() method
3971         that is not yet called anywhere; we can no longer rely on destroying
3972         a global object to dump the stats because global destructors are
3973         disallowed.
3974
3975         * wtf/HashTable.cpp:
3976         (WTF):
3977         (WTF::HashTableStats::recordCollisionAtCount):
3978         (WTF::HashTableStats::dumpStats):
3979         * wtf/HashTable.h:
3980         (HashTableStats):
3981
3982 2012-05-15  Filip Pizlo  <fpizlo@apple.com>
3983
3984         shrinkToFit() is often not called for Vectors in CodeBlock
3985         https://bugs.webkit.org/show_bug.cgi?id=86436
3986
3987         Reviewed by Oliver Hunt.
3988         
3989         Gave SegmentedVector a shrinkToFit() method. This only shrinks the segment
3990         lookup table, which is likely to not be hugely profitable, but it is better
3991         than nothing.
3992
3993         * wtf/SegmentedVector.h:
3994         (SegmentedVector):
3995         (WTF::SegmentedVector::shrinkToFit):
3996
3997 2012-05-15  Andy Estes  <aestes@apple.com>
3998
3999         Add WTF_USE_SECURITY_FRAMEWORK and use it in place of the less specific PLATFORM(MAC)
4000         https://bugs.webkit.org/show_bug.cgi?id=86508
4001
4002         Reviewed by Sam Weinig.
4003
4004         * wtf/Platform.h:
4005
4006 2012-05-15  Zoltan Herczeg  <zherczeg@webkit.org>
4007
4008         NEONizing forceValidPreMultipliedPixels
4009         https://bugs.webkit.org/show_bug.cgi?id=86468
4010
4011         Reviewed by Nikolas Zimmermann.
4012
4013         Allow to disable all intrinsics with a single macro.
4014
4015         * wtf/Platform.h:
4016
4017 2012-05-14  Andy Estes  <aestes@apple.com>
4018
4019         Add WTF_USE_APPKIT to differentiate platforms that use AppKit.framework from other Darwin platforms
4020         https://bugs.webkit.org/show_bug.cgi?id=86432
4021
4022         Reviewed by Maciej Stachowiak.
4023
4024         * wtf/Platform.h:
4025
4026 2012-05-14  Mark Rowe  <mrowe@apple.com>
4027
4028         <http://webkit.org/b/86320> WTF.xcodeproj builds with -O3 in debug builds
4029
4030         Reviewed by Simon Fraser.
4031
4032         * WTF.xcodeproj/project.pbxproj: Ensure that the debug configuration uses the
4033         same settings as the debug variant would.
4034
4035 2012-05-14  Wei James  <james.wei@intel.com>
4036
4037         [Chromium] ImageDiff should be build for host on Android
4038         https://bugs.webkit.org/show_bug.cgi?id=82039
4039
4040         Reviewed by Adam Barth.
4041
4042         * WTF.gyp/WTF.gyp:
4043
4044 2012-05-14  Yong Li  <yoli@rim.com>
4045
4046         DFG JIT is not ARM EABI compatible
4047         https://bugs.webkit.org/show_bug.cgi?id=84449
4048
4049         Reviewed by Filip Pizlo.
4050
4051         Add COMPILER_SUPPORTS(EABI) when __ARM_EABI__
4052         or __EABI__ is defined.
4053
4054         * wtf/Compiler.h:
4055
4056 2012-05-10  Michał Pakuła vel Rutka  <m.pakula@samsung.com>
4057
4058         [EFL] Add OwnPtr specialization for Eina_Hash.
4059         https://bugs.webkit.org/show_bug.cgi?id=85046
4060
4061         Reviewed by Andreas Kling.
4062
4063         Add an override for Eina_Hash for EFL port.
4064
4065         * wtf/OwnPtrCommon.h:
4066         (WTF):
4067         * wtf/efl/OwnPtrEfl.cpp:
4068         (WTF::deleteOwnedPtr):
4069         (WTF):
4070
4071 2012-05-09  Filip Pizlo  <fpizlo@apple.com>
4072
4073         It should be possible to get useful debug logging from the JIT memory allocator
4074         https://bugs.webkit.org/show_bug.cgi?id=86042
4075
4076         Reviewed by Geoff Garen.
4077
4078         * wtf/MetaAllocator.cpp:
4079         (WTF::MetaAllocator::findAndRemoveFreeSpace):
4080         (WTF::MetaAllocator::addFreeSpace):
4081         (WTF::MetaAllocator::dumpProfile):
4082
4083 2012-05-08  Sheriff Bot  <webkit.review.bot@gmail.com>
4084
4085         Unreviewed, rolling out r116440.
4086         http://trac.webkit.org/changeset/116440
4087         https://bugs.webkit.org/show_bug.cgi?id=85904
4088
4089         Broke the Chromium Android bot (Requested by beverloo on
4090         #webkit).
4091
4092         * WTF.gyp/WTF.gyp:
4093
4094 2012-05-08  Adam Barth  <abarth@webkit.org>
4095
4096         [Chromium] OS(ANDROID) ImageDiff requires us to build WTF for both host and target
4097         https://bugs.webkit.org/show_bug.cgi?id=85897
4098
4099         Reviewed by Tony Chang.
4100
4101         * WTF.gyp/WTF.gyp:
4102
4103 2012-05-08  Adam Barth  <abarth@webkit.org>
4104
4105         [Chromium] Assertions.cpp should work on OS(ANDROID)
4106         https://bugs.webkit.org/show_bug.cgi?id=85867
4107
4108         Reviewed by Eric Seidel.
4109
4110         Some minor ifdefs for OS(ANDROID) on PLATFORM(CHROMIUM).
4111
4112         * wtf/Assertions.cpp:
4113
4114 2012-05-07  Adam Barth  <abarth@webkit.org>
4115
4116         [Chromium] Android wishes to use an empty implementation if AXObjectCache
4117         https://bugs.webkit.org/show_bug.cgi?id=85842
4118
4119         Reviewed by Eric Seidel.
4120
4121         Disable accessibility on OS(ANDROID) for PLATFORM(CHROMIUM).
4122
4123         * wtf/Platform.h:
4124
4125 2012-05-04  Jeff Rogers  <jrogers@rim.com>
4126
4127         [BlackBerry] Implement numberOfProcessorCores() for QNX
4128         https://bugs.webkit.org/show_bug.cgi?id=85638
4129
4130         Reviewed by Antonio Gomes.
4131
4132         * wtf/NumberOfCores.cpp:
4133         (WTF::numberOfProcessorCores):
4134
4135 2012-05-03  Yong Li  <yoli@rim.com>
4136
4137         Mutex failure when HashTable is memory moved in debug build
4138         https://bugs.webkit.org/show_bug.cgi?id=84970
4139
4140         Reviewed by Rob Buis.
4141
4142         1. Replace m_mutex with OwnPtr<m_mutex> so HashTable is still
4143            memory movable in debug build.
4144         2. Assert successes of pthread_mutex_init() and pthread_mutex_destroy().
4145
4146         * wtf/HashTable.h:
4147         (HashTable):
4148         (WTF::::HashTable):
4149         (WTF::::invalidateIterators):
4150         (WTF::addIterator):
4151         (WTF::removeIterator):
4152         * wtf/ThreadingPthreads.cpp:
4153         (WTF::Mutex::Mutex):
4154         (WTF::Mutex::~Mutex):
4155
4156 2012-05-02  Antti Koivisto  <antti@apple.com>
4157
4158         Add temporary feature define for parsed stylesheet caching
4159         https://bugs.webkit.org/show_bug.cgi?id=85413
4160
4161         Rubber-stamped by Nikolas Zimmermann.
4162
4163         While not an externally visible feature this is still a significant internal change.
4164         It is good to have define in case someone has an urgent need to turn it off.
4165         
4166         Caching is enabled by default on all platforms. The define should be removed after some bake time.
4167
4168         * wtf/Platform.h:
4169
4170 2012-05-02  Lauro Neto  <lauro.neto@openbossa.org>
4171
4172         [Qt]r57240 broke Qt build (gcc bug)
4173         https://bugs.webkit.org/show_bug.cgi?id=37253
4174
4175         Reviewed by Csaba Osztrogonác.
4176
4177         Add back the inline hack just for ARM due to old version of
4178         gcc still being used on Harmattan SDK. Thanks to Ossy for the
4179         suggestion.
4180         * wtf/PassRefPtr.h:
4181         (WTF):
4182
4183 2012-05-02  Nico Weber  <thakis@chromium.org>
4184
4185         Let WebKit parse with clang on windows with -std=c++11
4186         https://bugs.webkit.org/show_bug.cgi?id=85398
4187
4188         Reviewed by Ryosuke Niwa.
4189
4190         See http://trac.webkit.org/changeset/85945 for background on the line
4191         I'm changing. With clang, __GXX_EXPERIMENTLAL_CXX0X__ is set in c++11
4192         mode, but MSVC's c++ library doesn't have a tr1/memory header. So also
4193         check for __GLIBCXX__, like it's done in the rest of this file.
4194
4195         * wtf/TypeTraits.h:
4196
4197 2012-05-02  Adenilson Cavalcanti  <cavalcantii@gmail.com>
4198
4199         [Qt]r57240 broke Qt build (gcc bug)
4200         https://bugs.webkit.org/show_bug.cgi?id=37253
4201
4202         Reviewed by Noam Rosenthal.
4203
4204         Removing workaround macro since current gcc/Qt doesn't require it to compile.
4205
4206         * wtf/PassRefPtr.h:
4207         (WTF):
4208
4209 2012-04-30  Oliver Hunt  <oliver@apple.com>
4210
4211         Investigate overflows in Canvas putImageData routine
4212         https://bugs.webkit.org/show_bug.cgi?id=61373
4213
4214         Reviewed by Gavin Barraclough.
4215
4216         Allow floating point multiplies of checked types (complete with
4217         bounds checks).
4218
4219         * wtf/CheckedArithmetic.h:
4220         (Checked):
4221         (WTF::Checked::operator*=):
4222
4223 2012-04-30  Benjamin Poulain  <benjamin@webkit.org>
4224
4225         Add String::startsWith() and endsWith() for string literals
4226         https://bugs.webkit.org/show_bug.cgi?id=85154
4227
4228         Reviewed by Darin Adler.
4229
4230         When invoking StringImpl::startsWidth() or StringImpl::endsWith() with
4231         a string literal, a new String was constructed implicitly, allocating
4232         a new StringImpl and copying the characters for the operation.
4233
4234         This patch adds a version of those methods for single characters and
4235         string literals.
4236         This allows us to avoid allocating memory and use the characters in place,
4237         and it permits some extra shortcuts in the implementation.
4238
4239         * wtf/text/AtomicString.h:
4240         (WTF::AtomicString::startsWith):
4241         (AtomicString):
4242         (WTF::AtomicString::endsWith):
4243         * wtf/text/StringImpl.cpp:
4244         (WTF::equalInner):
4245         (WTF):
4246         (WTF::StringImpl::startsWith):
4247         (WTF::StringImpl::endsWith):
4248         * wtf/text/StringImpl.h:
4249         (WTF::StringImpl::startsWith):
4250         (StringImpl):
4251         (WTF::StringImpl::endsWith):
4252         * wtf/text/WTFString.h:
4253         (WTF::String::startsWith):
4254         (String):
4255         (WTF::String::endsWith):
4256
4257 2012-04-30  Anders Carlsson  <andersca@apple.com>
4258
4259         WTF::bind should work with blocks
4260         https://bugs.webkit.org/show_bug.cgi?id=85227
4261
4262         Reviewed by Sam Weinig.
4263
4264         Add a block type FunctionWrapper specialization.
4265
4266         * wtf/Functional.h:
4267
4268 2012-04-28  Emil A Eklund  <eae@chromium.org>
4269
4270         Add ENABLE_SUBPIXEL_LAYOUT controlling FractionalLayoutUnit denominator
4271         https://bugs.webkit.org/show_bug.cgi?id=85146
4272
4273         Reviewed by Eric Seidel.
4274
4275         Add a new flag for controlling the fixed point denominator in
4276         FractionalLayoutUnit. Controls whether the denominator is set to 60 or 1.
4277         Until we change the LayoutUnit typedef this change will have no effect.
4278
4279         * wtf/Platform.h:
4280
4281 2012-04-29  Kent Tamura  <tkent@chromium.org>
4282
4283         [Mac] Add LocalizedDateMac
4284         https://bugs.webkit.org/show_bug.cgi?id=85039
4285
4286         Reviewed by Kentaro Hara.
4287
4288         * wtf/DateMath.h:
4289         (WTF): Add monthFullName[]. It is useful to make fallback month
4290         names for calendar/date related features.
4291
4292 2012-04-26  Carlos Garcia Campos  <cgarcia@igalia.com>
4293
4294         [SOUP] Add a way to register custom uri schemes in WebKit2
4295         https://bugs.webkit.org/show_bug.cgi?id=84130
4296
4297         Reviewed by Martin Robinson.
4298
4299         Add GPtrArray template to be able to use GRefPtr with GPtrArrays.
4300
4301         * wtf/gobject/GRefPtr.cpp:
4302         (WTF::refGPtr):
4303         (WTF):
4304         (WTF::derefGPtr):
4305         * wtf/gobject/GRefPtr.h:
4306         (WTF):
4307         * wtf/gobject/GTypedefs.h:
4308
4309 2012-04-26  Nico Weber  <thakis@chromium.org>
4310
4311         Don't define WTF_COMPILER_SUPPORTS_CXX_NULLPTR twice when building with clang on windows.
4312         https://bugs.webkit.org/show_bug.cgi?id=85018
4313
4314         Reviewed by Anders Carlsson.
4315
4316         Clang sets _MSC_VER when compiling for a -pc-win32 target (just like it sets __GNUC__ on unix).
4317         As a result, WTF_COMPILER_SUPPORTS_CXX_NULLPTR gets currently set twice, once for clang and
4318         once for _MSC_VER. Guard the second instance with !COMPILER(CLANG). This matches the gcc code
4319         for WTF_COMPILER_SUPPORTS_CXX_NULLPTR in the same file.
4320
4321         * wtf/Compiler.h:
4322
4323 2012-04-26  Antonio Gomes  <agomes@rim.com>
4324
4325         [BlackBerry] properly disable DRAG_SUPPORT
4326         https://bugs.webkit.org/show_bug.cgi?id=84952
4327
4328         Reviewed by Daniel Bates.
4329
4330         * wtf/Platform.h: Remove the line that disables drag support from here
4331         for the BlackBerry port.
4332
4333 2012-04-25  Benjamin Poulain  <benjamin@webkit.org>
4334
4335         Add a version of StringImpl::find() without offset
4336         https://bugs.webkit.org/show_bug.cgi?id=83968
4337
4338         Reviewed by Sam Weinig.
4339
4340         This patch add a version of StringImpl::find() without offset, Instead of using the default
4341         value for the index.
4342
4343         By not having the index, we can skip a couple of branches and a few instructions. This gives
4344         significant gains when the strings are short-ish.
4345
4346         The case of empty string is moved below (matchLength == 1) since it is a less common operation.
4347