9d0443e206f961f24ea4a34ef0ad865fbc8136e1
[WebKit-https.git] / Source / WTF / ChangeLog
1 2013-04-15  Commit Queue  <rniwa@webkit.org>
2
3         Unreviewed, rolling out r148462.
4         http://trac.webkit.org/changeset/148462
5         https://bugs.webkit.org/show_bug.cgi?id=114658
6
7         Broke Windows builds (Requested by rniwa on #webkit).
8
9         * wtf/FastMalloc.cpp:
10         (WTF):
11         (WTF::setThreadHeap):
12         (WTF::TCMalloc_ThreadCache::GetThreadHeap):
13         (WTF::TCMalloc_ThreadCache::InitTSD):
14         * wtf/ThreadSpecificWin.cpp:
15         (WTF::destructorsList):
16         (WTF::destructorsMutex):
17         (WTF::threadSpecificKeyCreate):
18         (WTF::threadSpecificKeyDelete):
19
20 2013-04-15  Julien Brianceau  <jbrianceau@nds.com>
21
22         LLInt SH4 backend implementation
23         https://bugs.webkit.org/show_bug.cgi?id=112886
24
25         Reviewed by Oliver Hunt.
26
27         * wtf/Platform.h:
28
29 2013-04-15  Patrick Gansterer  <paroga@webkit.org>
30
31         [CMake] Add WTF_USE_*_UNICODE variables
32         https://bugs.webkit.org/show_bug.cgi?id=114556
33
34         Reviewed by Brent Fulgham.
35
36         WTF_USE_ICU_UNICODE and WTF_USE_WCHAR_UNICODE are used to
37         reduce duplication in the platform specific CMake files.
38
39         * wtf/CMakeLists.txt:
40         * wtf/PlatformBlackBerry.cmake:
41         * wtf/PlatformEfl.cmake:
42         * wtf/PlatformWinCE.cmake:
43
44 2013-04-15  Patrick Gansterer  <paroga@webkit.org>
45
46         [WIN] Remove remaining calls to pthread from WTF
47         https://bugs.webkit.org/show_bug.cgi?id=114563
48
49         Reviewed by Brent Fulgham.
50
51         Replace pthread_key_create with threadSpecificKeyCreate and
52         pthread_setspecific with threadSpecificSet from ThreadSpecific.h.
53         These functions provide a windows-specific implementation for the pthread functions,
54         but require that the thread has been created with WTF::createThread(),
55         which is the case for all threads created within WebKit.
56         To call this function from fastMalloc we must not call fastMalloc in them.
57         To fulfill this constraint ThreadSpecificWin will allocated its memory through the
58         original malloc implementation and use the stack for local and static variables.
59         Keep the Darwin implementation as it is, since it contains some performance tweaks.
60
61         * wtf/FastMalloc.cpp:
62         * wtf/ThreadSpecificWin.cpp:
63         (WTF::destructorsList):
64         (WTF::destructorsMutex):
65         (WTF::threadSpecificKeyCreate):
66         (WTF::threadSpecificKeyDelete):
67
68 2013-04-14  Oliver Hunt  <oliver@apple.com>
69
70         Try to fix non-apple windows builds
71
72         * wtf/Platform.h:
73
74 2013-04-14  David Kilzer  <ddkilzer@apple.com>
75
76         Add EnumClass.h to project files
77         <http://webkit.org/b/114582>
78
79         Rubber-stamped by Dan Bernstein.
80
81         * WTF.pro: Add EnumClass.h to project.
82         * WTF.vcproj/WTF.vcproj: Ditto.
83         * WTF.vcxproj/WTF.vcxproj: Ditto.
84         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
85         * WTF.xcodeproj/project.pbxproj: Ditto.
86
87 2013-04-12  Oliver Hunt  <oliver@apple.com>
88
89         Apologies to all, I have no idea what happened to cause this change.
90
91         * wtf/Platform.h:
92
93 2013-04-12  Oliver Hunt  <oliver@apple.com>
94
95         [Qt][Win] r148257 broke the build
96         https://bugs.webkit.org/show_bug.cgi?id=114512
97
98         Build fix.
99
100         * wtf/Platform.h:
101
102 2013-04-11  Oliver Hunt  <oliver@apple.com>
103
104         Add more type validation to debug builds
105         https://bugs.webkit.org/show_bug.cgi?id=114478
106
107         Reviewed by Mark Hahnenberg.
108
109         Add BINDING_VALIDATION flag and make RELEASE_ASSERT use UNLIKELY.
110
111         * wtf/Assertions.h:
112         * wtf/Platform.h:
113
114 2013-04-10  Thiago Marcos P. Santos  <thiago.santos@intel.com>
115
116         [WTF] Get rid of truncated thread name warnings for non-Windows platforms
117         https://bugs.webkit.org/show_bug.cgi?id=114266
118
119         Reviewed by Ryosuke Niwa.
120
121         Hide the annoying message from ports that are not really interested
122         about it.
123
124         * wtf/Threading.cpp:
125         (WTF::createThread):
126
127 2013-04-10  Benjamin Poulain  <bpoulain@apple.com>
128
129         Mass remove all the empty directories
130
131         Rubberstamped by Ryosuke Niwa.
132
133         * wtf/qt/compat: Removed.
134         * wtf/unicode/glib: Removed.
135         * wtf/unicode/qt4: Removed.
136         * wtf/unicode/wince: Removed.
137
138 2013-04-08  Anders Carlsson  <andersca@apple.com>
139
140         Remove unneeded headers from FrameLoader.h
141         https://bugs.webkit.org/show_bug.cgi?id=114223
142
143         Reviewed by Geoffrey Garen.
144
145         * wtf/Forward.h:
146         Add PrintStream.
147
148         * wtf/HashTable.h:
149         Don't include DataLog.h unless DUMP_HASHTABLE_STATS_PER_TABLE is 1.
150
151 2013-04-10  Laszlo Gombos  <l.gombos@samsung.com>
152
153         Remove ENABLE_3D_PLUGIN
154         https://bugs.webkit.org/show_bug.cgi?id=108002
155
156         Reviewed by Antti Koivisto.
157
158         Remove ENABLE_3D_PLUGIN, it was only used by Chromium.
159
160         * wtf/FeatureDefines.h:
161
162 2013-04-09  Patrick Gansterer  <paroga@webkit.org>
163
164         [CMake] Remove conditional source file lists in WTF
165         https://bugs.webkit.org/show_bug.cgi?id=114250
166
167         Reviewed by Laszlo Gombos.
168
169         Use the #ifdef in the source file instead of conditional adding
170         files to the list of source files. This allows us to remove the
171         information of enabled features from CMake in next step.
172
173         * wtf/CMakeLists.txt:
174
175 2013-04-08  Ryosuke Niwa  <rniwa@webkit.org>
176
177         Remove WTF.gyp/WTF.gypi
178         https://bugs.webkit.org/show_bug.cgi?id=114237
179
180         Reviewed by Maciej Stachowiak.
181
182         * WTF.gyp: Removed.
183         * WTF.gyp/.gitignore: Removed.
184         * WTF.gyp/WTF.gyp: Removed.
185         * WTF.gypi: Removed.
186
187 2013-04-08  Benjamin Poulain  <benjamin@webkit.org>
188
189         Remove HTML Notification
190         https://bugs.webkit.org/show_bug.cgi?id=114231
191
192         Reviewed by Ryosuke Niwa.
193
194         * wtf/FeatureDefines.h:
195
196 2013-04-08  Benjamin Poulain  <benjamin@webkit.org>
197
198         wtf/dtoa/* uses a confusing name to reference its buffers
199         https://bugs.webkit.org/show_bug.cgi?id=109709
200
201         Reviewed by Darin Adler.
202
203         The data structure Vector in wtf/dtoa has nothing to do with a traditional
204         vector, is it just a pointer and the length of the pointed buffer.
205
206         Rename it to BufferReference to avoid mistakes.
207
208         * wtf/dtoa/bignum-dtoa.cc:
209         * wtf/dtoa/bignum-dtoa.h:
210         * wtf/dtoa/bignum.cc:
211         * wtf/dtoa/bignum.h:
212         (Bignum):
213         * wtf/dtoa/double-conversion.cc:
214         * wtf/dtoa/fast-dtoa.cc:
215         * wtf/dtoa/fast-dtoa.h:
216         * wtf/dtoa/fixed-dtoa.cc:
217         * wtf/dtoa/fixed-dtoa.h:
218         (double_conversion):
219         * wtf/dtoa/strtod.cc:
220         * wtf/dtoa/strtod.h:
221         (double_conversion):
222         * wtf/dtoa/utils.h:
223         (double_conversion):
224         (WTF::double_conversion::BufferReference::BufferReference):
225         (WTF::double_conversion::BufferReference::SubBufferReference):
226         (StringBuilder):
227
228 2013-04-08  Alberto Garcia  <agarcia@igalia.com>
229
230         [BlackBerry] MathExtras: macros defined in math.h conflict with the real functions
231         https://bugs.webkit.org/show_bug.cgi?id=112683
232
233         Reviewed by Darin Adler.
234
235         After calls to signbit and friends were prefixed with std:: in
236         r143232, the BlackBerry port no longer compiles.
237
238         The solution is to get rid of the macros defined in math.h and use
239         the real functions instead.
240
241         * wtf/MathExtras.h:
242
243 2013-04-08  Max Vujovic  <mvujovic@adobe.com>
244
245         REGRESSION (r147502): Animations of CA filters broken
246         https://bugs.webkit.org/show_bug.cgi?id=114067
247
248         Reviewed by Dean Jackson.
249
250         Revert r147502 [1] because it broke CA filter animations.
251         
252         [1]: http://trac.webkit.org/changeset/147502
253
254         * wtf/Platform.h:
255
256 2013-04-08  Andreas Kling  <akling@apple.com>
257
258         REGRESSION(r147894): Broke WTFReportBacktrace() on Mac.
259         <http://webkit.org/b/114174>
260
261         Reviewed by Anders Carlsson.
262
263         An #elif !OS(ANDROID) block was erroneously removed, turn it into an #else instead since
264         that path will still be taken for OS(DARWIN).
265
266         * wtf/Assertions.cpp:
267
268 2013-04-08  Oliver Hunt  <oliver@apple.com>
269
270         Build fix.
271
272         Remove unnecessary include of <wtf/Forward.h> from Vector.h
273
274         * wtf/Vector.h:
275
276 2013-04-08  Csaba Osztrogonác  <ossy@webkit.org>
277
278         Unreviewed trivial buildfix after r147799.
279
280         Add an ifdef guard to ensure Qt uses its own monotonicallyIncreasingTime()
281         implemenation instead of the GLIB based one.
282
283         * wtf/CurrentTime.cpp:
284         (WTF):
285
286 2013-04-07  Benjamin Poulain  <benjamin@webkit.org>
287
288         Remove the android code from WebKit Template Framework
289         https://bugs.webkit.org/show_bug.cgi?id=114138
290
291         Reviewed by Dirk Schulze.
292
293         * wtf/Assertions.cpp:
294         * wtf/Atomics.h:
295         * wtf/MathExtras.h:
296         * wtf/Platform.h:
297         * wtf/ThreadIdentifierDataPthreads.cpp:
298
299 2013-04-07  Oliver Hunt  <oliver@apple.com>
300
301         Add bounds checking for WTF::Vector::operator[]
302         https://bugs.webkit.org/show_bug.cgi?id=89600
303
304         Reviewed by Filip Pizlo.
305
306         Add a template parameter to Vector<> that controls whether
307         bounds checking is performed in release builds or not.
308         Defaults to crashing on overflow.
309
310         * wtf/Forward.h:
311         (WTF):
312         * wtf/Vector.h:
313         (WTF):
314         (Vector):
315         (WTF::Vector::at):
316         (WTF::Vector::removeLast):
317         (WTF::::Vector):
318         (WTF::=):
319         (WTF::::contains):
320         (WTF::::find):
321         (WTF::::reverseFind):
322         (WTF::::fill):
323         (WTF::::appendRange):
324         (WTF::::expandCapacity):
325         (WTF::::tryExpandCapacity):
326         (WTF::::resize):
327         (WTF::::shrink):
328         (WTF::::grow):
329         (WTF::::reserveCapacity):
330         (WTF::::tryReserveCapacity):
331         (WTF::::reserveInitialCapacity):
332         (WTF::::shrinkCapacity):
333         (WTF::::append):
334         (WTF::::tryAppend):
335         (WTF::::appendSlowCase):
336         (WTF::::uncheckedAppend):
337         (WTF::::appendVector):
338         (WTF::::insert):
339         (WTF::::prepend):
340         (WTF::::remove):
341         (WTF::::reverse):
342         (WTF::::releaseBuffer):
343         (WTF::::checkConsistency):
344         (WTF::deleteAllValues):
345         (WTF::swap):
346         (WTF::operator==):
347         (WTF::operator!=):
348
349 2013-04-07  Patrick Gansterer  <paroga@webkit.org>
350
351         [WIN] Fix problems with export macros of AutodrainedPool
352         https://bugs.webkit.org/show_bug.cgi?id=114132
353
354         Reviewed by Geoffrey Garen.
355
356         Exporting an inline function results in an error with the MS compiler.
357
358         * wtf/AutodrainedPool.h:
359         (AutodrainedPool):
360         (WTF::AutodrainedPool::AutodrainedPool):
361         (WTF::AutodrainedPool::~AutodrainedPool):
362         (WTF::AutodrainedPool::cycle):
363
364 2013-04-07  Patrick Gansterer  <paroga@webkit.org>
365
366         [WinCE] Add workaround for UNUSED_PARAM()
367         https://bugs.webkit.org/show_bug.cgi?id=113440
368
369         Reviewed by Benjamin Poulain.
370
371         The MSVC compiler for Windwos CE throws an error when
372         an function parameter is passed to UNUSED_PARAM() and
373         its type is only forward declared.
374
375         * wtf/UnusedParam.h:
376
377 2013-04-07  Patrick Gansterer  <paroga@webkit.org>
378
379         Do not check if WTF_ARM_ARCH_VERSION is defined in WTF_ARM_ARCH_AT_LEAST macro
380         https://bugs.webkit.org/show_bug.cgi?id=114127
381
382         Reviewed by Benjamin Poulain.
383
384         Platform.h defines WTF_ARM_ARCH_VERSION for CPU(ARM) always and removing
385         the check works around a bug in older Microsoft compiler versions.
386
387         * wtf/Platform.h:
388
389 2013-04-07  David Kilzer  <ddkilzer@apple.com>
390
391         Remove the rest of SVG_DOM_OBJC_BINDINGS
392         <http://webkit.org/b/114112>
393
394         Reviewed by Geoffrey Garen.
395
396         * wtf/FeatureDefines.h:
397         - Remove ENABLE_SVG_DOM_OBJC_BINDINGS macro.
398
399 2013-04-06  Geoffrey Garen  <ggaren@apple.com>
400
401         Removed v8 bindings hooks from IDL files
402         https://bugs.webkit.org/show_bug.cgi?id=114091
403
404         Reviewed by Anders Carlsson and Sam Weinig.
405
406         * wtf/ArrayBuffer.h:
407         (WTF):
408         (WTF::ArrayBufferContents::ArrayBufferContents):
409         (WTF::ArrayBufferContents::transfer):
410         (ArrayBufferContents):
411         (ArrayBuffer):
412         (WTF::ArrayBufferContents::~ArrayBufferContents):
413         * wtf/Platform.h:
414
415 2013-04-05  Jesus Sanchez-Palencia  <jesus.palencia@openbossa.org>
416
417         [GTK] Change from PLATFORM(GTK) to USE(GLIB) in WTF/CurrentTime.cpp
418         https://bugs.webkit.org/show_bug.cgi?id=114061
419
420         Reviewed by Gustavo Noronha Silva.
421
422         Now other ports using GLib can use the correct implementation
423         and not the fallback one without adding any other PLATFORM guards
424         here.
425
426         * wtf/CurrentTime.cpp:
427         (WTF):
428
429 2013-04-05  Geoffrey Garen  <ggaren@apple.com>
430
431         Made USE(JSC) unconditional
432         https://bugs.webkit.org/show_bug.cgi?id=114058
433
434         Reviewed by Anders Carlsson.
435
436         * wtf/ThreadRestrictionVerifier.h:
437         (WTF):
438         * wtf/WTFThreadData.cpp:
439         (WTF::WTFThreadData::WTFThreadData):
440         (WTF::WTFThreadData::~WTFThreadData):
441         * wtf/WTFThreadData.h:
442         (WTFThreadData):
443         * wtf/text/StringImpl.cpp:
444         (WTF::StringImpl::~StringImpl):
445
446 2013-04-05  Roger Fong  <roger_fong@apple.com>
447
448         More VS2010 solution makefile fixes.
449         <rdar://problem/13588964>
450
451         * WTF.vcxproj/WTF.make:
452
453 2013-04-05  Anders Carlsson  <andersca@apple.com>
454
455         Remove more dead Chromium code from WTF
456         https://bugs.webkit.org/show_bug.cgi?id=114037
457
458         Reviewed by Allan Sandfeld Jensen.
459
460         * wtf/CurrentTime.cpp:
461         (WTF):
462         * wtf/DisallowCType.h:
463         * wtf/ExportMacros.h:
464         * wtf/MainThread.cpp:
465         * wtf/Platform.h:
466
467 2013-04-05  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>
468
469         [EFL] Disable GLOBAL_FAST_MALLOC_NEW by default.
470         https://bugs.webkit.org/show_bug.cgi?id=114031
471
472         Reviewed by Alexis Menard.
473
474         Follow what some other ports already do and avoid globally overriding
475         the `new' and `delete' operators with the ones in FastMalloc.
476
477         In many cases, third-party or client code allocates memory with
478         standard library calls but the memory gets deleted by FastMalloc,
479         causing a crash. The reverse (ie. memory being allocated by FastMalloc
480         and freed by the system libraries) is also possible.
481
482         Commits 135666 and 121018 provide more information about this, as well
483         as comment 6 in bug 89358.
484
485         * wtf/Platform.h:
486
487 2013-04-05  Benjamin Poulain  <bpoulain@apple.com>
488
489         Remove WTFURL from WebKit
490         https://bugs.webkit.org/show_bug.cgi?id=113994
491
492         Reviewed by Ryosuke Niwa.
493
494         Painful, but that is for the best now :(
495
496         * GNUmakefile.list.am:
497         * WTF.xcodeproj/project.pbxproj:
498         * wtf/MemoryInstrumentationParsedURL.h: Removed.
499         * wtf/url/api/ParsedURL.cpp: Removed.
500         * wtf/url/api/ParsedURL.h: Removed.
501         * wtf/url/api/URLBuffer.h: Removed.
502         * wtf/url/api/URLQueryCharsetConverter.h: Removed.
503         * wtf/url/api/URLString.cpp: Removed.
504         * wtf/url/api/URLString.h: Removed.
505         * wtf/url/src/RawURLBuffer.h: Removed.
506         * wtf/url/src/URLCanon.h: Removed.
507         * wtf/url/src/URLCanonEtc.cpp: Removed.
508         * wtf/url/src/URLCanonFilesystemurl.cpp: Removed.
509         * wtf/url/src/URLCanonFileurl.cpp: Removed.
510         * wtf/url/src/URLCanonHost.cpp: Removed.
511         * wtf/url/src/URLCanonICU.cpp: Removed.
512         * wtf/url/src/URLCanonIP.cpp: Removed.
513         * wtf/url/src/URLCanonInternal.cpp: Removed.
514         * wtf/url/src/URLCanonInternal.h: Removed.
515         * wtf/url/src/URLCanonMailto.cpp: Removed.
516         * wtf/url/src/URLCanonPath.cpp: Removed.
517         * wtf/url/src/URLCanonPathurl.cpp: Removed.
518         * wtf/url/src/URLCanonQuery.cpp: Removed.
519         * wtf/url/src/URLCanonRelative.cpp: Removed.
520         * wtf/url/src/URLCanonStdURL.cpp: Removed.
521         * wtf/url/src/URLCharacterTypes.cpp: Removed.
522         * wtf/url/src/URLCharacterTypes.h: Removed.
523         * wtf/url/src/URLComponent.h: Removed.
524         * wtf/url/src/URLFile.h: Removed.
525         * wtf/url/src/URLParse.cpp: Removed.
526         * wtf/url/src/URLParse.h: Removed.
527         * wtf/url/src/URLParseFile.cpp: Removed.
528         * wtf/url/src/URLParseInternal.h: Removed.
529         * wtf/url/src/URLSegments.cpp: Removed.
530         * wtf/url/src/URLSegments.h: Removed.
531         * wtf/url/src/URLUtil.cpp: Removed.
532         * wtf/url/src/URLUtil.h: Removed.
533         * wtf/url/src/URLUtilInternal.h: Removed.
534
535 2013-04-04  Geoffrey Garen  <ggaren@apple.com>
536
537         Nixed the defunct chromium folder from WTF
538         https://bugs.webkit.org/show_bug.cgi?id=113992
539
540         Reviewed by Ryosuke Niwa.
541
542         * wtf/chromium: Removed.
543         * wtf/chromium/ChromiumThreading.h: Removed.
544         * wtf/chromium/MainThreadChromium.cpp: Removed.
545
546 2013-04-04  Martin Robinson  <mrobinson@igalia.com>
547
548         [GTK] Remove the gyp build
549         https://bugs.webkit.org/show_bug.cgi?id=113942
550
551         Reviewed by Gustavo Noronha Silva.
552
553         * WTF.gyp/WTFGTK.gyp: Removed.
554
555 2013-04-04  Anders Carlsson  <andersca@apple.com>
556
557         ObjcRuntimeExtras.h should use variadic templates
558         https://bugs.webkit.org/show_bug.cgi?id=113941
559
560         Reviewed by Andreas Kling.
561
562         Reimplement wtfObjcMsgSend and wtfCallIMP as variadic function templates.
563
564         * wtf/ObjcRuntimeExtras.h:
565         (wtfObjcMsgSend):
566         (wtfCallIMP):
567
568 2013-04-04  Andras Becsi  <andras.becsi@digia.com>
569
570         Fix the build with GCC 4.8
571         https://bugs.webkit.org/show_bug.cgi?id=113147
572
573         Reviewed by Allan Sandfeld Jensen.
574
575         Disable diagnostic warning -Wunused-local-typedefs for GCC 4.8
576         since dummy typedefs are commonly used in the codebase.
577
578         * wtf/Compiler.h:
579
580 2013-04-03  Pratik Solanki  <psolanki@apple.com>
581
582         Enable HAVE_MADV_FREE_REUSE on iOS
583         https://bugs.webkit.org/show_bug.cgi?id=113892
584         <rdar://problem/12787563>
585
586         Reviewed by Mark Rowe.
587
588         * wtf/Platform.h:
589
590 2013-04-02  Ryosuke Niwa  <rniwa@webkit.org>
591
592         Remove code for Mac 10.5 and earlier from WTF and WebKit2
593         https://bugs.webkit.org/show_bug.cgi?id=113844
594
595         Reviewed by Benjamin Poulain.
596
597         Removed the code for 10.5 and removed if-def for 10.6.
598
599         * wtf/FastMalloc.cpp:
600         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
601         * wtf/Platform.h:
602         * wtf/ThreadingPthreads.cpp:
603         (WTF::initializeCurrentThreadInternal):
604         * wtf/unicode/icu/CollatorICU.cpp:
605         (WTF::Collator::userDefault):
606
607 2013-04-02  Max Vujovic  <mvujovic@adobe.com>
608
609         [CSS Filters] Filter outsets clipped on composited layers when filter is applied after first layout
610         https://bugs.webkit.org/show_bug.cgi?id=109098
611
612         Reviewed by Dean Jackson.
613
614         * wtf/Platform.h:
615             Add flag for HAVE(COMPOSITOR_FILTER_OUTSETS) macro. This is used to check if a
616             platform's compositor expands layers internally for filter outsets when it applies
617             filters like drop-shadow and blur. Currently, only CoreAnimation does has this
618             capability.
619
620 2013-04-02  Yury Semikhatsky  <yurys@chromium.org>
621
622         Web Inspector: memory instrumentation for external arrays is broken
623         https://bugs.webkit.org/show_bug.cgi?id=113790
624
625         Reviewed by Pavel Feldman.
626
627         * wtf/MemoryInstrumentationArrayBufferView.h: report buffer pointer as retaining one as
628         we know that the pointer is not broken.
629         (WTF::reportMemoryUsage):
630
631 2013-04-01  Han Shen  <shenhan@google.com>
632
633         Move definition of nested classes that inherit enclosing class outside class definition.
634         https://bugs.webkit.org/show_bug.cgi?id=113454
635
636         Reviewed by Benjamin Poulain.
637
638         HashMap.h does not build on GCC 4.8. Inside this file,
639         HashMapKeysProxy and HashMapValuesProxy are defined as nested
640         class inside HashMap - which is legal - the illegal part is that
641         these 2 classes inherit HashMap, that is the enclosing class, that
642         causes "reference to in-complete definition" error.
643
644         The fix is to move outside the definition of these 2 classes, and
645         leave only declaration part inside HashMap as is illustrated below -
646
647           template class <typename T>
648           class HashMap {
649             ... ...
650             ... ...
651           private:
652             class HashMapKeysProxy;
653
654             // ERROR - nested class inherits enclosing class.
655             class HashMapKeysProxy : private HashMap {
656                 ... ...
657             };
658             ... ...
659             ... ...
660             class HashMapKeysProxy : private HashMap {
661                 ... ...
662             };
663             ... ...
664             ... ...
665           };
666
667         Fixed as below:
668           template class <typename T>
669           class HashMap {
670             ... ...
671             ... ...
672           private:
673             class HashMapKeysProxy;
674             class HashMapValuesProxy;
675
676             ... ...
677             ... ...
678           };
679
680           template <typename T>
681           class HashMap<T>::HashMapKeysProxy : private HashMap<T> {
682             ... ...
683           };
684
685           template <typename T>
686           class HashMap<T>::HashMapValuesProxy : private HashMap<T> {
687             ... ...
688           };
689
690         * wtf/HashMap.h:
691         (HashMap):
692         (WTF): Factor out nested class definition from enclosing class.
693
694 2013-03-31  Mark Hahnenberg  <mhahnenberg@apple.com>
695
696         Regions should be allocated from the same contiguous segment of virtual memory
697         https://bugs.webkit.org/show_bug.cgi?id=113662
698
699         Reviewed by Filip Pizlo.
700
701         Instead of letting the OS spread our Regions all over the place, we should allocate them all within 
702         some range of each other. This change will open the door to some other optimizations, e.g. doing simple 
703         range checks for our write barriers and compressing JSCell pointers to 32-bits.
704
705         * wtf/MetaAllocator.cpp: Changed the MetaAllocator to allow custom page sizes if the derived class wants to
706         use something other than the system page size.
707         (WTF::MetaAllocator::MetaAllocator):
708         * wtf/MetaAllocator.h:
709         (MetaAllocator):
710
711 2013-04-01  Yury Semikhatsky  <yurys@chromium.org>
712
713         Web Inspector: add memory instrumentation for StringBuffer
714         https://bugs.webkit.org/show_bug.cgi?id=113507
715
716         Reviewed by Pavel Feldman.
717
718         Added memory instrumentation for StringBuffer.
719
720         * wtf/MemoryInstrumentationString.h:
721         (WTF):
722         (WTF::reportMemoryUsage):
723
724 2013-03-30  Tom Sepez  <tsepez@chromium.org>
725
726         View-source iframes are dangerous (and not very useful).
727         https://bugs.webkit.org/show_bug.cgi?id=113345
728
729         Reviewed by Adam Barth.
730
731         * wtf/FeatureDefines.h:
732         Default definition of ENABLE_VIEWSOURCE_ATTRIBUTE is enabled.
733
734 2013-03-27  Patrick Gansterer  <paroga@webkit.org>
735
736         Set WTF_ARM_ARCH_VERSION to correct value when used with MSVC
737         https://bugs.webkit.org/show_bug.cgi?id=113436
738
739         Reviewed by Benjamin Poulain.
740
741         The Microsoft compiler defines _M_ARM with used ARM version.
742
743         * wtf/Platform.h:
744
745 2013-03-27  Allan Sandfeld Jensen  <allan.jensen@digia.com>
746
747         Support C++11 static_assert
748         https://bugs.webkit.org/show_bug.cgi?id=113308
749
750         Reviewed by Alexey Proskuryakov.
751
752         Use the C++11 static_assert for COMPILE_ASSERT when it is available. Note that
753         even when compiling with C++11 support, static_assert will not always be available
754         since Assertions.h may also be used outside of C++.
755
756         C11 _Static_assert is enabled for GCC when it has C11 support (gcc>=4.7 -std=c11).
757
758         * wtf/Assertions.h:
759         * wtf/Compiler.h:
760
761 2013-03-25  Oliver Hunt  <oliver@apple.com>
762
763         RefCountedArray needs a size based constructor
764         https://bugs.webkit.org/show_bug.cgi?id=113277
765
766         Reviewed by Benjamin Poulain.
767
768         Simple patch to add a size based constructor for RefCountedArray
769         so that we can create an sharable array without a copy.
770
771         * wtf/RefCountedArray.h:
772         (RefCountedArray):
773         (WTF::RefCountedArray::RefCountedArray):
774
775 2013-03-26  James Robinson  <jamesr@chromium.org>
776
777         Compile fix - OS(WINDOWS), not OS(WIN).
778
779         * wtf/ProcessID.h:
780         (WTF::getCurrentProcessID):
781
782 2013-03-26  James Robinson  <jamesr@chromium.org>
783
784         Fix compile for OS(WIN) != PLATFORM(WIN)
785         https://bugs.webkit.org/show_bug.cgi?id=113356
786
787         Reviewed by Tim Horton.
788
789         * wtf/ProcessID.h:
790         (WTF::getCurrentProcessID):
791
792 2013-03-23  Filip Pizlo  <fpizlo@apple.com>
793
794         JSC_enableProfiler=true should also cause JSGlobalData to save the profiler output somewhere
795         https://bugs.webkit.org/show_bug.cgi?id=113144
796
797         Reviewed by Geoffrey Garen.
798         
799         I got tired of the fact that getpid(2) is not a syscall on Windows (unless you do
800         _getpid() I believe), so I wrote a header that abstracts it. I also changed existing
801         code that uses getpid() to use WTF::getCurrentProcessID().
802
803         * GNUmakefile.list.am:
804         * WTF.gypi:
805         * WTF.pro:
806         * WTF.vcproj/WTF.vcproj:
807         * WTF.xcodeproj/project.pbxproj:
808         * wtf/CMakeLists.txt:
809         * wtf/MetaAllocator.cpp:
810         (WTF::MetaAllocator::dumpProfile):
811         * wtf/ProcessID.h: Added.
812         (WTF):
813         (WTF::getCurrentProcessID):
814         * wtf/text/StringImpl.cpp:
815         (WTF::StringStats::printStats):
816
817 2013-03-25  Kent Tamura  <tkent@chromium.org>
818
819         Rename ENABLE_INPUT_TYPE_DATETIME
820         https://bugs.webkit.org/show_bug.cgi?id=113254
821
822         Reviewed by Kentaro Hara.
823
824         Rename ENABLE_INPUT_TYPE_DATETIME to ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE.
825         Actually I'd like to remove the code, but we shouldn't remove it yet
826         because we shipped products with it on some platforms.
827
828         * wtf/FeatureDefines.h:
829
830 2013-03-25  David Kilzer  <ddkilzer@apple.com>
831
832         WTF::binarySearchImpl() should compile with -Wshorten-64-to-32
833         <http://webkit.org/b/113170>
834
835         Reviewed by Dan Bernstein.
836
837         Fixes the following build failure:
838
839             /usr/local/include/wtf/StdLibExtras.h:190:30: error: implicit conversion loses integer precision: 'unsigned long' to 'int' [-Werror,-Wshorten-64-to-32]
840                     int pos = (size - 1) >> 1;
841                         ~~~   ~~~~~~~~~~~^~~~
842             1 error generated.
843
844         * wtf/StdLibExtras.h:
845         (WTF::binarySearchImpl): Switch type from int to size_t.
846
847 2013-03-22  Benjamin Poulain  <bpoulain@apple.com>
848
849         Remove 2 bad branches from StringHash::equal() and CaseFoldingHash::equal()
850         https://bugs.webkit.org/show_bug.cgi?id=113003
851
852         Reviewed by Eric Seidel.
853
854         StringHash::equal() and CaseFoldingHash::equal() were both testing for
855         the nullity of the two input pointers. The catch is: neither traits handle
856         null pointers, and any client code would have crashed on hash(), before equal()
857         is called.
858         Consequently, the two branches had a pass rate of zero when called from a HashMap code.
859
860         The function is also never inlined because it is too big (the code of equal() for characters
861         is always inlined, causing the function to be quite big).
862
863         This patch introduces two new functions in the StringImpl API: equalNonNull() and
864         equalIgnoringCaseNonNull(). Those functions are similar to their equal() equivalent
865         but make the assumtion the input is never null.
866
867         The functions are used for StringHash to avoid the useless branches.
868
869         * wtf/text/StringHash.h:
870         (WTF::StringHash::equal):
871         (WTF::CaseFoldingHash::equal):
872         * wtf/text/StringImpl.cpp:
873         (WTF::stringImplContentEqual):
874         (WTF::equal):
875         (WTF::equalNonNull):
876         (WTF::equalIgnoringCase):
877         (WTF::equalIgnoringCaseNonNull):
878         (WTF::equalIgnoringNullity):
879         * wtf/text/StringImpl.h:
880         (WTF::equalIgnoringCase):
881
882 2013-03-22  Benjamin Poulain  <bpoulain@apple.com>
883
884         Name correctly the argument of StringImpl::setIsAtomic()
885         https://bugs.webkit.org/show_bug.cgi?id=113000
886
887         Reviewed by Geoffrey Garen.
888
889         * wtf/text/StringImpl.h:
890         (WTF::StringImpl::setIsAtomic):
891         The argument was probably an unfortunate copy-paste from setIsIdentifier().
892         Fix the name.
893
894 2013-03-22  Hajime Morrita  <morrita@google.com>
895
896         Custom Elements: "readyCallback" lifecycle callback should be called.
897         https://bugs.webkit.org/show_bug.cgi?id=112538
898
899         Reviewed by Elliott Sprehn.
900
901         * wtf/HashSet.h:
902         (WTF::copyToVector): Generalized to let it accept variants like ListHahsSet instead of only HashSet.
903
904 2013-03-22  Sheriff Bot  <webkit.review.bot@gmail.com>
905
906         Unreviewed, rolling out r146534 and r146565.
907         http://trac.webkit.org/changeset/146534
908         http://trac.webkit.org/changeset/146565
909         https://bugs.webkit.org/show_bug.cgi?id=113017
910
911         "r146534 caused perf regression on Chromium Linux x64"
912         (Requested by yurys on #webkit).
913
914         * wtf/HashSet.h:
915         (WTF):
916         (WTF::copyToVector):
917
918 2013-03-21  Hajime Morrita  <morrita@google.com>
919
920         Custom Elements: "readyCallback" lifecycle callback should be called.
921         https://bugs.webkit.org/show_bug.cgi?id=112538
922
923         Reviewed by Elliott Sprehn.
924
925         * wtf/HashSet.h:
926         (WTF::copyToVector): Generalized to let it accept variants like ListHahsSet instead of only HashSet.
927
928 2013-03-21  Mark Lam  <mark.lam@apple.com>
929
930         Introducing String::findNextLineStart().
931         https://bugs.webkit.org/show_bug.cgi?id=112957.
932
933         Reviewed by Geoffrey Garen.
934
935         This is replaces String::reverseFindLineTerminator() in the JSC
936         debugger's code for computing column numbers.
937
938         * wtf/text/StringImpl.cpp:
939         (WTF::StringImpl::findNextLineStart):
940         * wtf/text/StringImpl.h:
941         (WTF::findNextLineStart):
942         * wtf/text/WTFString.h:
943         (WTF::String::findNextLineStart):
944
945 2013-03-21  Adam Barth  <abarth@webkit.org>
946
947         HTMLNames should construct strings at compile time
948         https://bugs.webkit.org/show_bug.cgi?id=112831
949
950         Reviewed by Darin Adler.
951
952         * wtf/text/StringImpl.h:
953         (StringImpl):
954         (StaticASCIILiteral):
955             - This struct lets us construct StringImpl objects at compile time.
956         (WTF::StringImpl::assertHashIsCorrect):
957             - This function lets us sanity check StringImpl objects created from StaticData.
958         (WTF::StringImpl::find): Remove a stray ;
959         (WTF::StringImpl::findIgnoringCase): ditto
960         (WTF::StringImpl::startsWith): ditto
961         (WTF::ValueCheck<StringImpl*>):
962         * wtf/text/AtomicStringImpl.h:
963         (WTF::ValueCheck<AtomicStringImpl*>):
964
965 2013-03-21  Gabor Rapcsanyi  <rgabor@webkit.org>
966
967         Implement LLInt for CPU(ARM_TRADITIONAL)
968         https://bugs.webkit.org/show_bug.cgi?id=97589
969
970         Reviewed by Zoltan Herczeg.
971
972         Enable LLInt for ARMv5 and ARMv7 traditional as well.
973
974         * wtf/Platform.h:
975
976 2013-03-20  Sheriff Bot  <webkit.review.bot@gmail.com>
977
978         Unreviewed, rolling out r146419.
979         http://trac.webkit.org/changeset/146419
980         https://bugs.webkit.org/show_bug.cgi?id=112870
981
982         Broke many tests on debug builds (Requested by rniwa_ on
983         #webkit).
984
985         * wtf/text/StringImpl.h:
986         (StringImpl):
987
988 2013-03-20  Adam Barth  <abarth@webkit.org>
989
990         HTMLNames should construct strings at compile time
991         https://bugs.webkit.org/show_bug.cgi?id=112831
992
993         Reviewed by Darin Adler.
994
995         * wtf/text/StringImpl.h:
996         (StringImpl):
997         (StaticASCIILiteral):
998             - This struct lets us construct StringImpl objects at compile time.
999         (WTF::StringImpl::assertValidHash):
1000             - This function lets us sanity check StringImpl objects created from StaticData.
1001
1002 2013-03-20  Jessie Berlin  <jberlin@apple.com>
1003
1004         REGRESSION(r145592): AutodrainedPool.h. RunLoopTimer.h, SchedulePair.h are being copied into
1005         the wrong location
1006         https://bugs.webkit.org/show_bug.cgi?id=112833
1007
1008         Reviewed by Darin Adler.
1009
1010         * WTF.xcodeproj/project.pbxproj:
1011         Make sure those three headers are copied with the rest of the WTF headers.
1012
1013 2013-03-20  Mark Rowe  <mrowe@apple.com>
1014
1015         FastMalloc scavenge timer specifies an overly narrow leeway value.
1016
1017         Reviewed by Alexey Proskuryakov.
1018
1019         There's no need to allow only 1ms of leeway on a 2s timer.
1020
1021         * wtf/FastMalloc.cpp:
1022         (WTF::TCMalloc_PageHeap::initializeScavenger): Bump the leeway window
1023         to 10% of the scavenge timer.
1024
1025 2013-03-20  JungJik Lee  <jungjik.lee@samsung.com>
1026
1027         [EFL] Disable REQUEST_ANIMATION_FRAME_TIMER to render a new animation frame.
1028         https://bugs.webkit.org/show_bug.cgi?id=112114
1029
1030         Reviewed by Kenneth Rohde Christiansen.
1031
1032         The issue is that if the animation starts outside of the area covered by keepRects,
1033         the web process does not create tiles of the animation layer and the layer moves 
1034         without having any tiles. In order to fix this issue, CoordinatedLayerHost must call 
1035         scheduleLayerFlush to create new tiles when the layer enters the area covered by keepRect.
1036         However EFL port didn't call scheduleLayerFlush periodically for animation.
1037         We can tie scripted animations with synchronization of the layer and that already 
1038         has been implemented in r123786 by Qt port. This patch is for activating r123786 patch.
1039
1040         The testing is covered by ManualTests/animation/transition-on-and-offscreen-animation.html
1041
1042         * wtf/Platform.h: Disable REQUEST_ANIMATION_FRAME_TIMER.
1043
1044 2013-03-20  Mark Lam  <mark.lam@apple.com>
1045
1046         Introducing String::reverseFindLineTerminator().
1047         https://bugs.webkit.org/show_bug.cgi?id=112741.
1048
1049         Reviewed by Oliver Hunt.
1050
1051         This is needed by the JSC debugger code for computing column numbers.
1052
1053         * wtf/text/StringImpl.cpp:
1054         (WTF::StringImpl::reverseFindLineTerminator):
1055         * wtf/text/StringImpl.h:
1056         (StringImpl):
1057         (WTF::reverseFindLineTerminator):
1058         * wtf/text/WTFString.h:
1059         (WTF::String::reverseFindLineTerminator):
1060
1061 2013-03-19  Martin Robinson  <mrobinson@igalia.com>
1062
1063         Fix the WTF gyp build for GTK+.
1064
1065         * WTF.gyp/WTFGTK.gyp: Skip files with CF in the name.
1066
1067 2013-03-19  Alberto Garcia  <agarcia@igalia.com>
1068
1069         [BlackBerry] Enable USE_SYSTEM_MALLOC by default
1070         https://bugs.webkit.org/show_bug.cgi?id=112365
1071
1072         Reviewed by Benjamin Poulain.
1073
1074         Enable USE_SYSTEM_MALLOC by default via FeatureList.pm instead of
1075         harcoding it in wtf/Platform.h
1076
1077         * wtf/Platform.h:
1078
1079 2013-03-18  Benjamin Poulain  <benjamin@webkit.org>
1080
1081         [iOS] Make a UChar string equal() based on the LChar version
1082         https://bugs.webkit.org/show_bug.cgi?id=112495
1083
1084         Reviewed by David Kilzer.
1085
1086         * wtf/text/StringImpl.h:
1087         (WTF::equal):
1088         Create a equal() function for UChar based on the work done for LChar.
1089
1090         On A6, this is a speed up of about 40% for any string of 2 or more characters.
1091         It is slower by 8% on a single UChar comparison.
1092
1093 2013-03-18  Brent Fulgham  <bfulgham@webkit.org>
1094
1095         [WinCairo] Get build working under VS2010.
1096         https://bugs.webkit.org/show_bug.cgi?id=112604
1097
1098         Reviewed by Tim Horton.
1099
1100         * WTF.vcxproj/WTF.vcxproj: Add Debug_WinCairo and Release_WinCairo
1101         targets so headers get copied to appropriate build folder.
1102         * WTF.vcxproj/WTFGenerated.vcxproj: Ditto.
1103
1104 2013-03-15  Benjamin Poulain  <bpoulain@apple.com>
1105
1106         [iOS] Update StringImpl's equal to have a single version on all supported Apple CPUs
1107         https://bugs.webkit.org/show_bug.cgi?id=112400
1108
1109         Reviewed by Michael Saboff.
1110
1111         * wtf/text/StringImpl.h:
1112         (WTF::equal):
1113         Tweak the code to make it work on older Apple CPUs:
1114         -Use external "ouput" variable instead of the registers R9 and R12. This gets rid
1115          of some register pressure previously imposed on the compiler. (Clang nicely
1116          choose R9 and R12 when needed, following iOS ABI).
1117         -Instead of using "R3" for storing the length / 4, update the length by -4 on
1118          each iteration and work in the negative space for the tail. This frees one register
1119          which is then used for isEqual.
1120         -Get rid of the unconditional branch from the loop. By using subs and working in the
1121          negative space, we can test for the Carry flag to jump back to the next LDR.
1122
1123 2013-03-15  Benjamin Poulain  <bpoulain@apple.com>
1124
1125         [iOS] Fix the length pass to memcmp in the fallback versions of String's equal
1126         https://bugs.webkit.org/show_bug.cgi?id=112463
1127
1128         Reviewed by Ryosuke Niwa.
1129
1130         * wtf/text/StringImpl.h:
1131         (WTF::equal): It might be a good idea to compare the full UChar strings...
1132
1133 2013-03-15  Michael Saboff  <msaboff@apple.com>
1134
1135         Add runtime check for improper register allocations in DFG
1136         https://bugs.webkit.org/show_bug.cgi?id=112380
1137
1138         Reviewed by Geoffrey Garen.
1139
1140         * wtf/Platform.h: Added new ENABLE_DFG_REGISTER_ALLOCATION_VALIDATION compilation flag to
1141         enable generation of register allocation checking.  This is on for debug builds.
1142
1143 2013-03-13  Jessie Berlin  <jberlin@apple.com>
1144
1145         Remove svn:executable from a file that isn't supposed to be executable.
1146
1147         Rubber-stamped by Geoff Garen.
1148
1149         * wtf/MediaTime.h:
1150
1151 2013-03-13  Oliver Hunt  <oliver@apple.com>
1152
1153         Simplify Checked<> multiplication
1154         https://bugs.webkit.org/show_bug.cgi?id=112286
1155
1156         Reviewed by James Robinson.
1157
1158         Trying to correctly identify multiplication by zero complicated the
1159         unsigned * unsigned multiply, and still didn't handle all cases correctly.
1160         Now we just do the normal division based approach to overflow detection
1161         leading to much simpler reasoning.
1162
1163         Would be nice if we could have a jo style intrinsic one day.
1164
1165         * wtf/CheckedArithmetic.h:
1166
1167 2013-03-13  Dean Jackson  <dino@apple.com>
1168
1169         Unreviewed attempted build fix for Windows. SchedulePair.cpp -> SchedulePairCF.cpp
1170
1171         * WTF.vcproj/WTF.vcproj:
1172         * WTF.vcxproj/WTF.vcxproj:
1173         * WTF.vcxproj/WTF.vcxproj.filters:
1174
1175 2013-03-13  Benjamin Poulain  <bpoulain@apple.com>
1176
1177         [iOS] Add optimized version of StringImpl's equal(LChar*,LChar*) for Apple CPUs
1178         https://bugs.webkit.org/show_bug.cgi?id=112202
1179
1180         Reviewed by Gavin Barraclough.
1181
1182         * Source/WTF/wtf/Platform.h:
1183         Make the macro WTF_ARM_ARCH_VERSION valid on any architecture.
1184         * wtf/text/StringImpl.h:
1185         (WTF::equal):
1186         On ARMv7S, the new version is about 11% percent faster than the simple loop.
1187         On ARMv7 classic, memcmp is a little faster than the simple loop on Apple A5.
1188
1189 2013-03-13  James Robinson  <jamesr@chromium.org>
1190
1191         SchedulePair.cpp is CF-specific
1192         https://bugs.webkit.org/show_bug.cgi?id=112204
1193
1194         Reviewed by Oliver Hunt.
1195
1196         This renames SchedulePair.cpp SchedulePairCF.cpp, since it depends on CF, and excludes it from chromium's gyp
1197         files.
1198
1199         * WTF.gyp/WTF.gyp:
1200           Add CF to the exclusion filter for the Chromium port.
1201         * WTF.gypi:
1202           Add SchedulePairCF.cpp
1203         * WTF.xcodeproj/project.pbxproj:
1204           Update project file to point to new .cpp location
1205         * wtf/SchedulePairCF.cpp: Renamed from Source/WTF/wtf/SchedulePair.cpp.
1206
1207 2013-03-13  Allan Sandfeld Jensen  <allan.jensen@digia.com>
1208
1209         Support C++11 features in GCC <4.6
1210         https://bugs.webkit.org/show_bug.cgi?id=111553
1211
1212         Reviewed by Simon Hausmann.
1213
1214         Enable support for rvalue references from gcc 4.3, deleted functions
1215         from gcc 4.4, explicit conversion from gcc 4.5, and strongly typed
1216         enums from gcc 4.6. 
1217
1218         * wtf/Compiler.h:
1219
1220 2013-03-12  Geoffrey Garen  <ggaren@apple.com>
1221
1222         Unreviewed attempted Windows build fix after http://trac.webkit.org/changeset/145592.
1223
1224         * wtf/SchedulePair.cpp:
1225         * wtf/SchedulePair.h:
1226         (WTF::SchedulePair::SchedulePair): Since linking is failing,
1227         try inlining this function.
1228
1229 2013-03-12  Tim Horton  <timothy_horton@apple.com>
1230
1231         Typo in earlier Windows build fix. Unreviewed.
1232
1233         * WTF.vcproj/WTF.vcproj:
1234
1235 2013-03-12  Tim Horton  <timothy_horton@apple.com>
1236
1237         Unreviewed attempted Windows build fix after http://trac.webkit.org/changeset/145592.
1238
1239         * WTF.vcproj/WTF.vcproj:
1240         * WTF.vcxproj/WTF.vcxproj:
1241         * WTF.vcxproj/WTF.vcxproj.filters:
1242
1243 2013-03-12  James Robinson  <jamesr@chromium.org>
1244
1245         Build fix for r145592 - update gyp files to refer to new file locations.
1246
1247         * WTF.gypi:
1248
1249 2013-03-12  Geoffrey Garen  <ggaren@apple.com>
1250
1251         Moved RunLoopTimer and SchedulePair to WTF
1252         https://bugs.webkit.org/show_bug.cgi?id=112171
1253
1254         Reviewed by Oliver Hunt.
1255
1256         This will allow us to use timers in lower level primitives without
1257         duplicating all the code.
1258
1259         * WTF.xcodeproj/project.pbxproj:
1260         * wtf/AutodrainedPool.h: Copied from Source/WebCore/platform/AutodrainedPool.h.
1261         (AutodrainedPool):
1262         * wtf/AutodrainedPoolMac.mm: Copied from Source/WebCore/platform/mac/AutodrainedPool.mm.
1263         * wtf/RunLoopTimer.h: Copied from Source/WebCore/platform/RunLoopTimer.h.
1264         * wtf/RunLoopTimerCF.cpp: Copied from Source/WebCore/platform/cf/RunLoopTimerCF.cpp.
1265         * wtf/SchedulePair.cpp: Copied from Source/WebCore/platform/cf/SchedulePair.cpp.
1266         * wtf/SchedulePair.h: Copied from Source/WebCore/platform/cf/SchedulePair.h.
1267         (SchedulePair):
1268         * wtf/SchedulePairMac.mm: Copied from Source/WebCore/platform/mac/SchedulePairMac.mm.
1269
1270 2013-03-12  Oliver Hunt  <oliver@apple.com>
1271
1272         Add more Checked<> tests
1273         https://bugs.webkit.org/show_bug.cgi?id=112190
1274
1275         Reviewed by Geoffrey Garen.
1276
1277         Export the CheckedState enum type
1278
1279         * wtf/CheckedArithmetic.h:
1280
1281 2013-03-12  Oliver Hunt  <oliver@apple.com>
1282
1283         Make CheckedArithmetic slightly more sane
1284         https://bugs.webkit.org/show_bug.cgi?id=112178
1285
1286         Reviewed by Geoffrey Garen.
1287
1288         Add an enum type for safeGet rather than using a bool,
1289         and correctly handle unsigned * unsigned, when one value
1290         is 0.
1291
1292         * wtf/CheckedArithmetic.h:
1293         (WTF::ENUM_CLASS):
1294         (WTF):
1295         (WTF::operator+):
1296         (WTF::operator-):
1297         (WTF::operator*):
1298
1299 2013-03-11  Michael Saboff  <msaboff@apple.com>
1300
1301         Unreviewed build fix.  Rolling out inadvertent setting of DATA_LOG_TO_FILE.
1302
1303 2013-03-11  Oliver Hunt  <oliver@apple.com>
1304
1305         Make SegmentedVector Noncopyable
1306         https://bugs.webkit.org/show_bug.cgi?id=112059
1307
1308         Reviewed by Geoffrey Garen.
1309
1310         Copying a SegmentedVector can be extraordinarily expensive, so we beat
1311         it with the Noncopyable stick - that way we can ensure that if anyone
1312         wants an actual copy they know what they're doing.
1313
1314         * wtf/SegmentedVector.h:
1315         (SegmentedVector):
1316
1317 2013-03-08  Benjamin Poulain  <benjamin@webkit.org>
1318
1319         [Mac] Add a feature flag for 'view-mode' Media Feature, disable it on Mac
1320         https://bugs.webkit.org/show_bug.cgi?id=111297
1321
1322         Reviewed by Kenneth Rohde Christiansen.
1323
1324         * wtf/FeatureDefines.h: Add a new feature flag for the view-mode
1325         CSS media: ENABLE_VIEW_MODE_CSS_MEDIA.
1326
1327 2013-03-08  Roger Fong  <roger_fong@apple.com>
1328
1329         Makefile fixes.
1330
1331         * WTF.vcxproj/WTF.make:
1332
1333 2013-03-08  Gabor Rapcsanyi  <rgabor@webkit.org>
1334
1335         Cache flush problem on ARMv7 JSC
1336         https://bugs.webkit.org/show_bug.cgi?id=111441
1337
1338         Reviewed by Zoltan Herczeg.
1339
1340         Not proper cache flush causing random crashes on ARMv7 Linux with V8 tests.
1341         The problem is similar to https://bugs.webkit.org/show_bug.cgi?id=77712.
1342         Change the cache fulsh mechanism similar to ARM traditinal and revert the
1343         temporary fix.
1344
1345         * wtf/OSAllocatorPosix.cpp:
1346         (WTF::OSAllocator::reserveUncommitted):
1347         (WTF::OSAllocator::decommit):
1348
1349 2013-03-07  Andrew Bortz  <andrew@abortz.net>
1350
1351         Replace Mersenne Twister random number generator with a simpler one.
1352         https://bugs.webkit.org/show_bug.cgi?id=111533
1353
1354         Reviewed by Adam Barth.
1355
1356         The new generator is only a single line long, but passes all the Diehard
1357         statistical tests and runs ~3x faster than the Mersenne Twister, with a
1358         guaranteed cycle length of 2^64 and only 8 bytes of state.
1359         
1360         * wtf/Platform.h: Mersenne Twister defines are no longer needed
1361         * wtf/RandomNumber.cpp:
1362         (WTF::Internal::initializeRandomNumber): State initialization
1363         (WTF::Internal::randomNumber): Actual implementation
1364         (WTF::randomNumber): We don't need to fall back on rand()-based generator anymore,
1365         so this code is greatly simplified.
1366         * wtf/RandomNumber.h:
1367         * wtf/RandomNumberSeed.h:
1368         (WTF::initializeRandomNumberGenerator): This code is no longer needed.
1369         Additionally, the code had an error, since rand() returns 32-bits, so each
1370         initializationBuffer's upper 16-bits has more bits set than random.
1371
1372 2013-03-06  Adenilson Cavalcanti  <cavalcantii@gmail.com>
1373
1374         Build fix: PageAllocationAligned no longer has executable flag
1375         https://bugs.webkit.org/show_bug.cgi?id=111659
1376
1377         Reviewed by Kentaro Hara.
1378
1379         Build fix: use false as parameter to execution flag.
1380
1381         * wtf/PageAllocationAligned.cpp:
1382         (WTF::PageAllocationAligned::allocate):
1383
1384 2013-03-06  Eric Seidel  <eric@webkit.org>
1385
1386         AtomicStringImpls are not safe to send between threads
1387         https://bugs.webkit.org/show_bug.cgi?id=111652
1388
1389         Reviewed by Benjamin Poulain.
1390
1391         We don't have this problem yet, but it's good to be safe.
1392
1393         * wtf/text/WTFString.cpp:
1394         (WTF::String::isSafeToSendToAnotherThread):
1395
1396 2013-03-06  Oliver Hunt  <oliver@apple.com>
1397
1398         Don't give PageAllocationAligned the option to allocate executable memory
1399         https://bugs.webkit.org/show_bug.cgi?id=111657
1400
1401         Reviewed by Geoffrey Garen.
1402
1403         * wtf/PageAllocationAligned.cpp:
1404         (WTF::PageAllocationAligned::allocate):
1405         * wtf/PageAllocationAligned.h:
1406         (PageAllocationAligned):
1407
1408 2013-03-04  Jer Noble  <jer.noble@apple.com>
1409
1410         Default mouse cursor behavior should be auto-hide for full screen video with custom controls
1411         https://bugs.webkit.org/show_bug.cgi?id=107601
1412
1413         Reviewed by Beth Dakin.
1414
1415         Enable the CURSOR_VISIBILITY feature.
1416
1417         * wtf/FeatureDefines.h:
1418
1419 2013-03-04  Oliver Hunt  <oliver@apple.com>
1420
1421         Make fastmalloc use guardpages
1422         https://bugs.webkit.org/show_bug.cgi?id=111353
1423
1424         Reviewed by Anders Carlsson.
1425
1426         Add PROT_NONE pages at the beginning and end of every
1427         mmap call made by fastmalloc.
1428
1429         * wtf/TCSystemAlloc.cpp:
1430         (TryMmap):
1431
1432 2013-03-06  Paweł Forysiuk  <tuxator@o2.pl>
1433
1434         Typo in inline function in ByteOrder.h
1435         https://bugs.webkit.org/show_bug.cgi?id=111473
1436
1437         Reviewed by Benjamin Poulain.
1438
1439         * wtf/ByteOrder.h:
1440         (ntohs):
1441
1442 2013-03-05  Ryuan Choi  <ryuan.choi@samsung.com>
1443
1444         [EFL] Build break with latest EFL libraries
1445         https://bugs.webkit.org/show_bug.cgi?id=111028
1446
1447         Reviewed by Dirk Pranke.
1448
1449         * wtf/PlatformEfl.cmake: Added ECORE_IMF_INCLUDE_DIRS.
1450
1451 2013-03-05  Csaba Osztrogonác  <ossy@webkit.org>
1452
1453         Fix cast-align warning in ASCIIFastPath.h on ARM
1454         https://bugs.webkit.org/show_bug.cgi?id=111436
1455
1456         Reviewed by Benjamin Poulain.
1457
1458         * wtf/text/ASCIIFastPath.h:
1459         (WTF::charactersAreAllASCII):
1460
1461 2013-03-04  Laszlo Gombos  <l.gombos@samsung.com>
1462
1463         JSC_OBJC_API_ENABLED should be removed from FeatureDefines.h
1464         https://bugs.webkit.org/show_bug.cgi?id=111269
1465
1466         Reviewed by Mark Hahnenberg.
1467
1468         JSC_OBJC_API_ENABLED flag was added to FeatureDefines.h (r143637) 
1469         so that it could be used in WebCore.exp.in to determine whether 
1470         or not we should be exporting certain symbols based on whether 
1471         the WebKit-related portion of the JSC ObjC API was enabled.
1472         
1473         It turned out conditionally including certain symbols didn't
1474         work when building fat binaries, so it's not even necessary any more.
1475
1476         * wtf/FeatureDefines.h: Remove JSC_OBJC_API_ENABLED.
1477
1478 2013-03-04  Andreas Kling  <akling@apple.com>
1479
1480         Deque: Free internal buffer in clear().
1481         <http://webkit.org/b/111316>
1482         <rdar://problem/13336675>
1483
1484         Reviewed by Antti Koivisto.
1485
1486         525 kB progression on Membuster3.
1487
1488         * wtf/Deque.h:
1489         (WTF::::clear):
1490
1491 2013-03-04  Kunihiko Sakamoto  <ksakamoto@chromium.org>
1492
1493         Add build flag for FontLoader
1494         https://bugs.webkit.org/show_bug.cgi?id=111289
1495
1496         Reviewed by Benjamin Poulain.
1497
1498         Add ENABLE_FONT_LOAD_EVENTS build flag (disabled by default).
1499
1500         * wtf/FeatureDefines.h:
1501
1502 2013-02-27  Darin Adler  <darin@apple.com>
1503
1504         StringHasher functions require alignment that call sites do not all guarantee
1505         https://bugs.webkit.org/show_bug.cgi?id=110171
1506
1507         Reviewed by Benjamin Poulain.
1508
1509         The StringHasher class is optimized for clients who pass it two characters at
1510         a time. However, the function named addCharacters did not make this clear to
1511         clients, and one calculateStringHashAndLengthFromUTF8MaskingTop8Bits got it wrong.
1512         Fix by making addCharacters work regardless of hasher alignment and adding a new
1513         function, addCharactersAssumingAligned, for use when we want a faster path and can
1514         guarantee we are adding characters two at a time.
1515
1516         * wtf/StringHasher.h:
1517         (WTF::StringHasher::addCharactersAssumingAligned): Renamed the addCharacters function
1518         addCharactersAssumingAligned, since it only works if the hasher is currently aligned,
1519         meaning it contains an even number of characters. The function already asserts
1520         that this is true, but the calculateStringHashAndLengthFromUTF8MaskingTop8Bits
1521         function was using it in cases where the assertion could fire. Also updated to
1522         call addCharactersInternal by its new name. Also added some new overloads that take
1523         data pointers and lengths so callers can always use addCharactersAssumingAligned
1524         instead of addCharacters if they know the hasher is aligned.
1525         (WTF::StringHasher::addCharacter): Updated to call the public
1526         addCharactersAssumingAligned function since that's simpler and a bit cleaner.
1527         (WTF::StringHasher::addCharacters): Added functions with this name that handle
1528         the case where the hasher is not aligned. These will be called by existing call sites
1529         that were formerly using the function named addCharactersAssumingAligned above.
1530         Also add an overload that works with the default converter automatically.
1531         (WTF::StringHasher::computeHashAndMaskTop8Bits): Changed to call
1532         addCharactersAssumingAligned to eliminate copied and pasted code. The hasher is empty,
1533         so definitely aligned.
1534         (WTF::StringHasher::computeHash): Ditto.
1535         (WTF::StringHasher::addCharactersInternal): Renamed from addCharactersToHash, since
1536         the former name did not make clear how this differs from the public functions.
1537         The real difference is that this is like addCharactersAssumingAligned, but without
1538         the assertion, so addCharactersAssumingAligned is called instead, even within the
1539         class's implementation.
1540
1541 2013-03-01  Ilya Tikhonovsky  <loislo@chromium.org>
1542
1543         Web Inspector: Native Memory Instrumentation: do not visit raw pointers by default.
1544         https://bugs.webkit.org/show_bug.cgi?id=110943
1545
1546         Reviewed by Yury Semikhatsky.
1547
1548         Unfortunately in many cases raw pointer may point to an object that has been deleted.
1549         There is no working solution to solve this problem in general.
1550         It could be solved only on case by case basis.
1551
1552         * wtf/MemoryInstrumentation.h:
1553         (WTF::MemoryInstrumentation::addObject):
1554         (WTF::MemoryInstrumentation::MemberTypeTraits::addObject):
1555         (WTF::MemoryClassInfo::addMember):
1556         (WTF::MemoryInstrumentation::addObjectImpl):
1557         * wtf/MemoryInstrumentationString.h:
1558         (WTF::reportMemoryUsage):
1559
1560 2013-03-01  Eric Seidel  <eric@webkit.org>
1561
1562         Threaded HTML Parser has an extra copy of every byte from the network
1563         https://bugs.webkit.org/show_bug.cgi?id=111135
1564
1565         Reviewed by Adam Barth.
1566
1567         The threaded html parser needs to accept ownership
1568         of a string buffer.  The easiest way to do this seemed
1569         to be to use a PassRefPtr<StringImpl>, but there was no way
1570         to generated one from a String (easily), so I added one.
1571
1572         * wtf/text/WTFString.h:
1573         (WTF::String::releaseImpl):
1574
1575 2013-02-28  Oliver Hunt  <oliver@apple.com>
1576
1577         Crash in JSC::MarkedBlock::FreeList JSC::MarkedBlock::sweepHelper
1578         https://bugs.webkit.org/show_bug.cgi?id=111059
1579
1580         Reviewed by Ryosuke Niwa.
1581
1582         Sometimes C++'s implicit operator conversion rules suck.
1583         Add explicit operator== and !=.
1584
1585         * wtf/FastMalloc.cpp:
1586         (WTF::HardenedSLL::operator!=):
1587         (WTF::HardenedSLL::operator==):
1588         (HardenedSLL):
1589
1590 2013-02-28  Zeno Albisser  <zeno@webkit.org>
1591
1592         Enable DFG JIT for Qt on Mac
1593         https://bugs.webkit.org/show_bug.cgi?id=111095
1594
1595         Rubber-stamped by Simon Hausmann
1596
1597         * wtf/Platform.h:
1598
1599 2013-02-28  Eric Carlson  <eric.carlson@apple.com>
1600
1601         [Mac] use HAVE() macro instead of version check
1602         https://bugs.webkit.org/show_bug.cgi?id=111087
1603
1604         Reviewed by Dean Jackson.
1605
1606         * wtf/Platform.h: Define HAVE_MEDIA_ACCESSIBILITY_FRAMEWORK.
1607
1608 2013-02-27  Balazs Kilvady  <kilvadyb@homejinni.com>
1609
1610         Bug in atomicIncrement implementation for MIPS GCC
1611         https://bugs.webkit.org/show_bug.cgi?id=110969
1612
1613         Reviewed by Csaba Osztrogonác.
1614
1615         Fix of __sync_[add|sub]_and_fetch_8 for GCC patch.
1616
1617         * wtf/Atomics.cpp:
1618
1619 2013-02-27  Simon Hausmann  <simon.hausmann@digia.com>
1620
1621         REGRESSION(r137994): It made JSC tests hang and layout tests fail on ARM Thumb2 / Linux
1622         https://bugs.webkit.org/show_bug.cgi?id=108632
1623
1624         Reviewed by Csaba Osztrogonác.
1625
1626         It appears that mprotect() is very slow on ARM/Linux, so disable the
1627         approach of unreserved mappings there and fall back to overcomitting
1628         memory, based on Uli Schlachter's recommendation.
1629
1630         * wtf/OSAllocatorPosix.cpp:
1631         (WTF::OSAllocator::reserveUncommitted):
1632         (WTF::OSAllocator::decommit):
1633
1634 2013-02-26  Roger Fong  <roger_fong@apple.com>
1635
1636         Unreviewed. Build fix for VS2010 solution, take 2.
1637
1638         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
1639
1640 2013-02-26  Roger Fong  <roger_fong@apple.com>
1641
1642         Unreviewed. Unreviewed build fix for VS2010 solution.
1643
1644         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
1645
1646 2013-02-26  Balazs Kilvady  <kilvadyb@homejinni.com>
1647
1648         Fix the atomicIncrement implementation for MIPS GCC
1649         https://bugs.webkit.org/show_bug.cgi?id=106739
1650
1651         Reviewed by Oliver Hunt.
1652
1653         Implementation of missing __sync_[add|sub]_and_fetch_8 functions.
1654
1655         Some architectures, like MIPS32, don't have GCC implementation for
1656         builtin __sync_* functions with 64 bits variable size. GCC answer
1657         for the problem: If a target doesn't support atomic operations on
1658         certain variable sizes, you are out of luck with atomicity in that
1659         case (http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56296). GCC >= 4.8
1660         will support __atomic_* builtin functions for this purpose for all
1661         the GCC targets, but for current compilers we have to include our
1662         own implementation.
1663
1664         * GNUmakefile.list.am:
1665         * WTF.pro:
1666         * wtf/Atomics.cpp: Added.
1667         (WTF):
1668         (WTF::getSwapLock):
1669         (WTF::atomicStep):
1670         * wtf/CMakeLists.txt:
1671
1672 2013-02-26  Oliver Hunt  <oliver@apple.com>
1673
1674         Appease the QT bots.
1675
1676         * wtf/FastMalloc.cpp:
1677
1678 2013-02-26  Jocelyn Turcotte  <jocelyn.turcotte@digia.com>
1679
1680         Implement JIT on Windows 64 bits
1681         https://bugs.webkit.org/show_bug.cgi?id=107965
1682
1683         Reviewed by Simon Hausmann.
1684
1685         * wtf/Platform.h:
1686
1687 2013-02-26  Oliver Hunt  <oliver@apple.com>
1688
1689         Appease static analyzer warning about null string passed to strlen
1690         https://bugs.webkit.org/show_bug.cgi?id=110658
1691
1692         Reviewed by Benjamin Poulain.
1693
1694         Add a null check before calling strlen
1695
1696         * wtf/Threading.cpp:
1697         (WTF::createThread):
1698
1699 2013-02-25  Ryosuke Niwa  <rniwa@webkit.org>
1700
1701         Build fix attempt after r143996.
1702
1703         * wtf/FastMalloc.cpp:
1704         (WTF):
1705
1706 2013-02-25  Roger Fong  <roger_fong@apple.com>
1707
1708         Unreviewed. Fix script to use WEBKIT_SOURCE for VS2010 property sheets instead of WEBKIT_LIBRARIES.
1709
1710         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py:
1711
1712 2013-02-25  Oliver Hunt  <oliver@apple.com>
1713
1714         Add cookies to FastMalloc spans
1715         https://bugs.webkit.org/show_bug.cgi?id=110827
1716
1717         Reviewed by Michael Saboff.
1718
1719         Add a cookie to spans, and move some of the hardening around so
1720         that it's more useful.
1721
1722         * wtf/FastMalloc.cpp:
1723         (WTF::internalEntropyValue):
1724         (WTF::spanInitializerCookie):
1725         (WTF::Span::initCookie):
1726         (WTF::Span::clearCookie):
1727         (WTF::Span::isValid):
1728         (Span):
1729         (WTF::NewSpan):
1730         (WTF::DeleteSpan):
1731         (WTF::TCMalloc_ThreadCache_FreeList::Validate):
1732         (WTF::TCMalloc_Central_FreeList::Populate):
1733         (WTF::TCMalloc_ThreadCache::Deallocate):
1734         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
1735
1736 2013-02-25  Jer Noble  <jer.noble@apple.com>
1737
1738         Normalize ENABLE_ENCRYPTED_MEDIA definitions across all FeatureDefines files.
1739         https://bugs.webkit.org/show_bug.cgi?id=110806
1740
1741         Reviewed by Alexey Proskuryakov.
1742
1743         Ensure both ENCRYPTED_MEDIA and ENCRYPTED_MEDIA_V2 are enabled on macosx_1090.
1744
1745         * wtf/FeatureDefines.h:
1746
1747 2013-02-23  Ilya Tikhonovsky  <loislo@chromium.org>
1748
1749         Web Inspector: Native Memory Instrumentation: replace String with const char* in MemoryObjectInfo
1750         https://bugs.webkit.org/show_bug.cgi?id=110599
1751
1752         Reviewed by Yury Semikhatsky.
1753
1754         Due to potentially dynamic nature of names and classNames we need to make a copy of the strings
1755         that were given us via MemoryInstrumentation calls.
1756         So I extended client api with registerString method that pushes the strings
1757         down to the serializer.
1758
1759         * wtf/MemoryInstrumentation.h:
1760         (MemoryInstrumentationClient):
1761         * wtf/MemoryObjectInfo.h:
1762         (WTF::MemoryObjectInfo::MemoryObjectInfo):
1763         (WTF::MemoryObjectInfo::setClassName):
1764         (WTF::MemoryObjectInfo::classNameId):
1765         (WTF::MemoryObjectInfo::setName):
1766         (WTF::MemoryObjectInfo::nameId):
1767         (MemoryObjectInfo):
1768
1769 2013-02-21  Brady Eidson  <beidson@apple.com>
1770
1771         Move fastlog2() to WTF/MathExtras.h so it can be used from multiple projects.
1772
1773         Rubberstamped by Geoff Garen.
1774
1775         * wtf/MathExtras.h:
1776         (WTF::fastLog2):
1777
1778 2013-02-21  Andy Estes  <aestes@apple.com>
1779
1780         TriState.h should be a Project header
1781         https://bugs.webkit.org/show_bug.cgi?id=110543
1782
1783         Rubber-stamped by Dan Bernstein.
1784
1785         WTF uses a script to copy headers to the build destination, so it isn't
1786         necessary to mark headers as Private/Public (and doing so can be problematic).
1787
1788         * WTF.xcodeproj/project.pbxproj: Mark TriState.h as a Project header.
1789
1790 2013-02-21  Roger Fong  <roger_fong@apple.com>
1791
1792         Unreviewed. Add executable property to cmd file.
1793         Required for executable files to maintain their executable permissions over svn.
1794
1795         * WTF.vcxproj/copy-files.cmd: Added property svn:executable.
1796
1797 2013-02-19  Mark Hahnenberg  <mhahnenberg@apple.com>
1798
1799         Objective-C API: Need a way to use the Objective-C JavaScript API with WebKit
1800         https://bugs.webkit.org/show_bug.cgi?id=106059
1801
1802         Reviewed by Geoffrey Garen.
1803
1804         * wtf/FeatureDefines.h: Added enable flag for JSC Objective-C API so it can be used in
1805         export files.
1806
1807 2013-02-21  Martin Robinson  <mrobinson@igalia.com>
1808
1809         A couple more 'make dist' fixes for WebKitGTK+.
1810
1811         * GNUmakefile.list.am: Add a missing file to the source list.
1812
1813 2013-02-20  Roger Fong  <roger_fong@apple.com>
1814
1815         Get VS2010 Solution B&I ready.
1816         <rdar://problem/1322988>
1817
1818         Rubberstamped by Timothy Horton.        
1819         
1820         Add Production configuration. 
1821         Add a WTF submit solution with a DebugSuffix configuration. 
1822         Modify WTF.make as necessary.
1823         
1824         * WTF.vcxproj: Added property svn:eol-style. Modified property svn:ignore.
1825         * WTF.vcxproj/WTF.make: Added.
1826         * WTF.vcxproj/WTF.submit.sln: Added.
1827         * WTF.vcxproj/WTF.vcxproj:
1828         * WTF.vcxproj/WTFCommon.props:
1829         * WTF.vcxproj/WTFGenerated.vcxproj:
1830         * WTF.vcxproj/WTFGeneratedProduction.props: Added.
1831         * WTF.vcxproj/WTFGeneratedRelease.props:
1832         * WTF.vcxproj/WTFProduction.props: Added.
1833         * WTF.vcxproj/WTFRelease.props:
1834         * WTF.vcxproj/copy-files.cmd:
1835
1836 2013-02-20  Oliver Hunt  <oliver@apple.com>
1837
1838         Moar hardening
1839         https://bugs.webkit.org/show_bug.cgi?id=110275
1840
1841         Reviewed by Mark Hahnenberg.
1842
1843         We now poison objects when they get freed, and verify that
1844         any object that is being freed is not poisoned.  If the
1845         object looks like it's poisoned we validate the freelist,
1846         and ensure the object is not already present.  If it is
1847         we crash.
1848
1849         On allocation, we ensure that the object being allocated
1850         is poisoned, then clear the poisoning fields.
1851
1852         * wtf/FastMalloc.cpp:
1853         (WTF::internalEntropyValue):
1854         (WTF):
1855         (WTF::freedObjectStartPoison):
1856         (WTF::freedObjectEndPoison):
1857         (TCMalloc_ThreadCache_FreeList):
1858         (WTF::TCMalloc_ThreadCache_FreeList::Validate):
1859         (WTF::TCMalloc_Central_FreeList::Populate):
1860         (WTF::TCMalloc_ThreadCache::Allocate):
1861         (WTF::TCMalloc_ThreadCache::Deallocate):
1862         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
1863
1864 2013-02-19  Sheriff Bot  <webkit.review.bot@gmail.com>
1865
1866         Unreviewed, rolling out r143400.
1867         http://trac.webkit.org/changeset/143400
1868         https://bugs.webkit.org/show_bug.cgi?id=110290
1869
1870         breaks everything (instacrash launching Safari) (Requested by
1871         thorton on #webkit).
1872
1873         * wtf/FastMalloc.cpp:
1874         (WTF::internalEntropyValue):
1875         (WTF):
1876         (WTF::TCMalloc_Central_FreeList::Populate):
1877         (WTF::TCMalloc_ThreadCache::Allocate):
1878         (WTF::TCMalloc_ThreadCache::Deallocate):
1879
1880 2013-02-19  Oliver Hunt  <oliver@apple.com>
1881
1882         Moar hardening
1883         https://bugs.webkit.org/show_bug.cgi?id=110275
1884
1885         Reviewed by Anders Carlsson.
1886
1887         We now poison objects when they get freed, and verify that
1888         any object that is being freed is not poisoned.  If the
1889         object looks like it's poisoned we validate the freelist,
1890         and ensure the object is not already present.  If it is
1891         we crash.
1892
1893         On allocation, we ensure that the object being allocated
1894         is poisoned, then clear the poisoning fields.
1895
1896         * wtf/FastMalloc.cpp:
1897         (WTF::internalEntropyValue):
1898         (WTF):
1899         (WTF::freedObjectStartPoison):
1900         (WTF::freedObjectEndPoison):
1901         (TCMalloc_ThreadCache_FreeList):
1902         (WTF::TCMalloc_ThreadCache_FreeList::Validate):
1903         (WTF::TCMalloc_Central_FreeList::Populate):
1904         (WTF::TCMalloc_ThreadCache::Allocate):
1905         (WTF::TCMalloc_ThreadCache::Deallocate):
1906
1907 2013-02-18  Darin Adler  <darin@apple.com>
1908
1909         Style tweaks to StringHasher.h
1910         https://bugs.webkit.org/show_bug.cgi?id=110042
1911
1912         Reviewed by Alexey Proskuryakov.
1913
1914         I have a bug fix coming soon, but figured I'd separate out style tweaks and land them
1915         first to make that patch easier to undrestand.
1916
1917         * wtf/StringHasher.h: Tweak and rearrange comments a bit.
1918         (WTF::StringHasher::addCharacter): Use character instead of ch.
1919         (WTF::StringHasher::addCharacters): Use remainder instead of rem. Also capitalize the U
1920         that we use to make an unsigned 1 constant.
1921         (WTF::StringHasher::computeHashAndMaskTop8Bits): Ditto.
1922         (WTF::StringHasher::hashMemory): Change version that takes size as a template argument
1923         to call the version that takes the size at runtime, since both generate the same code
1924         anyway. Added a FIXME questioning why this function uses the "mask top 8 bits" version
1925         of the hash. Fix incorrect compile assertion that required sizes that are multiples
1926         of four. This function works on sizes that are multiples of two. Also fixed a spelling
1927         error where we called it a "multible".
1928         (WTF::StringHasher::defaultConverter): Use character instead of ch.
1929         (WTF::StringHasher::addCharactersToHash): Eliminated unnecessary local variable.
1930
1931 2013-02-18  Alexey Proskuryakov  <ap@apple.com>
1932
1933         Make HexNumber functions return 8-bit strings
1934         https://bugs.webkit.org/show_bug.cgi?id=110152
1935
1936         Reviewed by Michael Saboff.
1937
1938         * wtf/HexNumber.h:
1939         (Internal):
1940         (WTF::Internal::hexDigitsForMode):
1941         (WTF::appendByteAsHex):
1942         (WTF::placeByteAsHexCompressIfPossible):
1943         (WTF::placeByteAsHex):
1944         (WTF::appendUnsignedAsHex):
1945         (WTF::appendUnsignedAsHexFixedSize):
1946         Use LChar everywhere.
1947
1948 2013-02-18  Benjamin Poulain  <bpoulain@apple.com>
1949
1950         Remove Vector::dataSlot(), it has no implementation
1951         https://bugs.webkit.org/show_bug.cgi?id=109999
1952
1953         Reviewed by Andreas Kling.
1954
1955         VectorBufferBase does not implement any function bufferSlot().
1956         The file only compiles because that part of the template is never
1957         instantiated.
1958
1959         * wtf/Vector.h:
1960
1961 2013-02-18  Laszlo Gombos  <l.gombos@samsung.com>
1962
1963         Move ENABLE macros for WebCore out from Platform.h
1964         https://bugs.webkit.org/show_bug.cgi?id=105735
1965
1966         Unreviewed, build fix when NETSCAPE_PLUGIN_API is disabled.
1967
1968         Enable ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH even if
1969         NETSCAPE_PLUGIN_API is disabled (Qt, Efl, GTK, WX ports).
1970
1971         * wtf/FeatureDefines.h:
1972
1973 2013-02-18  Balazs Kilvady  <kilvadyb@homejinni.com>
1974
1975         MIPS DFG implementation.
1976         https://bugs.webkit.org/show_bug.cgi?id=101328
1977
1978         Reviewed by Oliver Hunt.
1979
1980         DFG implementation for MIPS.
1981
1982         * wtf/Platform.h:
1983
1984 2013-02-18  Zan Dobersek  <zdobersek@igalia.com>
1985
1986         Stop placing std::isfinite and std::signbit inside the global scope
1987         https://bugs.webkit.org/show_bug.cgi?id=109817
1988
1989         Reviewed by Darin Adler.
1990
1991         Prefix calls to the isfinite and signbit methods with std:: as the two
1992         methods are no longer being imported into the global scope.
1993
1994         On Solaris and OpenBSD platforms or when using Visual C++ the two methods
1995         are now defined (as incompatibility workarounds) inside the std namespace.
1996
1997         * wtf/DateMath.cpp:
1998         (WTF::timeClip):
1999         * wtf/DecimalNumber.h:
2000         (WTF::DecimalNumber::DecimalNumber):
2001         * wtf/MathExtras.h:
2002         (std):
2003         (std::isfinite):
2004         (std::signbit):
2005         (lrint):
2006         (wtf_pow):
2007         (decomposeDouble):
2008         * wtf/MediaTime.cpp:
2009         (WTF::MediaTime::createWithFloat):
2010         (WTF::MediaTime::createWithDouble):
2011         * wtf/dtoa.cpp:
2012         (WTF::dtoa):
2013
2014 2013-02-18  Laszlo Gombos  <l.gombos@samsung.com>
2015
2016         Move ENABLE macros for WebCore out from Platform.h
2017         https://bugs.webkit.org/show_bug.cgi?id=105735
2018
2019         Reviewed by Darin Adler and Benjamin Poulain.
2020
2021         Introduce FeatureDefines.h by combining the existing rules from
2022         Platform.h and adding new rules for all the ENABLE flags that are
2023         listed in the FeatureFlags wiki.
2024
2025         The new rules are not used at the moment by any ports
2026         as the port specific build systems already define these flags
2027         so the !defined() guard will prevent redefinition of the macros.
2028
2029         * GNUmakefile.list.am: Add FeatureDefines.h.
2030         * WTF.gypi: Ditto.
2031         * WTF.pro: Ditto.
2032         * WTF.vcproj/WTF.vcproj: Ditto.
2033         * WTF.xcodeproj/project.pbxproj: Ditto.
2034         * wtf/CMakeLists.txt: Ditto.
2035         * wtf/FeatureDefines.h: Added.
2036         * wtf/Platform.h: Move macro definitions to FeatureDefines.h.
2037
2038 2013-02-16  Darin Adler  <darin@apple.com>
2039
2040         Remove redundant use of inline keyword in StringHasher.h
2041         https://bugs.webkit.org/show_bug.cgi?id=110036
2042
2043         Reviewed by Geoffrey Garen.
2044
2045         I have some other improvements for StringHasher.h, but wanted to get the simplest ones
2046         out of the way first.
2047
2048         * wtf/StringHasher.h: Remove inline keyword on functions inside the class definition,
2049         since functions defined inside the class are automatically inline.
2050
2051 2013-02-15  Martin Robinson  <mrobinson@igalia.com>
2052
2053         [GTK] Spread the gyp build files throughout the tree
2054         https://bugs.webkit.org/show_bug.cgi?id=109960
2055
2056         Reviewed by Dirk Pranke.
2057
2058         * WTF.gyp/WTFGTK.gyp: Renamed from Source/WebKit/gtk/gyp/WTF.gyp.
2059
2060 2013-02-15  Anders Carlsson  <andersca@apple.com>
2061
2062         Add HashMap::isValidKey and HashSet::isValidValue
2063         https://bugs.webkit.org/show_bug.cgi?id=109977
2064
2065         Reviewed by Sam Weinig and Darin Adler.
2066
2067         Add helper functions for determining whether keys are valid, i.e. if
2068         they are _not_ empty or deleted according to the hash traits.
2069
2070         * wtf/HashMap.h:
2071         * wtf/HashSet.h:
2072
2073 2013-02-15  Laszlo Gombos  <l.gombos@samsung.com>
2074
2075         Remove support for RVCT version less than 4.0
2076         https://bugs.webkit.org/show_bug.cgi?id=109390
2077
2078         The 4.0 version of the RVCT compiler was 
2079         released in 2008. 
2080         
2081         Remove support for version older then 4.0 of RVCT, 
2082         and keep the support for newer RVCT versions.
2083
2084         Reviewed by Zoltan Herczeg.
2085
2086         * WTF.gypi: Remove StringExtras.cpp.
2087         * WTF.vcproj/WTF.vcproj: Remove StringExtras.cpp.
2088         * WTF.vcxproj/WTF.vcxproj: Remove StringExtras.cpp.
2089         * WTF.vcxproj/WTF.vcxproj.filters: Remove StringExtras.cpp.
2090         * WTF.xcodeproj/project.pbxproj: Remove StringExtras.cpp.
2091         * wtf/CMakeLists.txt: Remove StringExtras.cpp.
2092         * wtf/Compiler.h: Remove tests for RVCT_VERSION_AT_LEAST(3, 0, 0, 0).
2093         * wtf/Float32Array.h: Remove a quirk introduced for RVCT version <=2.2 .
2094         * wtf/Float64Array.h: Ditto.
2095         * wtf/Int16Array.h: Ditto.
2096         * wtf/Int32Array.h: Ditto.
2097         * wtf/Int8Array.h: Ditto.
2098         * wtf/MathExtras.h: Remove a quirk needed for RVCT version  <= 3.0.
2099         * wtf/Platform.h: Remove test for RVCT 4.0. Remove OS(RVCT).
2100         * wtf/StringExtras.cpp: Removed.
2101         * wtf/StringExtras.h: Remove a quirk introduced for RVCT version < 4.0.
2102         * wtf/Uint16Array.h: Remove a quirk introduced for RVCT version <= 2.2.
2103         * wtf/Uint32Array.h: Ditto.
2104         * wtf/Uint8Array.h: Ditto.
2105         * wtf/Uint8ClampedArray.h: Ditto.
2106
2107 2013-02-15  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2108
2109         Add CString operators for comparison with const char*
2110         https://bugs.webkit.org/show_bug.cgi?id=109947
2111
2112         Reviewed by Darin Adler.
2113
2114         Add operators to WTF::CString for equality/inequality comparison
2115         with const char* strings. This avoids constructing a CString
2116         from a const char* in such cases, which is can be expensive as
2117         it would copy it and call strlen().
2118
2119         * wtf/text/CString.cpp:
2120         (WTF::operator==): Use memcmp instead of strncmp to compare the
2121         CString buffers as we know they are the same size and we don't
2122         want to scan for terminating null byte.
2123         (WTF):
2124         * wtf/text/CString.h:
2125         (WTF):
2126         (WTF::operator!=):
2127
2128 2013-02-15  Geoffrey Garen  <ggaren@apple.com>
2129
2130         Merged the global function cache into the source code cache
2131         https://bugs.webkit.org/show_bug.cgi?id=108660
2132
2133         Reviewed by Sam Weinig.
2134
2135         Responding to review comments by Darin Adler.
2136
2137         * wtf/HashTraits.h: Added a using directive to simplify client code.
2138
2139 2013-02-14  Dan Bernstein  <mitz@apple.com>
2140
2141         No easy way to use a RetainPtr as a key in a HashMap using object (rather than pointer) equality
2142         https://bugs.webkit.org/show_bug.cgi?id=109864
2143
2144         Reviewed by Sam Weinig and Benjamin Poulain.
2145
2146         Added RetainPtrObjectHashTraits and RetainPtrObjectHash, which use CFEqual
2147         and CFHash.
2148
2149         * wtf/RetainPtr.h:
2150         (RetainPtrObjectHashTraits):
2151         (WTF::RetainPtrObjectHashTraits::emptyValue):
2152         (WTF::RetainPtrObjectHashTraits::constructDeletedValue):
2153         (WTF::RetainPtrObjectHashTraits::isDeletedValue):
2154         (WTF):
2155         (WTF::RetainPtrObjectHash::hash):
2156         (WTF::RetainPtrObjectHash::equal):
2157         (RetainPtrObjectHash):
2158
2159 2013-02-14  Tony Chang  <tony@chromium.org>
2160
2161         Unreviewed, set svn:eol-style native for .sln, .vcproj, and .vsprops files.
2162         https://bugs.webkit.org/show_bug.cgi?id=96934
2163
2164         * WTF.vcproj/WTF.sln: Modified property svn:eol-style.
2165
2166 2013-02-14  Tony Chang  <tony@chromium.org>
2167
2168         Unreviewed, set svn:eol-style CRLF for .sln files.
2169
2170         * WTF.vcproj/WTF.sln: Added property svn:eol-style.
2171
2172 2013-02-14  David Kilzer  <ddkilzer@apple.com>
2173
2174         [Mac] Clean up WARNING_CFLAGS
2175         <http://webkit.org/b/109747>
2176         <rdar://problem/13208373>
2177
2178         Reviewed by Mark Rowe.
2179
2180         * Configurations/Base.xcconfig: Use
2181         GCC_WARN_64_TO_32_BIT_CONVERSION to enable and disable
2182         -Wshorten-64-to-32 rather than WARNING_CFLAGS.
2183
2184         * WTF.vcproj/WTF.sln: Added property svn:eol-style.
2185
2186 2013-02-14  Eric Seidel  <eric@webkit.org>
2187
2188         String(Vector) behaves differently from String(vector.data(), vector.size()) for vectors with inline capacity in the size=0 case
2189         https://bugs.webkit.org/show_bug.cgi?id=109784
2190
2191         Reviewed by Darin Adler.
2192
2193         This makes String(Vector) never return null strings.
2194         Which matches behavior of String(UChar*, size_t)
2195         for vectors with inlineCapacity, but differs from
2196         String(UChar*, size_t) in the no-inlineCapacity case.
2197
2198         This incidentally will fix a behavioral regression
2199         in the html threaded parser which came from converting
2200         many String(UChar*, size_t) callsites to using String(Vector).
2201
2202         * wtf/text/WTFString.h:
2203         (String):
2204         (WTF::String::String):
2205
2206 2013-02-14  Eric Seidel  <eric@webkit.org>
2207
2208         REGRESSION(r142712): attribute values show up as "(null)" instead of null with the threaded parser
2209         https://bugs.webkit.org/show_bug.cgi?id=109784
2210
2211         Reviewed by Benjamin Poulain.
2212
2213         When I changed many callsites to use the (existing) String(Vector) constructor
2214         I inadvertantly made those callsites convert empty vectors to null strings
2215         instead of empty strings (like String(UChar,size_t) does).
2216
2217         This is due to an oddity/bug in our Vector implementation where data()
2218         will be 0 if the Vector is empty, but only if it doesn't have inline capacity.
2219         https://bugs.webkit.org/show_bug.cgi?id=109792
2220
2221         This changes String(Vector) to exactly match the behavior of String(vector.data(), vector.size()).
2222
2223         This regression was easily detectable with the threaded parser, because we use String
2224         instead of AtomicString in our CompactToken (used to send the Token data
2225         between threads). The main-thread parser path uses AtomicHTMLToken which
2226         uses AtomicString(Vector) and does not have this bug.
2227
2228         * wtf/text/WTFString.h:
2229         (String):
2230         (WTF::String::String):
2231
2232 2013-02-13  Zan Dobersek  <zdobersek@igalia.com>
2233
2234         The 'global isinf/isnan' compiler quirk required when using clang with libstdc++
2235         https://bugs.webkit.org/show_bug.cgi?id=109325
2236
2237         Reviewed by Anders Carlsson.
2238
2239         Prefix calls to the isinf and isnan methods with std::, declaring we want to use the
2240         two methods as they're provided by the C++ standard library being used.
2241
2242         * wtf/Compiler.h: Remove the global isinf/isnan compiler quirk definitions. They're not required anymore.
2243         * wtf/DateMath.cpp: Move the workaround for isinf on Solaris into the std namespace. Ditto for isinf and isnan
2244         when using MSVC. Stop bringing the isinf and isnan methods into the global scope when using other configurations.
2245         (WTF::parseDateFromNullTerminatedCharacters):
2246         * wtf/IntegralTypedArrayBase.h:
2247         (WTF::IntegralTypedArrayBase::set):
2248         * wtf/MathExtras.h:
2249         (std):
2250         (std::isinf):
2251         (wtf_fmod):
2252         (wtf_pow):
2253         (doubleToInteger):
2254         * wtf/MediaTime.cpp:
2255         (WTF::MediaTime::createWithFloat):
2256         (WTF::MediaTime::createWithDouble):
2257         * wtf/Uint8ClampedArray.h:
2258         (WTF::Uint8ClampedArray::set):
2259
2260 2013-02-13  Eric Seidel  <eric@webkit.org>
2261
2262         Don't copy Vector<UChar> when passing to new String methods from bug 109617
2263         https://bugs.webkit.org/show_bug.cgi?id=109708
2264
2265         Reviewed by Tony Gentilcore.
2266
2267         Thanks for the catch Darin.
2268
2269         * wtf/text/AtomicString.h:
2270         (WTF::AtomicString::AtomicString):
2271         * wtf/text/StringImpl.h:
2272         (WTF::StringImpl::create8BitIfPossible):
2273
2274 2013-02-13  Martin Robinson  <mrobinson@igalia.com>
2275
2276         [GTK] Remove remaining dead code from the GLib unicode backend
2277         https://bugs.webkit.org/show_bug.cgi?id=109707
2278
2279         Reviewed by Philippe Normand.
2280
2281         * wtf/unicode/Unicode.h:
2282
2283 2013-02-13  Andrew Wilson  <atwilson@chromium.org>
2284
2285         Unreviewed Chromium gyp-file cleanup after glib backend removal.
2286         https://bugs.webkit.org/show_bug.cgi?id=109672
2287
2288         Removed references to GLib unicode backend:
2289
2290         * WTF.gyp/WTF.gyp:
2291         * WTF.gypi:
2292
2293 2013-02-12  Martin Robinson  <mrobinson@igalia.com>
2294
2295         [GTK] Remove the GLib unicode backend
2296         https://bugs.webkit.org/show_bug.cgi?id=109627
2297
2298         Reviewed by Benjamin Poulain.
2299
2300         Remove references to the GLib unicode backend from WTF.
2301
2302         * GNUmakefile.list.am: Remove GLib unicode files from the source list.
2303         * wtf/unicode/glib/UnicodeGLib.cpp: Removed.
2304         * wtf/unicode/glib/UnicodeGLib.h: Removed.
2305
2306 2013-02-12  Takeshi Yoshino  <tyoshino@google.com>
2307
2308         Remove unnecessary and confusing includes from StreamBuffer.h.
2309         https://bugs.webkit.org/show_bug.cgi?id=109652
2310
2311         Reviewed by Benjamin Poulain.
2312
2313         StreamBuffer.h is using OwnPtr for storing Vectors into a Deque.
2314         FixedArray.h and PassOwnPtr.h are included but not used.
2315
2316         VectorTraits defines how to move OwnPtr in Vector. It's done by memcpy.
2317         So, there's no need for PassOwnPtr (Deque<PassOwnPtr<Vector<char> > >
2318         is even slower).
2319
2320         * wtf/StreamBuffer.h:
2321
2322 2013-02-12  Eric Seidel  <eric@webkit.org>
2323
2324         Teach more WTF string classes about vectors with inline capacity
2325         https://bugs.webkit.org/show_bug.cgi?id=109617
2326
2327         Reviewed by Benjamin Poulain.
2328
2329         The HTML and WebVTT parsers use constructions like:
2330         AtomicString name(m_name.data(), m_name.size())
2331         all over the place because they use inline capacity
2332         on the parse vectors for performance.
2333
2334         This change just add the necessary template variants
2335         to the related String constructors/methods in WTF so that
2336         this parser code can just pass the vector directly instead.
2337
2338         I'll do the actual parser cleanups in follow-up patches to keep things simple.
2339
2340         * wtf/text/AtomicString.h:
2341         (AtomicString):
2342         (WTF::AtomicString::AtomicString):
2343         * wtf/text/StringImpl.h:
2344         (StringImpl):
2345         (WTF::StringImpl::create8BitIfPossible):
2346         * wtf/text/WTFString.h:
2347         (String):
2348         (WTF::String::make8BitFrom16BitSource):
2349         (WTF):
2350         (WTF::append):
2351
2352 2013-02-11  Oliver Hunt  <oliver@apple.com>
2353
2354         Build fix.
2355
2356         * wtf/FastMalloc.cpp:
2357         (WTF::TCMalloc_PageHeap::IncrementalScavenge):
2358
2359 2013-02-11  Ryosuke Niwa  <rniwa@webkit.org>
2360
2361         Disable delete button controller on non-Mac ports and delete EditorClient::shouldShowDeleteInterface
2362         https://bugs.webkit.org/show_bug.cgi?id=109534
2363
2364         Reviewed by Anders Carlsson.
2365
2366         * wtf/Platform.h:
2367
2368 2013-02-11  David Kilzer  <ddkilzer@apple.com>
2369
2370         [iOS] Upstream changes to Platform.h
2371         <http://webkit.org/b/109459>
2372
2373         Reviewed by Benjamin Poulain.
2374
2375         * wtf/Platform.h:
2376         - Changes for armv7s.
2377         - Add ENABLE() definitions for DASHBOARD_SUPPORT and WEBGL.
2378         - Re-sort ENABLE() and USE() macros.
2379         - Remove ENABLE() macros for JIT, LLINT and YARR_JIT to enable
2380           on iOS Simulator.  They are already defined below.
2381         - Turn off HAVE(HOSTED_CORE_ANIMATION) for iOS.
2382         - Turn on USE(COREMEDIA) for iOS 6.0 and later.
2383
2384 2013-02-08  Oliver Hunt  <oliver@apple.com>
2385
2386         Harden FastMalloc (again)
2387         https://bugs.webkit.org/show_bug.cgi?id=109334
2388
2389         Reviewed by Mark Hahnenberg.
2390
2391         Re-implement hardening of linked lists in TCMalloc.
2392
2393         In order to keep heap introspection working, we need to thread the
2394         heap entropy manually as the introspection process can't use the
2395         address of a global in determining the mask.  Given we now have to
2396         thread a value through anyway, I've stopped relying on ASLR for entropy
2397         and am simply using arc4random() on darwin, and time + ASLR everywhere
2398         else.
2399
2400         I've also made an explicit struct type for the FastMalloc singly linked
2401         lists, as it seemed like the only way to reliably distinguish between
2402         void*'s that were lists vs. void* that were not.  This also made it
2403         somewhat easier to reason about things across processes.
2404
2405         Verified that all the introspection tools work as expected.
2406
2407         * wtf/FastMalloc.cpp:
2408         (WTF::internalEntropyValue):
2409         (WTF):
2410         (HardenedSLL):
2411         (WTF::HardenedSLL::create):
2412         (WTF::HardenedSLL::null):
2413         (WTF::HardenedSLL::setValue):
2414         (WTF::HardenedSLL::value):
2415         (WTF::HardenedSLL::operator!):
2416         (WTF::HardenedSLL::operator UnspecifiedBoolType):
2417         (TCEntry):
2418         (WTF::SLL_Next):
2419         (WTF::SLL_SetNext):
2420         (WTF::SLL_Push):
2421         (WTF::SLL_Pop):
2422         (WTF::SLL_PopRange):
2423         (WTF::SLL_PushRange):
2424         (WTF::SLL_Size):
2425         (PageHeapAllocator):
2426         (WTF::PageHeapAllocator::Init):
2427         (WTF::PageHeapAllocator::New):
2428         (WTF::PageHeapAllocator::Delete):
2429         (WTF::PageHeapAllocator::recordAdministrativeRegions):
2430         (WTF::Span::next):
2431         (WTF::Span::remoteNext):
2432         (WTF::Span::prev):
2433         (WTF::Span::setNext):
2434         (WTF::Span::setPrev):
2435         (Span):
2436         (WTF::DLL_Init):
2437         (WTF::DLL_Remove):
2438         (WTF::DLL_IsEmpty):
2439         (WTF::DLL_Length):
2440         (WTF::DLL_Prepend):
2441         (TCMalloc_Central_FreeList):
2442         (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects):
2443         (WTF::TCMalloc_Central_FreeList::entropy):
2444         (TCMalloc_PageHeap):
2445         (WTF::TCMalloc_PageHeap::init):
2446         (WTF::TCMalloc_PageHeap::scavenge):
2447         (WTF::TCMalloc_PageHeap::New):
2448         (WTF::TCMalloc_PageHeap::AllocLarge):
2449         (WTF::TCMalloc_PageHeap::Carve):
2450         (WTF::TCMalloc_PageHeap::Delete):
2451         (WTF::TCMalloc_PageHeap::ReturnedBytes):
2452         (WTF::TCMalloc_PageHeap::Check):
2453         (WTF::TCMalloc_PageHeap::CheckList):
2454         (WTF::TCMalloc_PageHeap::ReleaseFreeList):
2455         (TCMalloc_ThreadCache_FreeList):
2456         (WTF::TCMalloc_ThreadCache_FreeList::Init):
2457         (WTF::TCMalloc_ThreadCache_FreeList::empty):
2458         (WTF::TCMalloc_ThreadCache_FreeList::Push):
2459         (WTF::TCMalloc_ThreadCache_FreeList::PushRange):
2460         (WTF::TCMalloc_ThreadCache_FreeList::PopRange):
2461         (WTF::TCMalloc_ThreadCache_FreeList::Pop):
2462         (WTF::TCMalloc_ThreadCache_FreeList::enumerateFreeObjects):
2463         (TCMalloc_ThreadCache):
2464         (WTF::TCMalloc_Central_FreeList::Init):
2465         (WTF::TCMalloc_Central_FreeList::ReleaseListToSpans):
2466         (WTF::TCMalloc_Central_FreeList::ReleaseToSpans):
2467         (WTF::TCMalloc_Central_FreeList::InsertRange):
2468         (WTF::TCMalloc_Central_FreeList::RemoveRange):
2469         (WTF::TCMalloc_Central_FreeList::FetchFromSpansSafe):
2470         (WTF::TCMalloc_Central_FreeList::FetchFromSpans):
2471         (WTF::TCMalloc_Central_FreeList::Populate):
2472         (WTF::TCMalloc_ThreadCache::Init):
2473         (WTF::TCMalloc_ThreadCache::Deallocate):
2474         (WTF::TCMalloc_ThreadCache::FetchFromCentralCache):
2475         (WTF::TCMalloc_ThreadCache::ReleaseToCentralCache):
2476         (WTF::TCMalloc_ThreadCache::InitModule):
2477         (WTF::TCMalloc_ThreadCache::NewHeap):
2478         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2479         * wtf/MallocZoneSupport.h:
2480         (RemoteMemoryReader):
2481
2482 2013-02-11  Enrica Casucci  <enrica@apple.com>
2483
2484         Add ENABLE_DELETION_UI to control the use of the deletion UI.
2485         https://bugs.webkit.org/show_bug.cgi?id=109463.
2486         
2487         ENABLE_DELETION_UI is set to 1 by default for
2488         all ports. It is explicitly enabled for MAC and disabled for iOS.
2489
2490         Reviewed by Ryosuke Niwa.
2491
2492         * wtf/Platform.h:
2493
2494 2013-02-11  Christophe Dumez  <ch.dumez@sisa.samsung.com>
2495
2496         [EFL] Stop using smart pointers for Ecore_Timer
2497         https://bugs.webkit.org/show_bug.cgi?id=109409
2498
2499         Reviewed by Kenneth Rohde Christiansen.
2500
2501         Remove support in OwnPtr for EFL's Ecore_Timer. It is a bad idea to use
2502         OwnPtr for Ecore_Timer because the timer handle may become invalid.
2503
2504         * wtf/OwnPtrCommon.h:
2505         (WTF):
2506         * wtf/efl/OwnPtrEfl.cpp:
2507
2508 2013-02-11  Abhishek Arya  <inferno@chromium.org>
2509
2510         Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
2511         https://bugs.webkit.org/show_bug.cgi?id=108981
2512
2513         Reviewed by Eric Seidel.
2514
2515         * wtf/BitVector.h:
2516         (WTF::BitVector::quickGet):
2517         (WTF::BitVector::quickSet):
2518         (WTF::BitVector::quickClear):
2519         * wtf/DecimalNumber.h:
2520         (WTF::DecimalNumber::DecimalNumber):
2521         * wtf/SegmentedVector.h:
2522         (WTF::SegmentedVector::ensureSegment):
2523         * wtf/StringPrintStream.cpp:
2524         (WTF::StringPrintStream::vprintf):
2525         * wtf/Vector.h:
2526         (WTF::::insert):
2527         (WTF::::remove):
2528         * wtf/dtoa/utils.h:
2529         (WTF::double_conversion::StringBuilder::SetPosition):
2530         (WTF::double_conversion::StringBuilder::AddSubstring):
2531
2532 2013-02-10  Laszlo Gombos  <l.gombos@samsung.com>
2533
2534         Consolidate the way WTF_USE_PTHREADS is enabled
2535         https://bugs.webkit.org/show_bug.cgi?id=108191
2536
2537         Reviewed by Benjamin Poulain.
2538
2539         Define WTF_USE_PTHREADS to 1 on all OS(UNIX) environments.
2540
2541         * WTF.gyp/WTF.gyp: Remove duplicated definition of WTF_USE_PTHREADS.
2542         * wtf/Platform.h:
2543
2544 2013-02-10  Laszlo Gombos  <l.gombos@samsung.com>
2545
2546         Refactor the way HAVE_XXX macros are set
2547         https://bugs.webkit.org/show_bug.cgi?id=108132
2548
2549         Reviewed by Benjamin Poulain.
2550
2551         OS(WINDOWS) and OS(UNIX) are so broadly defined that for each
2552         builds exactly one of them is enabled. Use this assumption to
2553         cleanup Platform.h.
2554
2555         * wtf/Platform.h:
2556
2557 2013-02-10  Jae Hyun Park  <jae.park08@gmail.com>
2558
2559         Rename ENABLE(GLIB_SUPPORT) to USE(GLIB)
2560         https://bugs.webkit.org/show_bug.cgi?id=104266
2561
2562         Reviewed by Philippe Normand.
2563
2564         Using USE(GLIB) instead of ENABLE(GLIB_SUPPORT) is more consistent with
2565         the existing macro naming conventions.
2566
2567         From Platform.h
2568         USE() - use a particular third-party library or optional OS service
2569         ENABLE() - turn on a specific feature of WebKit
2570
2571         * WTF.pri:
2572         * wtf/Platform.h:
2573         * wtf/gobject/GOwnPtr.cpp:
2574         * wtf/gobject/GOwnPtr.h:
2575         * wtf/gobject/GRefPtr.cpp:
2576         * wtf/gobject/GRefPtr.h:
2577
2578 2013-02-08  Michael Saboff  <msaboff@apple.com>
2579
2580         ARM_NEON Inline Assembly for copyLCharsFromUCharSource() inefficient for aligned destinations
2581         https://bugs.webkit.org/show_bug.cgi?id=109335
2582
2583         Reviewed by Filip Pizlo.
2584
2585         Change a "do while" to a "while" so that we don't copy single characters to align the 
2586         destination when it is already aligned.
2587
2588         * wtf/text/ASCIIFastPath.h:
2589         (WTF::copyLCharsFromUCharSource):
2590
2591 2013-02-08  Jer Noble  <jer.noble@apple.com>
2592
2593         Bring WebKit up to speed with latest Encrypted Media spec.
2594         https://bugs.webkit.org/show_bug.cgi?id=97037
2595
2596         Reviewed by Eric Carlson.
2597
2598         Define the ENABLE_ENCRYPTED_MEDIA_V2 setting.
2599
2600         * wtf/Platform.h:
2601
2602 2013-02-08  Adam Barth  <abarth@webkit.org>
2603
2604         Use WeakPtrs to communicate between the HTMLDocumentParser and the BackgroundHTMLParser
2605         https://bugs.webkit.org/show_bug.cgi?id=107190
2606
2607         Reviewed by Eric Seidel.
2608
2609         Add the ability to create an unbound weak reference. This facility lets
2610         you start sending messages to a WeakPtr on another thread before the
2611         object backing the WeakPtr has actually been created.
2612
2613         * wtf/WeakPtr.h:
2614         (WTF::WeakReference::createUnbound):
2615         (WTF::WeakReference::bindTo):
2616         (WeakReference):
2617         (WTF::WeakReference::WeakReference):
2618         (WTF::WeakPtr::WeakPtr):
2619         (WeakPtr):
2620         (WTF::WeakPtrFactory::WeakPtrFactory):
2621         (WeakPtrFactory):
2622         (WTF::WeakPtrFactory::revokeAll):
2623
2624 2013-02-08  Martin Robinson  <mrobinson@igalia.com>
2625
2626         [GTK] Add an experimental gyp build
2627         https://bugs.webkit.org/show_bug.cgi?id=109003
2628
2629         Reviewed by Gustavo Noronha Silva.
2630
2631         * WTF.gyp/WTF.gyp: Filter out MetaAllocator.(cpp/h) from the Chromium
2632         build. It's only necessary for GTK+.
2633         * WTF.gypi: Add MetaAllocator to the build for WebKitGTK+.
2634
2635 2013-02-06  Ilya Tikhonovsky  <loislo@chromium.org>
2636
2637         Web Inspector: Native Memory Instrumentation: reportBaseAddress needs to be called after the reportNode. So it may reuse the node index for the real address.
2638         https://bugs.webkit.org/show_bug.cgi?id=109051
2639
2640         Reviewed by Yury Semikhatsky.
2641
2642         * wtf/MemoryInstrumentation.cpp:
2643         (WTF::MemoryInstrumentation::WrapperBase::processPointer):
2644
2645 2013-02-07  David Kilzer  <ddkilzer@apple.com>
2646
2647         Fix #endif comment from r142163 and r142183
2648
2649         * wtf/MainThread.h:
2650         (WTF): s/PLATFORM/USE/
2651
2652 2013-02-07  Benjamin Poulain  <bpoulain@apple.com>
2653
2654         Fix an incorrect comment from r142163
2655
2656         Unreviewed.
2657
2658         * wtf/MainThread.h:
2659         I accidentally copied PLATFORM(IOS) instead of USE(WEB_THREAD) for the #ifdef closing.
2660
2661 2013-02-07  Benjamin Poulain  <bpoulain@apple.com>
2662
2663         Upstream iOS isWebThread() and isUIThread()
2664         https://bugs.webkit.org/show_bug.cgi?id=109130
2665
2666         Reviewed by Sam Weinig.
2667
2668         On iOS, it is sometimes necessary to differenciate the thread running WebCore,
2669         and the thread running the UI. This patch upstream those functions.
2670
2671         * wtf/MainThread.cpp:
2672         * wtf/MainThread.h:
2673         Disable the legacy initializer as it is incorrect when using the WebThread to run WebCore.
2674         (WTF::isWebThread):
2675         (WTF::isUIThread):
2676         Return true when the current thread is the Web/UI thread.
2677
2678         * wtf/mac/MainThreadMac.mm:
2679         (WTF::isUIThread):
2680         (WTF::isWebThread):
2681
2682         * wtf/text/AtomicString.cpp:
2683         (WTF::AtomicStringTable::create):
2684         Use the newly added methods.
2685
2686 2013-02-07  Caio Marcelo de Oliveira Filho  <caio.oliveira@openbossa.org>
2687
2688         [Qt] Fix build without 3D_GRAPHICS
2689         https://bugs.webkit.org/show_bug.cgi?id=109194
2690
2691         Reviewed by Noam Rosenthal.
2692
2693         Now that Coordinated Graphics was moved to WebCore, we need to explicitly enable
2694         it when we have 3D_GRAPHICS. This dependency was implicitly by the fact that
2695         3D_GRAPHICS is a dependency of WebKit2 and Coordinated Graphics was only
2696         available there. This should fix build for Qt SH4 Linux.
2697
2698         * wtf/Platform.h:
2699
2700 2013-02-06  Zan Dobersek  <zdobersek@igalia.com>
2701
2702         [WTFURL] Fix erroneous header inclusions in WTFURL code
2703         https://bugs.webkit.org/show_bug.cgi?id=109040
2704
2705         Reviewed by Benjamin Poulain.
2706
2707         Include WTFURL API headers from files in Source/WTF/wtf/url/src
2708         by specifying their relative path to Source/WTF. 
2709
2710         * GNUmakefile.am: The changes make it possible to compile the WTF library
2711         without specifying both Source/WTF/wtf/url/api and Source/WTF/wtf/url/src
2712         as inclusion directories in CPPFLAGS, so remove these two entries.
2713         * wtf/url/src/RawURLBuffer.h:
2714         * wtf/url/src/URLCanon.h: Include the URLParse.h header by specifying
2715         only the base name as it's located in the same directory.
2716         * wtf/url/src/URLCanonQuery.cpp:
2717         * wtf/url/src/URLUtil.h:
2718
2719 2013-02-06  Tony Gentilcore  <tonyg@chromium.org>
2720
2721         Call XSSAuditor's didBlockScript() for the threaded HTML parser
2722         https://bugs.webkit.org/show_bug.cgi?id=108726
2723
2724         Reviewed by Adam Barth.
2725
2726         This patch adds isSafeToSendToAnotherThread() methods to CString, String, ParsedURL and URLString.
2727         These methods check to ensure there are 0 or 1 references.
2728
2729         * wtf/text/CString.cpp:
2730         (WTF::CString::isSafeToSendToAnotherThread): Added.
2731         (WTF):
2732         * wtf/text/CString.h:
2733         (CString):
2734         * wtf/text/WTFString.cpp:
2735         (WTF::String::isSafeToSendToAnotherThread): Added.
2736         (WTF):
2737         * wtf/text/WTFString.h:
2738         (String):
2739         * wtf/url/api/ParsedURL.h:
2740         (WTF::ParsedURL::isSafeToSendToAnotherThread): Added.
2741         * wtf/url/api/URLString.h:
2742         (WTF::URLString::isSafeToSendToAnotherThread): Added.
2743
2744 2013-02-06  Ilya Tikhonovsky  <loislo@chromium.org>
2745
2746         Web Inspector: Native Memory Instrumentation: assign class name to the heap graph node automatically
2747         https://bugs.webkit.org/show_bug.cgi?id=107262
2748
2749         Reviewed by Yury Semikhatsky.
2750
2751         We need a way to calculate class name for a pointer automatically.
2752         Otherwise we need to write className manually in all the instrumentation methods.
2753         And for all reported but not instrumented classes.
2754
2755         C++ can do that for us with help of typeid but unfortunatelly it requires rtti.
2756         There is another way to do that. C++ preprocessor provides a define which has a function name.
2757
2758         For g++ and clang it is __PRETTY_FUNCTION__.
2759         For MSVC it is __FUNCTION__.
2760         The content of the string is a function signature.
2761         We can use it because it has the name of the template argument.
2762         The format is sligthly different. That's why I made two different parsers.
2763         One for MSVC the other for GCC, Clang etc.
2764         The other problem is the resulting binary size.
2765         I made very simple function that does the only thing, returns the smallest possible function signature.
2766         Unfortunatelly MSVC doesn't generate template argument name for functions.
2767         It does this only for classes.
2768
2769         * wtf/MemoryInstrumentation.cpp:
2770         (WTF):
2771         (WTF::className):
2772         (WTF::MemoryClassInfo::callReportObjectInfo):
2773         (WTF::MemoryClassInfo::init):
2774         * wtf/MemoryInstrumentation.h:
2775         (WTF):
2776         (WTF::FN::fn):
2777         (WTF::fn):
2778         (WTF::MemoryClassInfo::MemoryClassInfo):
2779         (MemoryClassInfo):
2780         (WTF::::reportObjectMemoryUsage):
2781
2782 2013-02-05  Mark Lam  <mark.lam@apple.com>
2783
2784         Fix EnumClass so that it can be used with switch statements.
2785         https://bugs.webkit.org/show_bug.cgi?id=109004.
2786
2787         Reviewed by Sam Weinig.
2788
2789         * wtf/EnumClass.h:
2790         (WTF::EnumClass::operator==):
2791         (WTF::EnumClass::operator!=):
2792         (WTF::EnumClass::operator<):
2793         (WTF::EnumClass::operator<=):
2794         (WTF::EnumClass::operator>):
2795         (WTF::EnumClass::operator>=):
2796         (EnumClass):
2797         (WTF::EnumClass::operator Value):
2798
2799 2013-02-05  Oliver Hunt  <oliver@apple.com>
2800
2801         Disable TCMalloc hardening as it's breaking leaks.
2802
2803         Reviewed by Gavin Barraclough.
2804
2805         * wtf/FastMalloc.cpp:
2806
2807 2013-02-05  Mark Lam  <mark.lam@apple.com>
2808
2809         Rename ENUM_CLASS_BEGIN() macro to ENUM_CLASS(), and make DatabaseType a strong enum.
2810         https://bugs.webkit.org/show_bug.cgi?id=108988.
2811
2812         Reviewed by Alexey Proskuryakov.
2813
2814         * wtf/EnumClass.h:
2815
2816 2013-02-05  Roger Fong  <roger_fong@apple.com>
2817
2818         Unreviewed build fix.
2819
2820         * wtf/FastMalloc.cpp:
2821
2822 2013-02-05  Benjamin Poulain  <bpoulain@apple.com>
2823
2824         Tidy up StackBounds
2825         https://bugs.webkit.org/show_bug.cgi?id=108889
2826
2827         Reviewed by Ryosuke Niwa.
2828
2829         * wtf/StackBounds.h:
2830         (StackBounds):
2831         (WTF::StackBounds::isSafeToRecurse):
2832         (WTF::StackBounds::size):
2833         Adopt a more conventional style for a multiline branch.
2834
2835         (WTF::StackBounds::StackBounds):
2836         (WTF::StackBounds::current):
2837         (WTF::StackBounds::recursionLimit):
2838         Make those method private.
2839
2840         Making the constructor private ensure initialize() is alwasy called on any StackBounds.
2841
2842 2013-02-05  Zan Dobersek  <zdobersek@igalia.com>
2843
2844         [WTFURL] Comparison between signed and unsigned integer expressions in URLUtil.cpp
2845         https://bugs.webkit.org/show_bug.cgi?id=108955
2846
2847         Reviewed by Benjamin Poulain.
2848
2849         * wtf/url/src/URLUtil.cpp:
2850         (URLUtilities): Make the counter variable a signed integer to get rid of the warning.
2851
2852 2013-02-05  Benjamin Poulain  <bpoulain@apple.com>
2853
2854         Rationalize the use of iOS/Mac #defines in Assertions.cpp
2855         https://bugs.webkit.org/show_bug.cgi?id=108870
2856
2857         Reviewed by David Kilzer.
2858
2859         * wtf/Assertions.cpp: Instead of using PLATFORM(MAC) and assume it works for iOS and OS X,
2860         use CF as the guard for CFString. Similarily, USE_APPLE_SYSTEM_LOG guards code using ASL.
2861
2862 2013-02-05  Benjamin Poulain  <bpoulain@apple.com>
2863
2864         Make StringBuilder::toAtomicString() consistent with StringBuilder::toString() for strings of length zero
2865         https://bugs.webkit.org/show_bug.cgi?id=108894
2866
2867         Reviewed by Andreas Kling.
2868
2869         * wtf/text/StringBuilder.h:
2870         (WTF::StringBuilder::toAtomicString): The function was returning the nullAtom for strings of length zero.
2871         This is inconsistent with StringBuilder::toString() which always return an empty string.
2872
2873         This patch unifies the behavior.
2874
2875 2013-02-04  Mark Hahnenberg  <mhahnenberg@apple.com>
2876
2877         Structure::m_outOfLineCapacity is unnecessary
2878         https://bugs.webkit.org/show_bug.cgi?id=108206
2879
2880         Reviewed by Darin Adler.
2881
2882         Simplifying the utility functions that we use since we don't need a 
2883         bunch of fancy templates for this one specific call site.
2884
2885         * wtf/MathExtras.h:
2886         (WTF::roundUpToPowerOfTwo):
2887
2888 2013-02-05  Sheriff Bot  <webkit.review.bot@gmail.com>
2889
2890         Unreviewed, rolling out r141905.
2891         http://trac.webkit.org/changeset/141905
2892         https://bugs.webkit.org/show_bug.cgi?id=108963
2893
2894         "Broke mac build" (Requested by tonyg-cr on #webkit).
2895
2896         * wtf/text/CString.cpp:
2897         * wtf/text/CString.h:
2898         * wtf/text/WTFString.cpp:
2899         * wtf/text/WTFString.h:
2900         (String):
2901         * wtf/url/api/ParsedURL.h:
2902         (ParsedURL):
2903         * wtf/url/api/URLString.h:
2904
2905 2013-02-05  Tony Gentilcore  <tonyg@chromium.org>
2906
2907         Call XSSAuditor's didBlockScript() for the threaded HTML parser
2908         https://bugs.webkit.org/show_bug.cgi?id=108726
2909
2910         Reviewed by Adam Barth.
2911
2912         This patch adds isSafeToSendToAnotherThread() methods to CString, String, ParsedURL and URLString.
2913         These methods check to ensure there are 0 or 1 references.
2914
2915         * wtf/text/CString.cpp:
2916         (WTF::CString::isSafeToSendToAnotherThread): Added.
2917         (WTF):
2918         * wtf/text/CString.h:
2919         (CString):
2920         * wtf/text/WTFString.cpp:
2921         (WTF::String::isSafeToSendToAnotherThread): Added.
2922         (WTF):
2923         * wtf/text/WTFString.h:
2924         (String):
2925         * wtf/url/api/ParsedURL.h:
2926         (WTF::ParsedURL::isSafeToSendToAnotherThread): Added.
2927         * wtf/url/api/URLString.h:
2928         (WTF::URLString::isSafeToSendToAnotherThread): Added.
2929
2930 2013-02-04  Benjamin Poulain  <bpoulain@apple.com>
2931
2932         Build fix for AtomicString on iOS
2933
2934         Unreviewed. The commit r141812 rely on isUIThread(), there is no such things
2935         in the tree right now. Use pthread_main_np() until more thread handling is upstreamed.
2936
2937         * wtf/text/AtomicString.cpp:
2938         (WTF::AtomicStringTable::create):
2939
2940 2013-02-04  Abhishek Arya  <inferno@chromium.org>
2941
2942         Add ASSERT_WITH_SECURITY_IMPLICATION to detect out of bounds access
2943         https://bugs.webkit.org/show_bug.cgi?id=108668
2944
2945         Reviewed by Eric Seidel.
2946
2947         * wtf/AVLTree.h:
2948         (WTF::AVLTreeDefaultBSet::operator[]):
2949         * wtf/BitArray.h:
2950         (WTF::BitArray::set):
2951         (WTF::BitArray::get):
2952         * wtf/FastBitVector.h:
2953         (WTF::FastBitVector::set):
2954         (WTF::FastBitVector::clear):
2955         (WTF::FastBitVector::get):
2956         * wtf/FixedArray.h:
2957         (WTF::FixedArray::operator[]):
2958         * wtf/RefCountedArray.h:
2959         (WTF::RefCountedArray::at):
2960         * wtf/TypedArrayBase.h:
2961         (WTF::TypedArrayBase::item):
2962         * wtf/text/StringBuffer.h:
2963         (WTF::StringBuffer::operator[]):
2964         * wtf/text/StringBuilder.h:
2965         (WTF::StringBuilder::operator[]):
2966         * wtf/text/StringImpl.h:
2967         (WTF::StringImpl::operator[]):
2968
2969 2013-02-04  Benjamin Poulain  <benjamin@webkit.org>
2970
2971         Upstream iOS's AtomicString
2972         https://bugs.webkit.org/show_bug.cgi?id=108139
2973
2974         Reviewed by David Kilzer.
2975
2976         On iOS, WebCore can be executed from two different threads. To maintain consistency,
2977         a few changes had been made:
2978         -The main UI thread and the WebThread share the same AtomicStringTable.
2979         -A spin lock is needed before any access to prevent any concurrent modification of the string table.
2980          The spin lock also prevent race on the static initialization of the shared table.
2981
2982         * wtf/Platform.h:
2983         Introduce a new USE(WEB_THREAD) to scope changes related to iOS Web Thread.
2984         * wtf/text/AtomicString.cpp:
2985         (AtomicStringTableLocker):
2986         (WTF::AtomicStringTableLocker::AtomicStringTableLocker):
2987         (WTF::AtomicStringTableLocker::~AtomicStringTableLocker):
2988         (WTF::AtomicStringTable::create):
2989         wtfThreadData() is not necessarily inlined on ARM. When it is not inlined, the old code
2990         causes two call to the function. Instead, we can keep the value in register and pass it
2991         to AtomicStringTable::create().
2992         (WTF::stringTable):
2993         (WTF::addToStringTable):
2994         (WTF::AtomicString::addSlowCase):
2995         (WTF::AtomicString::find):
2996         (WTF::AtomicString::remove):
2997
2998 2013-02-04  Martin Robinson  <mrobinson@igalia.com>
2999
3000         Fix GTK+ 'make dist' in preparation for the 1.11.5 release.
3001
3002         * GNUmakefile.list.am:
3003
3004 2013-02-04  David Kilzer  <ddkilzer@apple.com>
3005
3006         Sort WTF Xcode project file
3007
3008         * WTF.xcodeproj/project.pbxproj:
3009
3010 2013-02-02  Andreas Kling  <akling@apple.com>
3011
3012         Vector should consult allocator about ideal size when choosing capacity.
3013         <http://webkit.org/b/108410>
3014         <rdar://problem/13124002>
3015
3016         Reviewed by Benjamin Poulain.
3017
3018         Added WTF::fastMallocGoodSize(), a workalike/wrapper for OS X's malloc_good_size().
3019         It returns the actual size of the block that will get allocated for a given byte size.
3020
3021         Vector's internal buffer now checks with the allocator if the resulting allocation
3022         could actually house more objects and updates its capacity to make use of the space.
3023
3024         * wtf/Deque.h:
3025         (WTF::::expandCapacity):
3026         * wtf/FastMalloc.cpp:
3027         (WTF::fastMallocGoodSize):
3028         * wtf/FastMalloc.h:
3029         * wtf/Vector.h:
3030         (WTF::VectorBufferBase::allocateBuffer):
3031         (WTF::VectorBufferBase::tryAllocateBuffer):
3032         (WTF::VectorBufferBase::reallocateBuffer):
3033
3034 2013-02-02  Mark Rowe  <mrowe@apple.com>
3035
3036         <http://webkit.org/b/108745> WTF shouldn't use a script build phase to detect the presence of headers when the compiler can do it for us
3037
3038         Reviewed by Sam Weinig.
3039
3040         * WTF.xcodeproj/project.pbxproj: Remove the script phase that used to generate a header file
3041         containing information about whether certain header files exist on the system.
3042         * wtf/FastMalloc.cpp: Use Clang's __has_include to detect whether the header exists before including it.
3043
3044 2013-02-01  Roger Fong  <roger_fong@apple.com>
3045
3046         Unreviewed. WTF VS2010 project cleanup.
3047
3048         * WTF.vcxproj/WTF.vcxproj:
3049         * WTF.vcxproj/WTF.vcxproj.filters:
3050         * WTF.vcxproj/WTFPreLink.cmd: Removed.
3051
3052 2013-02-01  Zan Dobersek  <zdobersek@igalia.com>
3053
3054         [GTK] Add WTFURL source files to the build
3055         https://bugs.webkit.org/show_bug.cgi?id=108215
3056
3057         Reviewed by Benjamin Poulain.
3058
3059         The WTFURL implementation sources are all still guarded by the USE(WTFURL) guard,
3060         meaning that the GTK port still uses the default KURL backend. To use the WTFURL
3061         backend instead, one would have to define WTF_USE_WTFURL in Platform.h.
3062
3063         * GNUmakefile.am: List the directories from which source headers will be included.
3064         Plenty of WTFURL code currently just includes the required header by name rather
3065         than specifying the header path as relative to Source/WTF. In the future all the inclusions
3066         should probaby be changed to include the header through the path relative to Source/WTF.
3067         * GNUmakefile.list.am: Add build targets for the WTFURL source files.
3068         * wtf/url/api/ParsedURL.cpp: Specify the complete path to the required headers and
3069         reorder the inclusions.
3070         * wtf/url/src/URLCanon.h: Ditto.
3071
3072 2013-01-18  Ilya Tikhonovsky  <loislo@chromium.org>
3073
3074         Web Inspector: Native Memory Instrumentation: provide edge names and class names for WTF containers and strings
3075         https://bugs.webkit.org/show_bug.cgi?id=107303
3076
3077         Reviewed by Yury Semikhatsky.
3078
3079         I'd like to use ValueType[] as className for the container data members
3080         because class names of template parameters already present in the container class names.
3081
3082         * wtf/MemoryInstrumentationArrayBufferView.h:
3083         (WTF::reportMemoryUsage):
3084         * wtf/MemoryInstrumentationHashCountedSet.h:
3085         (WTF::reportMemoryUsage):
3086         * wtf/MemoryInstrumentationHashMap.h:
3087         (WTF::reportMemoryUsage):
3088         * wtf/MemoryInstrumentationHashSet.h:
3089         (WTF::reportMemoryUsage):
3090         * wtf/MemoryInstrumentationListHashSet.h:
3091         (WTF::reportMemoryUsage):
3092         * wtf/MemoryInstrumentationSequence.h:
3093         * wtf/MemoryInstrumentationString.h:
3094         (WTF::reportMemoryUsage):
3095         * wtf/MemoryInstrumentationVector.h:
3096         (WTF::reportMemoryUsage):
3097
3098 2013-02-01  Geoffrey Garen  <ggaren@apple.com>
3099
3100         Added TriState to WTF and started using it in one place
3101         https://bugs.webkit.org/show_bug.cgi?id=108628
3102
3103         Reviewed by Beth Dakin.
3104
3105         Useful for expressing "maybe" conditions in a boolean context.
3106
3107         * WTF.xcodeproj/project.pbxproj:
3108         * wtf/TriState.h: Added.
3109         (WTF):
3110
3111 2013-02-01  Patrick Gansterer  <paroga@webkit.org>
3112
3113         Build fix for WinCE after r137709
3114         https://bugs.webkit.org/show_bug.cgi?id=105767
3115
3116         Do not pass functions as const references to
3117         templated arguments to make the compiler happy.
3118
3119         * wtf/StdLibExtras.h:
3120         (WTF::binarySearch):
3121         (WTF::tryBinarySearch):
3122         (WTF::approximateBinarySearch):
3123
3124 2013-01-31  Ilya Tikhonovsky  <loislo@chromium.org>
3125
3126         Web Inspector: Native Memory Instrumentation: replace nodeName argument with className
3127         https://bugs.webkit.org/show_bug.cgi?id=107278
3128
3129         Reviewed by Yury Semikhatsky.
3130
3131         I replaced nodeName with className because we newer report node name for private and raw buffers
3132         but need to report their class names.
3133
3134         * wtf/MemoryInstrumentation.cpp:
3135         (WTF::MemoryInstrumentation::reportLinkToBuffer):
3136         (WTF::MemoryClassInfo::addRawBuffer):
3137         (WTF::MemoryClassInfo::addPrivateBuffer):
3138         * wtf/MemoryInstrumentation.h:
3139         (WTF::MemoryInstrumentation::addRawBuffer):
3140         (MemoryClassInfo):
3141
3142 2013-01-31  Jessie Berlin  <jberlin@apple.com>
3143
3144         Rolling out r141407 because it is causing crashes under
3145         WTF::TCMalloc_Central_FreeList::FetchFromSpans() in Release builds.
3146
3147         * wtf/Deque.h:
3148         (WTF::::expandCapacity):
3149         * wtf/FastMalloc.cpp:
3150         * wtf/FastMalloc.h:
3151         (WTF):
3152         * wtf/Vector.h:
3153         (WTF::VectorBufferBase::allocateBuffer):
3154         (WTF::VectorBufferBase::tryAllocateBuffer):
3155         (WTF::VectorBufferBase::reallocateBuffer):
3156
3157 2013-01-31  Mark Lam  <mark.lam@apple.com>
3158
3159         Abstraction for hiding enum class.
3160         https://bugs.webkit.org/show_bug.cgi?id=108533
3161
3162         Reviewed by Anders Carlsson.
3163
3164         * wtf/Compiler.h:
3165         * wtf/EnumClass.h: Copied from Source/WTF/wtf/TypeSafeEnum.h.
3166         (WTF::EnumClass::EnumClass):
3167         (WTF::EnumClass::operator==):
3168         (WTF::EnumClass::operator!=):
3169         (WTF::EnumClass::operator<):
3170         (WTF::EnumClass::operator<=):
3171         (WTF::EnumClass::operator>):
3172         (WTF::EnumClass::operator>=):
3173         * wtf/TypeSafeEnum.h: Removed.
3174
3175 2013-01-31  Andreas Kling  <akling@apple.com>
3176
3177         Vector should consult allocator about ideal size when choosing capacity.
3178         <http://webkit.org/b/108410>
3179         <rdar://problem/13124002>
3180
3181         Reviewed by Benjamin Poulain.
3182
3183         Added WTF::fastMallocGoodSize(), a workalike/wrapper for OS X's malloc_good_size().
3184         It returns the actual size of the block that will get allocated for a given byte size.
3185
3186         Vector's internal buffer now checks with the allocator if the resulting allocation
3187         could actually house more objects and updates its capacity to make use of the space.
3188
3189         * wtf/Deque.h:
3190         (WTF::::expandCapacity):
3191         * wtf/FastMalloc.cpp:
3192         (WTF::fastMallocGoodSize):
3193         * wtf/FastMalloc.h:
3194         * wtf/Vector.h:
3195         (WTF::VectorBufferBase::allocateBuffer):
3196         (WTF::VectorBufferBase::tryAllocateBuffer):
3197         (WTF::VectorBufferBase::reallocateBuffer):
3198
3199 2013-01-30  Christophe Dumez  <christophe.dumez@intel.com>
3200
3201         Add a StringTypeAdapter for ASCIILiteral
3202         https://bugs.webkit.org/show_bug.cgi?id=108338
3203
3204         Reviewed by Benjamin Poulain.
3205
3206         Add StringTypeAdapter for ASCIILiteral type so that concatenation of an
3207         ASCIILiteral and a String using + operator is efficiently handled.
3208
3209         * wtf/text/StringConcatenate.h:
3210         * wtf/text/StringOperators.h:
3211         (WTF::operator+): Inline some of the operator+ functions that were not
3212         yet.
3213         (WTF):
3214
3215 2013-01-30  David Kilzer  <ddkilzer@apple.com>
3216
3217         Upstream iOS build file changes for WTF
3218         <http://webkit.org/b/108221>
3219
3220         Reviewed by Mark Rowe.
3221
3222         * Configurations/Base.xcconfig:
3223         - Import iOS.xcconfig.
3224         - Remove VALID_ARCHS.  Modern Xcodes define these correctly.
3225         - Make HEADER_SEARCH_PATHS work with iOS Simulator builds.
3226         - Add SUPPORTED_PLATFORMS so both Mac and iOS SDKs appear in
3227           schemes.
3228         - Define INSTALL_PATH when building for macosx SDK.
3229         * Configurations/CopyWTFHeaders.xcconfig:
3230         - Make PRIVATE_HEADERS_FOLDER_PATH work with iOS Simulator
3231           builds.
3232         * Configurations/DebugRelease.xcconfig:
3233         - Simplify ARCHS.  This works correctly on 32-bit-only SDKs.
3234         * Configurations/WTF.xcconfig:
3235         - Fix installation directory for iOS Simulator builds by
3236           defining INSTALL_PATH_ACTUAL.
3237         * Configurations/iOS.xcconfig: Add.
3238         * WTF.xcodeproj/project.pbxproj:
3239         - Add iOS.xcconfig to the project.
3240
3241 2013-01-29  Mark Hahnenberg  <mhahnenberg@apple.com>
3242
3243         Structure::m_outOfLineCapacity is unnecessary
3244         https://bugs.webkit.org/show_bug.cgi?id=108206
3245
3246         Reviewed by Geoffrey Garen.
3247
3248         We're adding a new function that gives us the ability to round a value up to the next power of a certain base.
3249
3250         * wtf/MathExtras.h:
3251         (WTF::roundUpToPowerOf):
3252
3253 2013-01-30  Zeno Albisser  <zeno@webkit.org>
3254
3255         [Qt] Fix Qt/Mac build after r141024 and r141037
3256         https://bugs.webkit.org/show_bug.cgi?id=108318
3257
3258         Reviewed by Kentaro Hara.
3259
3260         * wtf/Functional.h:
3261             Make sure Block.h is included and its functionality
3262             is enabled for Qt on Mac.
3263
3264 2013-01-30  Simon Hausmann  <simon.hausmann@digia.com>
3265
3266         [Qt] Remove QT4_UNICODE related code paths
3267         https://bugs.webkit.org/show_bug.cgi?id=108316
3268
3269         Reviewed by Kenneth Rohde Christiansen.
3270
3271         Get rid of QT4_UNICODE and any related code paths. The Qt port
3272         requires Qt5 and ICU these days.
3273
3274         * WTF.gypi:
3275         * WTF.pro:
3276         * wtf/unicode/Unicode.h:
3277         * wtf/unicode/qt4/UnicodeQt4.h: Removed.
3278
3279 2013-01-29  Mark Lam  <mark.lam@apple.com>
3280
3281         Introducing WTF::TypeSafeEnum and DatabaseError.
3282         https://bugs.webkit.org/show_bug.cgi?id=108279.
3283
3284         Reviewed by Geoffrey Garen.
3285
3286         * WTF.xcodeproj/project.pbxproj:
3287         * wtf/TypeSafeEnum.h: Added.
3288         (WTF):
3289         (TypeSafeEnum):
3290         (WTF::TypeSafeEnum::TypeSafeEnum):
3291         (WTF::TypeSafeEnum::value):
3292         (WTF::TypeSafeEnum::operator==):
3293         (WTF::TypeSafeEnum::operator!=):
3294         (WTF::TypeSafeEnum::operator<):
3295         (WTF::TypeSafeEnum::operator<=):
3296         (WTF::TypeSafeEnum::operator>):
3297         (WTF::TypeSafeEnum::operator>=):
3298
3299 2013-01-29  Sheriff Bot  <webkit.review.bot@gmail.com>
3300
3301         Unreviewed, rolling out r140983.
3302         http://trac.webkit.org/changeset/140983
3303         https://bugs.webkit.org/show_bug.cgi?id=108277
3304
3305         Unfortunately, this API has one last client (Requested by
3306         abarth on #webkit).
3307
3308         * wtf/Platform.h:
3309
3310 2013-01-28  Benjamin Poulain  <benjamin@webkit.org>
3311
3312         String constructed from Literals should be non-empty
3313         https://bugs.webkit.org/show_bug.cgi?id=108103
3314
3315         Reviewed by Eric Carlson.
3316
3317         For efficiency, the construction from literal only works with valid non-empty strings.
3318         One of the constructor was changed to fix an error from HTMLMediaElement.
3319
3320         This patch replaces the branch with an assertions.
3321
3322         * wtf/text/StringImpl.cpp:
3323         (WTF::StringImpl::createFromLiteral):
3324
3325 2013-01-28  David Kilzer  <ddkilzer@apple.com>
3326
3327         BUILD FIX: Platform.h:1212:22: error: '__MAC_OS_X_VERSION_MIN_REQUIRED' is not defined, evaluates to 0 [-Werror,-Wundef]
3328
3329         This fixes the following build error introduced in r140366 for
3330         Bug 107098:
3331
3332             Platform.h:1212:22: error: '__MAC_OS_X_VERSION_MIN_REQUIRED' is not defined, evaluates to 0 [-Werror,-Wundef]
3333             #if PLATFORM(MAC) && __MAC_OS_X_VERSION_MIN_REQUIRED >= 1080 && !PLATFORM(IOS)
3334                                  ^
3335             1 error generated.
3336
3337         * wtf/Platform.h: Check !PLATFORM(IOS) first so that iOS builds
3338         do not try to evaluate __MAC_OS_X_VERSION_MIN_REQUIRED.
3339
3340 2013-01-28  Adam Barth  <abarth@webkit.org>
3341
3342         Remove webkitNotifications.createHTMLNotification
3343         https://bugs.webkit.org/show_bug.cgi?id=107598
3344
3345         Reviewed by Benjamin Poulain.
3346
3347         * wtf/Platform.h:
3348
3349 2013-01-27  Laszlo Gombos  <l.gombos@samsung.com>
3350
3351         [ANDROID] Fix a typo
3352         https://bugs.webkit.org/show_bug.cgi?id=108046
3353
3354         Reviewed by Adam Barth.
3355
3356         HAVE_NMAP -> HAVE_MMAP.
3357
3358         * wtf/Platform.h:
3359
3360 2013-01-27  Zoltan Arvai  <zarvai@inf.u-szeged.hu>
3361
3362         Fixing atomicIncrement implementation for Windows by dropping support before XP SP2.
3363         https://bugs.webkit.org/show_bug.cgi?id=106740
3364
3365         Reviewed by Benjamin Poulain.
3366
3367         Adding int64_t type atomicIncrement and atomicDecrement implementations for Windows
3368         into Atomics.h required by WebKit2 after r139514. Separating WinCE implementation
3369         that does not support WebKit2 and has no support for 64 bit interlocked methods.
3370
3371         Increasing WINVER and _WIN32_WINNT to XP SP2, because the 64 bit type interlocked methods
3372         are not supported on previous versions on 32 bit target.
3373
3374         * config.h:
3375         * wtf/Atomics.h:
3376         (WTF):
3377         (WTF::atomicIncrement):
3378         (WTF::atomicDecrement):
3379
3380 2013-01-26  Andras Becsi  <andras.becsi@digia.com>
3381
3382         Unreviewed fix after r140451 to make GIT-SVN repositories happy.
3383
3384         * WTF.vcproj/WTF.sln:
3385
3386 2013-01-26  Justin Schuh  <jschuh@chromium.org>
3387
3388         [CHROMIUM] Suppress more c4267 build warnings for Win64 targets
3389         https://bugs.webkit.org/show_bug.cgi?id=107993
3390
3391         Reviewed by Abhishek Arya.
3392
3393         * WTF.gyp/WTF.gyp:
3394
3395 2013-01-25  Eric Seidel  <eric@webkit.org>
3396
3397         Support 4 and 5 argument bound static functions
3398         https://bugs.webkit.org/show_bug.cgi?id=107973
3399
3400         Reviewed by Anders Carlsson.
3401
3402         Yummy copy/paste template code!
3403         I'm about to use this in a BackgroundHTMLParser patch, but figured this should be landed separately.
3404
3405         * wtf/Functional.h:
3406         (WTF):
3407         (WTF::R):
3408
3409 2013-01-24  Martin Robinson  <mrobinson@igalia.com>
3410
3411         Abstract the logic for appending a UChar32 onto StringBuilder
3412         https://bugs.webkit.org/show_bug.cgi?id=107505
3413
3414         Reviewed by Darin Adler.
3415
3416         * wtf/text/StringBuilder.h:
3417         (WTF::StringBuilder::append): Added a method for appending a UChar32 to a StringBuilder.
3418
3419 2013-01-24  Brent Fulgham  <bfulgham@webkit.org>
3420
3421         Stipulate build order between WTFGenerated and WTF
3422         https://bugs.webkit.org/show_bug.cgi?id=107844
3423
3424         Reviewed by Tim Horton.
3425
3426         * WTF.vcxproj/WTF.vcxproj: Use VS2010 project dependency
3427         declaration so WTF depends on a completed WTFGenerated build.
3428
3429 2013-01-23  Abhishek Arya  <inferno@chromium.org>
3430
3431         Add support for ASSERT_WITH_SECURITY_IMPLICATION.
3432         https://bugs.webkit.org/show_bug.cgi?id=107699
3433
3434         Reviewed by Eric Seidel.
3435
3436         * wtf/Assertions.h: Add ASSERT_WITH_SECURITY_IMPLICATION to
3437         indicate possible security vulnerabily and enable it by default
3438         in fuzzing builds.
3439         * wtf/Vector.h: Use ASSERT_WITH_SECURITY_IMPLICATION for
3440         bounds check on [] operator.
3441
3442 2013-01-23  Tony Chang  <tony@chromium.org>
3443
3444         Unreviewed, set svn:eol-style to CRLF on Windows .sln files.
3445
3446         * WTF.vcproj/WTF.sln: Added property svn:eol-style.
3447
3448 2013-01-23  Adam Barth  <abarth@webkit.org>
3449
3450         BackgroundHTMLParser::sendTokensToMainThread should use bind
3451         https://bugs.webkit.org/show_bug.cgi?id=107637
3452
3453         Reviewed by Eric Seidel.
3454
3455         * wtf/Functional.h:
3456             - I had to re-work the approach to validating WeakPtr |this|
3457               arguments a bit. Previously you couldn't pass a WeakPtr as a
3458               non-|this| argument to a function because we would try to unwrap
3459               it into a raw pointer.
3460         * wtf/WeakPtr.h:
3461         (WTF::WeakPtrFactory::revokeAll):
3462         (WeakPtrFactory):
3463             - Let clients revoke all outstanding WeakPtrs without needing to
3464               destroy the WeakPtrFactory.
3465         * wtf/chromium/MainThreadChromium.cpp:
3466         (WTF::callFunctionObject):
3467         (WTF::callOnMainThread):
3468             - Implement callOnMainThread for Function objects. The non-Chromium
3469               implementation of MainThread.cpp already implements this feature.
3470
3471 2013-01-23  Justin Schuh  <jschuh@chromium.org>
3472
3473         [CHROMIUM] Suppress c4267 build warnings in WTF for Win64 targets
3474         https://bugs.webkit.org/show_bug.cgi?id=107721
3475
3476         Reviewed by Abhishek Arya.
3477
3478         * WTF.gyp/WTF.gyp:
3479
3480 2013-01-23  Oliver Hunt  <oliver@apple.com>
3481
3482         Add RELEASE_ASSERT (and a few friends)
3483         https://bugs.webkit.org/show_bug.cgi?id=107725
3484
3485         Reviewed by Filip Pizlo.
3486
3487         Adding a few macros to make release mode assertions easier and more readable.
3488         Also makes same assertions more useful in debug builds.
3489
3490         * wtf/Assertions.h:
3491
3492 2013-01-22  Joshua Bell  <jsbell@chromium.org>
3493
3494         Prevent race condition during Worker shutdown
3495         https://bugs.webkit.org/show_bug.cgi?id=107577
3496
3497         Reviewed by Dmitry Titov.
3498
3499         Add MessageQueue::appendAndKill() which wraps those two steps with a mutex so other
3500         threads can't sneak a message in between.
3501
3502         * wtf/MessageQueue.h: Added appendAndKill() method.
3503
3504 2013-01-22  Roger Fong  <roger_fong@apple.com>
3505
3506         WTF project files and property sheets for getting WebKit to compile in VS2010.
3507         https://bugs.webkit.org/show_bug.cgi?id=106986
3508
3509         Reviewed by Timothy Horton and Brent Fulgham.
3510
3511         * WTF.vcproj/WTF.sln:
3512         * WTF.vcxproj: Added.
3513         * WTF.vcxproj/WTF.vcxproj: Added.
3514         * WTF.vcxproj/WTF.vcxproj.filters: Added.
3515         * WTF.vcxproj/WTF.vcxproj.user: Added.
3516         * WTF.vcxproj/WTFCommon.props: Added.
3517         * WTF.vcxproj/WTFDebug.props: Added.
3518         * WTF.vcxproj/WTFGenerated.make: Added.
3519         * WTF.vcxproj/WTFGenerated.vcxproj: Added.
3520         * WTF.vcxproj/WTFGenerated.vcxproj.filters: Added.
3521         * WTF.vcxproj/WTFGenerated.vcxproj.user: Added.
3522         * WTF.vcxproj/WTFGeneratedCommon.props: Added.
3523         * WTF.vcxproj/WTFGeneratedDebug.props: Added.
3524         * WTF.vcxproj/WTFGeneratedRelease.props: Added.
3525         * WTF.vcxproj/WTFPostBuild.cmd: Added.
3526         * WTF.vcxproj/WTFPreBuild.cmd: Added.
3527         * WTF.vcxproj/WTFPreLink.cmd: Added.
3528         * WTF.vcxproj/WTFRelease.props: Added.
3529         * WTF.vcxproj/build-generated-files.sh: Added.
3530         * WTF.vcxproj/copy-files.cmd: Added.
3531         * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py: Added.
3532         * config.h:
3533
3534 2013-01-22  David Kilzer  <ddkilzer@apple.com>
3535
3536         Fix DateMath.cpp to compile with -Wshorten-64-to-32
3537         <http://webkit.org/b/107503>
3538
3539         Reviewed by Darin Adler.
3540
3541         Fixes the following build errors with -Wshorten-64-to-32:
3542
3543             DateMath.cpp:742:47: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3544                 if (month == 2 && day > 28 && !isLeapYear(year))
3545                                                ~~~~~~~~~~ ^~~~
3546             DateMath.cpp:757:48: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3547                 double dateSeconds = ymdhmsToSeconds(year, month, day, hours, minutes, seconds) - timeZoneSeconds;
3548                                      ~~~~~~~~~~~~~~~       ^~~~~
3549             DateMath.cpp:757:55: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3550                 double dateSeconds = ymdhmsToSeconds(year, month, day, hours, minutes, seconds) - timeZoneSeconds;
3551                                      ~~~~~~~~~~~~~~~              ^~~
3552             DateMath.cpp:757:60: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3553                 double dateSeconds = ymdhmsToSeconds(year, month, day, hours, minutes, seconds) - timeZoneSeconds;
3554                                      ~~~~~~~~~~~~~~~                   ^~~~~
3555             DateMath.cpp:757:67: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3556                 double dateSeconds = ymdhmsToSeconds(year, month, day, hours, minutes, seconds) - timeZoneSeconds;
3557                                      ~~~~~~~~~~~~~~~                          ^~~~~~~
3558             DateMath.cpp:996:59: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3559                                 offset = ((o / 100) * 60 + (o % 100)) * sgn;
3560                                        ~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~~~
3561             DateMath.cpp:998:37: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3562                                 offset = o * 60 * sgn;
3563                                        ~ ~~~~~~~^~~~~
3564             DateMath.cpp:1005:40: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3565                             offset = (o * 60 + o2) * sgn;
3566                                    ~ ~~~~~~~~~~~~~~^~~~~
3567             DateMath.cpp:1041:40: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3568                 return ymdhmsToSeconds(year, month + 1, day, hour, minute, second) * msPerSecond;
3569                        ~~~~~~~~~~~~~~~       ~~~~~~^~~
3570             DateMath.cpp:1041:45: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3571                 return ymdhmsToSeconds(year, month + 1, day, hour, minute, second) * msPerSecond;
3572                        ~~~~~~~~~~~~~~~                  ^~~
3573             DateMath.cpp:1041:50: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3574                 return ymdhmsToSeconds(year, month + 1, day, hour, minute, second) * msPerSecond;
3575                        ~~~~~~~~~~~~~~~                       ^~~~
3576             DateMath.cpp:1041:56: error: implicit conversion loses integer precision: 'long' to 'int' [-Werror,-Wshorten-64-to-32]
3577                 return ymdhmsToSeconds(year, month + 1, day, hour, minute, second) * msPerSecond;
3578                        ~~~~~~~~~~~~~~~                             ^~~~~~
3579             12 errors generated.
3580
3581         * wtf/DateMath.cpp:
3582         (WTF::ymdhmsToSeconds): Change year argument from long to int.
3583         Change mon, day, hour, minute arguments from int to long.
3584         (WTF::parseInt): Add.  Identical to parseLong but bounds checks
3585         for type int.
3586         (WTF::parseLong): Switch to std::numeric_limits<long> instead of
3587         macros.
3588         (WTF::parseES5DatePortion): Change year argument from long to
3589         int.
3590         (WTF::parseES5DateFromNullTerminatedCharacters): Change year
3591         local variable from long to int.
3592         (WTF::parseDateFromNullTerminatedCharacters): Change year and
3593         offset local variables from long to int.  Switch from using
3594         parseLong() to parseInt() as needed.  Ditto for labs() to abs().
3595         Add overflow check when switching from "MM/DD/YYYY" to
3596         "YYYY/MM/DD" parsing.
3597
3598 2013-01-17  Andy Estes  <aestes@apple.com>
3599
3600         Add a USE() macro for content filtering code
3601         https://bugs.webkit.org/show_bug.cgi?id=107098
3602
3603         Reviewed by Mark Rowe.
3604
3605         * wtf/Platform.h: Define WTF_USE_CONTENT_FILTERING on Mac platforms
3606         more recent than Lion.
3607
3608 2013-01-18  Laszlo Gombos  <l.gombos@samsung.com>
3609
3610         Remove unnecessary PLATFORM() tests
3611         https://bugs.webkit.org/show_bug.cgi?id=107360
3612
3613         Reviewed by Eric Seidel.
3614
3615         PLATFORM(WIN), PLATFORM(CHROMIUM) and PLATFORM(QT) are mutually
3616         exclusive. Remove redundant PLATFORM() tests based on this
3617         invariant.
3618
3619         * wtf/Platform.h:
3620
3621 2013-01-18  Laszlo Gombos  <l.gombos@samsung.com>
3622
3623         Remove PLATFORM(TORCHMOBILE) from Assertions.h
3624         https://bugs.webkit.org/show_bug.cgi?id=107355
3625
3626         Reviewed by Eric Seidel.
3627
3628         This appears to be the only place where PLATFORM(TORCHMOBILE) is
3629         used. I don't believe this ifdef is needed anymore.
3630
3631         * wtf/Assertions.h:
3632
3633 2013-01-18  Michael Saboff  <msaboff@apple.com>
3634
3635         Refactor isPowerOf2() and add getLSBSet()
3636         https://bugs.webkit.org/show_bug.cgi?id=107306
3637
3638         Reviewed by Filip Pizlo.
3639
3640         Moved runtime/PropertyMapHashTable.h:PowerOf2() to new hasOneBitSet() and added getLSBSet().
3641
3642         * wtf/MathExtras.h:
3643         (hasOneBitSet):
3644         (getLSBSet):
3645
3646 2013-01-18  David Kilzer  <ddkilzer@apple.com>
3647
3648         Fix WTF::copyLCharsFromUCharSource() to compile with -Wshorten-64-to-32
3649         <http://webkit.org/b/107227>
3650
3651         Reviewed by Benjamin Poulain.
3652
3653         Fixes the following build error:
3654
3655             ASCIIFastPath.h:117:59: error: implicit conversion loses integer precision: 'unsigned long' to 'const unsigned int' [-Werror,-Wshorten-64-to-32]
3656                     const unsigned endLength = length - ucharsPerLoop + 1;
3657                                    ~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~^~~
3658             1 error generated.
3659
3660         * wtf/text/ASCIIFastPath.h:
3661         (WTF::copyLCharsFromUCharSource): Change local variables from
3662         unsigned to size_t.
3663
3664 2013-01-14  Dominik Röttsches  <dominik.rottsches@intel.com>
3665
3666         [EFL] Update freetype in jhbuild to 2.4.11 and activate subpixel layout
3667         https://bugs.webkit.org/show_bug.cgi?id=106774
3668
3669         In order to fix a long standing linespacing/font ascent & descent issue
3670         we found that FreeType commit b0962ac34e660 solves that problem.
3671         Let's update FreeType accordingly, but bump it to 2.4.11 due to the
3672         maintainer recommending several security updates after that said commit.
3673
3674         Also, in order to avoid extra rebaselining, let's activate subpixel
3675         layout at the same time.
3676
3677         Reviewed by Martin Robinson.
3678
3679         * wtf/Platform.h: Activate Subpixel Layout for EFL.
3680
3681 2013-01-17  Adam Barth  <abarth@webkit.org>
3682
3683         Teach Functional.h about WeakPtr
3684         https://bugs.webkit.org/show_bug.cgi?id=107105
3685
3686         Reviewed by Anders Carlsson.
3687
3688         A common pattern in cross-thread communication is to call member
3689         functions of an object on a remote thread. If the caller's reference to
3690         the object on the remote thread is a WeakPtr, the caller usually wants
3691         to validate that the object still exists when the call actually takes
3692         place.
3693
3694         It's possible to do this manually for every cross-thread call, but that
3695         is tiresome and error prone. Instead, we can teach bind to validate
3696         WeakPtr arguments when passed as the "this" parameter to a member
3697         function.
3698
3699         * wtf/Functional.h:
3700         (WTF::ParamStorageTraits::validate):
3701
3702 2013-01-17  David Kilzer  <ddkilzer@apple.com>
3703
3704         Fix vprintf_stderr_common() to compile with -Wshorten-64-to-32
3705         <http://webkit.org/b/107126>
3706
3707         Reviewed by Darin Adler.
3708
3709         Fixes the following build error:
3710
3711             Assertions.cpp:92:22: error: implicit conversion loses integer precision: 'CFIndex' (aka 'long') to 'int' [-Werror,-Wshorten-64-to-32]
3712                     int length = CFStringGetMaximumSizeForEncoding(CFStringGetLength(str), kCFStringEncodingUTF8);
3713                         ~~~~~~   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
3714             1 error generated.
3715
3716         * wtf/Assertions.cpp:
3717         (vprintf_stderr_common): Use CFIndex type instead of int for the
3718         return value of CFStringGetMaximumSizeForEncoding().
3719
3720 2013-01-17  Zan Dobersek  <zdobersek@igalia.com>
3721
3722         [Autotools] Unify WTF sources list regardless of the target OS, Unicode backend
3723         https://bugs.webkit.org/show_bug.cgi?id=105886
3724
3725         Reviewed by Gustavo Noronha Silva.
3726
3727         Rather than including files in the sources list in an OS-specific way,
3728         guard specific files with OS(UNIX|WINDOWS), USE((GLIB|ICU)_UNICODE) guards
3729         and include all of them in the list.
3730
3731         Proper comments for namespace and #if guard closings are also added or adjusted
3732         where necessary in the affected files.
3733
3734         * GNUmakefile.list.am:
3735         * wtf/OSAllocatorPosix.cpp: Add OS(UNIX) guards.
3736         * wtf/OSAllocatorWin.cpp: Add OS(WINDOWS) guards.
3737         * wtf/ThreadSpecificWin.cpp: Ditto.
3738         * wtf/ThreadingWin.cpp: Ditto.
3739         * wtf/unicode/glib/UnicodeGLib.cpp: Add USE(GLIB_UNICODE) guards.
3740         (WTF):
3741         * wtf/unicode/glib/UnicodeGLib.h: Ditto.
3742         (WTF):
3743         * wtf/unicode/icu/CollatorICU.cpp: Style changes.
3744         * wtf/unicode/icu/UnicodeIcu.h: Add USE(ICU_UNICODE) guards.
3745         (WTF):
3746         * wtf/win/OwnPtrWin.cpp: Add OS(WINDOWS) guards.
3747
3748 2013-01-16  Benjamin Poulain  <benjamin@webkit.org>
3749
3750         Use GCC's implementation of atomicIncrement/Decrement on Mac
3751         https://bugs.webkit.org/show_bug.cgi?id=106976
3752
3753         Reviewed by Filip Pizlo.
3754
3755         * wtf/Atomics.h:
3756         GCC and LLVM have builtin for atomic ADD and SUB: __sync_add_and_fetch,
3757         __sync_sub_and_fetch.
3758
3759         Using them let the compiler just generate the atomic operations inline
3760         instead of generating a function call to LibC. It also simplify the
3761         code a bit.
3762
3763 2013-01-15  Adam Barth  <abarth@webkit.org>
3764
3765         Generalize DocumentWeakReference into WTF::WeakPtr
3766         https://bugs.webkit.org/show_bug.cgi?id=106854
3767
3768         Reviewed by Darin Adler.
3769
3770         This patch adds a simple WeakPtr object to WTF. To use WeakPtr, objects
3771         must hold a WeakPtrFactory member variable, which clears the WeakPtrs
3772         when the object is destructed. The underlying storage is a
3773         ThreadSafeRefCounted "WeakReference" object, which is shared by all the
3774         WeakPtrs.
3775
3776         WeakPtr is a generalization of DocumentWeakReference, which is used to
3777         check whether the Document object is alive when tasks arive on the main
3778         thread from worker threads. We plan to use a similar pattern in the
3779         threaded HTML parser, but we want to send tasks to objects other than
3780         Document.
3781
3782         * GNUmakefile.list.am:
3783         * WTF.gypi:
3784         * WTF.pro:
3785         * WTF.vcproj/WTF.vcproj:
3786         * WTF.xcodeproj/project.pbxproj:
3787         * wtf/CMakeLists.txt:
3788         * wtf/WeakPtr.h: Added.
3789         (WeakReference):
3790             - The ThreadSafeRefCounted object shared by all the WeakPtr
3791               instances. This patch uses ThreadSafeRefCounted so that we can
3792               use WeakPtrs to cancel cross-thread messages.
3793         (WTF::WeakReference::create):
3794         (WTF::WeakReference::get):
3795         (WTF::WeakReference::clear):
3796             - When the object is destroyed, WeakPtrFactory calls this function
3797               to clear all the WeakPtrs.
3798         (WTF::WeakReference::WeakReference):
3799         (WTF::WeakPtr::WeakPtr):
3800         (WTF::WeakPtr::get):
3801             - We might want to add implicit conversions and Boolean operators
3802               in the future, but I've kept this class simple for now.
3803         (WTF::WeakPtrFactory::WeakPtrFactory):
3804         (WTF::WeakPtrFactory::~WeakPtrFactory):
3805         (WTF::WeakPtrFactory::createWeakPtr):
3806
3807 2013-01-12  Csaba Osztrogonác  <ossy@webkit.org>
3808
3809         Use __sync_add_and_fetch instead of __gnu_cxx::__exchange_and_add
3810         https://bugs.webkit.org/show_bug.cgi?id=106729
3811
3812         After r139514 we need atomicIncrement(int64_t volatile*) for all platform. Now the
3813         GCC implementation of atomicIncrement() is based on __gnu_cxx::__exchange_and_add,
3814         which doesn't support int64_t type, but __sync_add_and_fetch does.
3815
3816         Reviewed by Benjamin Poulain.
3817
3818         * wtf/Atomics.h:
3819         (WTF::atomicIncrement):
3820         (WTF::atomicDecrement):
3821
3822 2013-01-11  Filip Pizlo  <fpizlo@apple.com>
3823
3824         Add WTF_EXPORT_PRIVATE to printInternal() methods of PrintStream.h
3825
3826         Rubber stamped by Mark Hahnenberg.
3827         
3828         This will make it easier to use dataLog() from WebCore.
3829
3830         * wtf/PrintStream.h:
3831         (WTF):
3832
3833 2013-01-09  Antti Koivisto  <antti@apple.com>
3834
3835         Release FastMalloc thread caches on memory warning
3836         https://bugs.webkit.org/show_bug.cgi?id=106471
3837         
3838         Reviewed by Geoff Garen.
3839
3840         Use TCMalloc_ThreadCache::Cleanup() instead of calling Scavenge() twice. This releases all the memory
3841         and looks nicer too.
3842
3843         * wtf/FastMalloc.cpp:
3844         (WTF::releaseFastMallocFreeMemory):
3845
3846 2013-01-09  Carlos Garcia Campos  <cgarcia@igalia.com>
3847
3848         Unreviewed. Fix make distcheck.
3849
3850         * GNUmakefile.list.am: Add missing header.
3851
3852 2013-01-07  Filip Pizlo  <fpizlo@apple.com>
3853
3854         Rationalize closure call heuristics and profiling
3855         https://bugs.webkit.org/show_bug.cgi?id=106270
3856
3857         Reviewed by Oliver Hunt.
3858         
3859         Add a macro to add a method to a class that returns a dumper. Allows you to have
3860         secondary dump() methods for dumping either more or less information.
3861
3862         * wtf/PrintStream.h:
3863         (WTF):
3864
3865 2013-01-07  Ryosuke Niwa  <rniwa@webkit.org>
3866
3867         Sorted the xcodeproj file.
3868
3869         * WTF.xcodeproj/project.pbxproj:
3870
3871 2013-01-07  Filip Pizlo  <fpizlo@apple.com>
3872
3873         Unreviewed, it should be possible to build JSC on ARM.
3874
3875         * wtf/FastMalloc.cpp:
3876         (WTF::TCMalloc_PageHeap::IncrementalScavenge):
3877
3878 2013-01-07  Balazs Kilvady  <kilvadyb@homejinni.com>
3879
3880         MIPS LLInt implementation.
3881         https://bugs.webkit.org/show_bug.cgi?id=99706
3882
3883         Reviewed by Filip Pizlo.
3884
3885         LLInt implementation for MIPS.
3886
3887         * wtf/Platform.h:
3888
3889 2013-01-05  Jonathan Liu  <net147@gmail.com>
3890
3891         Only enable MinGW-w64 pow() workaround if needed
3892         https://bugs.webkit.org/show_bug.cgi?id=106099
3893
3894         Reviewed by Filip Pizlo.
3895
3896         The pow() workaround is no longer needed in the latest version
3897         of MinGW-w64.
3898
3899         * wtf/MathExtras.h:
3900
3901 2013-01-05  Jonathan Liu  <net147@gmail.com>
3902
3903         Fix compilation of MathExtras.h with MinGW-w64
3904         https://bugs.webkit.org/show_bug.cgi?id=106105
3905
3906         Reviewed by Simon Hausmann.
3907
3908         The isfinite and isinf functions are required by wtf_pow but
3909         not defined until after wtf_pow. Move wtf_pow to after
3910         "using std::isfinite" and "using std::isinf" to fix compilation.
3911
3912         * wtf/MathExtras.h:
3913         (wtf_pow):
3914
3915 2013-01-03  Filip Pizlo  <fpizlo@apple.com>
3916
3917         CallLinkStatus should be aware of closure calls, and the DFG bytecode parser should use that as its sole internal notion of how to optimize calls
3918         https://bugs.webkit.org/show_bug.cgi?id=106027
3919
3920         Reviewed by Mark Hahnenberg.
3921         
3922         I got tired of the various idioms for printing a list of things with comma in between, so I wrote a helper.
3923
3924         * WTF.xcodeproj/project.pbxproj:
3925         * wtf/CommaPrinter.h: Added.
3926         (WTF):
3927         (CommaPrinter):
3928         (WTF::CommaPrinter::CommaPrinter):
3929         (WTF::CommaPrinter::dump):
3930
3931 2013-01-02  Simon Hausmann  <simon.hausmann@digia.com>
3932
3933         [MinGW-w64] Centralize workaround for pow() implementation
3934         https://bugs.webkit.org/show_bug.cgi?id=105925
3935
3936         Reviewed by Sam Weinig.
3937
3938         As suggested by Sam, move the MinGW-w64 workaround into MathExtras.h
3939         away from the JSC usage.
3940
3941         * wtf/MathExtras.h:
3942         (wtf_pow):
3943
3944 2013-01-02  Adam Barth  <abarth@webkit.org>
3945
3946         WTF.gypi lists Platform.h twice
3947         https://bugs.webkit.org/show_bug.cgi?id=105731
3948
3949         Reviewed by Tony Chang.
3950
3951         Once ought to be enough for everybody.
3952
3953         * WTF.gypi:
3954
3955 2012-12-31  Gavin Barraclough  <barraclough@apple.com>
3956
3957         Objective-C API for JavaScriptCore
3958         https://bugs.webkit.org/show_bug.cgi?id=105889
3959
3960         Reviewed by Filip Pizlo.
3961
3962         * wtf/WTFThreadData.cpp:
3963         (WTF::WTFThreadData::WTFThreadData):
3964         * wtf/WTFThreadData.h:
3965         (WTFThreadData):
3966             - Added m_apiData - provide convenient storage for use by the API.
3967
3968 2012-12-28  Ilya Tikhonovsky  <loislo@chromium.org>
3969
3970         Web Inspector: Native Memory Instrumentation: instrument not instrumented members.
3971         https://bugs.webkit.org/show_bug.cgi?id=105830
3972
3973         Reviewed by Vsevolod Vlasov.
3974
3975         In some cases we don't want to visit some class members.
3976         As example we decided to skip pointers to interface classes such as GraphicLayerClient.
3977         We could use addWeakPointer for them but it can't be used for nonpointer members.
3978         In the offline discussion we came to a conclusion that we need a new instrumentation
3979         method ignoreMember, which will be used for all the members which we won't like to visit/instrument.
3980
3981         DriveBy: Also I instrumented not yet instrumented members.
3982
3983         * wtf/MemoryInstrumentation.h:
3984         (MemoryClassInfo):
3985         (WTF::MemoryClassInfo::ignoreMember):
3986
3987 2012-12-26  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
3988
3989         Fix build warning in OSAllocatorPosix.cpp
3990         https://bugs.webkit.org/show_bug.cgi?id=105761
3991
3992         Reviewed by Kentaro Hara.
3993
3994         * wtf/OSAllocatorPosix.cpp:
3995         (WTF::OSAllocator::reserveUncommitted): Fix unused param warnings.
3996
3997 2012-12-24  Yury Semikhatsky  <yurys@chromium.org>
3998
3999         Memory instrumentation: provide a way to mark a node as a root
4000         https://bugs.webkit.org/show_bug.cgi?id=105737
4001
4002         Reviewed by Alexander Pavlov.
4003
4004         Objects added using MemoryInstrumentation::addRootObject will be marked as roots.
4005
4006         * wtf/MemoryInstrumentation.cpp:
4007         (WTF::MemoryInstrumentation::WrapperBase::process):
4008         (WTF):
4009         (WTF::MemoryInstrumentation::WrapperBase::processPointer):
4010         (WTF::MemoryInstrumentation::WrapperBase::processRootObjectRef):
4011         * wtf/MemoryInstrumentation.h:
4012         (WrapperBase):
4013         * wtf/MemoryObjectInfo.h: added root marker which can be used by the heap graph builder.
4014         (WTF::MemoryObjectInfo::MemoryObjectInfo):
4015         (WTF::MemoryObjectInfo::isRoot):
4016         (WTF::MemoryObjectInfo::markAsRoot):
4017         (MemoryObjectInfo):
4018
4019 2012-12-24  Ilya Tikhonovsky  <loislo@chromium.org>
4020
4021         Web Inspector: Native Memory Instrumentation: propagate member type as edge type to the serialized heap graph.
4022         https://bugs.webkit.org/show_bug.cgi?id=105725
4023
4024         Reviewed by Yury Semikhatsky.
4025
4026         MemoryOwningType was renamed to MemberType.
4027         Source argument were removed from reportEdge, reportLeaf and other edge related methods because it is not necessary.
4028         MemberType argument was propagated from MemoryInstrumentation down to HeapGraphSerializer.
4029
4030         The changes covered by tests in TestWebKitAPI.
4031
4032         * wtf/MemoryInstrumentation.cpp:
4033         (WTF::MemoryInstrumentation::reportEdge):
4034         (WTF::MemoryInstrumentation::reportLinkToBuffer):
4035         (WTF::MemoryClassInfo::addPrivateBuffer):
4036         * wtf/MemoryInstrumentation.h:
4037         (MemoryInstrumentationClient):
4038         (MemoryInstrumentation):
4039         (WTF::MemoryInstrumentation::addRawBuffer):
4040         (WTF::MemoryInstrumentation::MemberTypeTraits::addObject):
4041         (WTF::MemoryInstrumentation::addObjectImpl):
4042
4043 2012-12-21  Ilya Tikhonovsky  <loislo@chromium.org>
4044
4045         Unreviewed. Another try to fix Apple Win Release build.
4046
4047         * wtf/FastMalloc.cpp:
4048         (WTF::ClassIndex):
4049
4050 2012-12-21  Ilya Tikhonovsky  <loislo@chromium.org>
4051
4052         Unreviewed compilation fix for Apple Win Release after r138398.
4053
4054         * wtf/FastMalloc.cpp:
4055         (WTF::ClassIndex):
4056
4057 2012-12-21  Oliver Hunt  <oliver@apple.com>
4058
4059         Further harden FastMalloc
4060         https://bugs.webkit.org/show_bug.cgi?id=105656
4061
4062         Reviewed by Gavin Barraclough.
4063
4064         This increases the degree to which we harden the FastMalloc
4065         linked lists.  We now also mask the previous and next pointers
4066         in the doubly linked list implementation.  I've also made
4067         the masking itself somewhat more complex without a measurable
4068         cost.  We still use ASLR to provide some general entropy, but
4069         we blind the pointers against each nodes 'this' pointer.
4070
4071         * wtf/FastMalloc.cpp:
4072         (WTF::ClassIndex):
4073         (WTF::SLL_Next):
4074         (WTF::SLL_SetNext):
4075         (WTF::Span::next):
4076         (WTF::Span::prev):
4077         (WTF::Span::setNext):
4078         (WTF::Span::setPrev):
4079         (Span):
4080           As Span now has to do masking on the next and previous pointers,
4081           I've updated the code to use accessors instead.
4082         (WTF::DLL_Init):
4083         (WTF::DLL_Remove):
4084         (WTF::DLL_IsEmpty):
4085         (WTF::DLL_Length):
4086         (WTF::DLL_Prepend):
4087         (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects):
4088         (WTF::TCMalloc_PageHeap::scavenge):
4089         (WTF::TCMalloc_PageHeap::New):
4090         (WTF::TCMalloc_PageHeap::AllocLarge):
4091         (WTF::TCMalloc_PageHeap::ReturnedBytes):
4092         (WTF::TCMalloc_PageHeap::Check):
4093         (WTF::TCMalloc_PageHeap::CheckList):
4094         (WTF::TCMalloc_PageHeap::ReleaseFreeList):
4095         (WTF::TCMalloc_Central_FreeList::FetchFromSpans):
4096
4097 2012-12-20  Ryuan Choi  <ryuan.choi@samsung.com>
4098
4099         [EFL] Build break with latest EFL libraries.
4100         https://bugs.webkit.org/show_bug.cgi?id=104827
4101
4102         Reviewed by Laszlo Gombos.
4103
4104         The eo EFL package is introduced and evas and ecore use it since 1.8.
4105         While introducing Eo, EFL changed several structures of Evas and Ecore
4106         from own specific class to Eo.
4107
4108         So, this patch adds FindEo and changes declaration of Evas, Evas_Object,
4109         Ecore_Timer to build with latest EFL libraries.
4110
4111         * wtf/OwnPtrCommon.h: Modified declaration of Evas_Object and Ecore_Timer.
4112         * wtf/PlatformEfl.cmake: Includes eo EFL library.
4113         * wtf/efl/RefPtrEfl.h: Modified declaration of Evas_Object.
4114
4115 2012-12-20  Oliver Hunt  <oliver@apple.com>
4116
4117         Harden pointers in FastMalloc's singly linked list implementation
4118         https://bugs.webkit.org/show_bug.cgi?id=105571
4119
4120         Reviewed by Gavin Barraclough.
4121
4122         Add simple xor based hardening of the next pointer in the
4123         fast malloc singly linked list implementation.  We rely on
4124         ASLR to introduce the address randomness we want for the mask.
4125         Happily this produces a very low cost random value to use.
4126
4127         * wtf/FastMalloc.cpp:
4128         (WTF):
4129         (WTF::SLL_Next):
4130         (WTF::SLL_SetNext):
4131
4132 2012-12-19  Oliver Hunt  <oliver@apple.com>
4133
4134         StringImpl isolatedCopy unnecessarily copies text-segment character data
4135         https://bugs.webkit.org/show_bug.cgi?id=105376
4136
4137         Reviewed by Anders Carlsson.
4138
4139         This patch adds a new (private) helper to StringImpl that tests whether the StringImpl
4140         is backed by an ASCII literal.  This allows isolatedCopy() to safely use the createFromLiteral
4141         constructor rather than making an unnecessary copy.
4142
4143         * wtf/text/StringImpl.h:
4144         (StringImpl):
4145         (WTF::StringImpl::isASCIILiteral):
4146         (WTF::StringImpl::isolatedCopy):
4147
4148 2012-12-19  Oliver Hunt  <oliver@apple.com>
4149
4150         WTF String from ASCIILiteral fails to correctly handle empty strings.
4151         https://bugs.webkit.org/show_bug.cgi?id=105453
4152
4153         Reviewed by Anders Carlsson.
4154
4155         When we have an zero length literal we should return the empty StringImpl.
4156
4157         * wtf/text/StringImpl.cpp:
4158         (WTF::StringImpl::createFromLiteral):
4159
4160 2012-12-18  Yury Semikhatsky  <yurys@chromium.org>
4161
4162         Web Inspector: show cached images under MemoryCache -> Images section
4163         https://bugs.webkit.org/show_bug.cgi?id=105261
4164
4165         Reviewed by Pavel Feldman.
4166
4167         Use first provided name and class name. If one of the ancestors tries to overwrite
4168         it just ignore the call.
4169
4170         * wtf/MemoryObjectInfo.h:
4171         (WTF::MemoryObjectInfo::setClassName):
4172         (WTF::MemoryObjectInfo::setName):
4173
4174 2012-12-18  Uli Schlachter  <psychon@znc.in>
4175
4176         Implement uncommitted memory for Linux.
4177         https://bugs.webkit.org/show_bug.cgi?id=65766
4178
4179         Reviewed by Simon Hausmann.
4180
4181         The old approach used MAP_NORESERVE to allocate address space without
4182         committing it. However, that flag gets ignored if
4183         /proc/sys/vm/overcommit_memory is set to 2. The new approach uses a
4184         mapping with PROT_NONE. This works because mappings which aren't even
4185         readable don't get accounted as committed on Linux.
4186
4187         * wtf/OSAllocatorPosix.cpp:
4188         (WTF::OSAllocator::reserveUncommitted):
4189         (WTF::OSAllocator::reserveAndCommit):
4190         (WTF::OSAllocator::commit):
4191         (WTF::OSAllocator::decommit):
4192
4193 2012-12-17  Ilya Tikhonovsky  <loislo@chromium.org>
4194
4195         Web Inspector: Native Memory Instrumentation: MemoryInstrumentation doesn't detect reportMemoryUsage method defined in a base class.
4196         https://bugs.webkit.org/show_bug.cgi?id=105026
4197
4198         Reviewed by Yury Semikhatsky.
4199
4200         Old SFINAE test was replaced with new one based on this article:
4201         http://stackoverflow.com/questions/1966362/sfinae-to-check-for-inherited-member-functions
4202
4203         * wtf/MemoryInstrumentation.h:
4204         (MemoryInstrumentation):
4205         (yes):
4206         (IsInstrumented):
4207         (no):
4208         (WTF::MemoryInstrumentation::IsInstrumented::BaseMixin::reportMemoryUsage):
4209         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
4210         (InstrumentationSelector):
4211         (WTF):
4212         (WTF::::reportObjectMemoryUsage):
4213
4214 2012-12-17  Ilya Tikhonovsky  <loislo@chromium.org>
4215
4216         Unreviewed, rolling out r137892.
4217         http://trac.webkit.org/changeset/137892
4218         https://bugs.webkit.org/show_bug.cgi?id=105026
4219
4220         it broke compilation on windows
4221
4222         * wtf/MemoryInstrumentation.h:
4223         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
4224         (MemoryInstrumentation):
4225         (WTF::MemoryInstrumentation::reportObjectMemoryUsage):
4226         (WTF::reportMemoryUsage):
4227
4228 2012-12-14  Ilya Tikhonovsky  <loislo@chromium.org>
4229
4230         Web Inspector: Native Memory Instrumentation: MemoryInstrumentation doesn't detect reportMemoryUsage method defined in a base class.
4231         https://bugs.webkit.org/show_bug.cgi?id=105026
4232
4233         Reviewed by Yury Semikhatsky.
4234
4235         Old SFINAE test was replaced with new one based on this article:
4236         http://stackoverflow.com/questions/1966362/sfinae-to-check-for-inherited-member-functions
4237
4238         * wtf/MemoryInstrumentation.h:
4239         (MemoryInstrumentation):
4240         (yes):
4241         (IsInstrumented):
4242         (no):
4243         (WTF::MemoryInstrumentation::IsInstrumented::BaseMixin::reportMemoryUsage):
4244         (WTF::MemoryInstrumentation::selectInstrumentationMethod):
4245         (InstrumentationSelector):
4246         (WTF):
4247         (WTF::::reportObjectMemoryUsage):
4248
4249 2012-12-14  Yury Semikhatsky  <yurys@chromium.org>
4250
4251         Web Inspector: add data grid for exploring native heap graph
4252         https://bugs.webkit.org/show_bug.cgi?id=105012
4253
4254         Reviewed by Pavel Feldman.
4255
4256         Do not report edges with null target.
4257
4258         * wtf/MemoryInstrumentation.h:
4259         (WTF::MemoryInstrumentation::addObjectImpl):
4260
4261 2012-12-13  Filip Pizlo  <fpizlo@apple.com>
4262
4263         Attempt to rationalize and simplify WTF::binarySearch
4264         https://bugs.webkit.org/show_bug.cgi?id=104890
4265
4266         Reviewed by Maciej Stachowiak.
4267
4268         Binary search now has three modes:
4269
4270         The default: assert that the key was found, but return an adjacent element if it
4271         wasn't found, if asserts are turned off.
4272         
4273         tryBinarySearch: return 0 if the key wasn't found.
4274         
4275         approximateBinarySearch: if the key is not found, return an adjacent element (either
4276         the left or right; no guarantee which).
4277         
4278         This also reduces the number of variants of binarySearch. The functor variant is now
4279         gone because binarySearch now always uses a functor for the key extractor. The
4280         generic variant is now gone because binarySearch always expects an array type that
4281         can do operator[].
4282
4283         * wtf/StdLibExtras.h:
4284         (WTF::binarySearchImpl):
4285         (WTF::binarySearch):
4286         (WTF::tryBinarySearch):
4287         (WTF::approximateBinarySearch):
4288
4289 2012-12-13  Ilya Tikhonovsky  <loislo@chromium.org>
4290
4291         Web Inspector: Native Memory Instrumentation: do not validate pointers to objects in RenderArena agains tcmalloc data.
4292         https://bugs.webkit.org/show_bug.cgi?id=104903
4293