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