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