[JSC] Build fix for FTL on EFL after ftlopt merge
[WebKit-https.git] / Source / WTF / ChangeLog
1 2014-08-06  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
2
3         [JSC] Build fix for FTL on EFL after ftlopt merge
4         https://bugs.webkit.org/show_bug.cgi?id=135565
5
6         Reviewed by Mark Lam.
7
8         Added ENABLE(FTL_NATIVE_CALL_INLINING).
9
10         * wtf/Platform.h:
11
12 2014-08-04  Alex Christensen  <achristensen@webkit.org>
13
14         Progress towards CMake on Mac.
15         https://bugs.webkit.org/show_bug.cgi?id=135528
16
17         Reviewed by Gyuyoung Kim.
18
19         * wtf/CMakeLists.txt:
20         Include text directory.
21         * wtf/PlatformMac.cmake: Added.
22
23 2014-07-31  Alex Christensen  <achristensen@webkit.org>
24
25         Progress towards cmake on Windows.
26         https://bugs.webkit.org/show_bug.cgi?id=135484
27
28         Reviewed by Martin Robinson.
29
30         * wtf/CMakeLists.txt:
31         Added WTF_LIBRARY_TYPE because Windows needs WTF to be a shared library.
32
33 2014-07-30  Andreas Kling  <akling@apple.com>
34
35         PropertyName's internal string is always atomic.
36         <https://webkit.org/b/135451>
37
38         Remove AtomicString::findStringWithHash() since nobody uses it anymore.
39
40         Reviewed by Benjamin Poulain.
41
42         * wtf/text/AtomicString.cpp:
43         (WTF::findString): Deleted.
44         (WTF::AtomicString::findStringWithHash): Deleted.
45         * wtf/text/AtomicString.h:
46
47 2014-07-30  Andy Estes  <aestes@apple.com>
48
49         USE(CONTENT_FILTERING) should be ENABLE(CONTENT_FILTERING)
50         https://bugs.webkit.org/show_bug.cgi?id=135439
51
52         Reviewed by Tim Horton.
53
54         We now support two different platform content filters, and will soon support a mock content filter (as part of
55         webkit.org/b/128858). This makes content filtering a feature of WebKit, not just an adoption of a third-party
56         library. ENABLE() is the correct macro to use for such a feature.
57
58         * wtf/Platform.h:
59
60 2014-07-29  Brent Fulgham  <bfulgham@apple.com>
61
62         [Win] Modify version numbering scheme to support 5-tuple versions
63         https://bugs.webkit.org/show_bug.cgi?id=135400
64         <rdar://problem/17849033>
65
66         Reviewed by David Kilzer.
67
68         * WTF.vcxproj/WTFPostBuild.cmd: Use new version-stamp.pl script
69         to version WTF.dll.
70         * WTF.vcxproj/WTFPreBuild.cmd: Make sure we have created the
71         appropriate version resource during builds.
72
73 2014-07-29  Daniel Bates  <dabates@apple.com>
74
75         Use WTF::move() instead of std::move() to help ensure move semantics
76         https://bugs.webkit.org/show_bug.cgi?id=135351
77
78         Reviewed by Alexey Proskuryakov.
79
80         * wtf/HashTable.h:
81         (WTF::KeyTraits>::HashTable):
82
83 2014-07-28  Brian J. Burg  <burg@cs.washington.edu>
84
85         Should not export symbols for base64Encode inline adapter methods
86         https://bugs.webkit.org/show_bug.cgi?id=135355
87
88         Unreviewed build fix.
89
90         Fixes the build break introduced by r171682, where a base64Encode
91         inline adapter method was used in another header, thus creating
92         multiple definitions of it (and problems with with weak symbols).
93
94         * wtf/text/Base64.h: Remove WTF_EXPORT_PRIVATE for inlined methods.
95
96 2014-07-27  Filip Pizlo  <fpizlo@apple.com>
97
98         Merge r170090, r170092, r170129, r170141, r170161, r170215, r170275, r170375, r170376, r170382, r170383, r170399, r170436, r170489, r170490, r170556 from ftlopt.
99
100         * wtf/text/WTFString.h:
101
102 2014-07-26  Filip Pizlo  <fpizlo@apple.com>
103
104         Unreviewed, roll out r171641-r171644. It broke some tests; will investigate and
105         reland later.
106
107         * wtf/text/WTFString.h:
108
109 2014-07-25  Filip Pizlo  <fpizlo@apple.com>
110
111         Attempt to fix Windows.
112
113         * wtf/text/WTFString.h:
114
115 2014-07-25  Gavin Barraclough  <baraclough@apple.com>
116
117         Yosemite version number is 101000
118         https://bugs.webkit.org/show_bug.cgi?id=135301
119
120         Reviewed by Sam Weinig.
121
122         * wtf/FeatureDefines.h:
123         * wtf/Platform.h:
124
125 2014-07-23  Brent Fulgham  <bfulgham@apple.com>
126
127         [Win] Use NO_RETURN_DUE_TO_CRASH on Windows.
128         https://bugs.webkit.org/show_bug.cgi?id=13519
129
130         Reviewed by Mark Lam.
131
132         * wtf/Assertions.h: Add MSVC to list of compilers supporting this macro.
133         * wtf/FastMalloc.cpp: Correct function declaration for NO_RETURN_DUE_TO_CRASH.
134
135 2014-07-22  Filip Pizlo  <fpizlo@apple.com>
136
137         Merge r169148, r169185, r169188, r169578, r169582, r169584, r169588, r169753 from ftlopt.
138
139     2014-06-04  Filip Pizlo  <fpizlo@apple.com>
140     
141             [ftlopt] AI should be able track structure sets larger than 1
142             https://bugs.webkit.org/show_bug.cgi?id=128073
143     
144             Reviewed by Oliver Hunt.
145     
146             * wtf/Bag.h:
147             (WTF::Bag::Node::Node):
148             (WTF::Bag::add):
149     
150 2014-07-22  Filip Pizlo  <fpizlo@apple.com>
151
152         Merge r168635, r168780, r169005, r169014, and r169143 from ftlopt.
153
154     2014-05-20  Filip Pizlo  <fpizlo@apple.com>
155     
156             [ftlopt] DFG bytecode parser should turn GetById with nothing but a Getter stub as stuff+handleCall, and handleCall should be allowed to inline if it wants to
157             https://bugs.webkit.org/show_bug.cgi?id=133105
158     
159             Reviewed by Michael Saboff.
160     
161             * wtf/Bag.h:
162             (WTF::Bag::iterator::operator!=):
163     
164 2014-07-19  Zan Dobersek  <zdobersek@igalia.com>
165
166         [WTF] Add the move constructor, move assignment operator for HashTable
167         https://bugs.webkit.org/show_bug.cgi?id=130772
168
169         Reviewed by Darin Adler.
170
171         HashTable has both copy constructor and copy assignment operator, meaning that the move constructor
172         and move assignment operator are implicitly deleted. This patch defines both to avoid unnecessary
173         copies when moves can be performed.
174
175         * wtf/HashTable.h:
176         (WTF::KeyTraits>::HashTable):
177
178 2014-07-15  Commit Queue  <commit-queue@webkit.org>
179
180         Unreviewed, rolling out r171107.
181         https://bugs.webkit.org/show_bug.cgi?id=134959
182
183         This was not the problem! (Requested by kling on #webkit).
184
185         Reverted changeset:
186
187         "Revert: Run the FastMalloc scavenger thread on iOS as well."
188         https://bugs.webkit.org/show_bug.cgi?id=134927
189         http://trac.webkit.org/changeset/171107
190
191 2014-07-15  Andreas Kling  <akling@apple.com>
192
193         Revert: Run the FastMalloc scavenger thread on iOS as well.
194         <https://webkit.org/b/134927>
195         <rdar://problem/17485079>
196
197         This appears to be the cause of some elusive crashes, and since I don't
198         have a way to reproduce them, let's just go back to not running the
199         scavenger thread on iOS.
200
201         Reviewed by Antti Koivisto.
202
203         * wtf/FastMalloc.cpp:
204
205 2014-07-13  Filip Pizlo  <fpizlo@apple.com>
206
207         HashMap should have removeIf()
208         https://bugs.webkit.org/show_bug.cgi?id=134870
209
210         Reviewed by Sam Weinig.
211         
212         Expose a new HashMap method, called removeIf(), which allows you to do an efficient
213         pass over the map and remove a bunch of things at once. This is used by DFG GCSE as
214         part of https://bugs.webkit.org/show_bug.cgi?id=134677.
215
216         * wtf/HashMap.h:
217         (WTF::X>::removeIf):
218         * wtf/HashTable.h:
219         (WTF::KeyTraits>::removeIf):
220
221 2014-07-11  peavo@outlook.com  <peavo@outlook.com>
222
223         [Win] Enable DFG JIT.
224         https://bugs.webkit.org/show_bug.cgi?id=123615
225
226         Reviewed by Mark Lam.
227
228         * wtf/Platform.h:
229
230 2014-07-11  Commit Queue  <commit-queue@webkit.org>
231
232         Unreviewed, rolling out r170995.
233         https://bugs.webkit.org/show_bug.cgi?id=134831
234
235         Causing odd crashes in debug builds (Requested by zdobersek on
236         #webkit).
237
238         Reverted changeset:
239
240         "[WTF] Add the move constructor, move assignment operator for
241         HashTable"
242         https://bugs.webkit.org/show_bug.cgi?id=130772
243         http://trac.webkit.org/changeset/170995
244
245 2014-07-09  Zan Dobersek  <zdobersek@igalia.com>
246
247         [WTF] Add the move constructor, move assignment operator for HashTable
248         https://bugs.webkit.org/show_bug.cgi?id=130772
249
250         Reviewed by Darin Adler.
251
252         HashTable has both copy constructor and copy assignment operator, meaning that the move constructor
253         and move assignment operator are implicitly deleted. This patch defines both to avoid unnecessary
254         copies when moves can be performed.
255
256         * wtf/HashTable.h:
257         (WTF::KeyTraits>::HashTable):
258
259 2014-07-10  Alex Christensen  <achristensen@webkit.org>
260
261         Enable same features on all Windows ports.
262         https://bugs.webkit.org/show_bug.cgi?id=134715
263
264         Reviewed by Brent Fulgham.
265
266         * wtf/Platform.h:
267         Use REQUEST_ANIMATION_FRAME_TIMER on WinCairo.
268
269 2014-07-09  Brent Fulgham  <bfulgham@apple.com>
270
271         [Win] Unreviewed build fix after r170930.
272
273         * WTF.vcxproj/copy-files.cmd: Include cf files in
274         post-build copy operation.
275
276 2014-07-09  Brent Fulgham  <bfulgham@apple.com>
277
278         [Win] Remove uses of 'bash' in build system
279         https://bugs.webkit.org/show_bug.cgi?id=134782
280         <rdar://problem/17615533>
281
282         Reviewed by Dean Jackson.
283
284         Remove uses of 'bash' by replacing Windows-specific bash scripts
285         with Perl equivalents.
286
287         * WTF.vcxproj/WTFGenerated.make:
288         * WTF.vcxproj/WTFGenerated.vcxproj:
289         * WTF.vcxproj/WTFGenerated.vcxproj.filters:
290         * WTF.vcxproj/WTFPreBuild.cmd:
291         * WTF.vcxproj/build-generated-files.pl: Copied from Source/WTF/WTF.vcxproj/build-generated-files.sh.
292         * WTF.vcxproj/build-generated-files.sh: Removed.
293
294 2014-07-09  Brent Fulgham  <bfulgham@apple.com>
295
296         [Win] Remove use of 'grep' in build steps
297         https://bugs.webkit.org/show_bug.cgi?id=134770
298         <rdar://problem/17608783>
299
300         Reviewed by Tim Horton.
301
302         Replace uses of the grep command in Windows builds with the equivalent
303         Perl program.
304
305         * WTF.vcxproj/WTFPreBuild.cmd:
306
307 2014-07-07  Zan Dobersek  <zdobersek@igalia.com>
308
309         Enable ARMv7 disassembler for the GTK port
310         https://bugs.webkit.org/show_bug.cgi?id=134676
311
312         Reviewed by Benjamin Poulain.
313
314         * wtf/Platform.h: Enable the ARMv7 disassembler for the GTK port when
315         targeting the ARMv7 architecture.
316
317 2014-07-06  Yoav Weiss  <yoav@yoav.ws>
318
319         Turn on img@sizes compile flag
320         https://bugs.webkit.org/show_bug.cgi?id=134634
321
322         Reviewed by Benjamin Poulain.
323
324         * wtf/FeatureDefines.h: Added compile flag definition.
325
326 2014-07-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
327
328         Unreivewed, fix build break on EFL and GTK since r170767.
329
330         * wtf/CMakeLists.txt: Exclude Decoder.h and Encoder.h because those files were removed.
331
332 2014-07-03  Daniel Bates  <dabates@apple.com>
333
334         Add WTF::move()
335         https://bugs.webkit.org/show_bug.cgi?id=134500
336
337         Reviewed by Darin Adler.
338
339         Substitution of WTF::move() for std::move() rubber-stamped by Anders Carlsson.
340
341         Implement WTF::move(), a replacement for std::move(). WTF::move() is less error
342         prone than std::move() as it compile asserts that its argument is a non-const
343         lvalue reference before ultimately casting it to a rvalue reference (via std::move).
344
345         * wtf/Deque.h: Substitute WTF::move() for std::move().
346         * wtf/HashMap.h: Ditto.
347         * wtf/HashSet.h: Ditto.
348         * wtf/HashTable.h: Ditto.
349         * wtf/IteratorAdaptors.h: Ditto.
350         * wtf/IteratorRange.h: Ditto.
351         * wtf/ListHashSet.h: Ditto.
352         * wtf/MainThread.cpp: Ditto.
353         [...]
354         * wtf/StdLibExtras.h:
355         (WTF::move): Added.
356         [...]
357
358 2014-07-03  Anders Carlsson  <andersca@apple.com>
359
360         Get rid of Encoder.h and Decoder.h from WTF
361         https://bugs.webkit.org/show_bug.cgi?id=134600
362
363         Reviewed by Darin Adler.
364
365         * WTF.vcxproj/WTF.vcxproj:
366         * WTF.vcxproj/WTF.vcxproj.filters:
367         * WTF.xcodeproj/project.pbxproj:
368         * wtf/Decoder.h: Removed.
369         * wtf/Encoder.h: Removed.
370
371 2014-07-03  Ryuan Choi  <ryuan.choi@samsung.com>
372
373         Broken build with build-webkit --no-video
374         https://bugs.webkit.org/show_bug.cgi?id=134587
375
376         Reviewed by Darin Adler.
377
378         MEDIA_CONTROLS_SCRIPT requires VIDEO enabled.
379
380         * wtf/FeatureDefines.h: Added error message for dependency failure.
381
382 2014-07-02  Enrica Casucci  <enrica@apple.com>
383
384         iOS build fix after http://trac.webkit.org/changeset/170697.
385         
386         Unreviewed.
387
388         * wtf/Deque.h:
389
390 2014-07-02  Dan Bernstein  <mitz@apple.com>
391
392         Remove some code only needed for versions of Safari that are no longer supported
393         https://bugs.webkit.org/show_bug.cgi?id=134537
394
395         Reviewed by Anders Carlsson.
396
397         * wtf/Assertions.cpp:
398         * wtf/Assertions.h:
399
400 2014-07-01  Alex Christensen  <achristensen@webkit.org>
401
402         Reduce dynamic memory allocation in css jit.
403         https://bugs.webkit.org/show_bug.cgi?id=134416
404
405         Reviewed by Benjamin Poulain.
406
407         * wtf/Deque.h:
408         Added inlineCapacity optional template parameter.
409
410 2014-06-30  Commit Queue  <commit-queue@webkit.org>
411
412         Unreviewed, rolling out r170605.
413         https://bugs.webkit.org/show_bug.cgi?id=134484
414
415         The changes cause crashes on ARM64 (Requested by benjaminp on
416         #webkit).
417
418         Reverted changeset:
419
420         "Reduce dynamic memory allocation in css jit."
421         https://bugs.webkit.org/show_bug.cgi?id=134416
422         http://trac.webkit.org/changeset/170605
423
424 2014-06-30  Daniel Bates  <dabates@apple.com>
425
426         Make TransformIterator::TransformIterator() take rvalue references
427         https://bugs.webkit.org/show_bug.cgi?id=134468
428
429         Reviewed by Darin Adler.
430
431         It's unnecessary to support TransformIterator::TransformIterator() taking const lvalue references
432         as we only call it with rvalues. As a side benefit, we can use move semantics to initialize the
433         members of TransformIterator.
434
435         * wtf/IteratorAdaptors.h:
436         (WTF::TransformIterator::TransformIterator): Make constructor take arguments as rvalue references.
437         (WTF::makeTransformIterator): Substitute std::move() for std::forward().
438
439 2014-06-30  Alex Christensen  <achristensen@webkit.org>
440
441         Reduce dynamic memory allocation in css jit.
442         https://bugs.webkit.org/show_bug.cgi?id=134416
443
444         Reviewed by Benjamin Poulain.
445
446         * wtf/Deque.h:
447         Added inlineCapacity optional template parameter.
448
449 2014-06-30  Anders Carlsson  <andersca@apple.com>
450
451         Add code for encoding legacy session history entries
452         https://bugs.webkit.org/show_bug.cgi?id=134452
453
454         Reviewed by Andreas Kling.
455
456         * wtf/MallocPtr.h:
457         (WTF::MallocPtr::malloc):
458         (WTF::MallocPtr::realloc):
459
460 2014-06-27  Andreas Kling  <akling@apple.com>
461
462         [ARMv7] Skip one particularly expensive fastFree() alignment check.
463         <https://webkit.org/b/134402>
464
465         The size class alignment check in fastFree() was crazy expensive on ARMv7
466         due to its use of modulo. Disabling it shaves 470ms off of PLT main thread
467         time in the web process.
468
469         Note that this was very hard to identify in profiles due to TCO.
470
471         Reviewed by Gavin Barraclough.
472
473         * wtf/FastMalloc.cpp:
474         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
475
476 2014-06-26  Andreas Kling  <akling@apple.com>
477
478         Bump FastMalloc thread cache max size to 1MB on iOS.
479         <https://webkit.org/b/134365>
480
481         The previous limit (512kB) comes from the old days of very-low-memory
482         devices, and we can now afford to spend another 512kB here.
483         Note that we already have a mechanism to purge FastMalloc caches on
484         system memory pressure.
485
486         Looks like a ~400ms progression on PLT.
487
488         Reviewed by Geoff Garen.
489
490         * wtf/FastMalloc.cpp:
491
492 2014-06-26  Laszlo Gombos  <l.gombos@samsung.com>
493
494         Define TARGET_OS_IPHONE to 0 for non-darwin ports
495         https://bugs.webkit.org/show_bug.cgi?id=134347
496
497         Reviewed by Darin Adler.
498
499         A follow-up to r169880 to make it easier to reason about
500         the code. The purpose of this change to allow
501         "#if TARGET_OS_IPHONE" in public header files.
502
503         * wtf/Platform.h:
504
505 2014-06-26  Chris Fleizach  <cfleizach@apple.com>
506
507         Add an undo group for each dictated utterance in WebKit
508         https://bugs.webkit.org/show_bug.cgi?id=134086
509
510         Applied review comments from Sam Weinig.
511
512         Move the associated USE #define into Platform.h.
513
514         * wtf/Platform.h:
515
516 2014-06-25  Geoffrey Garen  <ggaren@apple.com>
517
518         Unreviewed, rolling out r166876.
519
520         Caused some ECMA test262 failures
521
522         Reverted changeset:
523
524         "Date object needs to check for ES5 15.9.1.14 TimeClip limit."
525         https://bugs.webkit.org/show_bug.cgi?id=131248
526         http://trac.webkit.org/changeset/166876
527
528 2014-06-25  peavo@outlook.com  <peavo@outlook.com>
529
530         [Win64] ASM LLINT is not enabled.
531         https://bugs.webkit.org/show_bug.cgi?id=130638
532
533         Reviewed by Mark Lam.
534
535         * wtf/Platform.h: Enable LLINT and JIT for Win64.
536
537 2014-06-25  Laszlo Gombos  <l.gombos@samsung.com>
538
539         Remove build guard for progress element
540         https://bugs.webkit.org/show_bug.cgi?id=134292
541
542         Reviewed by Benjamin Poulain.
543
544         The build flag is no longer needed as it is always on.
545
546         * wtf/FeatureDefines.h:
547
548 2014-06-24  Andreas Kling  <akling@apple.com>
549
550         Run the FastMalloc scavenger thread on iOS as well.
551         <https://webkit.org/b/134287>
552         <rdar://problem/17446198>
553
554         Reviewed by Gavin Barraclough.
555
556         * wtf/FastMalloc.cpp:
557
558 2014-06-24  Anders Carlsson  <andersca@apple.com>
559
560         Add PageState to HistoryItem conversion code
561         https://bugs.webkit.org/show_bug.cgi?id=134259
562
563         Reviewed by Andreas Kling.
564
565         * wtf/Optional.h:
566         (WTF::Optional::valueOr):
567
568 2014-06-24  László Langó  <llango.u-szeged@partner.samsung.com>
569
570         [JavaScriptCore] Enable concurrent JIT on EFL.
571         https://bugs.webkit.org/show_bug.cgi?id=134242
572
573         Reviewed by Csaba Osztrogonác.
574
575         * wtf/Platform.h:
576
577 2014-06-23  Ryuan Choi  <ryuan.choi@samsung.com>
578
579         [EFL] Replace RefPtr<Evas_Object> with UniquePtrEfl
580         https://bugs.webkit.org/show_bug.cgi?id=134236
581
582         Reviewed by Gyuyoung Kim.
583
584         Although there are ref/unref for Evas_Object, it's bit odd so we should call evas_object_del to destroy it.
585         So, this patch replaced RefPtr<Evas_Object> with UniquePtrEfl for the simplicity.
586
587         * wtf/PlatformEfl.cmake: Removed RefPtrEfl.cpp from source list.
588         * wtf/efl/RefPtrEfl.cpp: Removed.
589         * wtf/efl/RefPtrEfl.h: Removed.
590
591 2014-06-21  Brady Eidson  <beidson@apple.com>
592
593         Gamepad API - Deprecate the existing implementation
594         https://bugs.webkit.org/show_bug.cgi?id=134108
595
596         Reviewed by Timothy Hatcher.
597
598         -Add new "GAMEPAD_DEPRECATED" build flag, moving the existing implementation to use it
599         -Move some implementation files into a "deprecated" subdirectory.
600
601         * wtf/FeatureDefines.h:
602
603 2014-06-21  Commit Queue  <commit-queue@webkit.org>
604
605         Unreviewed, rolling out r170244.
606         https://bugs.webkit.org/show_bug.cgi?id=134157
607
608         GTK/EFL bindings generator works differently, making this
609         patch not work there.  Will fix entire patch after a rollout.
610         (Requested by bradee-oh on #webkit).
611
612         Reverted changeset:
613
614         "Gamepad API - Deprecate the existing implementation"
615         https://bugs.webkit.org/show_bug.cgi?id=134108
616         http://trac.webkit.org/changeset/170244
617
618 2014-06-21  Brady Eidson  <beidson@apple.com>
619
620         Gamepad API - Deprecate the existing implementation
621         https://bugs.webkit.org/show_bug.cgi?id=134108
622
623         Reviewed by Timothy Hatcher.
624
625         -Add new "GAMEPAD_DEPRECATED" build flag, moving the existing implementation to use it
626         -Add the "Deprecated" suffix to some implementation files
627
628         * wtf/FeatureDefines.h:
629
630 2014-06-21  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>
631
632         Removing PAGE_VISIBILITY_API compile guard.
633         https://bugs.webkit.org/show_bug.cgi?id=133844
634
635         Reviewed by Gavin Barraclough.
636
637         * wtf/FeatureDefines.h:
638
639 2014-06-20  Anders Carlsson  <andersca@apple.com>
640
641         Add encoding and decoding support for WTF::Optional
642         https://bugs.webkit.org/show_bug.cgi?id=134125
643
644         Reviewed by Andreas Kling.
645
646         * wtf/Optional.h:
647         (WTF::Optional::operator=):
648
649 2014-06-20  Anders Carlsson  <andersca@apple.com>
650
651         Add copy/move constructors and assignment operators to WTF::Optional
652         https://bugs.webkit.org/show_bug.cgi?id=134119
653
654         Reviewed by Andreas Kling.
655
656         * wtf/Optional.h:
657         (WTF::Optional::Optional):
658         (WTF::Optional::operator=):
659
660 2014-06-19  Anders Carlsson  <andersca@apple.com>
661
662         Add WTF::Optional class
663         https://bugs.webkit.org/show_bug.cgi?id=134083
664
665         Reviewed by Andreas Kling.
666
667         * WTF.xcodeproj/project.pbxproj:
668         * wtf/Optional.h: Added.
669         (WTF::Optional::Optional):
670         (WTF::Optional::~Optional):
671         (WTF::Optional::operator bool):
672         (WTF::Optional::value):
673
674 2014-06-19  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>
675
676         Remove ENABLE(LLINT) and ENABLE(LLINT_C_LOOP) guards
677         https://bugs.webkit.org/show_bug.cgi?id=130389
678
679         Reviewed by Mark Lam.
680
681         Removed ENABLE(LLINT) since we always build with it, and changed ENABLE(LLINT_C_LOOP)
682         into !ENABLE(JIT) since they are mutually exclusive.
683
684         * wtf/OSAllocatorPosix.cpp:
685         (WTF::OSAllocator::reserveAndCommit):
686         * wtf/Platform.h:
687
688 2014-06-18  Anders Carlsson  <andersca@apple.com>
689
690         Add CF type cast function templates and use them in KeyedDecoder in WebKit2
691         https://bugs.webkit.org/show_bug.cgi?id=134033
692
693         Reviewed by Sam Weinig.
694
695         * WTF.xcodeproj/project.pbxproj:
696         * wtf/cf/TypeCasts.h: Added.
697         (WTF::dynamic_cf_cast):
698         Returns null if the given CFTypeRef object doesn't have the right type.
699
700         (WTF::checked_cf_cast):
701         ASSERTs (with security implication) if the given CFTypeRef object is null or doesn't have the right type.
702
703 2014-06-17  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
704
705         Misused PLATFORM(MIDDLE_ENDIAN) and PLATFORM(BIG_ENDIAN).
706         https://bugs.webkit.org/show_bug.cgi?id=128301
707
708         Reviewed by Daniel Bates.
709
710         Endianness is a CPU attribute, not a PLATFORM. PLATFORM() macro is replaced to CPU().
711
712         * wtf/text/ASCIIFastPath.h:
713         (WTF::copyLCharsFromUCharSource):
714
715 2014-06-17  Andreas Kling  <akling@apple.com>
716
717         Web process main thread priority is lower than some network process threads.
718         <https://webkit.org/b/133987>
719         <rdar://problem/17330300>
720
721         Bring all of our threads to the appropriate priority level by opting in to the
722         threading QoS APIs. By marking them "user initiated", they still yield to UI
723         interaction, but take priority over background tasks.
724
725         Reviewed by Maciej Stachowiak.
726
727         * wtf/Platform.h:
728         * wtf/Threading.cpp:
729         (WTF::setCurrentThreadIsUserInitiated):
730         * wtf/Threading.h:
731         * wtf/ThreadingPthreads.cpp:
732         (WTF::createThreadInternal):
733
734 2014-06-17  Alex Christensen  <achristensen@webkit.org>
735
736         Enable css jit for armv7 on iOS.
737         https://bugs.webkit.org/show_bug.cgi?id=133961
738         <rdar://problem/17310631>
739
740         Reviewed by Andreas Kling.
741
742         * wtf/Platform.h:
743         Enable css jit for ARM thumb on iOS.
744
745 2014-06-17  Dan Bernstein  <mitz@apple.com>
746
747         String::isolatedCopy doesn’t return an isolated copy when used on an rvalue reference
748         https://bugs.webkit.org/show_bug.cgi?id=133968
749
750         Reviewed by Anders Carlsson.
751
752         Made the rvalue reference overload of isolatedCopy() non-const, so that std::move(*this) is
753         an rvalue reference that can be moved, rather than copied, into the returned String.
754
755         * wtf/text/WTFString.cpp:
756         (WTF::String::isolatedCopy):
757         * wtf/text/WTFString.h:
758
759 2014-06-15  Dan Bernstein  <mitz@apple.com>
760
761         iOS build fix after r169995.
762
763         * wtf/RetainPtr.h:
764
765 2014-06-15  Anders Carlsson  <andersca@apple.com>
766
767         Add an autorelease() member function to RetainPtr
768         https://bugs.webkit.org/show_bug.cgi?id=133929
769
770         Reviewed by Dan Bernstein.
771
772         * wtf/RetainPtr.h:
773
774 2014-06-13  Alex Christensen  <achristensen@webkit.org>
775
776         Unreviewed disabling css jit on armv7.  It's not quite ready yet.
777
778         * wtf/Platform.h:
779         Disable css jit on armv7.
780
781 2014-06-13  Alex Christensen  <achristensen@webkit.org>
782
783         Enable css jit for armv7 on iOS.
784         https://bugs.webkit.org/show_bug.cgi?id=133890
785         <rdar://problem/17310631>
786
787         Reviewed by Andreas Kling.
788
789         * wtf/Platform.h:
790         Enable css jit for ARM thumb on iOS.
791
792 2014-06-13  Mark Hahnenberg  <mhahnenberg@apple.com>
793
794         OSR exit should barrier the Executables for all InlineCallFrames, not just those on the stack at the time of exit
795         https://bugs.webkit.org/show_bug.cgi?id=133880
796
797         Reviewed by Filip Pizlo.
798
799         * wtf/Bag.h:
800         (WTF::Bag::iterator::operator!=): Add != to the Bag iterator so we can use it in range-based iteration.
801
802 2014-06-12  Gavin Barraclough  <barraclough@apple.com>
803
804         Add support for thread/WorkQueue QoS
805         https://bugs.webkit.org/show_bug.cgi?id=130688
806
807         Reviewed by Anders Carlson & Simon Fraser.
808
809         Add the ability to mark threads as UserInteractive.
810
811         * wtf/Threading.cpp:
812         (WTF::setCurrentThreadIsUserInteractive):
813             - added method to set QoS of current thread to UserInteractive.
814         * wtf/Threading.h:
815             - added declaration.
816
817 2014-06-12  Alexey Proskuryakov  <ap@apple.com>
818
819         Fix Mac after r169880.
820
821         This revision added a C++ comment to Platform.h, which breaks sandbox profile
822         preprocessing.
823
824         Also, I do not believe that this comment was entirely accurate - we've always used
825         this technique with GCC, so there has to be more to it. So, I just removed the comment.
826
827         * wtf/Platform.h:
828
829 2014-06-11  Csaba Osztrogonác  <ossy@webkit.org>
830
831         [EFL][GTK] Ultimate fix not to have build failures
832         in the future because of "#if TARGET_OS_IPHONE" guards.
833
834         Unreviewed buildfix.
835
836         * wtf/Platform.h: Define TARGET_OS_IPHONE to 0 on EFL and GTK.
837
838 2014-06-11  Ryosuke Niwa  <rniwa@webkit.org>
839
840         Turning on DUMP_PROPERTYMAP_STATS causes a build failure
841         https://bugs.webkit.org/show_bug.cgi?id=133673
842
843         Reviewed by Andreas Kling.
844
845         Added DEFINE_GLOBAL_FOR_LOGGING to allow running a destructor in logging code
846         that needs to be enabled in release builds (e.g. for JavaScriptCore).
847
848         * wtf/StdLibExtras.h:
849
850 2014-06-09  Benjamin Poulain  <bpoulain@apple.com>
851
852         Improve CSSPrimitiveValue::customCSSText for ARMv7
853         https://bugs.webkit.org/show_bug.cgi?id=133597
854
855         Reviewed by Andreas Kling.
856
857         * wtf/RefPtr.h:
858         (WTF::RefPtr<T>::RefPtr):
859         * wtf/text/WTFString.h:
860         (WTF::String::String):
861
862 2014-06-05  Yoav Weiss  <yoav@yoav.ws>
863
864         Align srcset parser with recent spec changes
865         https://bugs.webkit.org/show_bug.cgi?id=133504
866
867         Reviewed by Darin Adler.
868
869         I've added toInt and toFloat methods to StringView, and exposed
870         charactersToInt so that they can be used by
871         HTMLSrcsetParser.cpp.
872
873         * wtf/text/WTFString.h:
874         * wtf/text/StringView.h:
875         (WTF::StringView::toInt):
876         (WTF::StringView::toFloat):
877
878 2014-06-04  Alex Christensen  <achristensen@webkit.org>
879
880         Enable WebGL on Windows.
881         https://bugs.webkit.org/show_bug.cgi?id=133503
882
883         Reviewed by Brent Fulgham.
884
885         * wtf/FeatureDefines.h:
886         Enable WebGL for AppleWin and WinCairo ports.
887
888 2014-06-01  Jer Noble  <jer.noble@apple.com>
889
890         [MSE] Appends of overlapping sample data do not clear existing samples properly.
891         https://bugs.webkit.org/show_bug.cgi?id=133435
892
893         Reviewed by Darin Adler.
894
895         Add a dump method to MediaTime, so that MediaTimes can be easily converted to strings (for logging purposes).
896
897         * wtf/MediaTime.cpp:
898         (WTF::MediaTime::dump):
899         * wtf/MediaTime.h:
900
901 2014-05-31  Anders Carlsson  <andersca@apple.com>
902
903         Add a LazyNeverDestroyed class template and use it
904         https://bugs.webkit.org/show_bug.cgi?id=133425
905
906         Reviewed by Darin Adler.
907
908         LazyNeverDestroyed is similar to NeverDestroyed, except it's lazily constructed
909         by calling construct(). This makes it useful for using inside std::call_once functions.
910         
911         * wtf/Forward.h:
912         * wtf/NeverDestroyed.h:
913         (WTF::LazyNeverDestroyed::construct):
914         (WTF::LazyNeverDestroyed::operator T&):
915         (WTF::LazyNeverDestroyed::get):
916         (WTF::LazyNeverDestroyed::asPtr):
917         (WTF::LazyNeverDestroyed::MaybeRelax::MaybeRelax):
918         * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
919         (WTF::atomicallyInitializedStaticMutex):
920         * wtf/unicode/icu/CollatorICU.cpp:
921         (WTF::cachedCollatorMutex):
922
923 2014-05-29  Alex Christensen  <achristensen@webkit.org>
924
925         Enable css jit by default on arm64.
926         https://bugs.webkit.org/show_bug.cgi?id=133246
927         <rdar://problem/17073407>
928
929         Reviewed by Benjamin Poulain.
930
931         * wtf/Platform.h:
932         Added arm64 to list of supported architectures.
933
934 2014-05-28  Filip Pizlo  <fpizlo@apple.com>
935
936         DFG::DCEPhase inserts into an insertion set in reverse, causing hilarious basic block corruption if you kill a lot of NewArrays
937         https://bugs.webkit.org/show_bug.cgi?id=133368
938
939         Reviewed by Mark Lam.
940
941         * wtf/Insertion.h:
942         (WTF::executeInsertions): This algorithm is only correct if insertions are added in the right order. Assert that the order is right.
943
944 2014-05-27  Jon Lee  <jonlee@apple.com>
945
946         Update ENABLE(MEDIA_SOURCE) on Mac
947         https://bugs.webkit.org/show_bug.cgi?id=133141
948
949         Reviewed by Darin Adler.
950
951         * wtf/FeatureDefines.h: #ifdef unneeded for Mac since it's covered in the .xcconfigs.
952
953 2014-05-27  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
954
955         Remove BLOB guards
956         https://bugs.webkit.org/show_bug.cgi?id=132863
957
958         Reviewed by Csaba Osztrogonác.
959
960         * wtf/FeatureDefines.h:
961
962 2014-05-27  Gwang Yoon Hwang  <yoon@igalia.com>
963
964         [GLIB] RunLoop::dispatch always executes the function on the main thread instead of the target thread.
965         https://bugs.webkit.org/show_bug.cgi?id=133291
966
967         Reviewed by Carlos Garcia Campos.
968
969         GMainLoopSource::schedule[AfterDelay] must be used with the appropriate
970         GMainContext. Because current implementations in RunLoopGtk passes nullptr
971         instead of its runLoopContext when using GMainLoopSource, all of dispatched
972         functions are executed on the main thread regardless of which runloops is used.
973
974         This patch fixes the issue by passing the m_runLoopContext instead the default
975         parameter to the GMainLoopSource::schedule[AfterDelay].
976
977         * wtf/gtk/RunLoopGtk.cpp:
978         (WTF::RunLoop::wakeUp):
979         (WTF::RunLoop::TimerBase::start):
980
981 2014-05-26  Darin Adler  <darin@apple.com>
982
983         Class name matching should use ASCII case-insensitive matching, not Unicode case folding
984         https://bugs.webkit.org/show_bug.cgi?id=133292
985
986         Reviewed by Anders Carlsson.
987
988         * wtf/text/AtomicString.cpp:
989         (WTF::AtomicString::addSlowCase): Change to take references instead of pointers since these
990         arguments can never be null.
991         (WTF::AtomicString::lower): Rearranged slightly to use PassRef in a more efficient but
992         slightly uglier way.
993         (WTF::AtomicString::convertToASCIILowercase): Added.
994         * wtf/text/AtomicString.h: Updated for above changes.
995
996         * wtf/text/StringImpl.cpp:
997         (WTF::StringImpl::convertToASCIILowercase): Added.
998         * wtf/text/StringImpl.h: Updated for above.
999
1000         * wtf/text/WTFString.cpp:
1001         (WTF::String::convertToASCIILowercase): Added.
1002         * wtf/text/WTFString.h: Updated for above.
1003
1004 2014-05-22  Zan Dobersek  <zdobersek@igalia.com>
1005
1006         Add the partial specialization for VectorTraits<std::unique_ptr<P>>
1007         https://bugs.webkit.org/show_bug.cgi?id=133083
1008
1009         Reviewed by Andreas Kling.
1010
1011         * wtf/VectorTraits.h: Like for RefPtr<P>, OwnPtr<P> and Ref<P>, the partial
1012         specialization for VectorTraits<std::unique_ptr<P>> should exist and should
1013         inherit from SimpleClassVector.
1014
1015 2014-05-20  Geoffrey Garen  <ggaren@apple.com>
1016
1017         Rolled out <http://trac.webkit.org/changeset/166184>
1018         https://bugs.webkit.org/show_bug.cgi?id=133144
1019
1020         Reviewed by Gavin Barraclough.
1021
1022         It caused a performance regression.
1023
1024         * wtf/FastMalloc.cpp:
1025         (WTF::TCMalloc_PageHeap::runScavengerThread):
1026         * wtf/Threading.h:
1027         * wtf/ThreadingPthreads.cpp:
1028         (WTF::createThreadInternal):
1029         (WTF::setCurrentThreadQOSUtility): Deleted.
1030         * wtf/ThreadingWin.cpp:
1031         (WTF::setCurrentThreadQOSUtility): Deleted.
1032
1033 2014-05-20  Jer Noble  <jer.noble@apple.com>
1034
1035         [Mac] AVAssets are never destroyed; lack of an autorelease pool when calling callOnMainThread.
1036         https://bugs.webkit.org/show_bug.cgi?id=133130
1037
1038         Reviewed by Geoff Garen.
1039
1040         Wrap the function to be called in an autorelease pool, so that autoreleased objects are cleaned
1041         up immediately after the end of the function.
1042
1043         * wtf/mac/MainThreadMac.mm:
1044         (WTF::timerFired):
1045
1046 2014-05-18  Rik Cabanier  <cabanier@adobe.com>
1047
1048         support for navigator.hardwareConcurrency
1049         https://bugs.webkit.org/show_bug.cgi?id=132588
1050
1051         Reviewed by Filip Pizlo.
1052
1053         * wtf/FeatureDefines.h:
1054
1055 2014-05-14  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>
1056
1057         Remove CSS_STICKY_POSITION guards
1058         https://bugs.webkit.org/show_bug.cgi?id=132676
1059
1060         Reviewed by Simon Fraser.
1061
1062         * wtf/FeatureDefines.h:
1063
1064 2014-05-13  Simon Fraser  <simon.fraser@apple.com>
1065
1066         [iOS WK2] background-attachment:fixed behaves very poorly
1067         https://bugs.webkit.org/show_bug.cgi?id=132881
1068         <rdar://problem/16789526>
1069
1070         Reviewed by Beth Dakin.
1071         
1072         Remove ENABLE_FAST_MOBILE_SCROLLING. Ports can use the fixedBackgroundsPaintRelativeToDocument
1073         setting now.
1074
1075         * wtf/FeatureDefines.h:
1076
1077 2014-05-08  Alexey Proskuryakov  <ap@apple.com>
1078
1079         Automatically zip document bundles used via File API
1080         https://bugs.webkit.org/show_bug.cgi?id=132713
1081         <rdar://problem/13397892>
1082
1083         Reviewed by Anders Carlsson.
1084
1085         * wtf/FeatureDefines.h: Added ENABLE_FILE_REPLACEMENT for Mac.
1086
1087 2014-05-07  Filip Pizlo  <fpizlo@apple.com>
1088
1089         UNREACHABLE_FOR_PLATFORM() is meant to be a release crash.
1090
1091         Rubber stamped by Mark Hahnenberg..
1092
1093         * wtf/Assertions.h:
1094         (UNREACHABLE_FOR_PLATFORM):
1095
1096 2014-05-06  Alberto Garcia  <berto@igalia.com>
1097
1098         There is no HW_AVAILCPU on FreeBSD, NetBSD, and OpenBSD
1099         https://bugs.webkit.org/show_bug.cgi?id=132542
1100
1101         Reviewed by Michael Saboff.
1102
1103         Use sysconf() to get the number of processor cores.
1104
1105         * wtf/NumberOfCores.cpp:
1106         (WTF::numberOfProcessorCores):
1107
1108 2014-05-04  Darin Adler  <darin@apple.com>
1109
1110         RetainPtr: Use adoptCF function instead of AdoptCF constructor argument
1111         https://bugs.webkit.org/show_bug.cgi?id=80222
1112
1113         Reviewed by Alexey Proskuryakov.
1114
1115         All the clients are gone, so we can now remove AdoptCF and AdoptNS.
1116
1117         * wtf/RetainPtr.h: Removed the public constructors that let you specify AdoptCF
1118         and AdoptNS. Instead, made the adoptCF and adoptNS functions be friends and use
1119         a private constructor that takes an Adopt argument.
1120         (WTF::adoptCF): Moved the Objective-C class check in here.
1121         (WTF::adoptNS): Moved the code to deal with the CFRetain for garbage collection
1122         in here; it used to be spread across the constructor and adoptNSReference.
1123
1124 2014-05-04  Andreas Kling  <akling@apple.com>
1125
1126         Optimize JSRopeString for resolving directly to AtomicString.
1127         <https://webkit.org/b/132548>
1128
1129         Add AtomicString::find([LU]Char*, unsigned length) helpers for finding
1130         an existing AtomicString without a StringImpl on hand.
1131
1132         Reviewed by Filip Pizlo.
1133
1134         * wtf/text/AtomicString.h:
1135         * wtf/text/AtomicString.cpp:
1136         (WTF::AtomicString::find):
1137
1138 2014-05-01  Brent Fulgham  <bfulgham@apple.com>
1139
1140         Fix handling of attributes prior to compiling shader
1141         https://bugs.webkit.org/show_bug.cgi?id=132430
1142
1143         Reviewed by Dean Jackson.
1144
1145         WebGL programs that called bindAttribLocations prior to compiling shader sources
1146         would perform the bind using the non-hashed symbol name, but would later create
1147         the attributes as hashed names. Consequently, the program would refer to
1148         attributes that were never actually part of any shader, resulting in some amazing
1149         display artifacts.
1150
1151         This patch adds a dictionary of hashed symbol names so that we can tell the WebGL
1152         program the proper name that will be used when the shader is eventually compiled,
1153         allowing the WebGL program to link against the proper symbol after compiling and
1154         linking completes.
1155
1156         * wtf/HexNumber.h:
1157         (WTF::appendUnsigned64AsHex): Add uint64_t-compatible hex->string converter.
1158
1159 2014-04-30  Geoffrey Garen  <ggaren@apple.com>
1160
1161         Link against bmalloc in production builds
1162         https://bugs.webkit.org/show_bug.cgi?id=132413
1163
1164         Reviewed by Sam Weinig.
1165
1166         Production builders have been configured to handle this, so let's build
1167         it.
1168
1169         * Configurations/WTF.xcconfig:
1170
1171 2014-05-01  Ryuan Choi  <ryuan.choi@samsung.com>
1172
1173         [EFL] There are many warnings with software backend
1174         https://bugs.webkit.org/show_bug.cgi?id=132422
1175
1176         Reviewed by Gyuyoung Kim.
1177
1178         * wtf/efl/EflTypedefs.h: Added Ecore_X_Window typedef
1179
1180 2014-04-30  Simon Fraser  <simon.fraser@apple.com>
1181
1182         Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
1183         https://bugs.webkit.org/show_bug.cgi?id=132396
1184
1185         Reviewed by Eric Carlson.
1186
1187         Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.
1188
1189         * wtf/FeatureDefines.h:
1190
1191 2014-04-30  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>
1192
1193         [GTK][GStreamer] Remove unnecessary GLIB_CHECK_VERSION #ifdefs
1194         https://bugs.webkit.org/show_bug.cgi?id=132390
1195
1196         Reviewed by Philippe Normand.
1197
1198         Since EFL port use GLib 2.38 and GTK+, 2.33.2, I assume it is OK
1199         remove, in GTK+ and GST, the existing glib version guards.
1200
1201         This code was rollback from r149879 because Qt MIPS used it. But since
1202         Qt is gone, it is safe to remove now.
1203
1204         * wtf/gobject/GRefPtr.cpp:
1205         (WTF::refGPtr): Deleted.
1206         (WTF::derefGPtr): Deleted.
1207
1208 2014-04-29  Alex Christensen  <achristensen@webkit.org>
1209
1210         [WinCairo] Switch video from GStreamer to Media Foundation.
1211         https://bugs.webkit.org/show_bug.cgi?id=132358
1212
1213         Reviewed by Brent Fulgham.
1214
1215         * WTF.vcxproj/WTF.vcxproj:
1216         Removed dependencies on GStreamer.
1217         * wtf/Platform.h:
1218         Use Media Foundation instead of GStreamer and GLib.
1219
1220 2014-04-29  Filip Pizlo  <fpizlo@apple.com>
1221
1222         Unreviewed, fix cloop build.
1223
1224         * wtf/Platform.h:
1225
1226 2014-04-29  Michael Saboff  <msaboff@apple.com>
1227
1228         For DARWIN platforms, use system temporary directory for DataLog output
1229         https://bugs.webkit.org/show_bug.cgi?id=132346
1230
1231         Reviewed by Geoffrey Garen.
1232
1233         Added code to call confstr() to access the process's temporary directory to use that
1234         location instead of /tmp/.  Put the code behind #ifdef DATA_LOG_TO_DARWIN_TEMP_DIR.
1235
1236         * wtf/DataLog.cpp:
1237         (WTF::initializeLogFileOnce):
1238
1239 2014-04-25  Filip Pizlo  <fpizlo@apple.com>
1240
1241         Figure out how many cores are available for realsies.
1242
1243         Rubber stamped by Andreas Kling.
1244         
1245         HW_AVAILCPU is more canonical than HW_NCPU. For example if you use hacks to tell Darwin
1246         to make it seem like there are fewer CPUs, HW_AVAILCPU will change but HW_NCPU won't.
1247         HW_NCPU doesn't reflect how much actual paralellism you'll get; it's merely reporting
1248         facts about the machine you're running on. HW_AVAILCPU is almost always what WebKit
1249         wants since it uses this information to decide how many threads to launch for various
1250         things.
1251
1252         * wtf/NumberOfCores.cpp:
1253         (WTF::numberOfProcessorCores):
1254
1255 2014-04-22  Brent Fulgham  <bfulgham@apple.com>
1256
1257         [Win] Support Python 2.7 in Cygwin
1258         https://bugs.webkit.org/show_bug.cgi?id=132023
1259
1260         Reviewed by Michael Saboff.
1261
1262         * WTF.vcxproj/WTFGenerated.make: Use proper path to Python.
1263
1264 2014-04-21  Eric Carlson  <eric.carlson@apple.com>
1265
1266         [Mac] implement WebKitDataCue
1267         https://bugs.webkit.org/show_bug.cgi?id=131799
1268
1269         Reviewed by Dean Jackson.
1270
1271         * wtf/FeatureDefines.h: Define ENABLE_DATACUE_VALUE.
1272
1273 2014-04-21  Darin Adler  <darin@apple.com>
1274
1275         Add HashSet::takeAny
1276         https://bugs.webkit.org/show_bug.cgi?id=131928
1277
1278         Reviewed by Benjamin Poulain.
1279
1280         * wtf/HashSet.h: Added an overload of take that takes an iterator,
1281         and used it to implement both the existing take and new takeAny functions.
1282
1283 2014-04-20  Andreas Kling  <akling@apple.com>
1284
1285         Speed up jsStringWithCache() through WeakGCMap inlining.
1286         <https://webkit.org/b/131923>
1287
1288         Add HashMap::fastAdd(), which is the same as add() except we'll tell
1289         the compiler to aggressively inline it.
1290
1291         Reviewed by Darin Adler.
1292
1293         * wtf/HashMap.h:
1294         * wtf/HashTable.h:
1295
1296 2014-04-19  Filip Pizlo  <fpizlo@apple.com>
1297
1298         Make it easier to check if an integer sum would overflow
1299         https://bugs.webkit.org/show_bug.cgi?id=131900
1300
1301         Reviewed by Darin Adler.
1302
1303         * wtf/CheckedArithmetic.h:
1304         (WTF::checkedSum):
1305         (WTF::sumOverflows):
1306
1307 2014-04-18  Commit Queue  <commit-queue@webkit.org>
1308
1309         Unreviewed, rolling out r167527.
1310         https://bugs.webkit.org/show_bug.cgi?id=131883
1311
1312         Broke 32-bit build (Requested by ap on #webkit).
1313
1314         Reverted changeset:
1315
1316         "[Mac] implement WebKitDataCue"
1317         https://bugs.webkit.org/show_bug.cgi?id=131799
1318         http://trac.webkit.org/changeset/167527
1319
1320 2014-04-18  Eric Carlson  <eric.carlson@apple.com>
1321
1322         [Mac] implement WebKitDataCue
1323         https://bugs.webkit.org/show_bug.cgi?id=131799
1324
1325         Reviewed by Dean Jackson.
1326
1327         * wtf/FeatureDefines.h: Define ENABLE_DATACUE_VALUE.
1328
1329 2014-04-18  Martin Robinson  <mrobinson@igalia.com>
1330
1331         Remove DynamicAnnotations.h?
1332         https://bugs.webkit.org/show_bug.cgi?id=131754
1333
1334         Reviewed by Simon Fraser.
1335
1336         This file, which helped support tools like Valgrind was unused.
1337
1338         * WTF.vcxproj/WTF.vcxproj: Remove references to the files.
1339         * WTF.vcxproj/WTF.vcxproj.filters: Remove references to the files.
1340         * WTF.xcodeproj/project.pbxproj: Remove references to the files.
1341         * wtf/CMakeLists.txt: Remove references to the files.
1342         * wtf/DynamicAnnotations.cpp: Removed.
1343         * wtf/DynamicAnnotations.h: Removed.
1344         * wtf/ThreadSafeRefCounted.h: Remove references to the files.
1345         * wtf/text/StringStatics.cpp: Remove references to the files.
1346
1347 2014-04-18  Philippe Normand  <pnormand@igalia.com>
1348
1349         Remove NETWORK_INFO support
1350         https://bugs.webkit.org/show_bug.cgi?id=131841
1351
1352         Reviewed by Gyuyoung Kim.
1353
1354         * wtf/FeatureDefines.h:
1355
1356 2014-04-17  Filip Pizlo  <fpizlo@apple.com>
1357
1358         Don't include CompilationThread.h from StringImpl.h
1359         https://bugs.webkit.org/show_bug.cgi?id=131817
1360
1361         Reviewed by Simon Fraser.
1362
1363         * wtf/CompilationThread.h:
1364         * wtf/StdLibExtras.h:
1365         * wtf/text/StringImpl.h:
1366
1367 2014-04-17  Darin Adler  <darin@apple.com>
1368
1369         Use HashMap<unique_ptr> and Vector<unique_ptr> instead of deprecatedDeleteAllValues
1370         https://bugs.webkit.org/show_bug.cgi?id=73757
1371
1372         Reviewed by Brent Fulgham.
1373
1374         * wtf/Vector.h:
1375         (WTF::deprecatedDeleteAllValues): Deleted.
1376
1377 2014-04-17  Darin Adler  <darin@apple.com>
1378
1379         Add separate flag for IndexedDatabase in workers since the current implementation is not threadsafe
1380         https://bugs.webkit.org/show_bug.cgi?id=131785
1381         rdar://problem/16003108
1382
1383         Reviewed by Brady Eidson.
1384
1385         * wtf/FeatureDefines.h: Added INDEXED_DATABASE_IN_WORKERS.
1386
1387 2014-04-16  Simon Fraser  <simon.fraser@apple.com>
1388
1389         Don't include CryptographicallyRandomNumber.h in StringImpl.h
1390         https://bugs.webkit.org/show_bug.cgi?id=131772
1391
1392         Reviewed by Sam Weinig.
1393
1394         * wtf/text/StringImpl.h:
1395
1396 2014-04-16  Gavin Barraclough  <barraclough@apple.com>
1397
1398         Update to pthread QoS SPI
1399         https://bugs.webkit.org/show_bug.cgi?id=131753
1400
1401         Rubber stamped by Benjamin Poulain
1402
1403         * wtf/ThreadingPthreads.cpp:
1404         (WTF::setCurrentThreadQOSUtility):
1405
1406 2014-04-14  Geoffrey Garen  <ggaren@apple.com>
1407
1408         WTF should have an optional mbmalloc target so we can benchmark FastMalloc
1409         https://bugs.webkit.org/show_bug.cgi?id=131662
1410
1411         Reviewed by Darin Adler.
1412
1413         * WTF.xcodeproj/project.pbxproj: Added the target.
1414         * wtf/mbmalloc.cpp: Added. Implements the libmbmalloc.dylib API required
1415         by MallocBench.
1416
1417 2014-04-16  Darin Adler  <darin@apple.com>
1418
1419         Make Vector::takeLast work with move-only types (and optimize for types where move is faster)
1420         https://bugs.webkit.org/show_bug.cgi?id=131735
1421
1422         Reviewed by Alexey Proskuryakov.
1423
1424         * wtf/Vector.h:
1425         (WTF::Vector::takeLast): Added a missing std::move. All the other take functions have it.
1426
1427 2014-04-14  Mark Lam  <mark.lam@apple.com>
1428
1429         monotonicallyIncreasingTime() should only initialize its static timebaseInfo once.
1430         <https://webkit.org/b/131630>
1431
1432         Reviewed by Filip Pizlo.
1433
1434         The current initialization of the static field is not thread safe.
1435
1436         * wtf/CurrentTime.cpp:
1437         (WTF::monotonicallyIncreasingTime):
1438
1439 2014-04-14  Benjamin Poulain  <benjamin@webkit.org>
1440
1441         [JSC] Improve the call site of string comparison in some hot path
1442         https://bugs.webkit.org/show_bug.cgi?id=131605
1443
1444         Reviewed by Darin Adler.
1445
1446         * wtf/text/StringImpl.cpp:
1447         (WTF::stringImplContentEqual):
1448         Inline that function to reduce the call overhead for JSC.
1449         This is only inlined twice, it is not catastrophic for our binary.
1450
1451 2014-04-13  Andy Estes  <aestes@apple.com>
1452
1453         Relax adoption requirements of RefCounted objects that are NeverDestroyed
1454         https://bugs.webkit.org/show_bug.cgi?id=131593
1455
1456         Reviewed by Dan Bernstein.
1457
1458         RefCounted objects that are created by NeverDestroyed<> won't have a
1459         RefPtr adopting them, so call relaxAdoptionRequirements().
1460
1461         * wtf/NeverDestroyed.h:
1462         (WTF::NeverDestroyed::NeverDestroyed):
1463         (WTF::NeverDestroyed::MaybeRelax::MaybeRelax):
1464
1465 2014-04-10  Brent Fulgham  <bfulgham@apple.com>
1466
1467         [Win] Clean up some 64-bit warnings from Visual Studio analyzer
1468         https://bugs.webkit.org/show_bug.cgi?id=131514
1469
1470         Reviewed by Tim Horton.
1471
1472         * WTF.vcxproj/WTF.vcxproj: Use correct platform settings for
1473         64-bit build.
1474         * config.h: Ditto.
1475         * wtf/CurrentTime.cpp:
1476         (WTF::highResUpTime): Resolve warning about deprecated API.
1477         * wtf/StackBounds.cpp:
1478         (WTF::StackBounds::initialize): Silence warning about
1479         an uninitialized variable.
1480
1481 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
1482
1483         Rolled back in r166972.
1484
1485         This time, we conditionally exclude linking against bmalloc in Production
1486         builds. Production builds will not be able to link against bmalloc
1487         until the Production build system has been updated to build bmalloc.
1488
1489             WTF should link against bmalloc
1490             https://bugs.webkit.org/show_bug.cgi?id=131403
1491
1492             Reviewed by Mark Rowe.
1493
1494             * Configurations/WTF.xcconfig:
1495             * WTF.xcodeproj/project.pbxproj:
1496
1497 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
1498
1499         Put bmalloc headers in the right place
1500         https://bugs.webkit.org/show_bug.cgi?id=131464
1501
1502         Reviewed by Mark Rowe.
1503
1504         * wtf/FastMalloc.cpp: Use "<bmalloc/...>" syntax so we can find our
1505         headers in <header-root>/usr/local/include/bmalloc/.
1506
1507 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
1508
1509         Rolled back out r166972.
1510
1511         The production buildbots are still broken because the build-root script
1512         doesn't build bmalloc.
1513
1514         * WTF.xcodeproj/project.pbxproj:
1515
1516 2014-04-09  Geoffrey Garen  <ggaren@apple.com>
1517
1518         Rolled back in r166972.
1519
1520         The iOS buildbot's scripts have been updated to build bmalloc, so the
1521         build should now succeed on the bot.
1522
1523         Also renamed "Frameworks" to "Libraries" as suggested in a review comment.
1524
1525             WTF should link against bmalloc
1526             https://bugs.webkit.org/show_bug.cgi?id=131403
1527
1528             Reviewed by Michael Saboff.
1529
1530             This is required to build successfullly with bmalloc enabled.
1531
1532             * WTF.xcodeproj/project.pbxproj:
1533
1534 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
1535
1536         Stop linking WTF against bmalloc.
1537
1538         Reviewed by Enrica Casucci.
1539
1540         This seems to have broken an iOS buildbot script. Disable it for now
1541         until we can fix the script.
1542
1543         * WTF.xcodeproj/project.pbxproj:
1544
1545 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
1546
1547         WTF should link against bmalloc
1548         https://bugs.webkit.org/show_bug.cgi?id=131403
1549
1550         Reviewed by Michael Saboff.
1551
1552         This is required to build successfullly with bmalloc enabled.
1553
1554         * WTF.xcodeproj/project.pbxproj:
1555
1556 2014-04-08  Geoffrey Garen  <ggaren@apple.com>
1557
1558         Added a bmalloc back-end for FastMalloc
1559         https://bugs.webkit.org/show_bug.cgi?id=131387
1560
1561         Reviewed by Andreas Kling.
1562
1563         We'll need to rethink some things if we adopt this back-end. For example,
1564         fastMallocSize() and fastMallocGoodSize() are no longer real things. But,
1565         this is enough to test for now.
1566
1567         * wtf/FastMalloc.cpp:
1568         (WTF::fastMalloc):
1569         (WTF::fastCalloc):
1570         (WTF::fastRealloc):
1571         (WTF::fastFree):
1572         (WTF::fastMallocSize):
1573         (WTF::fastMallocGoodSize):
1574         (WTF::tryFastMalloc):
1575         (WTF::tryFastRealloc):
1576         (WTF::tryFastCalloc):
1577         (WTF::releaseFastMallocFreeMemory):
1578         (WTF::fastMallocStatistics):
1579
1580 2014-04-08  Andres Gomez  <agomez@igalia.com>
1581
1582         [GTK] [EFL] Build fails with GCC < 4.8.x
1583         https://bugs.webkit.org/show_bug.cgi?id=130585
1584
1585         Reviewed by Martin Robinson.
1586
1587         The behavior in lower versions of GCC seem to be related to
1588         http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#2132.
1589
1590         Provided explicit casts for the failing ambiguous overloads.
1591
1592         * wtf/gtk/MainThreadGtk.cpp:
1593         (WTF::scheduleDispatchFunctionsOnMainThread):
1594         * wtf/gtk/RunLoopGtk.cpp:
1595         (WTF::RunLoop::wakeUp): Provided lambda with a RefPtr instead of
1596         ref and de-referring.
1597
1598 2014-04-04  Mark Lam  <mark.lam@apple.com>
1599
1600         Date object needs to check for ES5 15.9.1.14 TimeClip limit.
1601         <https://webkit.org/b/131248>
1602
1603         Reviewed by Mark Hahnenberg.
1604
1605         * wtf/DateMath.cpp:
1606         - Moved the definition of maxECMAScriptTime to the .h file so that we
1607           can use it in other files as well.
1608         (WTF::msToYear):
1609         - Removed a stale comment for parseDateFromNullTerminatedCharacters().
1610         * wtf/DateMath.h:
1611
1612 2014-04-04  Mark Hahnenberg  <mhahnenberg@apple.com>
1613
1614         Enhanced GC logging
1615         https://bugs.webkit.org/show_bug.cgi?id=131246
1616
1617         Reviewed by Geoff Garen.
1618
1619         Remove OBJECT_MARK_LOGGING
1620
1621         * wtf/FeatureDefines.h:
1622         * wtf/Platform.h:
1623
1624 2014-04-03  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
1625
1626         [EFL] Enable CSS JIT again, it works fine after r166666.
1627
1628         Reviewed by Csaba Osztrogonác.
1629
1630         * wtf/Platform.h:
1631
1632 2014-04-03  Javier Fernandez  <jfernandez@igalia.com>
1633
1634         [GTK][Cmake] Enable CSS JIT
1635         https://bugs.webkit.org/show_bug.cgi?id=131022
1636
1637         Reviewed by Martin Robinson.
1638
1639         * wtf/Platform.h: Enable CSS JIT for GTK port.
1640
1641 2014-04-02  Frédéric Wang  <fred.wang@free.fr>
1642
1643         Operator stretching: read the Open Type MATH table
1644         https://bugs.webkit.org/show_bug.cgi?id=130324
1645
1646         Reviewed by Chris Fleizach.
1647
1648         * wtf/Platform.h: enable OPENTYPE_MATH on platforms that can read OpenType tables.
1649
1650 2014-04-02  Alex Christensen  <achristensen@webkit.org>
1651
1652         [WinCairo] Build fix with GMainLoopSource.
1653         https://bugs.webkit.org/show_bug.cgi?id=131089
1654
1655         Reviewed by Carlos Garcia Campos.
1656
1657         * wtf/gobject/GMainLoopSource.cpp:
1658         Only compile if glib is used, which fixes compile errors with video disabled in WinCairo.
1659         * wtf/gobject/GMainLoopSource.h:
1660         Export the GMainLoopSource functions to WTF.dll to link with where they are called in the GStreamer code.
1661         Also removed spaces to appease style bot.
1662
1663 2014-04-01  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>
1664
1665         [EFL] REGRESSION(166569): It made DoYouEvenBench/Full.html, CSS/QuerySelector.html and Dromaeo performance tests crash
1666         https://bugs.webkit.org/show_bug.cgi?id=131039
1667
1668         Reviewed by Csaba Osztrogonác.
1669
1670         * wtf/Platform.h: Disable CSS JIT on EFL until proper fix.
1671
1672 2014-04-01  Commit Queue  <commit-queue@webkit.org>
1673
1674         Unreviewed, rolling out r166583.
1675         https://bugs.webkit.org/show_bug.cgi?id=131040
1676
1677         It's causing frequent crashes when running Layout Tests
1678         (Requested by svillar on #webkit).
1679
1680         Reverted changeset:
1681
1682         "[GTK][Cmake] Enable CSS JIT"
1683         https://bugs.webkit.org/show_bug.cgi?id=131022
1684         http://trac.webkit.org/changeset/166583
1685
1686 2014-04-01  Javier Fernandez  <jfernandez@igalia.com>
1687
1688         [GTK][Cmake] Enable CSS JIT
1689         https://bugs.webkit.org/show_bug.cgi?id=131022
1690
1691         Reviewed by Martin Robinson.
1692
1693         * wtf/Platform.h: Enable CSS JIT for GTK port.
1694
1695 2014-04-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>
1696
1697         [CMake][EFL] Enable CSS JIT
1698         https://bugs.webkit.org/show_bug.cgi?id=131010
1699
1700         Reviewed by Benjamin Poulain.
1701
1702         * wtf/Platform.h: Enable CSS JIT for EFL port.
1703
1704 2014-03-31  Dean Jackson  <dino@apple.com>
1705
1706         Remove WEB_ANIMATIONS
1707         https://bugs.webkit.org/show_bug.cgi?id=130989
1708
1709         Reviewed by Simon Fraser.
1710
1711         Remove this feature flag until we plan to implement.
1712
1713         * wtf/FeatureDefines.h:
1714
1715 2014-03-31  Alex Christensen  <achristensen@webkit.org>
1716
1717         Preparation for using Soup on Windows.
1718         https://bugs.webkit.org/show_bug.cgi?id=130615
1719
1720         Reviewed by Carlos Garcia Campos.
1721
1722         * WTF.vcxproj/WTF.vcxproj:
1723         * WTF.vcxproj/WTF.vcxproj.filters:
1724         Add all gobject source files in WinCairo build.
1725         * wtf/gobject/GRefPtr.h:
1726         Export refGPtr and derefGPtr overloads in WTF.dll to fix linker errors with WebKit.dll when using soup.
1727
1728 2014-03-31  Zan Dobersek  <zdobersek@igalia.com>
1729
1730         Use std::unique_ptr in WTF::CompressedVector, WTF::GenericCompressedData
1731         https://bugs.webkit.org/show_bug.cgi?id=130737
1732
1733         Switch to using std::unique_ptr instead of OwnPtr and PassOwnPtr
1734         for the CompressedVector and GenericCompressedData classes.
1735
1736         * wtf/Compression.cpp:
1737         (WTF::GenericCompressedData::create):
1738         * wtf/Compression.h:
1739         (WTF::CompressedVector::create):
1740         (WTF::CompressibleVector::decompressIfNecessary):
1741
1742 2014-03-28  Alexey Proskuryakov  <ap@apple.com>
1743
1744         [Mac] Enable async text input implementation
1745         https://bugs.webkit.org/show_bug.cgi?id=130856
1746
1747         Reviewed by Sam Weinig.
1748
1749         * wtf/Platform.h: Added a USE macro definition.
1750
1751 2014-03-28  peavo@outlook.com  <peavo@outlook.com>
1752
1753         Null pointer crash in String::append(UChar).
1754         https://bugs.webkit.org/show_bug.cgi?id=130900
1755
1756         Reviewed by Michael Saboff.
1757
1758         * wtf/text/WTFString.cpp:
1759         (WTF::String::append): Check and initialize m_impl member first, to avoid null pointer crash.
1760
1761 2014-03-27  Commit Queue  <commit-queue@webkit.org>
1762
1763         Unreviewed, rolling out r166360.
1764         https://bugs.webkit.org/show_bug.cgi?id=130869
1765
1766         Seems to have broken PLT (Requested by ap on #webkit).
1767
1768         Reverted changeset:
1769
1770         "Connection::dispatchOneMessage() can be re-entered while
1771         handling Cmd-key menu"
1772         https://bugs.webkit.org/show_bug.cgi?id=130767
1773         http://trac.webkit.org/changeset/166360
1774
1775 2014-03-27  Alexey Proskuryakov  <ap@apple.com>
1776
1777         Connection::dispatchOneMessage() can be re-entered while handling Cmd-key menu
1778         equivalents, ASSERT(!_data->_keyDownEventBeingResent)
1779         https://bugs.webkit.org/show_bug.cgi?id=130767
1780         <rdar://problem/16307487>
1781
1782         Reviewed by Darin Adler.
1783
1784         Changed RunLoop to wake up and fire timers only in default run loop mode by default,
1785         and added an ability to add more modes (can't use AppKit symbols in WTF).
1786
1787         In addition to this bug, the change also blocks modal alerts from appearing under
1788         menus during menu tracking.
1789
1790         * wtf/RunLoop.h:
1791         * wtf/cf/RunLoopCF.cpp:
1792         (WTF::RunLoop::RunLoop):
1793         (WTF::RunLoop::addModeForWakeUpAndTimers):
1794         (WTF::RunLoop::TimerBase::start):
1795
1796 2014-03-26  Zan Dobersek  <zdobersek@igalia.com>
1797
1798         Unreviewed. Removing the remaining Automake cruft.
1799
1800         * GNUmakefile.list.am: Removed.
1801
1802 2014-03-25  Martin Robinson  <mrobinson@igalia.com>
1803
1804         [GTK] Remove the autotools build
1805         https://bugs.webkit.org/show_bug.cgi?id=130717
1806
1807         Reviewed by Anders Carlsson.
1808
1809         * GNUmakefile.am: Removed.
1810         * config.h: Removed references to the autotools configure file.
1811
1812 2014-03-25  Gabor Rapcsanyi  <rgabor@webkit.org>
1813
1814         [ARM64] GCC generates wrong code with -O2 flag in WTF::weakCompareAndSwap
1815         https://bugs.webkit.org/show_bug.cgi?id=130500
1816
1817         Reviewed by Filip Pizlo.
1818
1819         Set the first operand to the exact register in the inline assembly with GCC.
1820
1821         * wtf/Atomics.h:
1822         (WTF::weakCompareAndSwap):
1823
1824 2014-03-25  Gabor Rapcsanyi  <rgabor@webkit.org>
1825
1826         [EFL] Add ARM64 build support
1827         https://bugs.webkit.org/show_bug.cgi?id=130506
1828
1829         Rubber stamped by Gyuyoung Kim.
1830
1831         * wtf/Platform.h: Set WTF_CPU_ARM64 when __aarch64__ is defined.
1832
1833 2014-03-24  Andy Estes  <aestes@apple.com>
1834
1835         Fix the iOS build.
1836
1837         * wtf/ThreadingPthreads.cpp:
1838         (WTF::createThreadInternal):
1839         (WTF::setCurrentThreadQOSUtility):
1840
1841 2014-03-24  Gavin Barraclough  <barraclough@apple.com>
1842
1843         Add support for thread QoS
1844         https://bugs.webkit.org/show_bug.cgi?id=130688
1845
1846         Speculative EFL build fix.
1847
1848         * wtf/ThreadingPthreads.cpp:
1849         (WTF::setCurrentThreadQOSUtility):
1850
1851 2014-03-24  Gavin Barraclough  <barraclough@apple.com>
1852
1853         Add support for thread QoS
1854         https://bugs.webkit.org/show_bug.cgi?id=130688
1855
1856         Reviewed by Andreas Kling.
1857
1858         * wtf/FastMalloc.cpp:
1859         (WTF::TCMalloc_PageHeap::runScavengerThread):
1860             - block freeing is a utility activity.
1861         * wtf/Threading.h:
1862             - declaration.
1863         * wtf/ThreadingPthreads.cpp:
1864         (WTF::createThreadInternal):
1865             - default to interactive.
1866         (WTF::setCurrentThreadQOSUtility):
1867             - implementation.
1868         * wtf/ThreadingWin.cpp:
1869         (WTF::setCurrentThreadQOSUtility):
1870             - no-op implementation.
1871
1872 2014-03-23  Hyowon Kim  <hw1008.kim@samsung.com>
1873
1874         Move all EFL typedefs into EflTypedefs.h.
1875         https://bugs.webkit.org/show_bug.cgi?id=130511
1876
1877         Reviewed by Gyuyoung Kim.
1878
1879         * wtf/Platform.h: include EflTypedefs.h.
1880         * wtf/efl/EflTypedefs.h: Added.
1881         * wtf/efl/RefPtrEfl.h: Remove EFL typedefs.
1882
1883 2014-03-22  Darin Adler  <darin@apple.com>
1884
1885         Remove String::deprecatedCharacters
1886         https://bugs.webkit.org/show_bug.cgi?id=126854
1887
1888         Reviewed by Sam Weinig.
1889
1890         * wtf/text/StringBuilder.cpp:
1891         (WTF::StringBuilder::reifyString): Removed code to update 16-bit shadow.
1892
1893         * wtf/text/StringBuilder.h: Removed deprecatedCharacters.
1894         (WTF::StringBuilder::StringBuilder): Removed m_valid16BitShadowLength.
1895         (WTF::StringBuilder::clear): Removed code to clear m_valid16BitShadowLength.
1896         (WTF::StringBuilder::swap): Removed code to swap m_valid16BitShadowLength.
1897
1898         * wtf/text/StringImpl.cpp:
1899         (WTF::StringImpl::~StringImpl): Removed code to free m_copyData16.
1900         (WTF::StringImpl::upper): Use StringView::upconvertedCharacters for slow case.
1901         (WTF::StringImpl::lower): Ditto.
1902         (WTF::StringImpl::find): Use characters8/16 rather than deprecatedCharacters.
1903         Added an 8-bit code path to one of the overloads. Might want to revisit later
1904         to decide whether to use templates instead of copy/paste, or even use StringView
1905         to cut down on duplicate code paths.
1906         (WTF::StringImpl::findIgnoringCase): Ditto.
1907         (WTF::StringImpl::sizeInBytes): Remove code to handle has16BitShadow case.
1908         (WTF::equalIgnoringNullity): Added. To be called by the Vector template in the header.
1909
1910         * wtf/text/StringImpl.h: Removed deprecatedCharacters, has16BitShadow,
1911         upconvertCharacters, getData16SlowCase, s_hashFlagHas16BitShadow, and m_copyData16.
1912         (WTF::equalIgnoringNullity): Changed the template function into an inline that calls
1913         a non-inline helper function. The non-inline function handles both 8-bit and 16-bit
1914         strings.
1915
1916         * wtf/text/StringView.h:
1917         (WTF::StringView::StringView): Added an overload so we can make one of these directly
1918         from a StringImpl without first wrapping it in a string. Added an adapter so we can
1919         use StringView as part of string concatenation. Added an append function so we can
1920         append to a Vector<UChar>.
1921
1922         * wtf/text/WTFString.cpp:
1923         (WTF::String::append): Use StringView::getCharactersWithUpconvert. Also changed
1924         single-character append so it won't always turn an 8-bit string into a 16-bit one.
1925         (WTF::String::insert): Removed one insert overload and changed the other to use
1926         StringView::getCharactersWithUpconvert.
1927         (WTF::String::truncate): Changed to use StringImpl::substring.
1928         (WTF::String::percentage): Added characters8/16 paths instead of using
1929         deprecatedCharacters.
1930
1931         * wtf/text/WTFString.h: Removed deprecatedCharacters, getCharactersWithUpconvert,
1932         insert(UChar*, unsigned, unsigned), and the append overload for Vector<UChar>.
1933
1934 2014-03-20  Darin Adler  <darin@apple.com>
1935
1936         Fix a header guard mistake (harmless but clearly wrong)
1937         https://bugs.webkit.org/show_bug.cgi?id=130559
1938
1939         Reviewed by Andreas Kling.
1940
1941         * wtf/text/StringConcatenate.h: Correct the macro name in the header guard.
1942
1943 2014-03-20  Hyowon Kim  <hw1008.kim@samsung.com>
1944
1945         Move to using std::unique_ptr for EFL objects.
1946         https://bugs.webkit.org/show_bug.cgi?id=129853
1947
1948         Reviewed by Gyuyoung Kim.
1949
1950         EflUniquePtr is a template alias of std::unique_ptr
1951         with a custom deleter for each Efl Objects, which is motivated by GUniquePtr.
1952         This patch replaces uses of OwnPtr and PassOwnPtr for Efl objects with EflUniquePtr.
1953
1954         * wtf/OwnPtrCommon.h:
1955         * wtf/PlatformEfl.cmake:
1956         * wtf/RunLoop.h:
1957         * wtf/efl/MainThreadEfl.cpp:
1958         (WTF::pipeObject):
1959         (WTF::initializeMainThreadPlatform):
1960         * wtf/efl/OwnPtrEfl.cpp: Removed.
1961         * wtf/efl/RunLoopEfl.cpp:
1962         (WTF::RunLoop::RunLoop):
1963         * wtf/efl/UniquePtrEfl.h: Added.
1964         (WTF::EflPtrDeleter::operator()):
1965
1966 2014-03-20  Gavin Barraclough  <barraclough@apple.com>
1967
1968         Remove IdentifierTable typedef, isIdentifier()
1969         https://bugs.webkit.org/show_bug.cgi?id=130533
1970
1971         Rubber stamped by Geoff Garen.
1972
1973         Code should use AtomicStringTable, isAtomic() directly.
1974
1975         * wtf/WTFThreadData.h:
1976         (WTF::WTFThreadData::setCurrentAtomicStringTable):
1977         (WTF::WTFThreadData::resetCurrentAtomicStringTable):
1978             - removed IdentifierTypedef.
1979         * wtf/text/StringImpl.h:
1980         (WTF::StringImpl::flagIsAtomic):
1981             - renamed flagIsIdentfier -> flagIsAtomic.
1982
1983 2014-03-20  Gavin Barraclough  <barraclough@apple.com>
1984
1985         Merge AtomicString, Identifier
1986         https://bugs.webkit.org/show_bug.cgi?id=128624
1987
1988         Reviewed by Geoff Garen.
1989
1990         WTF::StringImpl currently supports two uniquing mechanism - AtomicString and
1991         Identifer - that is one too many.
1992
1993         Remove Identifier in favour of AtomicString. Identifier had two interesting
1994         mechanisms that we preserve.
1995
1996         (1) JSC API VMs each get their own string table, switch the string table on
1997             API entry/exit.
1998         (2) JSC caches a pointer to the string table on the VM to avoid a thread
1999             specific access. Adds a new AtomicString::add method to support this.
2000
2001         * wtf/WTFThreadData.cpp:
2002         (WTF::WTFThreadData::WTFThreadData):
2003             - remove allocation of IdentifierTable.
2004         (WTF::WTFThreadData::~WTFThreadData):
2005             - remove deletion of IdentifierTable.
2006         * wtf/WTFThreadData.h:
2007         (WTF::WTFThreadData::atomicStringTable):
2008             - table is now switched by JSC API, return the current table.
2009         (WTF::WTFThreadData::currentIdentifierTable):
2010             - now returns the current AtomicStringTable.
2011         (WTF::WTFThreadData::setCurrentIdentifierTable):
2012             - now sets the current AtomicStringTable.
2013         (WTF::WTFThreadData::resetCurrentIdentifierTable):
2014             - now resets the AtomicStringTable.
2015         * wtf/text/AtomicString.cpp:
2016         (WTF::AtomicString::addSlowCase):
2017             - add without thread-specific access to access string table.
2018         * wtf/text/AtomicString.h:
2019         (WTF::AtomicString::addWithStringTableProvider):
2020             - add without thread-specific access (used by JSC, string table provided by VM or ExecState).
2021         * wtf/text/AtomicStringTable.cpp:
2022         (WTF::AtomicStringTable::create):
2023             - renamed m_atomicStringTable -> m_defaultAtomicStringTable.
2024         (WTF::AtomicStringTable::~AtomicStringTable):
2025         (WTF::AtomicStringTable::destroy):
2026             - clearing of table moved from AtomicStringTable::destroy to destructor.
2027         * wtf/text/AtomicStringTable.h:
2028             - added destructor.
2029         * wtf/text/StringImpl.cpp:
2030         (WTF::StringImpl::~StringImpl):
2031             - Identifers no longer exist; no need to remove them from IdentifierTable.
2032         * wtf/text/StringImpl.h:
2033         (WTF::StringImpl::StringImpl):
2034             - removed s_hashFlagIsIdentifier.
2035         (WTF::StringImpl::flagIsIdentifier):
2036             - s_hashFlagIsIdentifier -> s_hashFlagIsAtomic.
2037         (WTF::StringImpl::isIdentifier):
2038             - now synonymous to isAtomic().
2039         * wtf/text/StringStatics.cpp:
2040         (WTF::StringImpl::hashAndFlagsForEmptyUnique):
2041             - removed s_hashFlagIsIdentifier.
2042
2043 2014-03-20  Zan Dobersek  <zdobersek@igalia.com>
2044
2045         Unreviewed Clang build fix for the GTK port after r165952.
2046
2047         * wtf/gobject/GMainLoopSource.h: Include the <functional> header for the std::function<> objects.
2048
2049 2014-03-18  Carlos Garcia Campos  <cgarcia@igalia.com>
2050
2051         [GLIB] Add GMainLoopSource class to wrap idle and timeout sources
2052         https://bugs.webkit.org/show_bug.cgi?id=130027
2053
2054         Reviewed by Martin Robinson.
2055
2056         GLib main loop sources like idle and timeouts are sometimes
2057         unconvenient to use and it's very common to forget canceling the
2058         source when the object is destroyed or reset the source ID in the
2059         callback when called. GMainLoopSource is a wrapper class to make it
2060         easier to handle sources and also to avoid those typical mistakes.
2061         It forces to create sources with a name and the user doesn't have
2062         to deal with the source ID anymore. The source is cancelled when
2063         the object is deleted or when a new source is scheduled. It uses
2064         std::function for callbacks so that we no longer need to use the
2065         "proxy" static callbacks either. We can use std::bind to use a
2066         function pointer or a member or even lambda functions. It also handles
2067         repeating sources automatically depending on whether the given
2068         function returns a bool or not.
2069
2070         * GNUmakefile.list.am:
2071         * wtf/PlatformEfl.cmake:
2072         * wtf/PlatformGTK.cmake:
2073         * wtf/RunLoop.h:
2074         * wtf/gobject/GMainLoopSource.cpp: Added.
2075         (WTF::GMainLoopSource::createAndDeleteOnDestroy):
2076         (WTF::GMainLoopSource::GMainLoopSource):
2077         (WTF::GMainLoopSource::~GMainLoopSource):
2078         (WTF::GMainLoopSource::cancel):
2079         (WTF::GMainLoopSource::reset):
2080         (WTF::GMainLoopSource::scheduleIdleSource):
2081         (WTF::GMainLoopSource::schedule):
2082         (WTF::GMainLoopSource::scheduleTimeoutSource):
2083         (WTF::GMainLoopSource::scheduleAfterDelay):
2084         (WTF::GMainLoopSource::voidCallback):
2085         (WTF::GMainLoopSource::boolCallback):
2086         (WTF::GMainLoopSource::socketCallback):
2087         (WTF::GMainLoopSource::destroy):
2088         (WTF::GMainLoopSource::voidSourceCallback):
2089         (WTF::GMainLoopSource::boolSourceCallback):
2090         (WTF::GMainLoopSource::socketSourceCallback):
2091         * wtf/gobject/GMainLoopSource.h: Added.
2092         (WTF::GMainLoopSource::isScheduled):
2093         * wtf/gtk/MainThreadGtk.cpp:
2094         (WTF::scheduleDispatchFunctionsOnMainThread):
2095         * wtf/gtk/RunLoopGtk.cpp:
2096         (WTF::RunLoop::wakeUp):
2097         (WTF::RunLoop::TimerBase::TimerBase):
2098         (WTF::RunLoop::TimerBase::start):
2099         (WTF::RunLoop::TimerBase::stop):
2100         (WTF::RunLoop::TimerBase::isActive):
2101
2102 2014-03-19  Gavin Barraclough  <barraclough@apple.com>
2103
2104         https://bugs.webkit.org/show_bug.cgi?id=130494
2105         EmptyUnique strings are Identifiers/Atomic
2106
2107         Reviewed by Geoff Garen.
2108
2109         EmptyUnique strings should set the Identifier/Atomic flag.
2110
2111         * wtf/text/AtomicString.h:
2112         (WTF::AtomicString::add):
2113             - Previously we assumed the only StringImpl that was validly allowed to claim to be
2114               Atomic but not be in a table was the canonical empty string. Now that EmptyUniques
2115               are also marked Atomic, all empty strings may pass this condition.
2116         * wtf/text/StringImpl.cpp:
2117         (WTF::StringImpl::~StringImpl):
2118             - EmptyUnique strings are not in the Atomic/Identfiier tabels, so don't need removing.
2119         * wtf/text/StringImpl.h:
2120         (WTF::StringImpl::StringImpl):
2121             - Change EmptyUnique constructor to call hashAndFlagsForEmptyUnique.
2122         * wtf/text/StringStatics.cpp:
2123         (WTF::StringImpl::hashAndFlagsForEmptyUnique):
2124             - Allocate a sequential hash code (this should be just as good for distribution & better
2125               for debugging than the random value) and set flags, now including Atomic & Identifier.
2126
2127 2014-03-19  Gavin Barraclough  <barraclough@apple.com>
2128
2129         Small cleanup of empty string
2130         https://bugs.webkit.org/show_bug.cgi?id=130438
2131
2132         Reviewed by Anders Carlson.
2133
2134         The empty string is weird becuase it is used as the impl for an AtomicString, but isAtomic()
2135         returns false.
2136         Also, we set a valid pointer for the characters pointer due to an old PCRE bug; remove this.
2137         Also, we currently only create one 'static' string, the empty string. Adding more might break
2138         assumtions, inhibit the constructor from being used to create other static strings for now.
2139
2140         * wtf/text/AtomicString.h:
2141         (WTF::AtomicString::add):
2142             - update assert.
2143         * wtf/text/StringImpl.h:
2144         (WTF::StringImpl::StringImpl):
2145             - Merge ConstructStaticString constructors, only allow the empty static string to be constructed.
2146         * wtf/text/StringStatics.cpp:
2147         (WTF::StringImpl::empty):
2148             - ConstructStaticString -> ConstructEmptyString, remove arguments, DEPRECATED_DEFINE_STATIC_LOCAL -> NeverDestroyed.
2149
2150 2014-03-18  Darin Adler  <darin@apple.com>
2151
2152         Reduce use of deprecatedCharacters in WebCore
2153         https://bugs.webkit.org/show_bug.cgi?id=130318
2154
2155         Reviewed by Andreas Kling.
2156
2157         * wtf/text/WTFString.h: Export another overload of charactersToFloat since it's used
2158         in WebCore now.
2159
2160         * wtf/text/cf/StringViewCF.cpp: Change so this can build on Windows.
2161
2162         * WTF.vcxproj/WTF.vcxproj: Added StringViewCF.cpp.
2163         * WTF.vcxproj/WTF.vcxproj.filters: Added StringViewCF.cpp.
2164
2165 2014-03-18  Filip Pizlo  <fpizlo@apple.com>
2166
2167         More FTL enabling.
2168
2169         Rubber stamped by Dan Bernstein and Mark Hahnenberg.
2170
2171         * wtf/Platform.h:
2172
2173 2014-03-17  Darin Adler  <darin@apple.com>
2174
2175         Remove most uses of deprecatedCharacter in WTF
2176         https://bugs.webkit.org/show_bug.cgi?id=130317
2177
2178         Reviewed by Andreas Kling.
2179
2180         Re-landing after fixing the "80 instead of 0x80" typo in equalLatin1WithUTF8.
2181
2182         * wtf/text/AtomicString.cpp:
2183         (WTF::HashAndUTF8CharactersTranslator::equal): Add an 8-bit code path to the
2184         non-ASCII path.
2185         (WTF::SubstringTranslator8::hash): Added.
2186         (WTF::SubstringTranslator8::equal): Added.
2187         (WTF::SubstringTranslator16::hash): Renamed class.
2188         (WTF::SubstringTranslator16::equal): Ditto.
2189         (WTF::AtomicString::add): Added an 8-bit code path to the substring case.
2190
2191         * wtf/text/Base64.cpp:
2192         (WTF::base64Decode): Added an 8 bit code path.
2193         (WTF::base64URLDecode): Ditto.
2194
2195         * wtf/text/StringImpl.cpp:
2196         (WTF::StringImpl::find): Fixed a case that was incorrectly using characters16
2197         without first using is8Bit. Need to return later to remove use of deprecatedCharacters.
2198
2199         * wtf/unicode/UTF8.cpp:
2200         (WTF::Unicode::equalUTF16WithUTF8): Added a case for when the UTF-16 characters
2201         are ASCII. Also removed the aEnd argument, since the caller only calls this when the
2202         lengths are equal.
2203         (WTF::Unicode::equalLatin1WithUTF8): Added.
2204         * wtf/unicode/UTF8.h: Updated as described above.
2205
2206 2014-03-17  Commit Queue  <commit-queue@webkit.org>
2207
2208         Unreviewed, rolling out r165721.
2209         https://bugs.webkit.org/show_bug.cgi?id=130367
2210
2211         It makes the debug bots flaky (Requested by benjaminp on
2212         #webkit).
2213
2214         Reverted changeset:
2215
2216         "Remove most uses of deprecatedCharacter in WTF"
2217         https://bugs.webkit.org/show_bug.cgi?id=130317
2218         http://trac.webkit.org/changeset/165721
2219
2220 2014-03-17  Zan Dobersek  <zdobersek@igalia.com>
2221
2222         Use RunLoop objects through references instead of pointers
2223         https://bugs.webkit.org/show_bug.cgi?id=130313
2224
2225         Reviewed by Andreas Kling.
2226
2227         Make RunLoop::current() and RunLoop::main() return a RunLoop reference instead
2228         of a pointer. RunLoop::Holder now uses a Ref<RunLoop> member. Timer and TimerBase
2229         constructors take in a RunLoop reference, with TimerBase now storing a RunLoop
2230         reference member instead of a pointer. Platform-specific bits of the RunLoop
2231         class are updated accordingly.
2232
2233         * wtf/RunLoop.cpp:
2234         (WTF::RunLoop::Holder::Holder):
2235         (WTF::RunLoop::Holder::runLoop):
2236         (WTF::RunLoop::initializeMainRunLoop):
2237         (WTF::RunLoop::current):
2238         (WTF::RunLoop::main):
2239         (WTF::RunLoop::isMain):
2240         * wtf/RunLoop.h:
2241         (WTF::RunLoop::Timer::Timer):
2242         * wtf/cf/RunLoopCF.cpp:
2243         (WTF::RunLoop::run):
2244         (WTF::RunLoop::TimerBase::TimerBase):
2245         (WTF::RunLoop::TimerBase::start):
2246         * wtf/efl/RunLoopEfl.cpp:
2247         (WTF::RunLoop::TimerBase::TimerBase):
2248         * wtf/gtk/RunLoopGtk.cpp:
2249         (WTF::RunLoop::run):
2250         (WTF::RunLoop::TimerBase::TimerBase):
2251         (WTF::RunLoop::TimerBase::start):
2252         * wtf/win/RunLoopWin.cpp:
2253         (WTF::RunLoop::TimerBase::TimerBase):
2254         (WTF::RunLoop::TimerBase::start):
2255         (WTF::RunLoop::TimerBase::stop):
2256         (WTF::RunLoop::TimerBase::isActive):
2257
2258 2014-03-17  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
2259
2260         One more fix after r165725.
2261
2262         Reviewed by Csaba Osztrogonác.
2263
2264         * wtf/WTFThreadData.h:
2265
2266 2014-03-17  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
2267
2268         Buildfix after r165725 for non Mac platforms.
2269
2270         Reviewed by Csaba Osztrogonác.
2271
2272         * wtf/WTFThreadData.h:
2273
2274 2014-03-17  Andreas Kling  <akling@apple.com>
2275
2276         [Mac] WTFThreadData should use _pthread_getspecific_direct().
2277         <https://webkit.org/b/130320>
2278
2279         Hack WTFThreadData to use a direct key for TLS access when available.
2280         This mechanism uses a dedicated segment register and is the same way
2281         we implement the fast path in FastMalloc.
2282
2283         Reviewed by Darin Adler.
2284
2285         * wtf/FastMalloc.cpp:
2286         * wtf/WTFThreadData.cpp:
2287         (WTF::WTFThreadData::createAndRegisterForGetspecificDirect):
2288         * wtf/WTFThreadData.h:
2289         (WTF::wtfThreadData):
2290
2291 2014-03-16  Darin Adler  <darin@apple.com>
2292
2293         Remove most uses of deprecatedCharacter in WTF
2294         https://bugs.webkit.org/show_bug.cgi?id=130317
2295
2296         Reviewed by Andreas Kling.
2297
2298         * wtf/text/AtomicString.cpp:
2299         (WTF::HashAndUTF8CharactersTranslator::equal): Add an 8-bit code path to the
2300         non-ASCII path.
2301         (WTF::SubstringTranslator8::hash): Added.
2302         (WTF::SubstringTranslator8::equal): Added.
2303         (WTF::SubstringTranslator16::hash): Renamed class.
2304         (WTF::SubstringTranslator16::equal): Ditto.
2305         (WTF::AtomicString::add): Added an 8-bit code path to the substring case.
2306
2307         * wtf/text/Base64.cpp:
2308         (WTF::base64Decode): Added an 8 bit code path.
2309         (WTF::base64URLDecode): Ditto.
2310
2311         * wtf/text/StringImpl.cpp:
2312         (WTF::StringImpl::find): Fixed a case that was incorrectly using characters16
2313         without first using is8Bit. Need to return later to remove use of deprecatedCharacters.
2314
2315         * wtf/unicode/UTF8.cpp:
2316         (WTF::Unicode::equalUTF16WithUTF8): Added a case for when the UTF-16 characters
2317         are ASCII. Also removed the aEnd argument, since the caller only calls this when the
2318         lengths are equal.
2319         (WTF::Unicode::equalLatin1WithUTF8): Added.
2320         * wtf/unicode/UTF8.h: Updated as described above.
2321
2322 2014-03-16  David Kilzer  <ddkilzer@apple.com>
2323
2324         Follow-up: Fix undefined behavior in WTF::equal() in StringImpl.h for i386/x86_64
2325         <http://webkit.org/b/130283>
2326         <rdar://problem/16281477>
2327
2328         Reviewed by Darin Adler.
2329
2330         * wtf/text/StringImpl.h:
2331         (WTF::loadUnaligned): Restore behavior prior to r165681 for
2332         compilers other than clang.
2333
2334 2014-03-16  Darin Adler  <darin@apple.com>
2335
2336         Remove all uses of deprecatedCharacters from JavaScriptCore
2337         https://bugs.webkit.org/show_bug.cgi?id=130304
2338
2339         Reviewed by Anders Carlsson.
2340
2341         * wtf/dtoa.h:
2342         (WTF::parseDouble): Added an overload that takes a StringView.
2343
2344 2014-03-15  Darin Adler  <darin@apple.com>
2345
2346         Remove all uses of deprecatedCharacters from WebKit2
2347         https://bugs.webkit.org/show_bug.cgi?id=130197
2348
2349         Reviewed by Andreas Kling.
2350
2351         * wtf/text/StringView.h: Added new getCharactersWithUpconvert and upconvertedCharacters
2352         functions. These are useful for callers that need UTF-16.
2353
2354 2014-03-15  Darin Adler  <darin@apple.com>
2355
2356         Try to fix EFL build.
2357
2358         * wtf/ThreadingPthreads.cpp: (WTF::changeThreadPriority): Code in this function
2359         was setting the priority of the current thread instead of the passed-in thread.
2360         That was triggering an unused variable warning in the compiler used to build for
2361         EFL. Fixed by using the thread handle instead of pthread_self.
2362
2363 2014-03-15  Michael Saboff  <msaboff@apple.com>
2364
2365         It should be possible to adjust DFG and FTL compiler thread priorities
2366         https://bugs.webkit.org/show_bug.cgi?id=130288
2367
2368         Reviewed by Filip Pizlo.
2369
2370         Added ability to change thread priorities relative to its current priority.
2371         Created options to adjust the priority of the DFG and FTL compilation work thread
2372         pools.  For two core systems, there might be three runnable threads, the main thread,
2373         the DFG compilation thread and the FTL compilation thread.  With the same priority,
2374         the scheduler is free to schedule whatever thread it wants.  By lowering the
2375         compilation threads, the main thread can run.  Further tests may suggest better values
2376         for the new options, priorityDeltaOfDFGCompilerThreads and priorityDeltaOfFTLCompilerThreads.
2377
2378         For a two-core device, this change has a net positive improvement of 1-3% across
2379         SunSpider, Octane, Kraken and AsmBench.
2380
2381         * wtf/Threading.h:
2382         * wtf/ThreadingPthreads.cpp:
2383         (WTF::changeThreadPriority):
2384         * wtf/ThreadingWin.cpp:
2385         (WTF::changeThreadPriority):
2386
2387 2014-03-15  David Kilzer  <ddkilzer@apple.com>
2388
2389         Fix undefined behavior in WTF::equal() in StringImpl.h for i386/x86_64
2390         <http://webkit.org/b/130283>
2391         <rdar://problem/16281477>
2392
2393         Reviewed by Geoff Garen.
2394
2395         * wtf/text/StringImpl.h:
2396         (WTF::loadUnaligned): Add template method.
2397         (WTF::equal): Switch to using loadUnaligned<>().
2398
2399 2014-03-14  Mark Rowe  <mrowe@apple.com>
2400
2401         Fix the production build.
2402
2403         Don't rely on USE_INTERNAL_SDK being set for the Production configuration since UseInternalSDK.xcconfig won't
2404         be at the expected relative path when working from installed source.
2405
2406         * Configurations/Base.xcconfig:
2407
2408 2014-03-14  Maciej Stachowiak  <mjs@apple.com>
2409
2410         Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
2411         https://bugs.webkit.org/show_bug.cgi?id=130276
2412         <rdar://problem/16266927>
2413         
2414         Reviewed by Simon Fraser.
2415
2416         * wtf/ASCIICType.h:
2417         * wtf/AVLTree.h:
2418         * wtf/Assertions.cpp:
2419         * wtf/Assertions.h:
2420         * wtf/Atomics.cpp:
2421         * wtf/Atomics.h:
2422         * wtf/AutodrainedPool.h:
2423         * wtf/AutodrainedPoolMac.mm:
2424         * wtf/BoundsCheckedPointer.h:
2425         * wtf/CryptographicUtilities.cpp:
2426         * wtf/CryptographicallyRandomNumber.h:
2427         * wtf/CurrentTime.h:
2428         * wtf/Deque.h:
2429         * wtf/DisallowCType.h:
2430         * wtf/ExportMacros.h:
2431         * wtf/FeatureDefines.h:
2432         * wtf/GetPtr.h:
2433         * wtf/HashIterators.h:
2434         * wtf/Locker.h:
2435         * wtf/MainThread.cpp:
2436         * wtf/MainThread.h:
2437         * wtf/MathExtras.h:
2438         * wtf/MediaTime.cpp:
2439         * wtf/MediaTime.h:
2440         * wtf/MessageQueue.h:
2441         * wtf/MetaAllocator.cpp:
2442         * wtf/MetaAllocator.h:
2443         * wtf/MetaAllocatorHandle.h:
2444         * wtf/OSRandomSource.cpp:
2445         * wtf/OSRandomSource.h:
2446         * wtf/Platform.h:
2447         * wtf/RandomNumber.cpp:
2448         * wtf/RandomNumber.h:
2449         * wtf/RandomNumberSeed.h:
2450         * wtf/RedBlackTree.h:
2451         * wtf/RunLoopTimer.h:
2452         * wtf/RunLoopTimerCF.cpp:
2453         * wtf/SchedulePair.h:
2454         * wtf/SchedulePairCF.cpp:
2455         * wtf/SchedulePairMac.mm:
2456         * wtf/SegmentedVector.h:
2457         * wtf/StackBounds.h:
2458         * wtf/StaticConstructors.h:
2459         * wtf/StringExtras.h:
2460         * wtf/ThreadFunctionInvocation.h:
2461         * wtf/ThreadSafeRefCounted.h:
2462         * wtf/ThreadSpecific.h:
2463         * wtf/Threading.h:
2464         * wtf/ThreadingPrimitives.h:
2465         * wtf/ThreadingPthreads.cpp:
2466         * wtf/ThreadingWin.cpp:
2467         * wtf/WTFThreadData.cpp:
2468         * wtf/WTFThreadData.h:
2469         * wtf/efl/OwnPtrEfl.cpp:
2470         * wtf/mac/MainThreadMac.mm:
2471         * wtf/text/AtomicStringHash.h:
2472         * wtf/text/AtomicStringImpl.h:
2473         * wtf/text/Base64.h:
2474         * wtf/text/CString.cpp:
2475         * wtf/text/CString.h:
2476         * wtf/text/LChar.h:
2477         * wtf/text/cf/StringCF.cpp:
2478         * wtf/text/mac/StringMac.mm:
2479         * wtf/unicode/CharacterNames.h:
2480         * wtf/unicode/Collator.h:
2481         * wtf/unicode/CollatorDefault.cpp:
2482         * wtf/unicode/UTF8.cpp:
2483         * wtf/unicode/UTF8.h:
2484         * wtf/unicode/icu/CollatorICU.cpp:
2485         * wtf/win/MainThreadWin.cpp:
2486
2487 2014-03-14  Byungseon Shin  <sun.shin@lge.com>
2488
2489         Incorrect Date returned between March 1, 2034 and February 28, 2100.
2490         https://bugs.webkit.org/show_bug.cgi?id=130123
2491
2492         Reviewed by Mark Lam.
2493
2494         Fix logic by using predefined Date APIs.
2495
2496         * wtf/DateMath.cpp:
2497         (WTF::ymdhmsToSeconds):
2498
2499 2014-03-12  Sergio Villar Senin  <svillar@igalia.com>
2500
2501         Rename DEFINE_STATIC_LOCAL to DEPRECATED_DEFINE_STATIC_LOCAL
2502         https://bugs.webkit.org/show_bug.cgi?id=129612
2503
2504         Reviewed by Darin Adler.
2505
2506         For new code use static NeverDestroyed<T> instead.
2507
2508         * wtf/RunLoop.cpp:
2509         (WTF::RunLoop::current):
2510         * wtf/StdLibExtras.h:
2511         * wtf/ThreadingPthreads.cpp:
2512         (WTF::threadMapMutex):
2513         (WTF::threadMap):
2514         * wtf/efl/MainThreadEfl.cpp:
2515         (WTF::pipeObject):
2516         * wtf/text/StringStatics.cpp:
2517         (WTF::StringImpl::empty):
2518
2519 2014-03-13  Radu Stavila  <stavila@adobe.com>
2520
2521         Webkit not building on XCode 5.1 due to garbage collection no longer being supported
2522         https://bugs.webkit.org/show_bug.cgi?id=130087
2523
2524         Reviewed by Mark Rowe.
2525
2526         Disable garbage collection on macosx when not using internal SDK.
2527
2528         * Configurations/Base.xcconfig:
2529
2530 2014-03-12  Ryuan Choi  <ryuan.choi@samsung.com>
2531
2532         [EFL] Enable Parallel GC
2533         https://bugs.webkit.org/show_bug.cgi?id=130177
2534
2535         Reviewed by Geoffrey Garen.
2536
2537         * wtf/Platform.h: Turn on ENABLE_PARALLEL_GC for the EFL build.
2538
2539 2014-03-12  Joseph Pecoraro  <pecoraro@apple.com>
2540
2541         Web Inspector: Disable REMOTE_INSPECTOR in earlier OS X releases
2542         https://bugs.webkit.org/show_bug.cgi?id=130118
2543
2544         Reviewed by Timothy Hatcher.
2545
2546         * wtf/FeatureDefines.h:
2547
2548 2014-03-11  Brent Fulgham  <bfulgham@apple.com>
2549
2550         [Win] Unreviewed gardening.
2551
2552         * wtf/MathExtras.h: VS2013 provides an lrint implementation. No need to implement
2553         our own.
2554
2555 2014-03-10  Jer Noble  <jer.noble@apple.com>
2556
2557         Improve WeakPtr operators.
2558         https://bugs.webkit.org/show_bug.cgi?id=130053
2559
2560         Reviewed by Andreas Kling.
2561
2562         Replace the "operator!()" with an explicit bool operator.  Add an "operator->()".
2563
2564         * wtf/WeakPtr.h:
2565         (WTF::WeakPtr::operator bool):
2566         (WTF::WeakPtr::operator->):
2567
2568 2014-03-10  Brent Fulgham  <bfulgham@apple.com>
2569
2570         [Win] Pass environment to Pre-Build, Pre-Link, and Post-Build Stages.
2571         https://bugs.webkit.org/show_bug.cgi?id=130023.
2572
2573         Reviewed by Dean Jackson.
2574
2575         * WTF.vcxproj/WTF.proj: Avoid putting trailing slashes in system paths to avoid
2576         escaping during later string substitution.
2577         * WTF.vcxproj/build-generated-files.sh: Accept environment values passed by VS.
2578
2579 2014-03-10  Mark Hahnenberg  <mhahnenberg@apple.com>
2580
2581         Turn on GenGC on other 64-bit platforms
2582         https://bugs.webkit.org/show_bug.cgi?id=129258
2583
2584         Reviewed by Oliver Hunt.
2585
2586         * wtf/Platform.h: 
2587
2588 2014-03-07  peavo@outlook.com  <peavo@outlook.com>
2589
2590         [Win64] Compile error after r165128.
2591         https://bugs.webkit.org/show_bug.cgi?id=129807
2592
2593         Reviewed by Mark Lam.
2594
2595         * wtf/Platform.h: MSVC does not support computed goto.
2596         Also enabled COMPUTED_GOTO_OPCODES when !ENABLE(LLINT_C_LOOP). This is needed because the ASM LLINT operates like COMPUTED_GOTO_OPCODES,
2597         and relies on the related data structures being defined to support this. On Win32, the platform does not HAVE_COMPUTED_GOTO support,
2598         but does want ENABLE_COMPUTED_GOTO_OPCODES because it uses the ASM LLINT.
2599
2600 2014-03-06  Michael Saboff  <msaboff@apple.com>
2601
2602         JSC should disable the JIT when building for ARMv7k
2603         https://bugs.webkit.org/show_bug.cgi?id=129829
2604
2605         Reviewed by Oliver Hunt.
2606
2607         Added WTF_CPU_APPLE_ARMV7K CPU define.  Disabled the JITs when
2608         that feature define is set.
2609
2610         * wtf/Platform.h:
2611
2612 2014-03-06  Filip Pizlo  <fpizlo@apple.com>
2613
2614         Use the LLVM disassembler on ARM64 if we are enabling the FTL
2615         https://bugs.webkit.org/show_bug.cgi?id=129785
2616
2617         Reviewed by Geoffrey Garen.
2618
2619         * wtf/Platform.h:
2620
2621 2014-03-05  peavo@outlook.com  <peavo@outlook.com>
2622
2623         [Win32][LLINT] Crash when running JSC stress tests.
2624         https://bugs.webkit.org/show_bug.cgi?id=129429
2625
2626         Reviewed by Geoffrey Garen.
2627
2628         * wtf/Platform.h: Enable LLINT on Win32.
2629
2630 2014-03-04  Zan Dobersek  <zdobersek@igalia.com>
2631
2632         [GTK] Build the Udis86 disassembler
2633         https://bugs.webkit.org/show_bug.cgi?id=129679
2634
2635         Reviewed by Michael Saboff.
2636
2637         * wtf/Platform.h: Also enable the Udis86 disassembler for the GTK port on Linux.
2638
2639 2014-03-02  Jaehun Lim  <ljaehun.lim@samsung.com>
2640
2641         [EFL] Remove m_initEfl from RunLoop.
2642         https://bugs.webkit.org/show_bug.cgi?id=129568
2643
2644         Reviewed by Gyuyoung Kim.
2645
2646         We don't use m_initEfl except RunLoop constructor.
2647
2648         * wtf/RunLoop.h:
2649         * wtf/efl/RunLoopEfl.cpp:
2650         (WTF::RunLoop::RunLoop):
2651
2652 2014-03-02  Darin Adler  <darin@apple.com>
2653
2654         Cut down use of OwnPtr within WTF itself
2655         https://bugs.webkit.org/show_bug.cgi?id=129567
2656
2657         Reviewed by Sam Weinig.
2658
2659         * wtf/RefCounted.h: Removed OwnPtr includes.
2660
2661         * wtf/StreamBuffer.h: Removed OwnPtr includes and switched to use
2662         std::make_unique and std::unique_ptr instead.
2663
2664         * wtf/Threading.cpp: Removed OwnPtr includes.
2665         * wtf/ThreadingPthreads.cpp: Ditto.
2666         * wtf/Vector.h: Ditto.
2667
2668 2014-02-26  Gavin Barraclough  <barraclough@apple.com>
2669
2670         FastMalloc should use vm_page_shift intead of PAGE_SHIFT.
2671         https://bugs.webkit.org/show_bug.cgi?id=129370
2672
2673         Reviewed by Mark Rowe.
2674
2675         "Doesn't this lead to the page map using fewer bits than it was before?
2676         It seems like this will cause some page addresses to no longer be
2677         representable in the map when using 4K pages. Am I missing something?"
2678
2679         * wtf/FastMalloc.cpp:
2680             - bdash raises a valid point. This should make the TCMalloc_PageMap
2681               larger than absolutely necessary, rather than potentially too small.
2682
2683 2014-02-25  Gavin Barraclough  <barraclough@apple.com>
2684
2685         FastMalloc should use vm_page_shift intead of PAGE_SHIFT.
2686         https://bugs.webkit.org/show_bug.cgi?id=129370
2687
2688         Reviewed by Geoff Garen.
2689
2690         Previously we used PAGE_SHIFT to initialize kPageShift.
2691         Since this was a constant, it could be used to calculate other
2692         contants used in the code. Some of these values are used in the
2693         definition of certain data structures (specifiying the length of
2694         some array members).
2695
2696         Make kPageShift & dependent properties variables setup during
2697         initialization. Add upper bound values (K_PAGE_SHIFT_MAX,
2698         K_NUM_CLASSES_MAX) for use in cases where we need a constant.
2699
2700         * wtf/FastMalloc.cpp:
2701         (WTF::InitSizeClasses):
2702             - initialize kPageShift, kNumClasses, kPageSize, kMaxValidPages.
2703         (WTF::pages):
2704             - added ASSERT.
2705         (WTF::AllocationSize):
2706             - added ASSERT.
2707         (WTF::TCMalloc_PageHeap::FreeBytes):
2708             - added ASSERT.
2709         (WTF::TCMalloc_PageHeap::init):
2710             - COMPILE_ASSERT -> ASSERT
2711         (WTF::TCMalloc_PageHeap::scavenge):
2712             - added ASSERT.
2713         (WTF::TCMalloc_PageHeap::Carve):
2714             - added ASSERT.
2715         (WTF::mergeDecommittedStates):
2716             - added ASSERT.
2717         (WTF::TCMalloc_PageHeap::IncrementalScavenge):
2718             - added ASSERT.
2719         (WTF::TCMalloc_PageHeap::ReturnedBytes):
2720             - added ASSERT.
2721         (WTF::PagesToMB):
2722             - added ASSERT.
2723         (WTF::TCMalloc_PageHeap::GrowHeap):
2724             - added ASSERT.
2725         (WTF::TCMalloc_PageHeap::ReleaseFreeList):
2726             - kNumClasses -> K_NUM_CLASSES_MAX
2727         (WTF::TCMalloc_ThreadCache::enumerateFreeObjects):
2728             - added ASSERT.
2729         (WTF::TCMalloc_Central_FreeList::Init):
2730             - added ASSERT.
2731         (WTF::TCMalloc_Central_FreeList::ReleaseToSpans):
2732             - added ASSERT.
2733         (WTF::TCMalloc_Central_FreeList::EvictRandomSizeClass):
2734             - added ASSERT.
2735         (WTF::TCMalloc_Central_FreeList::MakeCacheSpace):
2736             - added ASSERT.
2737         (WTF::TCMalloc_Central_FreeList::InsertRange):
2738             - added ASSERT.
2739         (WTF::TCMalloc_Central_FreeList::Populate):
2740             - added ASSERT.
2741         (WTF::TCMalloc_ThreadCache::Init):
2742             - added ASSERT.
2743         (WTF::TCMalloc_ThreadCache::Cleanup):
2744             - added ASSERT.
2745         (WTF::TCMalloc_ThreadCache::Scavenge):
2746             - added ASSERT.
2747         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2748             - added ASSERT.
2749
2750 2014-02-24  Alex Christensen  <achristensen@webkit.org>
2751
2752         Disabled WebGL on WinCairo.
2753
2754         Unreviewed.
2755
2756         * wtf/FeatureDefines.h:
2757         Removed ENABLE_WEBGL definition for WinCairo port.
2758         WebGL has not worked on WinCairo since r163079
2759         and it was not compiling with a recent ANGLE update.
2760
2761 2014-02-24  Mark Hahnenberg  <mhahnenberg@apple.com>
2762
2763         Turn GenGC on for 32-bit systems
2764         https://bugs.webkit.org/show_bug.cgi?id=128824
2765
2766         Reviewed by Geoffrey Garen.
2767
2768         * wtf/Platform.h:
2769
2770 2014-02-21  Benjamin Poulain  <benjamin@webkit.org>
2771
2772         jsDocumentPrototypeFunctionGetElementById should not create an AtomicString for the function argument
2773         https://bugs.webkit.org/show_bug.cgi?id=128893
2774
2775         Reviewed by Darin Adler.
2776
2777         AtomicString::find() is a special case optimized for the JavaScript bindings. The method can only
2778         be called under specific conditions.
2779         The method is renamed to findStringWithHash().
2780
2781         The new AtomicString::find is generic and does not require any propery on the input.
2782
2783         * wtf/text/AtomicString.cpp:
2784         (WTF::AtomicString::findStringWithHash):
2785         (WTF::AtomicString::findSlowCase):
2786         * wtf/text/AtomicString.h:
2787         (WTF::AtomicString::find):
2788
2789 2014-02-20  Csaba Osztrogonác  <ossy@webkit.org>
2790
2791         Add StackStats sources to cmake and autotools build files
2792         https://bugs.webkit.org/show_bug.cgi?id=129103
2793
2794         Reviewed by Anders Carlsson.
2795
2796         * GNUmakefile.list.am:
2797         * wtf/CMakeLists.txt:
2798
2799 2014-02-20  Csaba Osztrogonác  <ossy@webkit.org>
2800
2801         Get rid of redundant Platform.h includes
2802         https://bugs.webkit.org/show_bug.cgi?id=128817
2803
2804         Reviewed by Brent Fulgham.
2805
2806         * wtf/Assertions.h:
2807         * wtf/Atomics.h:
2808         * wtf/ByteOrder.h:
2809         * wtf/DataLog.h:
2810         * wtf/DisallowCType.h:
2811         * wtf/DynamicAnnotations.h:
2812         * wtf/ExportMacros.h:
2813         * wtf/FastMalloc.h:
2814         * wtf/FlipBytes.h:
2815         * wtf/InlineASM.h:
2816         * wtf/PrintStream.h:
2817         * wtf/ProcessID.h:
2818         * wtf/Threading.h:
2819         * wtf/ThreadingPrimitives.h:
2820
2821 2014-02-19  Jon Honeycutt  <jhoneycutt@apple.com>
2822
2823         Crash in WTF::StringBuilder::append()
2824
2825         https://bugs.webkit.org/show_bug.cgi?id=125817
2826         <rdar://problem/15671883>
2827
2828         Reviewed by Oliver Hunt.
2829
2830         * wtf/text/StringBuilder.cpp:
2831         (WTF::expandedCapacity):
2832         Ensure that we return a new capacity of at least 'requiredLength' in
2833         the case where requiredLength is large. Also, use unsigned rather than
2834         size_t for the parameters and the return value, as callers pass
2835         unsigned arguments and treat the result as an unsigned int.
2836
2837 2014-02-19  Anders Carlsson  <andersca@apple.com>
2838
2839         Add WTF_MAKE_FAST_ALLOCATED to more classes
2840         https://bugs.webkit.org/show_bug.cgi?id=129064
2841
2842         Reviewed by Andreas Kling.
2843
2844         * wtf/Bitmap.h:
2845
2846 2014-02-19  Zan Dobersek  <zdobersek@igalia.com>
2847
2848         Make PrintStream::print() a variadic template
2849         https://bugs.webkit.org/show_bug.cgi?id=126388
2850
2851         Reviewed by Brent Fulgham.
2852
2853         PrintStream::print() can be converted into a variadic template, printing the value
2854         of the first parameter and recursively calling itself until the single parameter version
2855         is used for printing the last value.
2856
2857         * wtf/DataLog.h:
2858         (WTF::dataLog): Convert the function to a variadic template as well.
2859         * wtf/PrintStream.h:
2860         (WTF::PrintStream::print):
2861         * wtf/StringPrintStream.h:
2862         (WTF::toCString): Ditto.
2863         (WTF::toString): Ditto.
2864
2865 2014-02-19  Zan Dobersek  <zdobersek@igalia.com>
2866
2867         Use std::swap() in HashTable::swap()
2868         https://bugs.webkit.org/show_bug.cgi?id=128995
2869
2870         Reviewed by Brent Fulgham.
2871
2872         Use std::swap() to swap the member variable values of two HashTable objects in HashTable::swap().
2873
2874         * wtf/HashTable.h:
2875         (WTF::KeyTraits>::swap):
2876
2877 2014-02-19  Zan Dobersek  <zdobersek@igalia.com>
2878
2879         SegmentedVector::append() should take in rvalue reference, forward it to Vector::uncheckedAppend()
2880         https://bugs.webkit.org/show_bug.cgi?id=128996
2881
2882         Reviewed by Brent Fulgham.
2883
2884         * wtf/SegmentedVector.h:
2885         (WTF::SegmentedVector::append): Take in an rvalue reference of the object that's to be appended and
2886         then forward it to Vector::uncheckedAppend(). This avoids unnecessary copies in the current situation
2887         where a const lvalue is accepted and passed on.
2888
2889 2014-02-19  Dan Bernstein  <mitz@apple.com>
2890
2891         Simplify PLATFORM(MAC) && !PLATFORM(IOS) and similar expressions
2892         https://bugs.webkit.org/show_bug.cgi?id=129029
2893
2894         Reviewed by Mark Rowe.
2895
2896         * wtf/FeatureDefines.h:
2897         * wtf/Platform.h:
2898         * wtf/Threading.cpp:
2899         * wtf/text/cf/StringImplCF.cpp:
2900         (garbageCollectionEnabled):
2901
2902 2014-02-18  Dan Bernstein  <mitz@apple.com>
2903
2904         PLATFORM(MAC) is true when building for iOS
2905         https://bugs.webkit.org/show_bug.cgi?id=129025
2906
2907         Reviewed by Mark Rowe.
2908
2909         * wtf/Platform.h: Changed to define WTF_PLATFORM_MAC only on when building for OS X (but
2910         still not when WTF_PLATFORM_GTK or WTF_PLATFORM_EFL are defined).
2911
2912 2014-02-18  Joseph Pecoraro  <pecoraro@apple.com>
2913
2914         [iOS] Web Inspector: JSContext inspection crashes in isMainThread, uninitialized WebCoreWebThreadIsLockedOrDisabled
2915         https://bugs.webkit.org/show_bug.cgi?id=128959
2916
2917         Reviewed by David Kilzer.
2918
2919         When JavaScriptCore is used without WebCore on iOS (e.g. JSContext)
2920         the WebCoreWebThread* functions will not be initialized. Avoid
2921         calling the function pointer if it is uninitialized. This was
2922         happening with remote inspection via StringImpl::createCFString
2923         for implicit NSString / WTFString conversion which uses isMainThread.
2924
2925         * wtf/mac/MainThreadMac.mm:
2926         (WTF::webThreadIsUninitializedOrLockedOrDisabled):
2927         (WTF::isMainThread):
2928         (WTF::canAccessThreadLocalDataForThread):
2929
2930 2014-02-17  Filip Pizlo  <fpizlo@apple.com>
2931
2932         More ARM FTL glue
2933         https://bugs.webkit.org/show_bug.cgi?id=128948
2934
2935         Reviewed by Sam Weinig.
2936
2937         * wtf/Platform.h:
2938
2939 2014-02-17  Anders Carlsson  <andersca@apple.com>
2940
2941         Remove ENABLE_GLOBAL_FASTMALLOC_NEW
2942         https://bugs.webkit.org/show_bug.cgi?id=127067
2943
2944         Reviewed by Geoffrey Garen.
2945
2946         Remove the global operator new/operator delete overrides. Having ALWAYS_INLINE operators
2947         like we do is really undefined behavior according to the C++ standard and we've been lucky enough
2948         to get away with it so far, but any code that calls operator new/operator delete inside from the C++ standard
2949         library (not from headers that are included) will be mismatched and potentially crash. libc++ calls
2950         delete in it's std::thread implementation for example.
2951         
2952         The only supported way to override operator new and operator delete globally is to not use inline
2953         functions, but that would mean that any application using WebKit would not be able to provide custom
2954         operator new/operator delete functions so we'll just reuse the already existing infrastructure consisting
2955         of the WTF_MAKE_FAST_ALLOCATED macro.
2956
2957         * wtf/FastMalloc.cpp:
2958         (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary):
2959         * wtf/FastMalloc.h:
2960         * wtf/Platform.h:
2961
2962 2014-02-17  Ryan Lortie  <desrt@desrt.ca>
2963
2964         Enable DFG_JIT on FreeBSD
2965         https://bugs.webkit.org/show_bug.cgi?id=128898
2966
2967         Reviewed by Csaba Osztrogonác.
2968
2969         * wtf/Platform.h:
2970
2971 2014-02-15  Filip Pizlo  <fpizlo@apple.com>
2972
2973         FTL should inline polymorphic heap accesses
2974         https://bugs.webkit.org/show_bug.cgi?id=128795
2975
2976         Reviewed by Oliver Hunt.
2977
2978         * wtf/PrintStream.h:
2979         (WTF::PointerDumpInContext::PointerDumpInContext):
2980         (WTF::PointerDumpInContext::dump):
2981         (WTF::pointerDumpInContext):
2982
2983 2014-02-16  Zan Dobersek  <zdobersek@igalia.com>
2984
2985         Reintroduce const qualifiers for return types of (Filter|Transform)Iterator::operator*()
2986         https://bugs.webkit.org/show_bug.cgi?id=126875
2987
2988         The const qualifiers for the return types of FilterIterator::operator*() and TransformIterator::operator*()
2989         were removed in r161797 and r161802 because of compilation failures when using GCC and having an Iterator
2990         type that already had the const qualifier. std::remove_const is now used to appease GCC and enforce the const
2991         qualifier on the return type, regardless of the Iterator type and its qualifiers.
2992
2993         * wtf/IteratorAdaptors.h:
2994         (WTF::FilterIterator::operator*):
2995         (WTF::TransformIterator::operator*):
2996
2997 2014-02-15  Filip Pizlo  <fpizlo@apple.com>
2998
2999         Vector with inline capacity should work with non-PODs
3000         https://bugs.webkit.org/show_bug.cgi?id=128864
3001
3002         Reviewed by Michael Saboff.
3003         
3004         Previously, we would copy the inline storage of a vector as if it was a bag of bits.
3005         This presumed that the element type was relocatable. In general this is only true for
3006         PODs.
3007         
3008         This patch changes this by introducing a swap operation over inline storage. This swap
3009         operation requires being told about the size that is in use.
3010         
3011         Deques would have required some cleverness to make this work, because the swap
3012         operation needs to know which subset of elements are in-use and assumes that a size is
3013         sufficient for this. That's not true for deques. Instead of trying to do very clever
3014         things, I just removed the inline capacity option from Deque. I believe that this is
3015         fine since there are only two users of Deque with inline capacity, and both of them
3016         appear to be allocated rarely enough that inline capacity probably doesn't help much.
3017
3018         * wtf/Deque.h:
3019         (WTF::DequeIterator::DequeIterator):
3020         (WTF::DequeConstIterator::DequeConstIterator):
3021         (WTF::Deque<T>::checkValidity):
3022         (WTF::Deque<T>::checkIndexValidity):
3023         (WTF::Deque<T>::invalidateIterators):
3024         (WTF::Deque<T>::Deque):
3025         (WTF::=):
3026         (WTF::Deque<T>::destroyAll):
3027         (WTF::Deque<T>::~Deque):
3028         (WTF::Deque<T>::swap):
3029         (WTF::Deque<T>::clear):
3030         (WTF::Deque<T>::expandCapacityIfNeeded):
3031         (WTF::Deque<T>::expandCapacity):
3032         (WTF::Deque<T>::append):
3033         (WTF::Deque<T>::prepend):
3034         (WTF::Deque<T>::removeFirst):
3035         (WTF::Deque<T>::removeLast):
3036         (WTF::Deque<T>::remove):
3037         (WTF::DequeIteratorBase<T>::checkValidity):
3038         (WTF::DequeIteratorBase<T>::addToIteratorsList):
3039         (WTF::DequeIteratorBase<T>::removeFromIteratorsList):
3040         (WTF::DequeIteratorBase<T>::DequeIteratorBase):
3041         (WTF::DequeIteratorBase<T>::~DequeIteratorBase):
3042         (WTF::DequeIteratorBase<T>::isEqual):
3043         (WTF::DequeIteratorBase<T>::increment):
3044         (WTF::DequeIteratorBase<T>::decrement):
3045         (WTF::DequeIteratorBase<T>::after):
3046         (WTF::DequeIteratorBase<T>::before):
3047         * wtf/Vector.h:
3048         (WTF::VectorBuffer::swap):
3049         (WTF::VectorBuffer::swapInlineBuffer):
3050         (WTF::VectorBuffer::swapInlineBuffers):
3051         (WTF::Vector::swap):
3052
3053 2014-02-15  Mikhail Pozdnyakov  <mikhail.pozdnyakov@intel.com>
3054
3055         Remove 'static' specifier from free inline functions in StringImpl.h
3056         https://bugs.webkit.org/show_bug.cgi?id=118554
3057
3058         Reviewed by Darin Adler.
3059
3060         At first 'static' does not bring any use here, secondly static free
3061         inline functions in headers is a bad practice in general as each instance
3062         of function defined as inline is treated as a separate function and each
3063         instance has its own copy of static locals and string literals.
3064
3065         * wtf/text/StringImpl.h:
3066         (WTF::codePointCompare):
3067         (WTF::codePointCompare8):
3068         (WTF::codePointCompare16):
3069         (WTF::codePointCompare8To16):
3070         (WTF::isSpaceOrNewline):
3071
3072 2014-02-14  Benjamin Poulain  <bpoulain@apple.com>
3073
3074         Improve the performance on mobile of FTPDirectoryDocument
3075         https://bugs.webkit.org/show_bug.cgi?id=128778
3076
3077         Reviewed by Antti Koivisto.
3078
3079         * wtf/text/WTFString.h:
3080         (WTF::String::endsWith): add a missing overload.
3081
3082 2014-02-14  Wojciech Bielawski  <w.bielawski@samsung.com>
3083
3084         (try)append and insert operations don't need new operator for PODs
3085         https://bugs.webkit.org/show_bug.cgi?id=128185
3086
3087         Reviewed by Darin Adler.
3088
3089         Vector's methods use VectorCopier to copy data.
3090         VectorCopier for PODs exteded to be used with different types. For different types placement new copy approach is applied. For the same types memcpy is applied.
3091
3092         * wtf/Vector.h:
3093         (WTF::OverflowHandler>::append): use VectorCopier to copy data.
3094         (WTF::OverflowHandler>::tryAppend): use VectorCopier to copy data.
3095         (WTF::OverflowHandler>::insert): use VectorCopier to copy data.
3096
3097 2014-02-13  Daniel Bates  <dabates@apple.com>
3098
3099         Fix the iOS build after <http://trac.webkit.org/changeset/164064
3100
3101         * wtf/Platform.h:
3102
3103 2014-02-13  Daniel Bates  <dabates@apple.com>
3104
3105         [iOS] Disable HAVE_ARM_NEON_INTRINSICS
3106
3107         For now, disable HAVE_ARM_NEON_INTRINSICS when building for iOS. We want
3108         to audit the applicable code before we enable this define.
3109
3110         * wtf/Platform.h:
3111
3112 2014-02-11  Filip Pizlo  <fpizlo@apple.com>
3113
3114         Hoist and combine array bounds checks
3115         https://bugs.webkit.org/show_bug.cgi?id=125433
3116
3117         Reviewed by Mark Hahnenberg.
3118
3119         * GNUmakefile.list.am:
3120         * WTF.vcxproj/WTF.vcxproj:
3121         * WTF.xcodeproj/project.pbxproj:
3122         * wtf/CMakeLists.txt:
3123         * wtf/HashMethod.h: Added.
3124         (WTF::HashMethod::operator()):
3125
3126 2014-02-13  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
3127
3128         Code cleanup: remove gcc<4.7 guards.
3129         https://bugs.webkit.org/show_bug.cgi?id=128729
3130
3131         Reviewed by Anders Carlsson.
3132
3133         Remove GCC_VERSION_AT_LEAST guards when it checks for pre-4.7 versions,
3134         as WK does not compile with earlier gcc versions.
3135
3136         * wtf/Assertions.cpp:
3137         * wtf/Platform.h:
3138
3139 2014-02-12  Mark Lam  <mark.lam@apple.com>
3140
3141         No need to save reservedZoneSize when dropping the JSLock.
3142         <https://webkit.org/b/128719>
3143
3144         Reviewed by Geoffrey Garen.
3145
3146         * wtf/WTFThreadData.cpp:
3147         (WTF::WTFThreadData::WTFThreadData):
3148         * wtf/WTFThreadData.h:
3149         - removed unnneeded m_savedReservedZoneSize.
3150
3151 2014-02-11  Mark Hahnenberg  <mhahnenberg@apple.com>
3152
3153         32-bit LLInt writeBarrierOnGlobalObject is wrong
3154         https://bugs.webkit.org/show_bug.cgi?id=128556
3155
3156         Reviewed by Geoffrey Garen.
3157
3158         * wtf/Platform.h: Removed OBJECT_MARK_LOGGING from Platform.h since it already exists in FeatureDefines.h
3159
3160 2014-02-11  peavo@outlook.com  <peavo@outlook.com>
3161
3162         [WinCairo] Compile error, deleted file in WTF.
3163         https://bugs.webkit.org/show_bug.cgi?id=128601
3164
3165         Reviewed by Csaba Osztrogonác.
3166
3167         * WTF.vcxproj/WTF.vcxproj: Removed reference to deleted file.
3168         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
3169
3170 2014-02-10  Michael Saboff  <msaboff@apple.com>
3171
3172         Re-enable ARM Thumb2 disassembler
3173         https://bugs.webkit.org/show_bug.cgi?id=128577
3174
3175         Reviewed by Filip Pizlo.
3176
3177         Added definition of WTF_USE_ARMV7_DISASSEMBLER back to Platform.h
3178
3179         * wtf/Platform.h:
3180
3181 2014-02-10  Benjamin Poulain  <benjamin@webkit.org>
3182
3183         Add the basic infrastructure to compile attributes matching in selectors
3184         https://bugs.webkit.org/show_bug.cgi?id=128484
3185
3186         Reviewed by Gavin Barraclough.
3187
3188         * wtf/Vector.h:
3189         (WTF::VectorBufferBase::bufferMemoryOffset):
3190         (WTF::Vector::sizeMemoryOffset):
3191         (WTF::Vector::dataMemoryOffset):
3192         Expose the memory offsets of Vector::size() and the memory buffer pointer for the JIT.
3193
3194 2014-02-10  Enrica Casucci  <enrica@apple.com>
3195
3196         copyShortASCIIString crashes on iOS after r163793.
3197         https://bugs.webkit.org/show_bug.cgi?id=128548.
3198
3199         Reviewed by Alexey Proskuryakov.
3200
3201         Adding null check.
3202
3203         * wtf/unicode/icu/CollatorICU.cpp:
3204         (WTF::copyShortASCIIString):
3205
3206 2014-02-10  Carlos Garcia Campos  <cgarcia@igalia.com>
3207
3208         [GLIB] Add GUniqueOutPtr and use it instead of GOwnPtr
3209         https://bugs.webkit.org/show_bug.cgi?id=127554
3210
3211         Reviewed by Gustavo Noronha Silva.
3212
3213         GUniqueOutPtr is a simplified version of GOwnPtr for the cases
3214         where we need the address of the contained pointer. GUniqueOutPtr
3215         uses GUniquePtr to free the contained object and to release the
3216         container pointer. The API is very simple to make sure this is
3217         only used when outPtr() is needed. It can't be constructed with a
3218         pointer, and there's not method to set a new pointer. Another
3219         difference with the old GOwnPtr is that outPtr() can be used
3220         multiple times, because it frees any pointer previously set.
3221
3222         * GNUmakefile.list.am:
3223         * wtf/PlatformEfl.cmake:
3224         * wtf/PlatformGTK.cmake:
3225         * wtf/gobject/GOwnPtr.cpp: Removed.
3226         * wtf/gobject/GOwnPtr.h: Removed.
3227         * wtf/gobject/GUniquePtr.h:
3228         (WTF::GUniqueOutPtr::GUniqueOutPtr):
3229         (WTF::GUniqueOutPtr::~GUniqueOutPtr):
3230         (WTF::GUniqueOutPtr::outPtr):
3231         (WTF::GUniqueOutPtr::reset):
3232         (WTF::GUniqueOutPtr::release):
3233         (WTF::GUniqueOutPtr::operator*):
3234         (WTF::GUniqueOutPtr::operator->):
3235         (WTF::GUniqueOutPtr::get):
3236         (WTF::GUniqueOutPtr::operator!):
3237         (WTF::GUniqueOutPtr::operator UnspecifiedBoolType):
3238
3239 2014-02-10  Darin Adler  <darin@apple.com>
3240
3241         Stop using String::deprecatedCharacters to call WTF::Collator
3242         https://bugs.webkit.org/show_bug.cgi?id=128517
3243
3244         WTF passes ICU’s deprecated ULOC_REQUESTED_LOCALE to ucol_getLocaleByType()
3245         rdar://problem/15183390
3246
3247         Reviewed by Alexey Proskuryakov.
3248
3249         This patch fixes both bugs above by reworking WTF::Collator.
3250
3251         * wtf/unicode/Collator.h: Fixed formatting. Got rid of the Collator::Result type,
3252         since the collator uses the same return value scheme as strcmp and as ICU; an int
3253         will do for the return type. Simplified the support for UCONFIG_NO_COLLATION by
3254         using a separate copy of the class definition. (We should check if anyone needs
3255         UCONFIG_NO_COLLATION support, and remove it if not.) Changed the lower-first flag
3256         from a separate function to a constructor argument. Changed the arguments to
3257         the collate function to StringView. Added a collate UTF8 function. Changed the
3258         m_collate data member to no longer be mutable since we no longer allocate it lazily.
3259
3260         * wtf/unicode/CollatorDefault.cpp:
3261         (WTF::Collator::collate): Rewrote to be simpler.
3262         (WTF::Collator::collateUTF8): Added. Converts from UTF-8 to a String and then calls
3263         the collate function above.
3264
3265         * wtf/unicode/icu/CollatorICU.cpp: Added a FIXME about the fact that this file
3266         has the wrong name and location. Since we always use ICU, there's no need to mention
3267         it in the file name.
3268         (WTF::copyASCIIString): Added.
3269         (WTF::copyDefaultLocale): Added.
3270         (WTF::resolveDefaultLocale): Added. Maps null locale to a default on Mac and iOS,
3271         since on those platforms ICU does not use the correct default locale when passed null.
3272         (WTF::localesMatch): Added.
3273         (WTF::Collator::Collator): Moved most of the code from createCollator here.
3274         Simplified it by storing the collator configuration along with the collator in globals.
3275         (WTF::Collator::~Collator): Moved most of the code from releaseCollator here.
3276         (WTF::getIndexLatin1): Added.
3277         (WTF::moveLatin1): Added.
3278         (WTF::hasNextLatin1): Added.
3279         (WTF::hasPreviousLatin1): Added.
3280         (WTF::currentLatin1): Added.
3281         (WTF::nextLatin1): Added.
3282         (WTF::previousLatin1): Added.
3283         (WTF::getStateLatin1): Added.
3284         (WTF::setStateLatin1): Added.
3285         (WTF::createLatin1Iterator): Added. Uses the functions above to make a UCharIterator
3286         that works for a WTF::StringView-style Latin-1 string.
3287         (WTF::createIterator): Added. Uses either createLatin1Iterator or uiter_setString to
3288         make a UCharIterator that works for a WTF::StringView.
3289         (WTF::Collator::collate): Changed to use ucol_strcollIter.
3290         (WTF::createIteratorUTF8): Added. Uses uiter_setUTF8.
3291         (WTF::Collator::collateUTF8): Added. Like collate, but for null-terminated UTF-8 strings.
3292
3293 2014-02-10  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>
3294
3295         Code cleanup: Remove BUILDING_ON / TARGETING definitions.
3296         https://bugs.webkit.org/show_bug.cgi?id=128242
3297
3298         Reviewed by Brent Fulgham.
3299
3300         The BUILDING_ON_* and TARGETING_* macros have not been used for a while.
3301         According to the FIXME: they are removed.
3302
3303         * wtf/Platform.h:
3304
3305 2014-02-09  Anders Carlsson  <andersca@apple.com>
3306
3307         Add WTF_MAKE_FAST_ALLOCATED to more classes
3308         https://bugs.webkit.org/show_bug.cgi?id=128506
3309
3310         Reviewed by Andreas Kling.
3311
3312         * wtf/Bag.h:
3313         * wtf/ListHashSet.h:
3314
3315 2014-02-08  Anders Carlsson  <andersca@apple.com>
3316
3317         Stop using getCharactersWithUpconvert in JavaScriptCore
3318         https://bugs.webkit.org/show_bug.cgi?id=128457
3319
3320         Reviewed by Andreas Kling.
3321
3322         * wtf/text/StringBuilder.h:
3323         (WTF::StringBuilder::append):
3324         Add a new overload that takes a StringView.
3325
3326         * wtf/text/StringView.h:
3327         (WTF::StringView::find):
3328         Add new find member function.
3329
3330 2014-02-08  Darin Adler  <darin@apple.com>
3331
3332         Change TextIterator to use StringView, preparing to wean it from deprecatedCharacters
3333         https://bugs.webkit.org/show_bug.cgi?id=128233
3334
3335         Reviewed by Anders Carlsson.
3336
3337         * WTF.xcodeproj/project.pbxproj: Added new source files.
3338
3339         * wtf/text/StringView.h: Added operator[], createCFStringWithoutCopying, and
3340         createNSStringWithoutCopying.
3341         * wtf/text/cf/StringViewCF.cpp:
3342         (WTF::StringView::createCFStringWithoutCopying): Added.
3343         * wtf/text/mac/StringViewObjC.mm:
3344         (WTF::StringView::createNSString): Added.
3345         (WTF::StringView::createNSStringWithoutCopying): Added.
3346
3347 2014-02-06  Andreas Kling  <akling@apple.com>
3348
3349         Remove unused ENABLE(REPAINT_THROTTLING) flag.
3350         <https://webkit.org/b/128329>
3351
3352         Reviewed by Antti Koivisto.
3353
3354         * wtf/FeatureDefines.h:
3355
3356 2014-02-06  Filip Pizlo  <fpizlo@apple.com>
3357
3358         More FTL build scaffolding
3359         https://bugs.webkit.org/show_bug.cgi?id=128330
3360
3361         Reviewed by Geoffrey Garen.
3362
3363         * wtf/Platform.h:
3364
3365 2014-02-06  Anders Carlsson  <andersca@apple.com>
3366
3367         Use std::chrono functions in dispatchFunctionsFromMainThread()
3368         https://bugs.webkit.org/show_bug.cgi?id=128308
3369
3370         Reviewed by Antti Koivisto.
3371
3372         * wtf/MainThread.cpp:
3373         (WTF::dispatchFunctionsFromMainThread):
3374
3375 2014-02-05  Zan Dobersek  <zdobersek@igalia.com>
3376
3377         Remove the WTF_COMPILER_SUPPORTS_CXX_GENERALIZED_INITIALIZERS macro
3378         https://bugs.webkit.org/show_bug.cgi?id=128267
3379
3380         Reviewed by Andreas Kling.
3381
3382         Remove the WTF_COMPILER_SUPPORTS_CXX_GENERALIZED_INITIALIZERS macro that was manually defined for compilers
3383         that support the C++11 initializer lists. The feature is well supported in Clang, MSVC and also GCC. It
3384         was actually already used unguarded in HashSet.
3385
3386         * wtf/Compiler.h:
3387         * wtf/HashMap.h:
3388         (WTF::HashMap::HashMap):
3389         * wtf/Vector.h:
3390         (WTF::Vector::Vector):
3391
3392 2014-02-05  Andreas Kling  <akling@apple.com>
3393
3394         Remove ENABLE(DIRECTORY_UPLOAD).
3395         <https://webkit.org/b/128275>
3396
3397         Rubber-stamped by Ryosuke Niwa.
3398
3399         * wtf/FeatureDefines.h:
3400
3401 2014-02-05  Carlos Garcia Campos  <cgarcia@igalia.com>
3402
3403         HashMap can't be used with std::unique_ptr as value when it has a custom deleter
3404         https://bugs.webkit.org/show_bug.cgi?id=128250
3405
3406         Reviewed by Darin Adler.
3407
3408         The problem is that the HashMap is using a unique_ptr with the
3409         default deleter, so that when trying to move the unique_ptr the
3410         deleters don't match.
3411
3412         * wtf/HashTraits.h: Add the deleter also in the template
3413         definitation of the parent class for the HashTraits<std::unique_ptr<T, Deleter>>
3414
3415 2014-02-05  Csaba Osztrogonác  <ossy@webkit.org>
3416
3417         Remove ENABLE(SVG) guards
3418         https://bugs.webkit.org/show_bug.cgi?id=127991
3419
3420         Reviewed by Sam Weinig.
3421
3422         * wtf/FeatureDefines.h:
3423
3424 2014-02-04  Mark Lam  <mark.lam@apple.com>
3425
3426         The stack limit computation does not work for Windows.
3427         <https://webkit.org/b/128226>
3428
3429         Reviewed by Geoffrey Garen.
3430
3431         The current stack limit computation assumes that the stack is allocated
3432         in high memory. On Windows, the stack seems to be allocated very near
3433         address 0, and is smaller in size than our Options::maxPerThreadStackUsage().
3434         This combination triggers a bug where StackBounds::recursionLimit()
3435         underflows and computes a limit address that is ridiculously high in memory.
3436         The net effect is that the Windows port thinks its out of stack space all
3437         the time.
3438
3439         We now check for potential underflows in StackBounds and return an
3440         appropriate limit address.
3441
3442         * wtf/StackBounds.h:
3443         (WTF::StackBounds::recursionLimit):
3444
3445 2014-02-04  Andreas Kling  <akling@apple.com>
3446
3447         Remove <iframe seamless> support.
3448         <https://webkit.org/b/128213>
3449
3450         Rubber-stamped by Antti Koivisto.
3451
3452         * wtf/FeatureDefines.h:
3453
3454 2014-02-04  Anders Carlsson  <andersca@apple.com>
3455
3456         Store StringImpl substring backpointers as tail data
3457         https://bugs.webkit.org/show_bug.cgi?id=128220
3458
3459         Reviewed by Geoffrey Garen.
3460
3461         This lets us get rid of m_substringBuffer from the union.
3462
3463         * wtf/text/StringImpl.cpp:
3464         (WTF::StringImpl::~StringImpl):
3465         (WTF::StringImpl::getData16SlowCase):
3466         * wtf/text/StringImpl.h:
3467         (WTF::StringImpl::StringImpl):
3468         (WTF::StringImpl::createSubstringSharingImpl8):
3469         (WTF::StringImpl::createSubstringSharingImpl):
3470         (WTF::StringImpl::cost):
3471         (WTF::StringImpl::costDuringGC):
3472         (WTF::StringImpl::substringBuffer):
3473
3474 2014-02-04  Anders Carlsson  <andersca@apple.com>
3475
3476         Rename the substring sharing StringImpl::create variants to better indicate what they do
3477         https://bugs.webkit.org/show_bug.cgi?id=128214
3478
3479         Reviewed by Geoffrey Garen.
3480
3481         * wtf/text/AtomicString.cpp:
3482         (WTF::SubstringTranslator::translate):
3483         * wtf/text/StringBuilder.cpp:
3484         (WTF::StringBuilder::reifyString):
3485         (WTF::StringBuilder::resize):
3486         * wtf/text/StringImpl.h:
3487         (WTF::StringImpl::createSubstringSharingImpl8):
3488         (WTF::StringImpl::createSubstringSharingImpl):
3489         * wtf/text/WTFString.cpp:
3490         (WTF::String::substringSharingImpl):
3491
3492 2014-02-04  Alexey Proskuryakov  <ap@apple.com>
3493
3494         WebCrypto HMAC verification uses a non-constant-time memcmp
3495         https://bugs.webkit.org/show_bug.cgi?id=128198
3496         <rdar://problem/15976961>
3497
3498         Reviewed by Oliver Hunt.
3499
3500         Added a "constant time" memcmp that doesn't depend on data. The name is somewhat
3501         strange, as the function is of course O(length) and not constant time at all,
3502         but apparently this is how everyone calls such functions.
3503
3504         * GNUmakefile.list.am:
3505         * WTF.vcxproj/WTF.vcxproj:
3506         * WTF.vcxproj/WTF.vcxproj.filters:
3507         * WTF.xcodeproj/project.pbxproj:
3508         * wtf/CMakeLists.txt:
3509         * wtf/CryptographicUtilities.cpp: Added. (WTF::constantTimeMemcmp):
3510         * wtf/CryptographicUtilities.h: Added.
3511
3512 2014-02-04  Anders Carlsson  <andersca@apple.com>
3513
3514         Rename StringImpl::getCharacters to StringImpl::characters
3515         https://bugs.webkit.org/show_bug.cgi?id=128205
3516
3517         Reviewed by Antti Koivisto.
3518
3519         This lets us use StringImpl::getCharacters for the upconverting version.
3520         Also, change StringImpl::characters<UChar>() to call characters16() instead of deprecatedCharacters()
3521         and audit all call sites to make sure we weren't relying on upconversion anywhere.
3522
3523         * wtf/text/AtomicString.cpp:
3524         (WTF::findString):
3525         * wtf/text/StringImpl.cpp:
3526         (WTF::StringImpl::simplifyMatchedCharactersToSpace):
3527         * wtf/text/StringImpl.h:
3528         (WTF::StringImpl::characters<LChar>):
3529         (WTF::StringImpl::characters<UChar>):
3530
3531 2014-02-04  Anders Carlsson  <andersca@apple.com>
3532
3533         Rename equalNonNull to equal and make it take const StringImpl& instead
3534         https://bugs.webkit.org/show_bug.cgi?id=128206
3535
3536         Reviewed by Andreas Kling.
3537
3538         * wtf/text/StringHash.h:
3539         (WTF::StringHash::equal):
3540         * wtf/text/StringImpl.cpp:
3541         (WTF::stringImplContentEqual):
3542         (WTF::equal):
3543         * wtf/text/StringImpl.h:
3544
3545 2014-02-04  Anders Carlsson  <andersca@apple.com>
3546
3547         Get rid of StringImpl::m_buffer
3548         https://bugs.webkit.org/show_bug.cgi?id=128200
3549
3550         Reviewed by Michael Saboff.
3551
3552         Trade one lousy hack for another by changing the CreateEmptyUnique StringImpl
3553         constructor to initialize its character buffer to point to m_length instead
3554         since it will always be null.
3555
3556         Also change it to be an 8-bit string because why not.
3557
3558         * wtf/text/StringImpl.h:
3559         (WTF::StringImpl::StringImpl):
3560
3561 2014-02-04  Anders Carlsson  <andersca@apple.com>
3562
3563         Rename String::getCharacters to String::characters
3564         https://bugs.webkit.org/show_bug.cgi?id=128196
3565
3566         Reviewed by Andreas Kling.
3567
3568         This means String::characters() will end up calling either characters8() or characters16() which
3569         makes more logical sense. It also frees up the getCharacters name so we can use it for a new function
3570         that will do upconversion.
3571         
3572         * wtf/text/StringBuilder.cpp:
3573         (WTF::StringBuilder::appendUninitializedSlow):
3574         * wtf/text/WTFString.h:
3575         (WTF::String::characters<LChar>):
3576         (WTF::String::characters<UChar>):
3577
3578 2014-02-03  Anders Carlsson  <andersca@apple.com>
3579
3580         Fix Windows build.
3581
3582         * wtf/text/StringImpl.h:
3583         (WTF::StringImpl::tailOffset):
3584
3585 2014-02-03  Anders Carlsson  <andersca@apple.com>
3586
3587         StringImpl::tailOffset() should return the offset right after m_hashAndFlags
3588         https://bugs.webkit.org/show_bug.cgi?id=128141
3589
3590         Reviewed by Andreas Kling.
3591
3592         * wtf/text/StringImpl.h:
3593         (WTF::StringImpl::tailOffset):
3594
3595 2014-02-03  Anders Carlsson  <andersca@apple.com>
3596
3597         More tail pointer consolidation
3598         https://bugs.webkit.org/show_bug.cgi?id=128139
3599
3600         Reviewed by Andreas Kling.
3601
3602         Add a new tailOffset() function and reimplement allocationSize() and tailPointer()
3603         in terms of it. Use tailPointer() instead of reinterpret_cast-ing this + 1.
3604
3605         * wtf/text/StringImpl.cpp:
3606         (WTF::StringImpl::createUninitializedInternalNonEmpty):
3607         * wtf/text/StringImpl.h:
3608         (WTF::StringImpl::StringImpl):
3609         (WTF::StringImpl::requiresCopy):
3610         (WTF::StringImpl::allocationSize):
3611         (WTF::StringImpl::tailOffset):
3612         (WTF::StringImpl::tailPointer):
3613
3614 2014-02-03  Gustavo Noronha Silva  <gns@gnome.org>
3615
3616         [GTK][CMake] Enable SUBPIXEL_LAYOUT in FeatureDefines.h like EFL does
3617         https://bugs.webkit.org/show_bug.cgi?id=128136
3618
3619         Reviewed by Martin Robinson.
3620
3621         * wtf/FeatureDefines.h: enable SUBPIXEL_LAYOUT if it's not set, for GTK+.
3622
3623 2014-02-03  Mark Hahnenberg  <mhahnenberg@apple.com>
3624
3625         Turn GenGC on
3626         https://bugs.webkit.org/show_bug.cgi?id=128109
3627
3628         Reviewed by Oliver Hunt.
3629
3630         * wtf/Platform.h: Initially it will only be enabled for X86-64.
3631
3632 2014-02-03  Anders Carlsson  <andersca@apple.com>
3633
3634         Consolidate StringImpl tail handling into two functions
3635         https://bugs.webkit.org/show_bug.cgi?id=128122
3636
3637         Reviewed by Andreas Kling.
3638
3639         * wtf/text/StringImpl.cpp:
3640         (WTF::StringImpl::createUninitializedInternalNonEmpty):
3641         (WTF::StringImpl::reallocateInternal):
3642         * wtf/text/StringImpl.h:
3643         (WTF::StringImpl::tryCreateUninitialized):
3644         (WTF::StringImpl::allocationSize):
3645         (WTF::StringImpl::tailPointer):
3646
3647 2014-02-03  Darin Adler  <darin@apple.com>
3648
3649         Remove Unicode.h
3650         https://bugs.webkit.org/show_bug.cgi?id=128106
3651
3652         Reviewed by Anders Carlsson.
3653
3654         * GNUmakefile.list.am: Removed files.
3655         * WTF.vcxproj/WTF.vcxproj: Ditto.
3656         * WTF.vcxproj/WTF.vcxproj.filters: Ditto.
3657         * WTF.xcodeproj/project.pbxproj: Ditto.
3658         * wtf/CMakeLists.txt: Ditto.
3659
3660         * wtf/unicode/ScriptCodesFromICU.h: Removed.
3661         * wtf/unicode/Unicode.h: Removed.
3662         * wtf/unicode/UnicodeMacrosFromICU.h: Removed.
3663         * wtf/unicode/icu/UnicodeIcu.h: Removed.
3664         * wtf/unicode/wchar/UnicodeWchar.cpp: Removed.
3665         * wtf/unicode/wchar/UnicodeWchar.h: Removed.
3666
3667 2014-01-25  Darin Adler  <darin@apple.com>
3668
3669         Stop using Unicode.h
3670         https://bugs.webkit.org/show_bug.cgi?id=127633
3671
3672         Reviewed by Anders Carlsson.
3673
3674         * wtf/StringHasher.h: