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