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