| 2016-09-23 Filip Pizlo <fpizlo@apple.com> |
| |
| Need a store-load fence between setting cell state and visiting the object in SlotVisitor |
| https://bugs.webkit.org/show_bug.cgi?id=162354 |
| |
| Reviewed by Mark Lam. |
| |
| Fix this on x86-32. |
| |
| * wtf/Atomics.h: |
| (WTF::x86_ortop): |
| |
| 2016-09-23 Caitlin Potter <caitp@igalia.com> |
| |
| [JSC] Implement parsing of Async Functions |
| https://bugs.webkit.org/show_bug.cgi?id=161409 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-09-23 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r206314, r206316, and r206319. |
| https://bugs.webkit.org/show_bug.cgi?id=162506 |
| |
| These changes broke various builds (Requested by ryanhaddad on |
| #webkit). |
| |
| Reverted changesets: |
| |
| "Need a store-load fence between setting cell state and |
| visiting the object in SlotVisitor" |
| https://bugs.webkit.org/show_bug.cgi?id=162354 |
| http://trac.webkit.org/changeset/206314 |
| |
| "Unreviewed, fix cloop." |
| http://trac.webkit.org/changeset/206316 |
| |
| "Unreviewed, fix all other builds." |
| http://trac.webkit.org/changeset/206319 |
| |
| 2016-09-23 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| REGRESSION(r194387): Crash on github.com in IntlDateTimeFormat::resolvedOptions in C locale |
| https://bugs.webkit.org/show_bug.cgi?id=162139 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Handle the case of "C" or "POSIX" locale and use "en-US" as default. That matches what ICU and other ports do, |
| as well as what layout tests expect (some tests like js/intl-collator.html pass in the bots only because we use |
| en-US as system locale in those bots). |
| |
| * wtf/PlatformUserPreferredLanguagesUnix.cpp: |
| (WTF::platformLanguage): |
| |
| 2016-09-22 Filip Pizlo <fpizlo@apple.com> |
| |
| Need a store-load fence between setting cell state and visiting the object in SlotVisitor |
| https://bugs.webkit.org/show_bug.cgi?id=162354 |
| |
| Reviewed by Mark Lam. |
| |
| Fix this on x86-32. |
| |
| * wtf/Atomics.h: |
| (WTF::x86_ortop): |
| |
| 2016-09-22 Filip Pizlo <fpizlo@apple.com> |
| |
| Fences on x86 should be a lot cheaper |
| https://bugs.webkit.org/show_bug.cgi?id=162417 |
| |
| Reviewed by Mark Lam and Geoffrey Garen. |
| |
| It turns out that: |
| |
| lock; orl $0, (%rsp) |
| |
| does everything that we wanted from: |
| |
| mfence |
| |
| And it's a lot faster. When I tried mfence for making object visiting concurrent-GC-TSO- |
| friendly, it was a 9% regression on Octane/splay. But when I tried ortop, it was neutral. |
| So, we should use ortop from now on. |
| |
| This part of the change just affects our Atomics. I also changed this in the JITs. |
| |
| * wtf/Atomics.h: |
| (WTF::x86_ortop): |
| (WTF::storeLoadFence): |
| (WTF::x86_mfence): Deleted. |
| |
| 2016-09-21 Alexey Proskuryakov <ap@apple.com> |
| |
| Rolling out r206244, as it caused flaky crashes on tests. |
| Was: Correct uses of 'safeCast' |
| |
| * wtf/StdLibExtras.h: |
| (WTF::safeCast): |
| |
| 2016-09-21 Keith Miller <keith_miller@apple.com> |
| |
| Fix build for future versions of Clang. |
| https://bugs.webkit.org/show_bug.cgi?id=162346 |
| |
| Reviewed by Filip Pizlo. |
| |
| This fixes issues with the WebCore build where inline |
| template-class function definitions are marked as exported. This |
| genereates a weak external symobl that our build does not like. |
| |
| * wtf/text/StringImpl.h: |
| |
| 2016-09-20 Brent Fulgham <bfulgham@apple.com> |
| |
| Correct uses of 'safeCast' |
| https://bugs.webkit.org/show_bug.cgi?id=162301 |
| <rdar://problem/28343658> |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/StdLibExtras.h: |
| (WTF::safeCast): RELEASE_ASSERT on overflow. |
| |
| 2016-09-21 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r206222 and r206227. |
| https://bugs.webkit.org/show_bug.cgi?id=162361 |
| |
| "broke the windows build" (Requested by keith_mi_ on #webkit). |
| |
| Reverted changesets: |
| |
| "Fix build for future versions of Clang." |
| https://bugs.webkit.org/show_bug.cgi?id=162346 |
| http://trac.webkit.org/changeset/206222 |
| |
| "Attempt to fix windows build after r206222." |
| http://trac.webkit.org/changeset/206227 |
| |
| 2016-09-21 Keith Miller <keith_miller@apple.com> |
| |
| Fix build for future versions of Clang. |
| https://bugs.webkit.org/show_bug.cgi?id=162346 |
| |
| Reviewed by Filip Pizlo. |
| |
| This fixes issues with the WebCore build where inline |
| template-class function definitions are marked as exported. This |
| genereates a weak external symobl that our build does not like. |
| |
| * wtf/text/StringImpl.h: |
| |
| 2016-09-20 Alex Christensen <achristensen@webkit.org> |
| |
| Require WTFMove for String::adopt |
| https://bugs.webkit.org/show_bug.cgi?id=162313 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::removeCharacters): |
| (WTF::StringImpl::simplifyMatchedCharactersToSpace): |
| (WTF::StringImpl::adopt): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::adopt): |
| * wtf/text/WTFString.h: |
| (WTF::String::adopt): |
| |
| 2016-09-20 Filip Pizlo <fpizlo@apple.com> |
| |
| Make MarkedBlock state tracking support overlapped allocation and marking state |
| https://bugs.webkit.org/show_bug.cgi?id=161581 |
| |
| Reviewed by Geoffrey Garen. |
| |
| The main change here is to bring back FastBitVector.cpp, so that I could outline some |
| large slow path functions. This also adds some utilities, like atomicSetAndCheck() and |
| isEmpty(). The GC uses these. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/FastBitVector.cpp: Added. |
| (WTF::FastBitVectorWordOwner::setEqualsSlow): |
| (WTF::FastBitVectorWordOwner::resizeSlow): |
| * wtf/FastBitVector.h: |
| (WTF::FastBitVectorWordOwner::operator=): |
| (WTF::FastBitVectorWordOwner::resize): |
| (WTF::FastBitVectorImpl::isEmpty): |
| (WTF::FastBitVector::atomicSetAndCheck): |
| (WTF::FastBitVector::operator[]): Deleted. |
| |
| 2016-09-20 Jonathan Bedard <jbedard@apple.com> |
| |
| Undefined behavior: Left shift negative number |
| https://bugs.webkit.org/show_bug.cgi?id=161866 |
| |
| Reviewed by Keith Miller. |
| |
| Left shifting a negative number is undefined behavior in C/C++, although most implementations do define it. Explicitly clarifying the intended behavior due to shifting negative number in some cases. |
| |
| * wtf/text/Base64.cpp: |
| (WTF::base64EncodeInternal): Changed signed character to unsigned when shifting. |
| (WTF::base64Encode): Ditto. |
| (WTF::base64URLEncode): Ditto. |
| (WTF::base64DecodeInternal): Ditto. |
| * wtf/text/Base64.h: Ditto. |
| (WTF::SignedOrUnsignedCharVectorAdapter): Rebuilt to stop using union as a bitwise_cast. |
| (WTF::ConstSignedOrUnsignedCharVectorAdapter): Ditto. |
| |
| 2016-09-19 Daniel Bates <dabates@apple.com> |
| |
| Remove ENABLE(TEXT_AUTOSIZING) automatic text size adjustment code |
| https://bugs.webkit.org/show_bug.cgi?id=162167 |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-09-14 Jer Noble <jer.noble@apple.com> |
| |
| [media-source] fix imported/w3c/web-platform-tests/media-source/mediasource-duration.html |
| https://bugs.webkit.org/show_bug.cgi?id=161999 |
| |
| Reviewed by Eric Carlson. |
| |
| The mediasource-duration.html test tries to set the duration of a MediaSource to a double value |
| (5.0), then some work happens and the duration is set to a media time (12533/2500, or 5.0132). |
| The test then tries to set that value as the duration, converted from a media time to a double, |
| and asserts that no duration change event is fired. But because the floating point value and the |
| media time value are ever so slightly different, this round-tripping fails. |
| |
| Fix this bug in MediaTime by, when one side or the other of a comparison is a floating point |
| MediaTime, convert both sides to doubles and run the comparison against those values. This preserves |
| the transitive equality of doubles <-> MediaTimes. |
| |
| * wtf/MediaTime.cpp: |
| (WTF::MediaTime::compare): |
| |
| 2016-09-16 Anders Carlsson <andersca@apple.com> |
| |
| Fix isValidEnum to work with older versions of GCC |
| https://bugs.webkit.org/show_bug.cgi?id=162065 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Use the ternary operator instead of a more complex function body. |
| |
| * wtf/EnumTraits.h: |
| |
| 2016-09-15 JF Bastien <jfbastien@apple.com> |
| |
| TextBreakIterator: unconvolute character break cache |
| https://bugs.webkit.org/show_bug.cgi?id=162001 |
| |
| Reviewed by Michael Saboff. |
| |
| Simplify the one-element cache. |
| |
| Added here (fixed a bit after): https://bugs.webkit.org/attachment.cgi?id=144118&action=prettypatch |
| Updated to never use a lock, and always use weak cmpxchg here: https://bugs.webkit.org/attachment.cgi?id=261719&action=prettypatch |
| |
| It's just trying to reduce the number of times it calls into ICU |
| to initialize a UBRK_CHARACTER. The implementation keeps a |
| one-element cache of the latest used one, which threads can |
| optimistically grab. Failure is fine (just create a new one), same |
| for failure to cache (just destroy it), but the logic is odd and |
| you technically need release / acquire semantics because the |
| UBRK_CHARACTER creation's store need to be visible on acquisition |
| (but realistically it was created and then used and *then* cached, |
| so it's probably been long ago enough that read reorders never |
| manifested). |
| |
| Using exchange directly achieves this without the headache. |
| |
| * wtf/text/TextBreakIterator.cpp: |
| (WTF::getNonSharedCharacterBreakIterator): |
| (WTF::cacheNonSharedCharacterBreakIterator): |
| (WTF::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): |
| (WTF::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): |
| (WTF::compareAndSwapNonSharedCharacterBreakIterator): Deleted. |
| |
| 2016-09-15 Keith Miller <keith_miller@apple.com> |
| |
| Pragma out undefined-var-template warnings in JSC for JSObjects that are templatized |
| https://bugs.webkit.org/show_bug.cgi?id=161985 |
| |
| Reviewed by Alex Christensen. |
| |
| Fix WTF_EXPORT_PRIVATE for an inline member function. This would |
| generate a weak export. |
| |
| * wtf/MetaAllocator.h: |
| (WTF::MetaAllocator::getLock): |
| |
| 2016-09-14 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r205933 and r205936. |
| https://bugs.webkit.org/show_bug.cgi?id=162002 |
| |
| broke the build (Requested by keith_miller on #webkit). |
| |
| Reverted changesets: |
| |
| "Pragma out undefined-var-template warnings in JSC for |
| JSObjects that are templatized" |
| https://bugs.webkit.org/show_bug.cgi?id=161985 |
| http://trac.webkit.org/changeset/205933 |
| |
| "Unreviewed, fix the Windows build." |
| http://trac.webkit.org/changeset/205936 |
| |
| 2016-09-14 Keith Miller <keith_miller@apple.com> |
| |
| Pragma out undefined-var-template warnings in JSC for JSObjects that are templatized |
| https://bugs.webkit.org/show_bug.cgi?id=161985 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Fix WTF_EXPORT_PRIVATE for an inline member function. This would |
| generate a weak export. |
| |
| * wtf/MetaAllocator.h: |
| (WTF::MetaAllocator::getLock): |
| |
| 2016-09-14 JF Bastien <jfbastien@apple.com> |
| |
| Atomics on ARM don't require full-system fencing, and other minutiae |
| https://bugs.webkit.org/show_bug.cgi?id=161928 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add cmpxchg versions with both success and failure memory |
| ordering. In some interesting cases we can craft code which needs |
| barriers which aren't as strong. |
| |
| weakCompareAndSwap is super dubious, its 3 uses seem |
| questionable... but for now I'm just adding debug asserts. |
| |
| Rename armv7_dmb* functions to arm_dmb* because they apply to v7 |
| and v8 (or more precisely; to ARMv7's ARM and Thumb2, as well as |
| ARMv8's aarch32 A32/T32 and aarch64). |
| |
| Use inner-shareability domain for ARM barriers instead of |
| full-system. This is what C++ uses. |
| |
| The default case for barriers simply used a compiler barrier. This |
| is generally wrong, e.g. for MIPS. |
| |
| * wtf/Atomics.h: |
| (WTF::Atomic::compareExchangeWeak): offer two-order version |
| (WTF::Atomic::compareExchangeStrong): offer two-order version |
| (WTF::weakCompareAndSwap): a few assertions |
| (WTF::arm_dmb): rename since it applies to ARMv7 and v8; make it innser-shareable |
| (WTF::arm_dmb_st): rename since it applies to ARMv7 and v8; make it innser-shareable |
| (WTF::loadLoadFence): incorrect generally |
| (WTF::loadStoreFence): incorrect generally |
| (WTF::storeLoadFence): incorrect generally |
| (WTF::storeStoreFence): incorrect generally |
| (WTF::memoryBarrierAfterLock): incorrect generally |
| (WTF::memoryBarrierBeforeUnlock): incorrect generally |
| (WTF::armV7_dmb): Deleted. |
| (WTF::armV7_dmb_st): Deleted. |
| |
| 2016-09-14 JF Bastien <jfbastien@apple.com> |
| |
| Alwasys inline atomic operations |
| https://bugs.webkit.org/show_bug.cgi?id=155371 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Fixes "build fails with memory model cannot be stronger than |
| success memory model for ‘__atomic_compare_exchange’". |
| |
| Pre-5 revisions of GCC at Os only generated an error message |
| related to invalid failure memory ordering. The reason is that |
| libstdc++ tries to be clever about enforcing the C++ standard's |
| clause [atomics.types.operations.req] ¶21 which states: |
| |
| Requires: The failure argument shall not be |
| `memory_order_release` nor `memory_order_acq_rel`. The failure |
| argument shall be no stronger than the success argument. |
| |
| It fails at doing this because its inlining heuristics are |
| modified by Os, and they're not quite as dumb as O0 but not smart |
| enough to get to the good code at O1. Adding ALWAYS_INLINE fixes |
| the silliness at Os, leaves O1 great, and makes O0 slightly less |
| bad but still pretty bad. |
| |
| The other good news is that I'm going to get this particular |
| problem fixed in the version of C++ which will come after C++17: |
| |
| https://github.com/jfbastien/papers/blob/master/source/P0418r1.bs |
| |
| While we're at it we should always inline all of these wrapped |
| functions because the generated code is horrendous if the memory |
| order isn't known at compile time. |
| |
| * wtf/Atomics.h: |
| (WTF::Atomic::load): |
| (WTF::Atomic::store): |
| (WTF::Atomic::compareExchangeWeak): |
| (WTF::Atomic::compareExchangeStrong): |
| (WTF::Atomic::exchangeAndAdd): |
| (WTF::Atomic::exchange): |
| |
| 2016-09-13 Michael Saboff <msaboff@apple.com> |
| |
| Promises aren't resolved properly when making a ObjC API callback |
| https://bugs.webkit.org/show_bug.cgi?id=161929 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Removed resetCurrentAtomicStringTable() which is no longer referenced. |
| |
| * wtf/WTFThreadData.h: |
| (WTF::WTFThreadData::resetCurrentAtomicStringTable): Deleted. |
| |
| 2016-09-13 Alex Christensen <achristensen@webkit.org> |
| |
| Implement URLSearchParams |
| https://bugs.webkit.org/show_bug.cgi?id=161920 |
| |
| Reviewed by Chris Dumez. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::split): Added. |
| |
| 2016-09-12 Filip Pizlo <fpizlo@apple.com> |
| |
| ParkingLot is going to have a bad time with threads dying |
| https://bugs.webkit.org/show_bug.cgi?id=161893 |
| |
| Reviewed by Michael Saboff. |
| |
| If a thread dies right as it falls out of parkConditionally, then unparkOne() and friends |
| might die because they will dereference a deallocated ThreadData. |
| |
| The solution is to ref-count ThreadData's. When unparkOne() and friends want to hold onto a |
| ThreadData past the queue lock, they can use RefPtr<>. |
| |
| * wtf/ParkingLot.cpp: |
| (WTF::ParkingLot::unparkOne): |
| (WTF::ParkingLot::unparkOneImpl): |
| (WTF::ParkingLot::unparkAll): |
| |
| 2016-09-12 Chris Dumez <cdumez@apple.com> |
| |
| Fix post-landing review comments after r205787 |
| https://bugs.webkit.org/show_bug.cgi?id=161885 |
| |
| Reviewed by Darin Adler. |
| |
| Add new StringBuilder::append(CFStringRef) / append(NSString*) |
| overloads to avoid an extra string copy when possible. |
| |
| * wtf/text/StringBuilder.cpp: |
| (WTF::StringBuilder::append): |
| * wtf/text/StringBuilder.h: |
| (WTF::StringBuilder::append): |
| |
| 2016-09-12 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WTF] HashTable's rehash is not compatible to Ref<T> and ASan |
| https://bugs.webkit.org/show_bug.cgi?id=161763 |
| |
| Reviewed by Darin Adler. |
| |
| Destructors of HashTable's empty values need to be called while ones of deleted values don't. |
| |
| * wtf/HashTable.h: |
| (WTF::KeyTraits>::deallocateTable): |
| * wtf/Ref.h: |
| |
| 2016-09-12 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Cocoa] Reduce uses of CGFonts in favor of CTFonts |
| https://bugs.webkit.org/show_bug.cgi?id=161809 |
| |
| Reviewed by Daniel Bates. |
| |
| * wtf/unicode/CharacterNames.h: |
| |
| 2016-09-12 Saam Barati <sbarati@apple.com> |
| |
| MapHash should do constant folding when it has a constant argument and its legal to hash that value |
| https://bugs.webkit.org/show_bug.cgi?id=161639 |
| |
| Reviewed by Filip Pizlo. |
| |
| This patch adds a concurrentHash method to StringImpl. It's |
| probably safe to get the actual hash while being racy, however, |
| it's simpler and more future proof to not have to worry about |
| that and to just compute it on demand. Users of this API should |
| be aware that it's doing non-trivial work. Currently, the only |
| user is JSC's JIT compilers, and they only ask for hashes for small-ish |
| strings. |
| |
| * wtf/text/StringImpl.h: |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::concurrentHash): |
| |
| 2016-09-11 Filip Pizlo <fpizlo@apple.com> |
| |
| DFG::forAllKilledOperands() could use a faster bitvector scan in the same-inline-stack fast path |
| https://bugs.webkit.org/show_bug.cgi?id=161849 |
| |
| Reviewed by Saam Barati. |
| |
| It turns out that templates make private fields weird. FastBitVectorImpl can't necessarily |
| touch privates in instances of different template specializations of itself. So, I added a |
| public method called wordView() that exposes the necessary private field. |
| |
| * wtf/FastBitVector.h: |
| (WTF::FastBitVectorImpl::operator&): |
| (WTF::FastBitVectorImpl::operator|): |
| (WTF::FastBitVectorImpl::operator~): |
| (WTF::FastBitVectorImpl::forEachSetBit): |
| (WTF::FastBitVectorImpl::wordView): |
| |
| 2016-09-11 Filip Pizlo <fpizlo@apple.com> |
| |
| FastBitVector should have efficient and easy-to-use vector-vector operations |
| https://bugs.webkit.org/show_bug.cgi?id=161847 |
| |
| Reviewed by Saam Barati. |
| |
| FastBitVector is a bitvector representation that supports manual dynamic resizing and is |
| optimized for speed, not space. (BitVector supports automatic dynamic resizing and is |
| optimized for space, while Bitmap is sized statically and is optimized for both speed and |
| space.) This change greatly increases the power of FastBitVector. We will use these new |
| powers for changing the JSC GC to use FastBitVectors to track sets of MarkedBlocks (bug |
| 161581) instead of using a combination of Vectors and doubly-linked lists. |
| |
| This change splits FastBitVector into two parts: |
| |
| - A thing that manages the storage of a bitvector: a uint32_t array and a size_t numBits. |
| We call this the word view. |
| - A thing that takes some kind of abstract array of uint32_t's and does bitvector |
| operations to it. We call this the FastBitVectorImpl. |
| |
| FastBitVectorImpl and word views are immutable. The FastBitVector class is a subclass of |
| FastBitVectorImpl specialized on a word view that owns its words and has additional |
| support for mutable operations. |
| |
| Doing this allows us to efficiently support things like this without any unnecessary |
| memory allocation or copying: |
| |
| FastBitVector a, b, c; // Assume that there is code to initialize these. |
| a &= b | ~c; |
| |
| Previously, this kind of operation would not be efficient, because "~c" would have to |
| create a whole new FastBitVector. But now, it just returns a FastBitVectorImpl whose |
| underlying word view bitnots (~) its words on the fly. Using template magic, this can get |
| pretty complex. For example "b | ~c" returns a FastBitVectorImpl that wraps a word view |
| whose implementation of WordView::word(size_t index) is something like: |
| |
| uint32_t word(size_t index) { return b.m_words.word(index) | ~c.m_words.word(index); } |
| |
| FastBitVectorImpl supports all of the fast bulk bitvector operations, like |
| forEachSetBit(), bitCount(), etc. So, when you say "a &= b | ~c", the actual |
| implementation is going to run these bit operations on word granularity directly over the |
| storage inside a, b, c. |
| |
| The use of operator overloading is worth explaining a bit. Previously, FastBitVector |
| avoided operator overloading. For example, the &= operation was called filter(). I think |
| that this was a pretty good approach at the time. I tried using non-operator methods in |
| this FastBitVector rewrite, but I found it very odd to say things like: |
| |
| a.filter(b.bitOr(c.bitNot())); |
| |
| I think that it's harder to see what is going on here, then using operators, because infix |
| notation is always better. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/BitVector.h: |
| (WTF::BitVector::findBitInWord): Deleted. |
| * wtf/CMakeLists.txt: |
| * wtf/Dominators.h: |
| (WTF::Dominators::NaiveDominators::NaiveDominators): |
| (WTF::Dominators::NaiveDominators::dominates): |
| (WTF::Dominators::NaiveDominators::pruneDominators): |
| * wtf/FastBitVector.cpp: Removed. |
| * wtf/FastBitVector.h: |
| (WTF::fastBitVectorArrayLength): |
| (WTF::FastBitVectorWordView::FastBitVectorWordView): |
| (WTF::FastBitVectorWordView::numBits): |
| (WTF::FastBitVectorWordView::word): |
| (WTF::FastBitVectorWordOwner::FastBitVectorWordOwner): |
| (WTF::FastBitVectorWordOwner::~FastBitVectorWordOwner): |
| (WTF::FastBitVectorWordOwner::view): |
| (WTF::FastBitVectorWordOwner::operator=): |
| (WTF::FastBitVectorWordOwner::setAll): |
| (WTF::FastBitVectorWordOwner::clearAll): |
| (WTF::FastBitVectorWordOwner::set): |
| (WTF::FastBitVectorWordOwner::numBits): |
| (WTF::FastBitVectorWordOwner::arrayLength): |
| (WTF::FastBitVectorWordOwner::resize): |
| (WTF::FastBitVectorWordOwner::word): |
| (WTF::FastBitVectorWordOwner::words): |
| (WTF::FastBitVectorAndWords::FastBitVectorAndWords): |
| (WTF::FastBitVectorAndWords::view): |
| (WTF::FastBitVectorAndWords::numBits): |
| (WTF::FastBitVectorAndWords::word): |
| (WTF::FastBitVectorOrWords::FastBitVectorOrWords): |
| (WTF::FastBitVectorOrWords::view): |
| (WTF::FastBitVectorOrWords::numBits): |
| (WTF::FastBitVectorOrWords::word): |
| (WTF::FastBitVectorNotWords::FastBitVectorNotWords): |
| (WTF::FastBitVectorNotWords::view): |
| (WTF::FastBitVectorNotWords::numBits): |
| (WTF::FastBitVectorNotWords::word): |
| (WTF::FastBitVectorImpl::FastBitVectorImpl): |
| (WTF::FastBitVectorImpl::numBits): |
| (WTF::FastBitVectorImpl::size): |
| (WTF::FastBitVectorImpl::arrayLength): |
| (WTF::FastBitVectorImpl::operator==): |
| (WTF::FastBitVectorImpl::operator!=): |
| (WTF::FastBitVectorImpl::at): |
| (WTF::FastBitVectorImpl::operator[]): |
| (WTF::FastBitVectorImpl::bitCount): |
| (WTF::FastBitVectorImpl::operator&): |
| (WTF::FastBitVectorImpl::operator|): |
| (WTF::FastBitVectorImpl::operator~): |
| (WTF::FastBitVectorImpl::forEachSetBit): |
| (WTF::FastBitVectorImpl::forEachClearBit): |
| (WTF::FastBitVectorImpl::forEachBit): |
| (WTF::FastBitVectorImpl::findBit): |
| (WTF::FastBitVectorImpl::findSetBit): |
| (WTF::FastBitVectorImpl::findClearBit): |
| (WTF::FastBitVectorImpl::dump): |
| (WTF::FastBitVectorImpl::atImpl): |
| (WTF::FastBitVector::FastBitVector): |
| (WTF::FastBitVector::operator=): |
| (WTF::FastBitVector::resize): |
| (WTF::FastBitVector::setAll): |
| (WTF::FastBitVector::clearAll): |
| (WTF::FastBitVector::setAndCheck): |
| (WTF::FastBitVector::operator|=): |
| (WTF::FastBitVector::operator&=): |
| (WTF::FastBitVector::at): |
| (WTF::FastBitVector::operator[]): |
| (WTF::FastBitVector::BitReference::BitReference): |
| (WTF::FastBitVector::BitReference::operator bool): |
| (WTF::FastBitVector::BitReference::operator=): |
| (WTF::FastBitVector::~FastBitVector): Deleted. |
| (WTF::FastBitVector::numBits): Deleted. |
| (WTF::FastBitVector::set): Deleted. |
| (WTF::FastBitVector::equals): Deleted. |
| (WTF::FastBitVector::merge): Deleted. |
| (WTF::FastBitVector::filter): Deleted. |
| (WTF::FastBitVector::exclude): Deleted. |
| (WTF::FastBitVector::clear): Deleted. |
| (WTF::FastBitVector::get): Deleted. |
| (WTF::FastBitVector::bitCount): Deleted. |
| (WTF::FastBitVector::forEachSetBit): Deleted. |
| (WTF::FastBitVector::arrayLength): Deleted. |
| * wtf/StdLibExtras.h: |
| (WTF::findBitInWord): |
| |
| 2016-09-10 Chris Dumez <cdumez@apple.com> |
| |
| parseHTMLInteger() should take a StringView in parameter |
| https://bugs.webkit.org/show_bug.cgi?id=161669 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * wtf/text/StringBuilder.h: |
| (WTF::StringBuilder::append): |
| Add StringBuilder::append() overload taking an AtomicString in parameter. |
| It used to call StringBuilder::append(const String&) implicitly when |
| passing an AtomicString. However, it is now ambiguous because there |
| is an overload taking a StringView, and it is now possible to construct |
| a StringView from an AtomicString. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::StringView): |
| - Add StringView constructor taking an AtomicString in parameter for |
| convenience. This avoids having to call AtomicString::string() |
| explicitly at call sites. |
| - Add StringView constructor taking a 'const char*' in parameter for |
| performance. There are several call sites that were passing a const |
| char* and implicitly constructing an unnecessary String to construct |
| a StringView. This became more obvious because the constructor taking |
| an AtomicString in parameter made such calls ambiguous. |
| |
| |
| 2016-09-09 Mark Lam <mark.lam@apple.com> |
| |
| Gardening: fixing a few JSC test failures. |
| https://bugs.webkit.org/show_bug.cgi?id=161760 |
| |
| Not reviewed. |
| |
| Without this fix, the following tests will crash on a null dereference of isGCThread. |
| stress/slow-path-generator-updating-current-node-dfg.js.misc-ftl-no-cjit |
| stress/unshift-array-storage.js.misc-ftl-no-cjit |
| |
| * wtf/MainThread.cpp: |
| (WTF::mayBeGCThread): |
| |
| 2016-09-08 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [WTF] HashTable's rehash is not compatible to Ref<T> and ASan |
| https://bugs.webkit.org/show_bug.cgi?id=161763 |
| |
| Reviewed by Mark Lam. |
| |
| If we move an object, the location which the moved object used should not be touched anymore. |
| HashTable::rehash performs WTFMove for the object that resides in the old table. |
| However, after moving it, we accidentally touch this location by using `!isEmptyOrDeletedBucket(table[i])` |
| in HashTable::deallocateTable. And it causes ASan crashing if we use Ref<> for HashTable's key or value. |
| |
| In this patch, we call the destructor right after moving the object. And HashTable::rehash just calls |
| fastFree since all the objects in the old table are already moved and destructed. |
| And we also change HashTable::deallocate to destruct only live objects. Calling destructors for empty objects |
| is meaningless. And according to the Ref<>'s comment, empty object is not designed to be destructed. |
| |
| * wtf/HashTable.h: |
| (WTF::KeyTraits>::deallocateTable): |
| |
| 2016-09-08 Filip Pizlo <fpizlo@apple.com> |
| |
| Heap::isMarked() shouldn't pay the price of concurrent lazy flipping |
| https://bugs.webkit.org/show_bug.cgi?id=161760 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/MainThread.cpp: |
| (WTF::isMainThreadOrGCThread): |
| (WTF::mayBeGCThread): |
| * wtf/MainThread.h: |
| |
| 2016-09-08 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Support new emoji group candidates |
| https://bugs.webkit.org/show_bug.cgi?id=161664 |
| <rdar://problem/24802695> |
| <rdar://problem/27666433> |
| |
| Reviewed by Simon Fraser. |
| |
| Update breaking rules. |
| |
| * wtf/text/TextBreakIterator.cpp: |
| (WTF::cursorMovementIterator): |
| |
| 2016-09-07 JF Bastien <jfbastien@apple.com> |
| |
| bitwise_cast: allow const destination type |
| https://bugs.webkit.org/show_bug.cgi?id=161719 |
| |
| Reviewed by Saam Barati. |
| |
| * wtf/StdLibExtras.h: |
| (WTF::bitwise_cast): allow `const To to = bitwise_cast<const To>(from);` |
| |
| 2016-09-07 Mark Lam <mark.lam@apple.com> |
| |
| Add CatchScope and force all exception checks to be via ThrowScope or CatchScope. |
| https://bugs.webkit.org/show_bug.cgi?id=161498 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Platform.h: |
| |
| 2016-09-07 Youenn Fablet <youenn@apple.com> |
| |
| [Streams API] Separate compile flag for ReadableStream and WritableStream |
| https://bugs.webkit.org/show_bug.cgi?id=161044 |
| |
| Reviewed by Alex Christensen. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-09-06 Saam Barati <sbarati@apple.com> |
| |
| Make JSMap and JSSet faster |
| https://bugs.webkit.org/show_bug.cgi?id=160989 |
| |
| Reviewed by Filip Pizlo. |
| |
| I made s_flagCount public in StringImpl since JSC's JITs now use this field. |
| |
| * wtf/text/StringImpl.h: |
| |
| 2016-09-06 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r205504. |
| https://bugs.webkit.org/show_bug.cgi?id=161645 |
| |
| Broke the iOS device build (Requested by ryanhaddad on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Make JSMap and JSSet faster" |
| https://bugs.webkit.org/show_bug.cgi?id=160989 |
| http://trac.webkit.org/changeset/205504 |
| |
| 2016-09-06 Saam Barati <sbarati@apple.com> |
| |
| Make JSMap and JSSet faster |
| https://bugs.webkit.org/show_bug.cgi?id=160989 |
| |
| Reviewed by Filip Pizlo. |
| |
| I made s_flagCount public since JSC's JITs now use this field. |
| |
| * wtf/text/StringImpl.h: |
| |
| 2016-09-06 Per Arne Vollan <pvollan@apple.com> |
| |
| [Win] Enable strict runtime stack buffer checks. |
| https://bugs.webkit.org/show_bug.cgi?id=161629 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/Platform.h: |
| |
| 2016-09-06 Daniel Bates <dabates@apple.com> |
| |
| Remove EXTERN_C from WTF |
| https://bugs.webkit.org/show_bug.cgi?id=161090 |
| |
| Reviewed by Brent Fulgham. |
| |
| Guard external C declarations in WTF_EXTERN_C_BEGIN, WTF_EXTERN_C_END. |
| |
| * wtf/Compiler.h: Remove macro definition EXTERN_C. |
| * wtf/spi/cf/CFBundleSPI.h: |
| * wtf/spi/cocoa/NSMapTableSPI.h: |
| * wtf/spi/cocoa/SecuritySPI.h: |
| * wtf/spi/darwin/CommonCryptoSPI.h: |
| * wtf/spi/darwin/SandboxSPI.h: |
| * wtf/spi/darwin/XPCSPI.h: |
| * wtf/spi/darwin/dyldSPI.h: |
| |
| 2016-08-31 Filip Pizlo <fpizlo@apple.com> |
| |
| Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression |
| https://bugs.webkit.org/show_bug.cgi?id=160125 |
| |
| Reviewed by Geoffrey Garen and Keith Miller. |
| |
| I needed tryFastAlignedMalloc() so I added it. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::tryFastAlignedMalloc): |
| * wtf/FastMalloc.h: |
| * wtf/ParkingLot.cpp: |
| (WTF::ParkingLot::forEachImpl): |
| (WTF::ParkingLot::forEach): Deleted. |
| * wtf/ParkingLot.h: |
| (WTF::ParkingLot::parkConditionally): |
| (WTF::ParkingLot::unparkOne): |
| (WTF::ParkingLot::forEach): |
| * wtf/ScopedLambda.h: |
| (WTF::scopedLambdaRef): |
| * wtf/SentinelLinkedList.h: |
| (WTF::SentinelLinkedList::forEach): |
| (WTF::RawNode>::takeFrom): |
| * wtf/SimpleStats.h: |
| (WTF::SimpleStats::operator bool): |
| (WTF::SimpleStats::operator!): Deleted. |
| |
| 2016-09-02 JF Bastien <jfbastien@apple.com> |
| |
| bitwise_cast infinite loops if called from the default constructor in ToType |
| https://bugs.webkit.org/show_bug.cgi?id=161365 |
| |
| Reviewed by Saam Barati. |
| |
| * wtf/StdLibExtras.h: |
| (WTF::bitwise_cast): use aggregate initialization to avoid ctor |
| |
| 2016-09-01 Anders Carlsson <andersca@apple.com> |
| |
| Use BlockPtr::fromCallable in WorkQueue::dispatch and WorkQueue::dispatchAfter |
| https://bugs.webkit.org/show_bug.cgi?id=161512 |
| |
| Reviewed by Chris Dumez. |
| |
| This lets us get rid of leakCallable and adoptCallable. |
| |
| * wtf/BlockPtr.h: |
| * wtf/Function.h: |
| * wtf/cocoa/WorkQueueCocoa.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| |
| 2016-09-01 Anders Carlsson <andersca@apple.com> |
| |
| add BlockPtr::fromCallable |
| https://bugs.webkit.org/show_bug.cgi?id=161504 |
| |
| Reviewed by Tim Horton. |
| |
| BlockPtr::fromCallable lets you create an Objective-C block from any callable object - including lambdas that contain move-only types. |
| The block will be allocated on the heap so it doesn't ever need to be copied (which is how it can work with move-only types). |
| |
| * wtf/BlockPtr.h: |
| |
| 2016-08-31 Keith Rollin <krollin@apple.com> |
| |
| WebKit should set a subsystem for os_log so it's easier to filter for WebKit log messages |
| https://bugs.webkit.org/show_bug.cgi?id=160969 |
| <rdar://problem/26068734> |
| |
| Reviewed by Simon Fraser. |
| |
| Add support for attaching a subsystem and category when logging via |
| the RELEASE_LOG macros. This support is provided by adding subsystem |
| and category information to WTFLogChannel. An os_log_t object is then |
| created to enacpsulate that information. When using RELEASE_LOG to log |
| through that channel, the associated log object is used when calling |
| os_log. |
| |
| To help support the inclusion of the subsystem and category |
| information in WTFLogChannel, the DECLARE_LOG_CHANNEL, |
| DEFINE_LOG_CHANNEL, and LOG_CHANNEL_ADDRESS macros that were defined |
| in various modules are consolidated and moved to Assertions.h. |
| DEFINE_LOG_CHANNEL is now defined to initialize the subsystem and |
| category. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| * wtf/RefCountedLeakCounter.cpp: |
| |
| 2016-08-31 Alex Christensen <achristensen@webkit.org> |
| |
| Implement IPv6 parsing in URLParser |
| https://bugs.webkit.org/show_bug.cgi?id=161390 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/ASCIICType.h: |
| (WTF::lowerNibbleToLowercaseASCIIHexDigit): |
| (WTF::upperNibbleToLowercaseASCIIHexDigit): |
| |
| 2016-08-30 Brady Eidson <beidson@apple.com> |
| |
| GameController.framework backend for gamepad API. |
| https://bugs.webkit.org/show_bug.cgi?id=161086 |
| |
| Reviewed by Alex Christensen. |
| |
| * wtf/RunLoop.h: |
| (WTF::RunLoop::TimerBase::startOneShot): |
| |
| 2016-08-30 Mark Lam <mark.lam@apple.com> |
| |
| Introduce the ThrowScope and force every throw site to instantiate a ThrowScope. |
| https://bugs.webkit.org/show_bug.cgi?id=161171 |
| |
| Reviewed by Filip Pizlo and Geoffrey Garen. |
| |
| * wtf/Platform.h: |
| - Introduced the ENABLE(THROW_SCOPE_VERIFICATION) flag. |
| |
| 2016-08-27 Alex Christensen <achristensen@webkit.org> |
| |
| URLParser should parse relative URLs |
| https://bugs.webkit.org/show_bug.cgi?id=161282 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/text/StringView.h: |
| Use a std::reference_wrapper for the StringView& to make it reassignable so we can add an operator=. |
| |
| 2016-08-26 JF Bastien <jfbastien@apple.com> |
| |
| bitwise_cast uses inactive member of union |
| https://bugs.webkit.org/show_bug.cgi?id=161244 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/Compiler.h: |
| Add COMPILER_HAS_CLANG_FEATURE |
| * wtf/StdLibExtras.h: |
| (WTF::bitwise_cast): |
| Fix C++ UB, add trivially-copyable check. |
| |
| bitwise_cast stores into a union with one type and reads with |
| another, which is technically C++ undefined behavior because it's |
| accessing the wrong active member of the union. The better way to |
| do this is through memcpy, which compilers optimize as well |
| because it's known-size in known-not-to-escape storage (for small |
| types they'll inline and then convert stack memory access to SSA |
| values which may be in-register if that makes sense, which would |
| be a move between int/FP registers at worst). |
| |
| The C++ Standard's section [basic.types] explicitly blesses memcpy: |
| |
| For any trivially copyable type T, if two pointers to T point to |
| distinct T objects obj1 and obj2, where neither obj1 nor obj2 is a |
| base-class subobject, if the underlying bytes (1.7) making up obj1 |
| are copied into obj2, 42 obj2 shall subsequently hold the same |
| value as obj1. |
| |
| [Example: |
| T* t1p; |
| T* t2p; |
| // provided that t2p points to an initialized object ... |
| std::memcpy(t1p, t2p, sizeof(T)); |
| // at this point, every subobject of trivially copyable type in *t1p contains |
| // the same value as the corresponding subobject in *t2p |
| — end example ] |
| |
| Whereas section [class.union] says: |
| |
| In a union, at most one of the non-static data members can be |
| active at any time, that is, the value of at most one of the |
| non-static data members can be stored in a union at any time. |
| |
| While we're at it, checking that sizeof(To) == sizeof(From) is |
| good, but we should also check that both types are trivially |
| copyable (can have a ctor, no dtor, and copy is defaulted as if by |
| memcpy for type and all subtypes). Unfortunately that trait isn't |
| implemented consistently in all recent compiler+stdlib |
| implementations, but recent clang has an equivalent builtin |
| (other compilers simply won't do the check, and will break on bots |
| with the right compilers which is better than the current silent |
| breakage). This builtin hack also avoids #include <type_traits> |
| which really doesn't save much. |
| |
| 2016-08-26 Johan K. Jensen <johan_jensen@apple.com> |
| |
| Web Inspector: Frontend should have access to Resource Timing information |
| https://bugs.webkit.org/show_bug.cgi?id=160095 |
| |
| Reviewed by Alex Christensen. |
| |
| Add method to get elapsed time for any monotonic time. |
| Used by InspectorNetworkAgent. |
| |
| * wtf/Stopwatch.h: |
| (WTF::Stopwatch::elapsedTimeSinceMonotonicTime): |
| |
| 2016-08-26 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Fix the ENABLE(WEBASSEMBLY) build on Linux |
| https://bugs.webkit.org/show_bug.cgi?id=161197 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/Platform.h: |
| |
| 2016-08-25 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [DFG][FTL] Implement ES6 Generators in DFG / FTL |
| https://bugs.webkit.org/show_bug.cgi?id=152723 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/FastBitVector.h: |
| (WTF::FastBitVector::FastBitVector): |
| |
| 2016-08-25 JF Bastien <jfbastien@apple.com> |
| |
| TryGetById should have a ValueProfile so that it can predict its output type |
| https://bugs.webkit.org/show_bug.cgi?id=160921 |
| |
| Reviewed by Saam Barati. |
| |
| Add WTF_CONCAT to StdLibExtras.h |
| |
| * wtf/StdLibExtras.h: |
| |
| 2016-08-25 Johan K. Jensen <johan_jensen@apple.com> |
| |
| Don't store networkLoadTiming in the disk cache |
| https://bugs.webkit.org/show_bug.cgi?id=161161 |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/Forward.h: |
| Remove Encode and Decode forward declarations. |
| |
| 2016-08-24 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [JSC] Move generic data structures out of B3 |
| https://bugs.webkit.org/show_bug.cgi?id=161155 |
| |
| Reviewed by Saam Barati. |
| |
| Add IndexSet, IndexMap, and IndexedContainerIterator. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/IndexMap.h: Copied from Source/JavaScriptCore/b3/B3IndexMap.h. |
| (WTF::IndexMap::IndexMap): |
| (WTF::IndexMap::resize): |
| (WTF::IndexMap::clear): |
| (WTF::IndexMap::size): |
| (WTF::IndexMap::operator[]): |
| * wtf/IndexSet.h: Renamed from Source/JavaScriptCore/b3/B3IndexSet.h. |
| (WTF::IndexSet::IndexSet): |
| (WTF::IndexSet::add): |
| (WTF::IndexSet::addAll): |
| (WTF::IndexSet::remove): |
| (WTF::IndexSet::contains): |
| (WTF::IndexSet::size): |
| (WTF::IndexSet::isEmpty): |
| (WTF::IndexSet::Iterable::Iterable): |
| (WTF::IndexSet::Iterable::iterator::iterator): |
| (WTF::IndexSet::Iterable::iterator::operator*): |
| (WTF::IndexSet::Iterable::iterator::operator++): |
| (WTF::IndexSet::Iterable::iterator::operator==): |
| (WTF::IndexSet::Iterable::iterator::operator!=): |
| (WTF::IndexSet::Iterable::begin): |
| (WTF::IndexSet::Iterable::end): |
| (WTF::IndexSet::values): |
| (WTF::IndexSet::indices): |
| (WTF::IndexSet::dump): |
| * wtf/IndexedContainerIterator.h: Renamed from Source/JavaScriptCore/b3/B3IndexMap.h. |
| (WTF::IndexedContainerIterator::IndexedContainerIterator): |
| (WTF::IndexedContainerIterator::operator++): |
| (WTF::IndexedContainerIterator::operator==): |
| (WTF::IndexedContainerIterator::operator!=): |
| (WTF::IndexedContainerIterator::findNext): |
| |
| 2016-08-24 Andreas Kling <akling@apple.com> |
| |
| Add WTF::isFastMallocEnabled(). |
| <https://webkit.org/b/160534> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::isFastMallocEnabled): |
| * wtf/FastMalloc.h: |
| |
| 2016-08-23 Anders Carlsson <andersca@apple.com> |
| |
| Add enum traits and use them in the IPC::Decoder |
| https://bugs.webkit.org/show_bug.cgi?id=161103 |
| |
| Reviewed by Sam Weinig. |
| |
| Add EnumTraits.h which provides a forward declaration for WTF::EnumTraits as well as |
| the WTF::isValidEnum function. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/EnumTraits.h: Added. |
| |
| 2016-08-24 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, roll out r204901, r204897, r204866, r204856, r204854. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::tryFastAlignedMalloc): Deleted. |
| * wtf/FastMalloc.h: |
| * wtf/ParkingLot.cpp: |
| (WTF::ParkingLot::forEach): |
| (WTF::ParkingLot::forEachImpl): Deleted. |
| * wtf/ParkingLot.h: |
| (WTF::ParkingLot::parkConditionally): |
| (WTF::ParkingLot::unparkOne): |
| (WTF::ParkingLot::forEach): Deleted. |
| * wtf/ScopedLambda.h: |
| (WTF::scopedLambdaRef): Deleted. |
| |
| 2016-08-22 Filip Pizlo <fpizlo@apple.com> |
| |
| Butterflies should be allocated in Auxiliary MarkedSpace instead of CopiedSpace and we should rewrite as much of the GC as needed to make this not a regression |
| https://bugs.webkit.org/show_bug.cgi?id=160125 |
| |
| Reviewed by Geoffrey Garen. |
| |
| I needed tryFastAlignedMalloc() so I added it. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::fastAlignedMalloc): |
| (WTF::tryFastAlignedMalloc): |
| (WTF::fastAlignedFree): |
| * wtf/FastMalloc.h: |
| |
| 2016-08-22 Keith Miller <keith_miller@apple.com> |
| |
| Actually enable the WASM build. |
| https://bugs.webkit.org/show_bug.cgi?id=160933 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-08-17 Don Olmstead <don.olmstead@am.sony.com> |
| |
| Use find_library within Windows build |
| https://bugs.webkit.org/show_bug.cgi?id=160904 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/CMakeLists.txt: |
| |
| 2016-08-17 Anders Carlsson <andersca@apple.com> |
| |
| Move WKSignedPublicKeyAndChallengeString into WebCore and make it proper C++ |
| https://bugs.webkit.org/show_bug.cgi?id=160945 |
| |
| Reviewed by Dan Bernstein. |
| |
| * wtf/RetainPtr.h: |
| (WTF::RetainPtr::operator&): |
| Cast this to the right type. |
| |
| * wtf/spi/cocoa/SecuritySPI.h: |
| Add new SPI. |
| |
| 2016-08-17 Antti Koivisto <antti@apple.com> |
| |
| Remove CSS_IMAGE_SET feature define |
| https://bugs.webkit.org/show_bug.cgi?id=160944 |
| |
| Reviewed by Dean Jackson. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-08-16 Keith Miller <keith_miller@apple.com> |
| |
| Enable WebAssembly in the build. |
| https://bugs.webkit.org/show_bug.cgi?id=160916 |
| |
| Reviewed by Benjamin Poulain. |
| |
| This patch turns on WebAssembly on all the platforms that support B3. |
| Turning on WebAssembly by default lets us check the build on every |
| platform. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-08-16 Anders Carlsson <andersca@apple.com> |
| |
| Fix a thinko. |
| |
| * wtf/Scope.h: |
| |
| 2016-08-16 Anders Carlsson <andersca@apple.com> |
| |
| Add WTF::ScopeExit |
| https://bugs.webkit.org/show_bug.cgi?id=160908 |
| |
| Reviewed by Geoffrey Garen. |
| |
| WTF::ScopeExit and WTF::makeScopeExit let you define an object that will invoke a function when the |
| object goes out of scope. This is going to be used to avoid spagetti-code and gotos in a future patch. |
| |
| The class is modeled after the LWG paper "P0052 - Generic Scope Guard and RAII Wrapper for the Standard Library". |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/Scope.h: Added. |
| (WTF::makeScopeExit): |
| |
| 2016-08-15 Anders Carlsson <andersca@apple.com> |
| |
| Add an address-of operator to RetainPtr |
| https://bugs.webkit.org/show_bug.cgi?id=160879 |
| |
| Reviewed by Tim Horton. |
| |
| This will make some security-related code from WebKitSystemInterface easier to port. |
| |
| * wtf/HashIterators.h: |
| (WTF::HashTableValuesIterator::get): |
| * wtf/HashTable.h: |
| (WTF::HashTableBucketInitializer<true>::initialize): |
| Use std::addressof instead of &, in case & is overloaded. |
| |
| * wtf/RetainPtr.h: |
| (WTF::RetainPtr::operator&): |
| Implement this. |
| |
| 2016-08-15 Sam Weinig <sam@webkit.org> |
| |
| Speed up compile times by not including wtf/Variant.h so much |
| https://bugs.webkit.org/show_bug.cgi?id=160847 |
| |
| Reviewed by Alex Christensen and Saam Barati. |
| |
| * wtf/Forward.h: |
| Add forward declaration of std::variant. |
| |
| * wtf/StdLibExtras.h: |
| Remove references to std::variant. Move them to wtf/Variant.h |
| |
| 2016-08-15 Keith Miller <keith_miller@apple.com> |
| |
| Implement WASM Parser and B3 IR generator |
| https://bugs.webkit.org/show_bug.cgi?id=160681 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/DataLog.h: |
| (WTF::dataLogLn): Add a new dataLog function, dataLogLn that |
| automagically includes a new line at the end of the print. |
| * wtf/LEBDecoder.h: |
| (decodeUInt32): |
| (decodeInt32): Change the LEBDecoder to take a pointer and length |
| rather than a Vector. |
| |
| 2016-08-15 Keith Rollin <krollin@apple.com> |
| |
| Rename LOG_ALWAYS |
| https://bugs.webkit.org/show_bug.cgi?id=160768 |
| |
| Rename LOG_ALWAYS and friends, given that the first parameter to it is |
| a boolean expression that determines whether or not logging should be |
| performed. |
| |
| Reviewed by Chris Dumez. |
| |
| * wtf/Assertions.h: |
| |
| 2016-08-15 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Remove unused includes of wtf headers |
| https://bugs.webkit.org/show_bug.cgi?id=160839 |
| |
| Reviewed by Alex Christensen. |
| |
| * wtf/BackwardsGraph.h: |
| * wtf/DataLog.cpp: |
| * wtf/WorkQueue.cpp: |
| * wtf/text/StringImpl.cpp: |
| * wtf/unicode/icu/CollatorICU.cpp: |
| |
| 2016-08-14 Daniel Bates <dabates@apple.com> |
| |
| Fix compiler errors when building iOS WebKit using the iOS 10 beta SDK |
| https://bugs.webkit.org/show_bug.cgi?id=160725 |
| |
| Reviewed by Sam Weinig. |
| |
| For now, disable OS_LOG when building with the iOS 10 beta SDK until |
| we have the fix for <rdar://problem/27758343>. |
| |
| * wtf/Platform.h: |
| |
| 2016-08-13 Dan Bernstein <mitz@apple.com> |
| |
| Build fix follow-up to r204433. |
| |
| * wtf/StdLibExtras.h: |
| (WTF::makeVisitor): Don’t use an auto return type. |
| |
| 2016-08-12 Sam Weinig <sam@webkit.org> |
| |
| Make variant only available when compiling for C++14 or greater |
| https://bugs.webkit.org/show_bug.cgi?id=160813 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Compiler.h: |
| * wtf/StdLibExtras.h: |
| * wtf/Variant.h: |
| |
| 2016-08-11 Maureen Daum <mdaum@apple.com> |
| |
| Add NSButtonType to AppKitCompatibilityDeclarations.h. |
| https://bugs.webkit.org/show_bug.cgi?id=160767. |
| |
| Reviewed by Dan Bernstein. |
| |
| Add NSButtonType to AppKitCompatibilityDeclarations.h so that we can use the new |
| names but still build successfully on older OS versions. |
| |
| * wtf/mac/AppKitCompatibilityDeclarations.h: |
| |
| 2016-08-10 Benjamin Poulain <bpoulain@apple.com> |
| |
| [JSC] TinyPtrSet::deleteListIfNecessary() no longer needs to test for reservedValue |
| https://bugs.webkit.org/show_bug.cgi?id=160721 |
| |
| Reviewed by Sam Weinig. |
| |
| Previously, TinyPtrSet was using a ThinFlag if there was no OutOfLineList. |
| A side effect is that isThin() was false for reservedValue. When deleting |
| the list, we had to consider both cases: isThin() and reservedValue. |
| |
| In r204065, I changed the flag to a FatFlag to ensure TinyPtrSet can be initialized |
| with bzero(). |
| This changes the value of isThin() of reservedValue to true since reservedValue |
| does not have the FatFlag bit set. |
| This patch removes the useless condition from deleteListIfNecessary(). |
| |
| * wtf/TinyPtrSet.h: |
| (WTF::TinyPtrSet::deleteListIfNecessary): |
| |
| 2016-08-09 Sam Weinig <sam@webkit.org> |
| |
| Fix windows build. |
| |
| * wtf/Variant.h: |
| (std::experimental::__visit_helper2::__visit): |
| MSVC does not support extended constexpr. Use a ternary operator instead of an if statement. |
| |
| 2016-08-06 Sam Weinig <sam@webkit.org> |
| |
| Replace NodeOrString with std::variant<RefPtr<Node>, String> |
| https://bugs.webkit.org/show_bug.cgi?id=160638 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/StdLibExtras.h: |
| (WTF::Visitor::Visitor): |
| (WTF::makeVisitor): |
| Add WTF::makeVisitor() which takes a list of lambdas to use |
| an an overload set for a visitor object. |
| |
| Also, re-export std::experimental::variant (and helpers) in the std |
| namespace using type aliasing. |
| |
| * wtf/Variant.h: |
| Make std::experimental::variant work in WebCore. |
| |
| 2016-08-06 Sam Weinig <sam@webkit.org> |
| |
| WTF needs a variant implementation |
| https://bugs.webkit.org/show_bug.cgi?id=160618 |
| |
| Reviewed by Darin Adler. |
| |
| Add an implementation of std::experimental::variant matching the C++17 draft http://wg21.link/n4606 |
| taken from https://bitbucket.org/anthonyw/variant/src (5bce47fa788648f79e5ea1d77b0eef2e8f0b2999) and |
| modified to support compiling without exceptions (where it used to throw, we lovingly CRASH()). |
| |
| * WTF.xcodeproj/project.pbxproj: |
| Add new file. |
| |
| * wtf/Compiler.h: |
| Add COMPILER_SUPPORTS define for C++ exceptions. |
| |
| * wtf/Variant.h: Added. |
| |
| 2016-08-05 Keith Miller <keith_miller@apple.com> |
| |
| Add LEBDecoder and tests |
| https://bugs.webkit.org/show_bug.cgi?id=160625 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Adds some LEB decoder functions to WTF. These are used in the |
| WASM spec to encode numbers in a semi-compressed format. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/LEBDecoder.h: Added. |
| (decodeUInt32): |
| (decodeInt32): |
| |
| 2016-08-05 Keith Miller <keith_miller@apple.com> |
| |
| Delete out of date WASM code. |
| https://bugs.webkit.org/show_bug.cgi?id=160603 |
| |
| Reviewed by Saam Barati. |
| |
| Add Feature define for WebAssembly on mac. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-08-03 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Lacking support on a arm-traditional disassembler. |
| https://bugs.webkit.org/show_bug.cgi?id=123717 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/Platform.h: |
| |
| 2016-08-02 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Update breaking rules to match ICU 57 |
| https://bugs.webkit.org/show_bug.cgi?id=160488 |
| <rdar://problem/25856238> |
| |
| Reviewed by Darin Adler. |
| |
| This patch fixes a typo in the uax14AssignmentsAfter rules which |
| was causing flag emoji to have line breaking opportunities in their |
| middles. It also fixes significant language issues for languages |
| such as Hebrew, and adds correct breaking opportunities around |
| hyphens. |
| |
| * wtf/text/TextBreakIterator.cpp: |
| (WTF::cursorMovementIterator): |
| (WTF::uax14AssignmentsAfter): |
| (WTF::uax14Forward): |
| (WTF::uax14Reverse): |
| |
| 2016-08-02 Benjamin Poulain <benjamin@webkit.org> |
| |
| [JSC] Simplify the initialization of AbstractValue in the AbstractInterpreter |
| https://bugs.webkit.org/show_bug.cgi?id=160370 |
| |
| Reviewed by Saam Barati. |
| |
| * wtf/TinyPtrSet.h: |
| (WTF::TinyPtrSet::isThin): |
| (WTF::TinyPtrSet::set): |
| |
| 2016-08-02 Benjamin Poulain <bpoulain@apple.com> |
| |
| Clean up some useless AtomicString atoms |
| https://bugs.webkit.org/show_bug.cgi?id=160471 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/text/AtomicString.h: |
| * wtf/text/StringStatics.cpp: |
| (WTF::AtomicString::init): Deleted. |
| |
| 2016-08-01 Benjamin Poulain <bpoulain@apple.com> |
| |
| [JSC][ARM64] Fix branchTest32/64 taking an immediate as mask |
| https://bugs.webkit.org/show_bug.cgi?id=160439 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/MathExtras.h: |
| (getLSBSet): |
| This was not working at all for MacroAssembler. |
| Since TrustedImm32/64 are signed integers, the arithmetic shift would |
| never get rid of the top bit and we get an infinite loop. |
| |
| 2016-07-29 Mark Lam <mark.lam@apple.com> |
| |
| Make StringView capable of being passed or returned in only 2 registers. |
| https://bugs.webkit.org/show_bug.cgi?id=160344 |
| |
| Reviewed by Geoffrey Garen. |
| |
| We just need to #if out copy and move constructors and assignment operators. |
| |
| After this change, the following test code: |
| |
| JS_EXPORT_PRIVATE StringView returnStringView(StringView sv) |
| { |
| return sv; |
| } |
| |
| ... compiles to the following for x86_64: |
| |
| __ZN3JSC16returnStringViewEN3WTF10StringViewE: |
| 000000000093fb20 pushq %rbp |
| 000000000093fb21 movq %rsp, %rbp |
| 000000000093fb24 movq %rdi, %rax // Copy from arg word 0 to ret word 0. |
| 000000000093fb27 movq %rsi, %rdx // Copy from arg word 1 to ret word 1. |
| 000000000093fb2a popq %rbp |
| 000000000093fb2b retq |
| |
| ... and this for arm64: |
| |
| __ZN3JSC16returnStringViewEN3WTF10StringViewE: |
| 0000000000818504 ret // arg word 0 and 1 are in the same regs as ret word 0 and 1. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::StringView): |
| (WTF::StringView::~StringView): |
| (WTF::StringView::operator=): |
| |
| 2016-07-29 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Remove PassRef.h after r177259 |
| https://bugs.webkit.org/show_bug.cgi?id=160348 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/PassRef.h: Removed. |
| |
| 2016-07-28 Mark Lam <mark.lam@apple.com> |
| |
| StringView should have an explicit m_is8Bit field. |
| https://bugs.webkit.org/show_bug.cgi?id=160282 |
| <rdar://problem/27327943> |
| |
| Reviewed by Benjamin Poulain. |
| |
| The current implementation reserves 1 bit in the 32-bit m_length field as an |
| is16Bit flag. As a result, a StringView is incapable of handling strings that |
| have a length of 32-bit in size. This results in a mismatch with the |
| expectations of String, StringImpl, and JavaScriptCore's JSString which all |
| support a 32-bit unsigned length. |
| |
| This patch fixes this issue by introducing an explicit m_is8Bit field, thereby |
| allowing m_length to be a full 32-bit again. |
| |
| We also introduced a clear() convenience method to set the fields of StringView |
| to empty values. Previously, we were duplicating the code for clearing those |
| fields. We now call clear() in all those places instead. |
| |
| Note: in clear(), we set m_is8Bit to true because we want an empty StringView |
| to be 8-bit rather than 16-bit. This is consistent with what the empty() method |
| returns. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::setUnderlyingString): |
| (WTF::StringView::StringView): |
| (WTF::StringView::operator=): |
| (WTF::StringView::initialize): |
| (WTF::StringView::clear): |
| (WTF::StringView::empty): |
| (WTF::StringView::length): |
| (WTF::StringView::operator bool): |
| (WTF::StringView::is8Bit): |
| (WTF::StringView::substring): |
| (WTF::StringView::getCharactersWithUpconvert): |
| (WTF::StringView::toString): |
| (WTF::StringView::toAtomicString): |
| (WTF::StringView::toFloat): |
| (WTF::StringView::toInt): |
| (WTF::StringView::toIntStrict): |
| (WTF::StringView::toStringWithoutCopying): |
| (WTF::StringView::find): |
| |
| 2016-07-24 Filip Pizlo <fpizlo@apple.com> |
| |
| B3 should support multiple entrypoints |
| https://bugs.webkit.org/show_bug.cgi?id=159391 |
| |
| Reviewed by Saam Barati. |
| |
| * wtf/GraphNodeWorklist.h: Expose some handy functionality. |
| (WTF::GraphNodeWorklist::pop): |
| (WTF::GraphNodeWorklist::saw): |
| (WTF::GraphNodeWorklist::seen): |
| * wtf/VectorTraits.h: Fix a bug! Otherwise filling a vector of byte-sized enum classes doesn't work. |
| |
| 2016-07-21 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [macOS] Caret placement occurs in the middle of new emoji group candidates |
| https://bugs.webkit.org/show_bug.cgi?id=160008 |
| <rdar://problem/27430111> |
| |
| Reviewed by Simon Fraser. |
| |
| r203330 added support for new emoji group candidates. This patch updates the rules |
| governing caret placement around these new emoji groups. |
| |
| * wtf/text/TextBreakIterator.cpp: |
| (WTF::cursorMovementIterator): |
| |
| 2016-07-20 Rajeev Misra <rajeevmisraforapple@gmail.com> |
| |
| Remove unnecessary if check from ParkingLot.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=159961 |
| |
| Reviewed by Alex Christensen. |
| |
| A good practice is to have as less conditional statement |
| or special cases as possible in code. This change |
| simply removes a unnecessary "if" statement for |
| condition which was already evaluated by switch/case |
| and thus there was no need to evaluate again. |
| |
| * wtf/ParkingLot.cpp: |
| |
| 2016-07-18 Anders Carlsson <andersca@apple.com> |
| |
| WebKit nightly fails to build on macOS Sierra |
| https://bugs.webkit.org/show_bug.cgi?id=159902 |
| rdar://problem/27365672 |
| |
| Reviewed by Tim Horton. |
| |
| * icu/unicode/ucurr.h: Added. |
| Add ucurr.h from ICU. |
| |
| 2016-07-18 Michael Saboff <msaboff@apple.com> |
| |
| ASSERTION FAILED: : (year >= 1970 && yearday >= 0) || (year < 1970 && yearday < 0) -- WTF/wtf/DateMath.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=159883 |
| |
| Reviewed by Filip Pizlo. |
| |
| The function daysFrom1970ToYear() takes an integer year and returns a double result. |
| The calculation uses 1970 as a baseline year and subtracts 1970 from the argument year. |
| It does that subtraction using integer arithmetic, which given negative years close to |
| INT_MIN can underflow as a result of subtracting 1970. Since we want a double result, |
| the fix is to cast year as a double before the subtraction, which eliminates the underflow. |
| |
| * wtf/DateMath.cpp: |
| (WTF::daysFrom1970ToYear): |
| |
| 2016-07-17 Filip Pizlo <fpizlo@apple.com> |
| |
| RegisterSet should use a Bitmap instead of a BitVector so that it never allocates memory and is trivial to copy |
| https://bugs.webkit.org/show_bug.cgi?id=159863 |
| |
| Reviewed by Saam Barati. |
| |
| Give Bitmap all of the power of BitVector (except for automatic resizing). This means a |
| variant of set() that takes a bool, and a bunch of helper methods (merge, filter, exclude, |
| forEachSetBit, ==, !=, and hash). |
| |
| * wtf/Bitmap.h: |
| (WTF::WordType>::set): |
| (WTF::WordType>::testAndSet): |
| (WTF::WordType>::isFull): |
| (WTF::WordType>::merge): |
| (WTF::WordType>::filter): |
| (WTF::WordType>::exclude): |
| (WTF::WordType>::forEachSetBit): |
| (WTF::=): |
| (WTF::WordType>::hash): |
| |
| 2016-07-02 Filip Pizlo <fpizlo@apple.com> |
| |
| WTF::Lock should be fair eventually |
| https://bugs.webkit.org/show_bug.cgi?id=159384 |
| |
| Reviewed by Geoffrey Garen. |
| |
| In https://webkit.org/blog/6161/locking-in-webkit/ we showed how relaxing the fairness of |
| locks makes them fast. That post presented lock fairness as a trade-off between two |
| extremes: |
| |
| - Barging. A barging lock, like WTF::Lock, releases the lock in unlock() even if there was a |
| thread on the queue. If there was a thread on the queue, the lock is released and that |
| thread is made runnable. That thread may then grab the lock, or some other thread may grab |
| the lock first (it may barge). Usually, the barging thread is the thread that released the |
| lock in the first place. This maximizes throughput but hurts fairness. There is no good |
| theoretical bound on how unfair the lock may become, but empirical data suggests that it's |
| fair enough for the cases we previously measured. |
| |
| - FIFO. A FIFO lock, like HandoffLock in ToyLocks.h, does not release the lock in unlock() |
| if there is a thread waiting. If there is a thread waiting, unlock() will make that thread |
| runnable and inform it that it now holds the lock. This ensures perfect round-robin |
| fairness and allows us to reason theoretically about how long it may take for a thread to |
| grab the lock. For example, if we know that only N threads are running and each one may |
| contend on a critical section, and each one may hold the lock for at most S seconds, then |
| the time it takes to grab the lock is N * S. Unfortunately, FIFO locks perform very badly |
| in most cases. This is because for the common case of short critical sections, they force |
| a context switch after each critical section if the lock is contended. |
| |
| This change makes WTF::Lock almost as fair as FIFO while still being as fast as barging. |
| Thanks to this new algorithm, you can now have both of these things at the same time. |
| |
| This change makes WTF::Lock eventually fair. We can almost (more on the caveats below) |
| guarantee that the time it takes to grab a lock is N * max(1ms, S). In other words, critical |
| sections that are longer than 1ms are always fair. For shorter critical sections, the amount |
| of time that any thread waits is 1ms times the number of threads. There are some caveats |
| that arise from our use of randomness, but even then, in the limit as the critical section |
| length goes to infinity, the lock becomes fair. The corner cases are unlikely to happen; our |
| experiments show that the lock becomes exactly as fair as a FIFO lock for any critical |
| section that is 1ms or longer. |
| |
| The fairness mechanism is broken into two parts. WTF::Lock can now choose to unlock a lock |
| fairly or unfairly thanks to the new ParkingLot token mechanism. WTF::Lock knows when to use |
| fair unlocking based on a timeout mechanism in ParkingLot called timeToBeFair. |
| |
| ParkingLot::unparkOne() and ParkingLot::parkConditionally() can now communicate with each |
| other via a token. unparkOne() can pass a token, which parkConditionally() will return. This |
| change also makes parkConditionally() a lot more precise about when it was unparked due to a |
| call to unparkOne(). If unparkOne() is told that a thread was unparked then this thread is |
| guaranteed to report that it was unparked rather than timing out, and that thread is |
| guaranteed to get the token that unparkOne() passed. The token is an intptr_t. We use it as |
| a boolean variable in WTF::Lock, but you could use it to pass arbitrary data structures. By |
| default, the token is zero. WTF::Lock's unlock() will pass 1 as the token if it is doing |
| fair unlocking. In that case, unlock() will not release the lock, and lock() will know that |
| it holds the lock as soon as parkConditionally() returns. Note that this algorithm relies |
| on unparkOne() invoking WTF::Lock's callback while the queue lock is held, so that WTF::Lock |
| can make a decision about unlock strategy and inject a token while it has complete knowledge |
| over the state of the queue. As such, it's not immediately obvious how to implement this |
| algorithm on top of futexes. You really need ParkingLot! |
| |
| WTF::Lock does not use fair unlocking every time. We expose a new API, Lock::unlockFairly(), |
| which forces the fair unlocking behavior. Additionally, ParkingLot now maintains a |
| per-bucket stochastic fairness timeout. When the timeout fires, the unparkOne() callback |
| sees UnparkResult::timeToBeFair = true. This timeout is set to be anywhere from 0ms to 1ms |
| at random. When a dequeue happens and there are threads that actually get dequeued, we check |
| if the time since the last unfair unlock (the last time timeToBeFair was set to true) is |
| more than the timeout amount. If so, then we set timeToBeFair to true and reset the timeout. |
| This means that in the absence of ParkingLot collisions, unfair unlocking is guaranteed to |
| happen at least once per millisecond. It will happen at 2 KHz on average. If there are |
| collisions, then each collision adds one millisecond to the worst case (and 0.5 ms to the |
| average case). The reason why we don't just use a fixed 1ms timeout is that we want to avoid |
| resonance. Imagine a program in which some thread acquires a lock at 1 KHz in-phase with the |
| timeToBeFair timeout. Then this thread would be the benefactor of fairness to the detriment |
| of everyone else. Randomness ensures that we aren't too fair to any one thread. |
| |
| Empirically, this is neutral on our major benchmarks like JetStream but it's an enormous |
| improvement in LockFairnessTest. It's common for an unfair lock (either our BargingLock, the |
| old WTF::Lock, any of the other futex-based locks that barge, or new os_unfair_lock) to |
| allow only one thread to hold the lock during a whole second in which each thread is holding |
| the lock for 1ms at a time. This is because in a barging lock, releasing a lock after |
| holding it for 1ms and then reacquiring it immediately virtually ensures that none of the |
| other threads can wake up in time to grab it before it's relocked. But the new WTF::Lock |
| handles this case like a champ: each thread gets equal turns. |
| |
| Here's some data. If we launch 10 threads and have each of them run for 1 second while |
| repeatedly holding a critical section for 1ms, then here's how many times each thread gets |
| to hold the lock using the old WTF::Lock algorithm: |
| |
| 799, 6, 1, 1, 1, 1, 1, 1, 1, 1 |
| |
| One thread hogged the lock for almost the whole time! With the new WTF::Lock, the lock |
| becomes totally fair: |
| |
| 80, 79, 79, 79, 79, 79, 79, 80, 80, 79 |
| |
| I don't know of anyone creating such an automatically-fair adaptive lock before, so I think |
| that this is a pretty awesome advancement to the state of the art! |
| |
| This change is good for three reasons: |
| |
| - We do have long critical sections in WebKit and we don't want to have to worry about |
| starvation. This reduces the likelihood that we will see starvation due to our lock |
| strategy. |
| |
| - I was talking to ggaren about bmalloc's locking needs, and he wanted unlockFairly() or |
| lockFairly() or some moral equivalent for the scavenger thread. |
| |
| - If we use a WTF::Lock to manage heap access in a multithreaded GC, we'll need the ability |
| to unlock and relock without barging. |
| |
| * benchmarks/LockFairnessTest.cpp: |
| (main): |
| * benchmarks/ToyLocks.h: |
| * wtf/Condition.h: |
| (WTF::ConditionBase::waitUntil): |
| (WTF::ConditionBase::notifyOne): |
| * wtf/Lock.cpp: |
| (WTF::LockBase::lockSlow): |
| (WTF::LockBase::unlockSlow): |
| (WTF::LockBase::unlockFairlySlow): |
| (WTF::LockBase::unlockSlowImpl): |
| * wtf/Lock.h: |
| (WTF::LockBase::try_lock): |
| (WTF::LockBase::unlock): |
| (WTF::LockBase::unlockFairly): |
| (WTF::LockBase::isHeld): |
| (WTF::LockBase::isFullyReset): |
| * wtf/ParkingLot.cpp: |
| (WTF::ParkingLot::parkConditionallyImpl): |
| (WTF::ParkingLot::unparkOne): |
| (WTF::ParkingLot::unparkOneImpl): |
| (WTF::ParkingLot::unparkAll): |
| * wtf/ParkingLot.h: |
| (WTF::ParkingLot::parkConditionally): |
| (WTF::ParkingLot::compareAndPark): |
| (WTF::ParkingLot::unparkOne): |
| |
| 2016-07-17 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Support new emoji group candidates |
| https://bugs.webkit.org/show_bug.cgi?id=159755 |
| <rdar://problem/27325521> |
| |
| Reviewed by Dean Jackson. |
| |
| This patch doesn't update the rules for our cursor movement iterator, because |
| I don't know the language used for implementing these rules. These rules will |
| be updated in the near future. When they do, |
| editing/deleting/delete-emoji-expected.txt will need to be updated. |
| |
| * wtf/text/TextBreakIterator.cpp: |
| (WTF::cursorMovementIterator): |
| |
| 2016-07-16 Chris Dumez <cdumez@apple.com> |
| |
| Add move constructor / assignment operator to ListHashSet |
| https://bugs.webkit.org/show_bug.cgi?id=159837 |
| |
| Reviewed by Darin Adler. |
| |
| Add move constructor / assignment operator to ListHashSet. |
| |
| * wtf/ListHashSet.h: |
| (WTF::ListHashSetConstIterator::operator++): |
| (WTF::U>::ListHashSet): |
| (WTF::=): |
| (WTF::U>::clear): |
| (WTF::U>::appendNode): |
| (WTF::U>::prependNode): |
| (WTF::U>::deleteAllNodes): |
| (WTF::ListHashSetNode::ListHashSetNode): Deleted. |
| |
| 2016-07-15 Chris Dumez <cdumez@apple.com> |
| |
| Use emptyString() / nullAtom when possible |
| https://bugs.webkit.org/show_bug.cgi?id=159850 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Use emptyString() / nullAtom when possible, for performance. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::convertASCIICase): |
| |
| 2016-07-15 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r203304. |
| |
| This is wrong because of Node* entries in the internal HashMap |
| |
| Reverted changeset: |
| |
| "Add move constructor / assignment operator to ListHashSet" |
| https://bugs.webkit.org/show_bug.cgi?id=159837 |
| http://trac.webkit.org/changeset/203304 |
| |
| 2016-07-15 Chris Dumez <cdumez@apple.com> |
| |
| Add move constructor / assignment operator to ListHashSet |
| https://bugs.webkit.org/show_bug.cgi?id=159837 |
| |
| Reviewed by Alex Christensen. |
| |
| Add move constructor / assignment operator to ListHashSet. |
| |
| * wtf/ListHashSet.h: |
| |
| 2016-07-15 Geoffrey Garen <ggaren@apple.com> |
| |
| Added a makeRef<T> helper |
| https://bugs.webkit.org/show_bug.cgi?id=159835 |
| |
| Reviewed by Andreas Kling. |
| |
| Anders told me to! |
| |
| * wtf/Ref.h: |
| (WTF::makeRef): Helper function to do type inference for you. |
| |
| 2016-07-15 Ryan Haddad <ryanhaddad@apple.com> |
| |
| Unreviewed, rolling out r203266. |
| |
| This change caused editing/deleting/delete-emoji.html to time |
| out on El Capitan, crash under GuardMalloc |
| |
| Reverted changeset: |
| |
| "Support new emoji group candidates" |
| https://bugs.webkit.org/show_bug.cgi?id=159755 |
| http://trac.webkit.org/changeset/203266 |
| |
| 2016-07-15 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Revert r202560 to fix the ARMv7 build with ARM instruction set |
| https://bugs.webkit.org/show_bug.cgi?id=159707 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * wtf/Platform.h: Revert r202560. |
| |
| 2016-07-14 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Support new emoji group candidates |
| https://bugs.webkit.org/show_bug.cgi?id=159755 |
| <rdar://problem/27325521> |
| |
| Reviewed by Dean Jackson. |
| |
| This patch doesn't update the rules for our cursor movement iterator, because |
| I don't know the language used for implementing these rules. These rules will |
| be updated in the near future. When they do, |
| editing/deleting/delete-emoji-expected.txt will need to be updated. |
| |
| * wtf/text/TextBreakIterator.cpp: |
| (WTF::cursorMovementIterator): |
| |
| 2016-07-14 Alex Christensen <achristensen@webkit.org> |
| |
| Allow RefPtrs of const RefCounted types |
| https://bugs.webkit.org/show_bug.cgi?id=158269 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/RefCounted.h: |
| (WTF::RefCountedBase::ref): |
| (WTF::RefCountedBase::~RefCountedBase): |
| (WTF::RefCountedBase::derefBase): |
| (WTF::RefCounted::deref): |
| Creating references to a const object does not really modify the object, |
| so everything in RefCounted is now mutable, and ref and deref are const. |
| |
| 2016-07-14 Chris Dumez <cdumez@apple.com> |
| |
| Avoid an extra heap allocation when dispatching Functions to WorkQueue |
| https://bugs.webkit.org/show_bug.cgi?id=158367 |
| |
| Reviewed by Anders Carlsson. |
| |
| Avoid an extra heap allocation when dispatching Functions to WorkQueue |
| by adding leakCallable() / adoptCallable() functions to Function. |
| |
| * wtf/Function.h: |
| * wtf/cocoa/WorkQueueCocoa.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| |
| 2016-07-13 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Addressing post-review comments after r203119 |
| https://bugs.webkit.org/show_bug.cgi?id=159749 |
| |
| Unreviewed. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::CodePoints::Iterator::Iterator): |
| (WTF::StringView::CodePoints::Iterator::operator*): |
| (WTF::StringView::CodePoints::Iterator::operator==): |
| |
| 2016-07-13 Enrica Casucci <enrica@apple.com> |
| |
| Update supported platforms in xcconfig files to match the sdk names. |
| https://bugs.webkit.org/show_bug.cgi?id=159728 |
| |
| Reviewed by Tim Horton. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2016-07-13 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] WebKitGtk+ uses too many file descriptors |
| https://bugs.webkit.org/show_bug.cgi?id=152316 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add helper functions to duplicate a file descriptor setting close on exec flag, and also to set close on exec |
| flag to an existing file descriptor. |
| |
| * wtf/UniStdExtras.h: |
| * wtf/UniStdExtras.cpp |
| (WTF::setCloseOnExec): |
| (WTF::dupCloseOnExec): |
| |
| 2016-07-12 Benjamin Poulain <bpoulain@apple.com> |
| |
| [JSC] Array.prototype.join() fails some conformance tests |
| https://bugs.webkit.org/show_bug.cgi?id=159657 |
| |
| Reviewed by Saam Barati. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::number): |
| * wtf/text/AtomicString.h: |
| |
| 2016-07-12 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r203131. |
| https://bugs.webkit.org/show_bug.cgi?id=159698 |
| |
| This change caused an existing LayoutTest to time out on debug |
| testers (Requested by ryanhaddad on #webkit). |
| |
| Reverted changeset: |
| |
| "[JSC] Array.prototype.join() fails some conformance tests" |
| https://bugs.webkit.org/show_bug.cgi?id=159657 |
| http://trac.webkit.org/changeset/203131 |
| |
| 2016-07-12 Filip Pizlo <fpizlo@apple.com> |
| |
| platformUserPreferredLanguages on Mac should not try to put the region into the language |
| https://bugs.webkit.org/show_bug.cgi?id=159693 |
| |
| Rubber stamped by Alexey Proskuryakov. |
| |
| Currently, navigator.language is the thing that we use as the BCP-47 tag in our Intl code |
| when certain APIs are called without a locale argument. That mostly makes sense, and is |
| deeply wired into our engine. |
| |
| In r200105, we made Intl aware of the region as a separate thing from the language by having |
| platformUserPreferredLanguages() return something like a BCP-47 tag that was |
| <language>-<region>. For example, if I told System Preferences that I want to speak English |
| but live in Poland then we'd get "en-pl". This had the effect of making Intl APIs format |
| dates using Polish formatting, for example. |
| |
| But this is an odd change, since that same function also feeds into navigator.language. |
| "en-pl" isn't what we want there, since my System Preferences settings aren't supposed to |
| mean that I want to speak Polish-style English. There's no such thing. |
| |
| It may be worthwhile to wire the region settings more elegantly into Intl, but if we do that, |
| it should be via a mechanism that is separate from navigator.language. So, this change simply |
| reverts r200105. |
| |
| * wtf/PlatformUserPreferredLanguagesMac.mm: |
| (WTF::httpStyleLanguageCode): |
| (WTF::platformUserPreferredLanguages): |
| (WTF::isValidICUCountryCode): Deleted. |
| |
| 2016-07-12 Per Arne Vollan <pvollan@apple.com> |
| |
| [Win] Fix for build error when trying to version stamp dll. |
| https://bugs.webkit.org/show_bug.cgi?id=159692 |
| |
| Reviewed by Brent Fulgham. |
| |
| Use correct path to version stamp script. |
| |
| * wtf/CMakeLists.txt: |
| |
| 2016-07-12 Benjamin Poulain <bpoulain@apple.com> |
| |
| [JSC] Array.prototype.join() fails some conformance tests |
| https://bugs.webkit.org/show_bug.cgi?id=159657 |
| |
| Reviewed by Saam Barati. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::number): |
| * wtf/text/AtomicString.h: |
| |
| 2016-07-12 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Relax ordering requirements on StringView::CodePoints iterator |
| https://bugs.webkit.org/show_bug.cgi?id=159609 |
| |
| Reviewed by Darin Adler. |
| |
| Previously, there was a requirement where if you use a CodePoints |
| iterator, you couldn't dereference twice in a row or increment |
| twice in a row. This restriction is unnecessary. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::CodePoints::Iterator::Iterator): |
| (WTF::StringView::CodePoints::Iterator::advanceCurrentCodePoint): |
| (WTF::StringView::CodePoints::Iterator::operator*): |
| (WTF::StringView::CodePoints::Iterator::operator==): |
| |
| 2016-07-12 Csaba Osztrogonác <ossy@webkit.org> |
| |
| JSCOnly bulidfix after r203078 |
| https://bugs.webkit.org/show_bug.cgi?id=159669 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * wtf/PlatformJSCOnly.cmake: |
| * wtf/text/jsconly/TextBreakIteratorInternalICUJSCOnly.cpp: Added. |
| (WTF::currentSearchLocaleID): |
| (WTF::currentTextBreakLocaleID): |
| |
| 2016-07-12 Per Arne Vollan <pvollan@apple.com> |
| |
| [Win] DLLs are missing version information. |
| https://bugs.webkit.org/show_bug.cgi?id=159349 |
| |
| Reviewed by Brent Fulgham. |
| |
| Generate autoversion.h and run perl version stamp utility. |
| |
| * wtf/CMakeLists.txt: |
| |
| 2016-07-11 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Implement grapheme cluster iterator on StringView |
| https://bugs.webkit.org/show_bug.cgi?id=159598 |
| |
| Reviewed by Anders Carlsson. |
| |
| This is in preparation for honoring the second argument to FontFaceSet.load(). |
| |
| * wtf/text/StringView.cpp: |
| (WTF::StringView::GraphemeClusters::Iterator::Impl::Impl): |
| (WTF::StringView::GraphemeClusters::Iterator::Impl::operator++): |
| (WTF::StringView::GraphemeClusters::Iterator::Impl::operator*): |
| (WTF::StringView::GraphemeClusters::Iterator::Impl::operator==): |
| (WTF::StringView::GraphemeClusters::Iterator::Impl::computeIndexEnd): |
| (WTF::StringView::GraphemeClusters::Iterator::Iterator): |
| (WTF::StringView::GraphemeClusters::Iterator::~Iterator): |
| (WTF::StringView::GraphemeClusters::Iterator::operator*): |
| (WTF::StringView::GraphemeClusters::Iterator::operator==): |
| (WTF::StringView::GraphemeClusters::Iterator::operator!=): |
| * wtf/text/StringView.h: |
| (WTF::StringView::GraphemeClusters::GraphemeClusters): |
| * text/TextBreakIterator.cpp: |
| (WebCore::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): |
| * text/TextBreakIterator.h: |
| |
| 2016-07-10 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Move breaking iterator code to WTF |
| https://bugs.webkit.org/show_bug.cgi?id=159594 |
| |
| Reviewed by Alex Christensen. |
| |
| This is in preparation for giving StringView a GraphemeClusters iterator. |
| Such an interator needs to be implemented on top of our breaking iterator |
| code. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * icu/unicode/ubrk.h: Added. |
| * icu/unicode/utext.h: Renamed from Source/WebCore/icu/unicode/utext.h. |
| * wtf/CMakeLists.txt: |
| * wtf/PlatformEfl.cmake: |
| * wtf/PlatformGTK.cmake: |
| * wtf/PlatformMac.cmake: |
| * wtf/PlatformWin.cmake: |
| * wtf/TinyLRUCache.h: |
| * wtf/text/LineBreakIteratorPoolICU.h: Renamed from Source/WebCore/platform/text/LineBreakIteratorPoolICU.h. |
| (WTF::LineBreakIteratorPool::LineBreakIteratorPool): |
| (WTF::LineBreakIteratorPool::sharedPool): |
| (WTF::LineBreakIteratorPool::makeLocaleWithBreakKeyword): |
| (WTF::LineBreakIteratorPool::take): |
| (WTF::LineBreakIteratorPool::put): |
| * wtf/text/TextBreakIterator.cpp: Renamed from Source/WebCore/platform/text/TextBreakIterator.cpp. |
| (WTF::initializeIterator): |
| (WTF::initializeIteratorWithRules): |
| (WTF::setTextForIterator): |
| (WTF::setContextAwareTextForIterator): |
| (WTF::wordBreakIterator): |
| (WTF::sentenceBreakIterator): |
| (WTF::cursorMovementIterator): |
| (WTF::acquireLineBreakIterator): |
| (WTF::releaseLineBreakIterator): |
| (WTF::mapLineIteratorModeToRules): |
| (WTF::isCJKLocale): |
| (WTF::openLineBreakIterator): |
| (WTF::closeLineBreakIterator): |
| (WTF::compareAndSwapNonSharedCharacterBreakIterator): |
| (WTF::NonSharedCharacterBreakIterator::NonSharedCharacterBreakIterator): |
| (WTF::NonSharedCharacterBreakIterator::~NonSharedCharacterBreakIterator): |
| (WTF::textBreakFirst): |
| (WTF::textBreakLast): |
| (WTF::textBreakNext): |
| (WTF::textBreakPrevious): |
| (WTF::textBreakPreceding): |
| (WTF::textBreakFollowing): |
| (WTF::textBreakCurrent): |
| (WTF::isTextBreak): |
| (WTF::isWordTextBreak): |
| (WTF::numGraphemeClusters): |
| (WTF::numCharactersInGraphemeClusters): |
| * wtf/text/TextBreakIterator.h: Renamed from Source/WebCore/platform/text/TextBreakIterator.h. |
| (WTF::LazyLineBreakIterator::LazyLineBreakIterator): |
| (WTF::LazyLineBreakIterator::~LazyLineBreakIterator): |
| (WTF::LazyLineBreakIterator::string): |
| (WTF::LazyLineBreakIterator::isLooseCJKMode): |
| (WTF::LazyLineBreakIterator::lastCharacter): |
| (WTF::LazyLineBreakIterator::secondToLastCharacter): |
| (WTF::LazyLineBreakIterator::setPriorContext): |
| (WTF::LazyLineBreakIterator::updatePriorContext): |
| (WTF::LazyLineBreakIterator::resetPriorContext): |
| (WTF::LazyLineBreakIterator::priorContextLength): |
| (WTF::LazyLineBreakIterator::get): |
| (WTF::LazyLineBreakIterator::resetStringAndReleaseIterator): |
| (WTF::NonSharedCharacterBreakIterator::operator TextBreakIterator*): |
| * wtf/text/TextBreakIteratorInternalICU.h: Renamed from Source/WebCore/platform/text/TextBreakIteratorInternalICU.h. |
| * wtf/text/efl/TextBreakIteratorInternalICUEfl.cpp: Renamed from Source/WebCore/platform/text/efl/TextBreakIteratorInternalICUEfl.cpp. |
| (WebCore::currentSearchLocaleID): |
| (WebCore::currentTextBreakLocaleID): |
| * wtf/text/gtk/TextBreakIteratorInternalICUGtk.cpp: Renamed from Source/WebCore/platform/text/gtk/TextBreakIteratorInternalICUGtk.cpp. |
| (WebCore::currentSearchLocaleID): |
| (WebCore::currentTextBreakLocaleID): |
| * wtf/text/icu/UTextProvider.cpp: Renamed from Source/WebCore/platform/text/icu/UTextProvider.cpp. |
| (WTF::fixPointer): |
| (WTF::uTextCloneImpl): |
| * wtf/text/icu/UTextProvider.h: Renamed from Source/WebCore/platform/text/icu/UTextProvider.h. |
| (WTF::uTextProviderContext): |
| (WTF::initializeContextAwareUTextProvider): |
| (WTF::uTextAccessPinIndex): |
| (WTF::uTextAccessInChunkOrOutOfRange): |
| * wtf/text/icu/UTextProviderLatin1.cpp: Renamed from Source/WebCore/platform/text/icu/UTextProviderLatin1.cpp. |
| (WTF::uTextLatin1Clone): |
| (WTF::uTextLatin1NativeLength): |
| (WTF::uTextLatin1Access): |
| (WTF::uTextLatin1Extract): |
| (WTF::uTextLatin1MapOffsetToNative): |
| (WTF::uTextLatin1MapNativeIndexToUTF16): |
| (WTF::uTextLatin1Close): |
| (WTF::openLatin1UTextProvider): |
| (WTF::textLatin1ContextAwareGetCurrentContext): |
| (WTF::textLatin1ContextAwareMoveInPrimaryContext): |
| (WTF::textLatin1ContextAwareSwitchToPrimaryContext): |
| (WTF::textLatin1ContextAwareMoveInPriorContext): |
| (WTF::textLatin1ContextAwareSwitchToPriorContext): |
| (WTF::uTextLatin1ContextAwareClone): |
| (WTF::uTextLatin1ContextAwareNativeLength): |
| (WTF::uTextLatin1ContextAwareAccess): |
| (WTF::uTextLatin1ContextAwareExtract): |
| (WTF::uTextLatin1ContextAwareClose): |
| (WTF::openLatin1ContextAwareUTextProvider): |
| * wtf/text/icu/UTextProviderLatin1.h: Renamed from Source/WebCore/platform/text/icu/UTextProviderLatin1.h. |
| * wtf/text/icu/UTextProviderUTF16.cpp: Renamed from Source/WebCore/platform/text/icu/UTextProviderUTF16.cpp. |
| (WTF::textUTF16ContextAwareGetCurrentContext): |
| (WTF::textUTF16ContextAwareMoveInPrimaryContext): |
| (WTF::textUTF16ContextAwareSwitchToPrimaryContext): |
| (WTF::textUTF16ContextAwareMoveInPriorContext): |
| (WTF::textUTF16ContextAwareSwitchToPriorContext): |
| (WTF::uTextUTF16ContextAwareClone): |
| (WTF::uTextUTF16ContextAwareNativeLength): |
| (WTF::uTextUTF16ContextAwareAccess): |
| (WTF::uTextUTF16ContextAwareExtract): |
| (WTF::uTextUTF16ContextAwareClose): |
| (WTF::openUTF16ContextAwareUTextProvider): |
| * wtf/text/icu/UTextProviderUTF16.h: Renamed from Source/WebCore/platform/text/icu/UTextProviderUTF16.h. |
| * wtf/text/mac/TextBreakIteratorInternalICUMac.mm: Renamed from Source/WebCore/platform/text/mac/TextBreakIteratorInternalICUMac.mm. |
| (WTF::textBreakLocalePreference): |
| (WTF::topLanguagePreference): |
| (WTF::getLocale): |
| (WTF::getSearchLocale): |
| (WTF::currentSearchLocaleID): |
| (WTF::getTextBreakLocale): |
| (WTF::currentTextBreakLocaleID): |
| * wtf/text/win/TextBreakIteratorInternalICUWin.cpp: Renamed from Source/WebCore/platform/text/win/TextBreakIteratorInternalICUWin.cpp. |
| (WebCore::currentSearchLocaleID): |
| (WebCore::currentTextBreakLocaleID): |
| |
| 2016-07-08 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r202799. |
| https://bugs.webkit.org/show_bug.cgi?id=159568 |
| |
| Caused build failure (Requested by perarne on #webkit). |
| |
| Reverted changeset: |
| |
| "[Win] DLLs are missing version information." |
| https://bugs.webkit.org/show_bug.cgi?id=159349 |
| http://trac.webkit.org/changeset/202799 |
| |
| 2016-07-08 Jiewen Tan <jiewen_tan@apple.com> |
| |
| Define DYLD_MACOSX_VERSION_10_12 |
| https://bugs.webkit.org/show_bug.cgi?id=159525 |
| <rdar://problem/26250296> |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/spi/darwin/dyldSPI.h: |
| |
| 2016-07-01 Jer Noble <jer.noble@apple.com> |
| |
| REGRESSION (r202641): Netflix playback stalls after a few seconds |
| https://bugs.webkit.org/show_bug.cgi?id=159365 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a isBetween() convenience method. |
| |
| * wtf/MediaTime.cpp: |
| (WTF::MediaTime::isBetween): |
| * wtf/MediaTime.h: |
| |
| 2016-07-03 Per Arne Vollan <pvollan@apple.com> |
| |
| [Win] DLLs are missing version information. |
| https://bugs.webkit.org/show_bug.cgi?id=159349 |
| |
| Reviewed by Brent Fulgham. |
| |
| Generate autoversion.h in the prebuild step. |
| Run the perl version stamp utility. |
| |
| * wtf/CMakeLists.txt: |
| |
| 2016-07-03 Saam Barati <sbarati@apple.com> |
| |
| BytecodeGenerator::getVariablesUnderTDZ is too conservative |
| https://bugs.webkit.org/show_bug.cgi?id=159387 |
| |
| Reviewed by Filip Pizlo. |
| |
| I've templatized SmallPtrSet on its SmallArraySize instead |
| of it always being 8. |
| |
| * wtf/SmallPtrSet.h: |
| (WTF::SmallPtrSet::SmallPtrSet): |
| (WTF::SmallPtrSet::add): |
| (WTF::SmallPtrSet::iterator::operator!=): |
| (WTF::SmallPtrSet::bucket): |
| |
| 2016-07-03 Filip Pizlo <fpizlo@apple.com> |
| |
| Ugh. Once again, unreviewed, roll out unintentional commit in r202790. |
| |
| * benchmarks/LockFairnessTest.cpp: |
| (main): |
| |
| 2016-07-02 Dan Bernstein <mitz@apple.com> |
| |
| Build fix. |
| |
| * wtf/Assertions.cpp: |
| |
| 2016-07-02 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, roll back unintentional commit in r202778. |
| |
| * benchmarks/LockFairnessTest.cpp: |
| (main): |
| |
| 2016-07-01 Jer Noble <jer.noble@apple.com> |
| |
| Deadlock inside -[WebCoreNSURLSession dealloc] |
| https://bugs.webkit.org/show_bug.cgi?id=159331 |
| <rdar://problem/27122716> |
| |
| Reviewed by Alex Christensen. |
| |
| A Function<> object can wrap any callable type, including a C++ lambda. |
| |
| dispatchFunctionsFromMainThread() holds a lock while iterating over the functions in |
| functionQueue(), and during ths iteration, the previous callable object is destroyed by |
| assigning the result of functionQueue().takeFirst(). Because lambdas (and other callables, |
| like functors) can own objects, destroying this callable can have side effects, and if one |
| of those side effects is to call callOnMainThread(), this can deadlock. |
| |
| Move this side-effect-having call outside the locked block by clearing the function object |
| immediately after calling it. |
| |
| * wtf/MainThread.cpp: |
| (WTF::dispatchFunctionsFromMainThread): |
| |
| 2016-06-29 Jer Noble <jer.noble@apple.com> |
| |
| Adopt MediaRemote. |
| https://bugs.webkit.org/show_bug.cgi?id=159250 |
| |
| Reviewed by Eric Carlson. |
| |
| Add USE_MEDIAREMOTE. |
| |
| * wtf/Platform.h: |
| |
| 2016-06-28 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r202580. |
| https://bugs.webkit.org/show_bug.cgi?id=159245 |
| |
| Caused all WKTR tests to fail on GuardMalloc and Production |
| only for unknown reasons, investigating offline. (Requested by |
| brrian on #webkit). |
| |
| Reverted changeset: |
| |
| "RunLoop::Timer should use constructor templates instead of |
| class templates" |
| https://bugs.webkit.org/show_bug.cgi?id=159153 |
| http://trac.webkit.org/changeset/202580 |
| |
| 2016-06-28 Brian Burg <bburg@apple.com> |
| |
| RunLoop::Timer should use constructor templates instead of class templates |
| https://bugs.webkit.org/show_bug.cgi?id=159153 |
| |
| Reviewed by Alex Christensen. |
| |
| Refactor RunLoop::Timer to align with WebCore::Timer. Use a constructor |
| template instead of a class template. Store a bound std::function rather than |
| a templated member and function. Add a constructor that takes a std::function. |
| |
| * wtf/RunLoop.h: |
| (WTF::RunLoop::Timer::Timer): |
| (WTF::RunLoop::Timer::fired): |
| |
| 2016-06-28 Tomas Popela <tpopela@redhat.com> |
| |
| THUMB2 support not correctly detected on Fedora with GCC 6.1. |
| https://bugs.webkit.org/show_bug.cgi?id=159083 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| On Fedora 24 with GCC 6.1. the __thumb2__ and __thumb__ are not |
| defined so the detection of THUMB2 support will fail. Look also |
| whether the __ARM_ARCH_ISA_THUMB is defined to fix the THUMB2 |
| detection. |
| |
| * wtf/Platform.h: |
| |
| 2016-06-27 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Remove now unused WTF::findNextLineStart |
| https://bugs.webkit.org/show_bug.cgi?id=159157 |
| |
| Reviewed by Mark Lam. |
| |
| Unused after r202498. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::findNextLineStart): Deleted. |
| * wtf/text/StringImpl.h: |
| (WTF::findNextLineStart): Deleted. |
| * wtf/text/WTFString.h: |
| (WTF::String::findNextLineStart): Deleted. |
| |
| 2016-06-21 Anders Carlsson <andersca@apple.com> |
| |
| Rename NoncopyableFunction to Function |
| https://bugs.webkit.org/show_bug.cgi?id=158354 |
| |
| Reviewed by Chris Dumez. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CrossThreadTask.h: |
| (WTF::CrossThreadTask::CrossThreadTask): |
| * wtf/Function.h: Renamed from Source/WTF/wtf/NoncopyableFunction.h. |
| * wtf/FunctionDispatcher.h: |
| * wtf/MainThread.cpp: |
| (WTF::functionQueue): |
| (WTF::dispatchFunctionsFromMainThread): |
| (WTF::callOnMainThread): |
| * wtf/MainThread.h: |
| * wtf/RunLoop.cpp: |
| (WTF::RunLoop::performWork): |
| (WTF::RunLoop::dispatch): |
| * wtf/RunLoop.h: |
| * wtf/WorkQueue.h: |
| * wtf/cocoa/WorkQueueCocoa.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| * wtf/efl/DispatchQueueWorkItemEfl.h: |
| (WorkItem::WorkItem): |
| (TimerWorkItem::create): |
| (TimerWorkItem::TimerWorkItem): |
| * wtf/efl/WorkQueueEfl.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| * wtf/generic/RunLoopGeneric.cpp: |
| (WTF::RunLoop::TimerBase::ScheduledTask::create): |
| (WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask): |
| (WTF::RunLoop::dispatchAfter): |
| * wtf/generic/WorkQueueGeneric.cpp: |
| (WorkQueue::dispatch): |
| (WorkQueue::dispatchAfter): |
| * wtf/glib/RunLoopGLib.cpp: |
| (WTF::DispatchAfterContext::DispatchAfterContext): |
| (WTF::RunLoop::dispatchAfter): |
| * wtf/win/WorkItemWin.cpp: |
| (WTF::WorkItemWin::WorkItemWin): |
| (WTF::WorkItemWin::create): |
| (WTF::HandleWorkItem::HandleWorkItem): |
| (WTF::HandleWorkItem::createByAdoptingHandle): |
| * wtf/win/WorkItemWin.h: |
| (WTF::WorkItemWin::function): |
| * wtf/win/WorkQueueWin.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| |
| 2016-06-23 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r202380): iOS 9.x internal builds are broken |
| |
| Follow-up fix for: Enable window.open() for existing versions of Secret Society |
| <https://webkit.org/b/159049> |
| <rdar://problem/26528349> |
| |
| * wtf/spi/darwin/dyldSPI.h: Define DYLD_IOS_VERSION_10_0 when |
| building on internal SDKs older than iOS 10. |
| |
| 2016-06-23 John Wilander <wilander@apple.com> |
| |
| Enable window.open() for existing versions of Secret Society |
| https://bugs.webkit.org/show_bug.cgi?id=159049 |
| <rdar://problem/26528349> |
| |
| Reviewed by Andy Estes. |
| |
| The Secret Society Hidden Mystery app has a broken version check treating iOS 10 |
| as iOS 1 on iPads. Therefore it believes it can use window.open() in a tap |
| handler. We should allow the existing versions of the app to do this to not break |
| them. |
| |
| * wtf/spi/darwin/dyldSPI.h: |
| Added DYLD_IOS_VERSION_10_0. |
| |
| 2016-06-21 Said Abou-Hallawa <sabouhallawa@apple,com> |
| |
| Add system tracing points for requestAnimationFrame() workflow |
| https://bugs.webkit.org/show_bug.cgi?id=158723 |
| |
| Reviewed by Simon Fraser. |
| |
| Define new trace score codes for requestAnimationFrame(). |
| |
| * wtf/SystemTracing.h: |
| (WTF::TracePoint): |
| (WTF::TraceScope::TraceScope): |
| (WTF::TraceScope::~TraceScope): |
| |
| 2016-06-20 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r202136. |
| https://bugs.webkit.org/show_bug.cgi?id=158932 |
| |
| JSBench wasn't regressed by r202002 and r202111 on iOS after |
| all (Requested by rniwa_ on #webkit). |
| |
| Reverted changeset: |
| |
| "Unreviewed, rolling out r202002 and r202111." |
| https://bugs.webkit.org/show_bug.cgi?id=158638 |
| http://trac.webkit.org/changeset/202136 |
| |
| 2016-06-17 Chris Dumez <cdumez@apple.com> |
| |
| Optimize parseCacheHeader() by using StringView |
| https://bugs.webkit.org/show_bug.cgi?id=158891 |
| |
| Reviewed by Darin Adler. |
| |
| Add a StringView::find() overload which takes a CharacterMatchFunction |
| to match the one on String. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::find): |
| |
| 2016-06-17 Mark Lam <mark.lam@apple.com> |
| |
| OOM Assertion failure in JSON.stringify. |
| https://bugs.webkit.org/show_bug.cgi?id=158794 |
| <rdar://problem/26826254> |
| |
| Reviewed by Saam Barati. |
| |
| The bug was actually in StringBuilder::appendQuotedJSONString() where it failed |
| to detect an imminent unsigned int overflow. The fix is to use Checked<unsigned> |
| for the needed math, and RELEASE_ASSERT afterwards that we did not overflow. |
| |
| I also added more assertions to detect sooner if any there are any problems with |
| StringBuilder's m_buffer or m_length being incorrectly sized. These assertions |
| have been run on the JSC and layout tests without any issue. |
| |
| * wtf/text/StringBuilder.cpp: |
| (WTF::StringBuilder::resize): |
| (WTF::StringBuilder::allocateBuffer): |
| (WTF::StringBuilder::allocateBufferUpConvert): |
| (WTF::StringBuilder::reallocateBuffer<LChar>): |
| (WTF::StringBuilder::reallocateBuffer<UChar>): |
| (WTF::StringBuilder::reserveCapacity): |
| (WTF::StringBuilder::appendUninitializedSlow): |
| (WTF::StringBuilder::append): |
| (WTF::StringBuilder::appendQuotedJSONString): |
| * wtf/text/StringBuilder.h: |
| (WTF::StringBuilder::swap): |
| |
| 2016-06-14 Filip Pizlo <fpizlo@apple.com> |
| |
| Baseline JIT should be concurrent |
| https://bugs.webkit.org/show_bug.cgi?id=158755 |
| |
| Reviewed by Geoffrey Garen. |
| |
| The concurrent baseline JIT needs to be able to clone bytecode to get a consistent snapshot. |
| So, this adds such a method. |
| |
| * wtf/RefCountedArray.h: |
| (WTF::RefCountedArray::RefCountedArray): |
| (WTF::RefCountedArray::clone): |
| |
| 2016-06-16 Chris Dumez <cdumez@apple.com> |
| |
| No need to ref connection in lambda inside NetworkResourceLoader::tryStoreAsCacheEntry() |
| https://bugs.webkit.org/show_bug.cgi?id=158862 |
| |
| Reviewed by Darin Adler. |
| |
| Add NoncopyableFunction constructor that takes a nullptr_t in, in order |
| to match the std::function API and make porting from one to the other |
| easier. |
| |
| * wtf/NoncopyableFunction.h: |
| |
| 2016-06-16 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r202002 and r202111. |
| |
| Ryosuke says this was a JSBench regression on iOS |
| |
| Reverted changesets: |
| |
| "Make HashMap and HashSet work with Refs" |
| https://bugs.webkit.org/show_bug.cgi?id=158638 |
| http://trac.webkit.org/changeset/202002 |
| |
| "Improve HashMap and HashSet support for Ref" |
| https://bugs.webkit.org/show_bug.cgi?id=158789 |
| http://trac.webkit.org/changeset/202111 |
| |
| 2016-06-15 Chris Dumez <cdumez@apple.com> |
| |
| [Cocoa] Clean up / optimize ResourceResponse::platformLazyInit(InitLevel) |
| https://bugs.webkit.org/show_bug.cgi?id=158809 |
| |
| Reviewed by Darin Adler. |
| |
| Add toAtomicString() method to StringView to avoid having to call toString() |
| and then atomizing the String at call sites. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::toAtomicString): |
| |
| 2016-06-15 Sam Weinig <sam@webkit.org> |
| |
| Improve HashMap and HashSet support for Ref |
| https://bugs.webkit.org/show_bug.cgi?id=158789 |
| |
| Reviewed by Chris Dumez. |
| |
| Tests: Add more cases to WTF_HashMap.Ref_Key, WTF_HashMap.Ref_Value and WTF_HashSet.Ref |
| |
| * wtf/HashMap.h: |
| * wtf/HashSet.h: |
| Add a MappedTakeType typedef and rework the take functions to use it and HashTraits::take(...). |
| |
| * wtf/HashTraits.h: |
| (WTF::GenericHashTraits::assignToEmpty): |
| Move to GenericHashTraits rather than GenericHashTraitsBase, since it is not different |
| between integral and non-integral HashTraits. |
| |
| (WTF::GenericHashTraits::take): |
| Add a trait function for take that defaults as a forward. This allows us to override take |
| just like we do with get/peek. |
| |
| (WTF::HashTraits<Ref<P>>::emptyValue): |
| Remove unnecessary explicit construction. |
| |
| (WTF::HashTraits<Ref<P>>::peek): |
| Fix assertion that could happen if you did a HashMap.get() on an empty Ref value. |
| |
| (WTF::HashTraits<Ref<P>>::take): |
| Make the TakeType of a Ref<P> be Optional<Ref<P>>, to avoid having empty |
| Refs returned from HashMap and HashSet. Implement an explicit take() function to |
| construct one. |
| |
| (WTF::HashTraits<Ref<P>>::customDeleteBucket): Deleted. |
| Remove unnecessary customDeleteBucket implementation. Ref does not assign nullptr to |
| it's m_ptr in destruction, so there is no dead store to avoid here. |
| |
| * wtf/Ref.h: |
| (WTF::Ref::ptrAllowingHashTableEmptyValue): |
| Add HashTrait helper to allow getting the value of m_ptr even when it is null. This |
| allows us to avoid a branch in HashTraits<Ref<P>>::peek(). |
| |
| 2016-06-15 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Only Mac port needs ObjC API for JSC |
| https://bugs.webkit.org/show_bug.cgi?id=158780 |
| |
| Reviewed by Philippe Normand. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-06-15 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Unreviewed, follow up patch for r202092 |
| https://bugs.webkit.org/show_bug.cgi?id=158661 |
| |
| During checking Windows port on EWS, accidentally introduce the regression. |
| |
| * wtf/Platform.h: |
| |
| 2016-06-15 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [JSC] Move calling convention flags to WTF |
| https://bugs.webkit.org/show_bug.cgi?id=158661 |
| |
| Reviewed by Keith Miller. |
| |
| * wtf/Platform.h: |
| |
| 2016-06-14 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Honor bidi unicode codepoints |
| https://bugs.webkit.org/show_bug.cgi?id=149170 |
| <rdar://problem/26527378> |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/unicode/CharacterNames.h: |
| |
| 2016-06-14 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r202057. |
| https://bugs.webkit.org/show_bug.cgi?id=158749 |
| |
| This change broke the Windows build. (Requested by ryanhaddad |
| on #webkit). |
| |
| Reverted changeset: |
| |
| "Honor bidi unicode codepoints" |
| https://bugs.webkit.org/show_bug.cgi?id=149170 |
| http://trac.webkit.org/changeset/202057 |
| |
| 2016-06-14 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Honor bidi unicode codepoints |
| https://bugs.webkit.org/show_bug.cgi?id=149170 |
| <rdar://problem/26527378> |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/unicode/CharacterNames.h: |
| |
| 2016-06-13 Alex Christensen <achristensen@webkit.org> |
| |
| Add WebSocketProvider stub |
| https://bugs.webkit.org/show_bug.cgi?id=158702 |
| |
| Reviewed by Brady Eidson. |
| |
| * wtf/UniqueRef.h: |
| (WTF::UniqueRef::operator->): |
| (WTF::UniqueRef::operator T&): |
| (WTF::UniqueRef::operator const T&): |
| Added operator T& to avoid unneeded .get() calls. |
| |
| 2016-06-13 Sam Weinig <sam@webkit.org> |
| |
| Make HashMap and HashSet work with Refs |
| https://bugs.webkit.org/show_bug.cgi?id=158638 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/GetPtr.h: |
| Move HashTableDeletedValueType and HashTableEmptyValueType here, as they are now shared |
| by more than one smart pointer. This file should probably be renamed to something else |
| at some point to indicate that it contains helpers for pointer and ref related functionality. |
| |
| * wtf/HashFunctions.h: |
| Add a DefaultHash for Refs. Customize the PtrHash to indicate that it is not safe to compare |
| to empty or deleted Refs. |
| |
| * wtf/HashMap.h: |
| (WTF::HashMapTranslator::equal): |
| (WTF::HashMapTranslator::translate): |
| (WTF::HashMapEnsureTranslator::equal): |
| (WTF::HashMapEnsureTranslator::translate): |
| * wtf/HashSet.h: |
| (WTF::IdentityExtractor::extract): |
| (WTF::HashSetTranslator::hash): |
| (WTF::HashSetTranslator::equal): |
| (WTF::HashSetTranslator::translate): |
| * wtf/HashTable.h: |
| (WTF::IdentityHashTranslator::hash): |
| (WTF::IdentityHashTranslator::equal): |
| (WTF::IdentityHashTranslator::translate): |
| Use the new assignToEmpty trait function to allow uninitialized Ref's to be safely assigned to. |
| |
| * wtf/HashTraits.h: |
| (WTF::HashTraits<Ref<P>>::emptyValue): |
| (WTF::HashTraits<Ref<P>>::isEmptyValue): |
| (WTF::HashTraits<Ref<P>>::assignToEmpty): |
| (WTF::HashTraits<Ref<P>>::peek): |
| (WTF::HashTraits<Ref<P>>::customDeleteBucket): |
| Add custom HashTraits for Ref. Also, introduce a new trait function, assignToEmpty, for use |
| in translation assignments. This is necessary since the default assignment operator for Ref |
| will not allow assignment to the empty Ref, which we need to do here. |
| |
| * wtf/Ref.h: |
| (WTF::Ref::operator=): |
| (WTF::Ref::Ref): |
| (WTF::Ref::isHashTableDeletedValue): |
| (WTF::Ref::hashTableDeletedValue): |
| (WTF::Ref::isHashTableEmptyValue): |
| (WTF::Ref::hashTableEmptyValue): |
| Add explicit constructors/predicates for making deleted/empty Refs. |
| |
| (WTF::Ref::assignToHashTableEmptyValue): |
| Add a special function that allows assignment to an empty Ref, which the |
| assignment operator does not. |
| |
| (WTF::IsSmartPtr): |
| Add an IsSmartPtr override to indicate that Ref is a smart pointer. |
| |
| * wtf/RefPtr.h: |
| Move HashTableDeletedValueType to GetPtr.h. |
| |
| 2016-06-13 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Stack overflow at RefPtr::release on Windows port since r201782 |
| https://bugs.webkit.org/show_bug.cgi?id=158687 |
| |
| Reviewed by Chris Dumez. |
| |
| RefPtr::release calls RefPtr::RefPtr, and RefPtr::RefPtr calls |
| RefPtr::release. |
| |
| RefPtr::RefPtr does not need to call RefPtr::release. |
| |
| * wtf/RefPtr.h: |
| (WTF::RefPtr::RefPtr): Do not call RefPtr::release. |
| |
| 2016-06-11 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Addressing post-review comments after r201978. |
| https://bugs.webkit.org/show_bug.cgi?id=158649 |
| <rdar://problem/13258122> |
| |
| Unreviewed. |
| |
| * wtf/text/StringCommon.h: |
| (WTF::equal): |
| (WTF::naiveEqualWithoutPerformingUnicodeNormalization): Deleted. |
| |
| 2016-06-11 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [Cocoa] Map commonly used Chinese Windows font names to names present on Cocoa operating systems |
| https://bugs.webkit.org/show_bug.cgi?id=158649 |
| <rdar://problem/13258122> |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/text/StringCommon.h: |
| (WTF::naiveEqualWithoutPerformingUnicodeNormalization): Added. |
| |
| 2016-06-11 Chris Dumez <cdumez@apple.com> |
| |
| WorkerNavigator is missing some attributes |
| https://bugs.webkit.org/show_bug.cgi?id=158593 |
| <rdar://problem/26731334> |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/PlatformUserPreferredLanguages.h: |
| * wtf/PlatformUserPreferredLanguagesWin.cpp: |
| (WTF::platformLanguage): |
| (WTF::platformUserPreferredLanguages): |
| |
| Make platformUserPreferredLanguages() thread safe on Windows. The |
| Mac and Unix implementations are already thread-safe. |
| |
| HAS_FASTCALL_CALLING_CONVENTION is changed to COMPILER_SUPPORTS(FASTCALL_CALLING_CONVENTION). |
| |
| 2016-06-10 Alex Christensen <achristensen@webkit.org> |
| |
| Introduce WTF::UniqueRef |
| https://bugs.webkit.org/show_bug.cgi?id=158596 |
| |
| Reviewed by Brady Eidson. |
| |
| WTF::UniqueRef is like a std::unique_ptr that is guaranteed to be non-null. |
| std::make_unique returns a non-null value that is put into a std::unique_ptr, a type |
| that could contain null values. To be able to pass such values around and store them |
| without wondering if they are null, we now have WTF::UniqueRef which cannot be null. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/UniqueRef.h: Added. |
| (WTF::makeUniqueRef): |
| (WTF::UniqueRef::UniqueRef): |
| (WTF::UniqueRef::get): |
| (WTF::UniqueRef::operator&): |
| (WTF::UniqueRef::operator->): |
| |
| 2016-06-09 Brady Eidson <beidson@apple.com> |
| |
| Unaddressed review feedback from r201872 |
| |
| * wtf/CrossThreadTask.h: |
| (WTF::callFunctionForCrossThreadTask): Fix typo. |
| |
| 2016-06-09 Brady Eidson <beidson@apple.com> |
| |
| Greatly simplify CrossThreadTask.h. |
| https://bugs.webkit.org/show_bug.cgi?id=158542 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/CrossThreadTask.h: |
| (WTF::crossThreadCopy): |
| (WTF::callFunctionForCrossThreadTaskImpl): |
| (WTF::callFunctionForCrossThreadTask): |
| (WTF::createCrossThreadTask): |
| (WTF::callMemberFunctionForCrossThreadTaskImpl): |
| (WTF::callMemberFunctionForCrossThreadTask): |
| |
| 2016-06-08 Brady Eidson <beidson@apple.com> |
| |
| Make CrossThreadCopier more efficient (fewer copies!). |
| https://bugs.webkit.org/show_bug.cgi?id=158456 |
| |
| Reviewed by Alex Christensen. |
| |
| Previously, we'd run all arguments through CrossThreadCopier, then immediately make |
| an unnecessary copy of the result during lambda capture. |
| |
| Instead, we should just put the CrossThreadCopier generated objects directly in lambdas, |
| which are then captured by NoncopyableFunctions. |
| |
| This reduces the number of constructor calls per argument from 2 copies to 1 move. |
| |
| * wtf/CrossThreadTask.h: |
| (WTF::CrossThreadTask::CrossThreadTask): |
| (WTF::createCrossThreadTask): |
| |
| 2016-06-07 Filip Pizlo <fpizlo@apple.com> |
| |
| Implement Air::allocateStack() in ES6 to see how much of a bad idea that is |
| https://bugs.webkit.org/show_bug.cgi?id=158318 |
| |
| Reviewed by Saam Barati. |
| |
| * wtf/Insertion.h: |
| (WTF::executeInsertions): I found a bug while rewriting this code in JS. |
| * wtf/PrintStream.h: |
| (WTF::PrintStream::print): |
| (WTF::PrintStream::println): This is useful to have. |
| |
| 2016-06-07 Keith Rollin <krollin@apple.com> |
| |
| Remove all uses of PassRefPtr in WTF |
| https://bugs.webkit.org/show_bug.cgi?id=157596 |
| <rdar://problem/26234391> |
| |
| Reviewed by Chris Dumez. |
| |
| Remove/update most interfaces that take or return PassRefPtrs. |
| Remaining references include those in non-Cocoa implementations and |
| those required for continued compatibility with modules that still use |
| PassRefPtrs (specifically: Forward.h, RefPtr interoperability, |
| SizeLimits.h, WorkQueue (Windows) DispatchQueueEfl, |
| DispatchWorkItemEfl, and PassRefPtr itself). |
| |
| Update calls to interfaces that no longer take or return PassRefPtrs. |
| |
| Update adoptRef(T*) to return a RefPtr instead of a PassRefPtr and |
| move it to RefPtr.h from PassRefPtr.h. |
| |
| * wtf/MetaAllocator.cpp: |
| (WTF::MetaAllocator::allocate): |
| * wtf/MetaAllocator.h: |
| * wtf/ParallelJobsGeneric.h: |
| (WTF::ParallelEnvironment::ThreadPrivate::create): |
| * wtf/text/AtomicStringImpl.cpp: |
| (WTF::HashAndUTF8CharactersTranslator::translate): |
| (WTF::SubstringTranslator::translate): |
| * wtf/text/CString.cpp: |
| (WTF::CStringBuffer::createUninitialized): |
| * wtf/text/CString.h: |
| * wtf/text/StringBuilder.cpp: |
| (WTF::StringBuilder::reifyString): |
| (WTF::StringBuilder::resize): |
| (WTF::StringBuilder::reallocateBuffer<LChar>): |
| (WTF::StringBuilder::reallocateBuffer<UChar>): |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::reallocateInternal): |
| (WTF::StringImpl::reallocate): |
| (WTF::StringImpl::create8BitIfPossible): |
| (WTF::StringImpl::createSymbol): |
| (WTF::StringImpl::createNullSymbol): |
| (WTF::StringImpl::convertToLowercaseWithoutLocale): |
| (WTF::StringImpl::convertToUppercaseWithoutLocale): |
| (WTF::StringImpl::convertToLowercaseWithLocale): |
| (WTF::StringImpl::convertToUppercaseWithLocale): |
| (WTF::StringImpl::convertASCIICase): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| (WTF::StringImpl::createSubstringSharingImpl): |
| (WTF::StringImpl::tryCreateUninitialized): |
| (WTF::StringImpl::extractFoldedStringInSymbol): |
| * wtf/text/SymbolRegistry.cpp: |
| (WTF::SymbolRegistry::symbolForKey): |
| * wtf/text/WTFString.cpp: |
| (WTF::String::substringSharingImpl): |
| * wtf/text/WTFString.h: |
| (WTF::String::String): Deleted. |
| * wtf/text/cf/StringImplCF.cpp: |
| |
| 2016-06-07 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [JSC] Do not allocate unnecessary UTF-8 string for encodeXXX functions |
| https://bugs.webkit.org/show_bug.cgi?id=158416 |
| |
| Reviewed by Darin Adler and Geoffrey Garen. |
| |
| * wtf/Bitmap.h: |
| (WTF::Bitmap::size): |
| (WTF::WordType>::Bitmap): |
| (WTF::WordType>::get): |
| (WTF::WordType>::set): |
| (WTF::WordType>::testAndSet): |
| (WTF::WordType>::testAndClear): |
| (WTF::WordType>::concurrentTestAndSet): |
| (WTF::WordType>::concurrentTestAndClear): |
| (WTF::WordType>::clear): |
| (WTF::WordType>::clearAll): |
| (WTF::WordType>::nextPossiblyUnset): |
| (WTF::WordType>::findRunOfZeros): |
| (WTF::WordType>::count): |
| (WTF::WordType>::isEmpty): |
| (WTF::WordType>::isFull): |
| |
| 2016-06-06 Saam Barati <sbarati@apple.com> |
| |
| equal(StringView, StringView) for strings should have a fast path for pointer equality |
| https://bugs.webkit.org/show_bug.cgi?id=158452 |
| |
| Reviewed by Andreas Kling. |
| |
| JSBench does a lot of StringView::operator== on StringViews that have |
| the same underlying characters pointer. This becomes hot inside JSBench |
| because JSBench heavily stresses JSC's UnlinkedCodeCache with a high |
| hit rate. This means that when we get a hit in the cache, we used to |
| do the long form of string compare. However, we were often comparing |
| two StringViews that had the same underlying buffer and length. |
| This patch speeds this case up to run in constant time instead of |
| linear time. |
| |
| * wtf/text/StringCommon.h: |
| (WTF::equalCommon): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| (WTF::StringImpl::data): |
| * wtf/text/StringView.h: |
| (WTF::StringView::data): |
| |
| 2016-06-04 Anders Carlsson <andersca@apple.com> |
| |
| Get rid of WorkItemWin |
| https://bugs.webkit.org/show_bug.cgi?id=158381 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/PlatformWin.cmake: |
| * wtf/WorkQueue.h: |
| * wtf/win/WorkItemWin.cpp: Removed. |
| (WTF::WorkItemWin::WorkItemWin): Deleted. |
| (WTF::WorkItemWin::create): Deleted. |
| (WTF::WorkItemWin::~WorkItemWin): Deleted. |
| * wtf/win/WorkItemWin.h: Removed. |
| (WTF::WorkItemWin::function): Deleted. |
| (WTF::WorkItemWin::queue): Deleted. |
| * wtf/win/WorkQueueWin.cpp: |
| (WTF::WorkQueue::performWorkOnRegisteredWorkThread): |
| (WTF::WorkQueue::dispatch): |
| |
| 2016-06-03 Anders Carlsson <andersca@apple.com> |
| |
| Get rid of HANDLE registration code in WorkQueueWin |
| https://bugs.webkit.org/show_bug.cgi?id=158375 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/WorkQueue.h: |
| * wtf/win/WorkItemWin.cpp: |
| (WTF::HandleWorkItem::HandleWorkItem): Deleted. |
| (WTF::HandleWorkItem::createByAdoptingHandle): Deleted. |
| (WTF::HandleWorkItem::~HandleWorkItem): Deleted. |
| * wtf/win/WorkItemWin.h: |
| (WTF::HandleWorkItem::setWaitHandle): Deleted. |
| (WTF::HandleWorkItem::waitHandle): Deleted. |
| * wtf/win/WorkQueueWin.cpp: |
| (WTF::WorkQueue::handleCallback): Deleted. |
| (WTF::WorkQueue::platformInvalidate): Deleted. |
| (WTF::WorkQueue::unregisterWaitAndDestroyItemSoon): Deleted. |
| (WTF::WorkQueue::unregisterWaitAndDestroyItemCallback): Deleted. |
| |
| 2016-06-03 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r201663. |
| https://bugs.webkit.org/show_bug.cgi?id=158374 |
| |
| Broke the Windows build (Requested by andersca on #webkit). |
| |
| Reverted changeset: |
| |
| "Rename NoncopyableFunction to Function" |
| https://bugs.webkit.org/show_bug.cgi?id=158354 |
| http://trac.webkit.org/changeset/201663 |
| |
| 2016-06-03 Anders Carlsson <andersca@apple.com> |
| |
| Rename NoncopyableFunction to Function |
| https://bugs.webkit.org/show_bug.cgi?id=158354 |
| |
| Reviewed by Chris Dumez. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CrossThreadTask.h: |
| (WTF::CrossThreadTask::CrossThreadTask): |
| * wtf/Function.h: Renamed from Source/WTF/wtf/NoncopyableFunction.h. |
| * wtf/FunctionDispatcher.h: |
| * wtf/MainThread.cpp: |
| (WTF::functionQueue): |
| (WTF::dispatchFunctionsFromMainThread): |
| (WTF::callOnMainThread): |
| * wtf/MainThread.h: |
| * wtf/RunLoop.cpp: |
| (WTF::RunLoop::performWork): |
| (WTF::RunLoop::dispatch): |
| * wtf/RunLoop.h: |
| * wtf/WorkQueue.h: |
| * wtf/cocoa/WorkQueueCocoa.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| * wtf/efl/DispatchQueueWorkItemEfl.h: |
| (WorkItem::WorkItem): |
| (TimerWorkItem::create): |
| (TimerWorkItem::TimerWorkItem): |
| * wtf/efl/WorkQueueEfl.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| * wtf/generic/RunLoopGeneric.cpp: |
| (WTF::RunLoop::TimerBase::ScheduledTask::create): |
| (WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask): |
| (WTF::RunLoop::dispatchAfter): |
| * wtf/generic/WorkQueueGeneric.cpp: |
| (WorkQueue::dispatch): |
| (WorkQueue::dispatchAfter): |
| * wtf/glib/RunLoopGLib.cpp: |
| (WTF::DispatchAfterContext::DispatchAfterContext): |
| (WTF::RunLoop::dispatchAfter): |
| * wtf/win/WorkItemWin.cpp: |
| (WTF::WorkItemWin::WorkItemWin): |
| (WTF::WorkItemWin::create): |
| (WTF::HandleWorkItem::HandleWorkItem): |
| (WTF::HandleWorkItem::createByAdoptingHandle): |
| * wtf/win/WorkItemWin.h: |
| (WTF::WorkItemWin::function): |
| * wtf/win/WorkQueueWin.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| |
| 2016-06-03 Mark Lam <mark.lam@apple.com> |
| |
| Clean up how StackVisitor dumps its frames. |
| https://bugs.webkit.org/show_bug.cgi?id=158316 |
| |
| Reviewed by Keith Miller. |
| |
| Added an Indenter class what works with dataLog. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/Indenter.h: Added. |
| (WTF::Indenter::Indenter): |
| (WTF::Indenter::dump): |
| (WTF::Indenter::operator++): |
| (WTF::Indenter::operator--): |
| |
| 2016-06-02 Said Abou-Hallawa <sabouhallawa@apple,com> |
| |
| [iOS] PDFDocumentImage should not create a cached image larger than 4M pixels |
| https://bugs.webkit.org/show_bug.cgi?id=157857 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/StdLibExtras.h: Add a constant value for GB (2^30). |
| |
| 2016-06-02 Oliver Hunt <oliver@apple.com> |
| |
| JS parser incorrectly handles invalid utf8 in error messages. |
| https://bugs.webkit.org/show_bug.cgi?id=158128 |
| |
| Reviewed by Saam Barati. |
| |
| Add a new toStringWithLatin1Fallback that simply uses |
| String::fromUTF8WithLatin1Fallback, so we can avoid the |
| standard String::fromUTF8 null return. |
| |
| * wtf/StringPrintStream.cpp: |
| (WTF::StringPrintStream::toStringWithLatin1Fallback): |
| * wtf/StringPrintStream.h: |
| |
| 2016-06-02 Keith Miller <keith_miller@apple.com> |
| |
| Unreviewed, reland r201532. The associated regressions have been fixed |
| by r201584. |
| |
| 2016-06-02 Filip Pizlo <fpizlo@apple.com> |
| |
| Use "= delete" for Locker(int) |
| |
| Rubber stamped by Saam Barati. |
| |
| See discussion: https://bugs.webkit.org/show_bug.cgi?id=158306#c8 |
| |
| * wtf/Locker.h: |
| (WTF::Locker::Locker): |
| (WTF::Locker::~Locker): |
| |
| 2016-06-02 Filip Pizlo <fpizlo@apple.com> |
| |
| Make it harder to accidentally pass an integer to a locker. |
| |
| Rubber stamped by Keith Miller. |
| |
| See here for the discussion: https://bugs.webkit.org/show_bug.cgi?id=158306#c3 |
| |
| * wtf/Locker.h: |
| (WTF::Locker::Locker): |
| (WTF::Locker::~Locker): |
| |
| 2016-06-02 Filip Pizlo <fpizlo@apple.com> |
| |
| Make it easier to use NoLockingNecessary |
| https://bugs.webkit.org/show_bug.cgi?id=158306 |
| |
| Reviewed by Keith Miller. |
| |
| An idiom that we borrowed from LLVM is that if a function requires a lock to be held, we |
| have it take a const Locker& as its first argument. This may not communicate which lock is |
| to be held, but it does help us to remember that some lock must be held. So far, it's been |
| relatively easy to then figure out which lock. We've had bugs where we forgot to hold a |
| lock but I don't remember the last time we had a bug where we grabbed the wrong lock. |
| |
| But sometimes, we know at the point where we call such a method that we actually don't |
| need to hold any lock. This usually happens during object construction. If we're |
| constructing some object then we usually know that we have not escaped it yet, so we don't |
| need to waste time acquiring its lock. We could solve this by having a separate set of |
| methods that don't do or require locking. This would be cumbersome, since usually for |
| every variant that takes const Locker&, there is already one that doesn't, and that one |
| will grab the lock for you. So this means having a third variant, that also doesn't take a |
| const Locker&, but does no locking. That's pretty weird. |
| |
| So, we introduced NoLockingNecessary for situations like this. The idiom went like so: |
| |
| Locker<Whatever> locker(Locker<Whatever>::NoLockingNecessary) |
| stuff->foo(locker); |
| |
| Usually though, there would be some distance between where the locker is defined and where |
| it's used, so when you just look at stuff->foo(locker) in isolation you don't know if this |
| is a real locker or a NoLockingNecessary cast. Also, requiring two lines for this just |
| adds code. |
| |
| This change makes this easier. Now you can just do: |
| |
| stuff->foo(NoLockingNecessary). |
| |
| This is because NoLockingNecessary has been pulled out into the WTF namespace (and is |
| usinged from the global namespace) and the Locker<> constructor that takes |
| NoLockingNecessaryTag is now implicit. |
| |
| The only possible downside of this change is that people might use this idiom more |
| frequently now that it's easier to use. I don't think that's a bad thing. I'm now |
| convinced that this is not a bad idiom. When I was fixing an unrelated bug, I almost went |
| the way of adding more locking to some core JSC data structures, and in the process, I |
| needed to use NoLockingNecessary. It's clear that this is a general-purpose idiom and we |
| should not impose artificial constraints on its use. |
| |
| * wtf/Locker.h: |
| (WTF::Locker::Locker): |
| (WTF::Locker::~Locker): |
| |
| 2016-06-01 Brady Eidson <beidson@apple.com> |
| |
| Get rid of StringCapture. |
| https://bugs.webkit.org/show_bug.cgi?id=158285 |
| |
| Reviewed by Chris Dumez. |
| |
| * wtf/text/WTFString.h: |
| (WTF::StringCapture::StringCapture): Deleted. |
| (WTF::StringCapture::string): Deleted. |
| (WTF::StringCapture::releaseString): Deleted. |
| (WTF::StringCapture::operator=): Deleted. |
| |
| 2016-06-01 Benjamin Poulain <bpoulain@apple.com> |
| |
| [JSC] Some setters for components of Date do not timeClip() their result |
| https://bugs.webkit.org/show_bug.cgi?id=158278 |
| |
| Unreviewed. |
| |
| * wtf/DateMath.cpp: |
| (WTF::equivalentYearForDST): Deleted. |
| The assertion is bogus. |
| As the comments above explains, the function is completely wrong for years |
| outside [1900-2100]. |
| The tests passing large values for years are failing (year <= maxYear). |
| The weird NaN test is a mystery. The old changelog does not explain it. |
| |
| 2016-05-31 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r201363 and r201456. |
| https://bugs.webkit.org/show_bug.cgi?id=158240 |
| |
| "40% regression on date-format-xparb" (Requested by |
| keith_miller on #webkit). |
| |
| Reverted changesets: |
| |
| "LLInt should be able to cache prototype loads for values in |
| GetById" |
| https://bugs.webkit.org/show_bug.cgi?id=158032 |
| http://trac.webkit.org/changeset/201363 |
| |
| "get_by_id should support caching unset properties in the |
| LLInt" |
| https://bugs.webkit.org/show_bug.cgi?id=158136 |
| http://trac.webkit.org/changeset/201456 |
| |
| 2016-05-31 Brady Eidson <beidson@apple.com> |
| |
| Make createCrossThreadTask() functions return on the stack instead of the heap. |
| https://bugs.webkit.org/show_bug.cgi?id=158215 |
| |
| Reviewed by Darin Adler. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| |
| * wtf/CrossThreadCopier.cpp: |
| |
| * wtf/CrossThreadQueue.h: Added. A lightweight of MessageQueue that deals directly |
| in objects instead of in std::unique_ptrs. |
| (WTF::CrossThreadQueue::isKilled): |
| (WTF::CrossThreadQueue<DataType>::append): |
| (WTF::CrossThreadQueue<DataType>::waitForMessage): |
| (WTF::CrossThreadQueue<DataType>::tryGetMessage): |
| |
| * wtf/CrossThreadTask.h: |
| (WTF::createCrossThreadTask): |
| (WTF::CrossThreadTask::CrossThreadTask): Deleted. |
| |
| 2016-05-30 Brady Eidson <beidson@apple.com> |
| |
| Move CrossThreadCopier/CrossThreadTask to WTF. |
| https://bugs.webkit.org/show_bug.cgi?id=158207 |
| |
| Reviewed by Alex Christensen. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| |
| * wtf/CrossThreadCopier.cpp: Renamed from Source/WebCore/platform/CrossThreadCopier.cpp. |
| * wtf/CrossThreadCopier.h: Renamed from Source/WebCore/platform/CrossThreadCopier.h. |
| (WTF::CrossThreadCopierPassThrough::copy): |
| |
| * wtf/CrossThreadTask.h: Renamed from Source/WebCore/platform/CrossThreadTask.h. |
| (WTF::CrossThreadTask::CrossThreadTask): |
| (WTF::CrossThreadTask::performTask): |
| (WTF::createCrossThreadTask): |
| |
| 2016-05-28 Chris Dumez <cdumez@apple.com> |
| |
| Templatize NoncopyableFunction class similarly to std::function |
| https://bugs.webkit.org/show_bug.cgi?id=158185 |
| |
| Reviewed by Darin Adler. |
| |
| Templatize NoncopyableFunction class similarly to std::function, so |
| that it can be used as a std::function replacement in more places. |
| |
| Previously, NoncopyableFunction could only support "void()" lambdas. |
| |
| * wtf/FunctionDispatcher.h: |
| * wtf/MainThread.cpp: |
| (WTF::functionQueue): |
| (WTF::dispatchFunctionsFromMainThread): |
| (WTF::callOnMainThread): |
| * wtf/MainThread.h: |
| * wtf/NoncopyableFunction.h: |
| * wtf/RunLoop.cpp: |
| (WTF::RunLoop::performWork): |
| (WTF::RunLoop::dispatch): |
| * wtf/RunLoop.h: |
| * wtf/WorkQueue.h: |
| * wtf/cocoa/WorkQueueCocoa.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| * wtf/efl/DispatchQueueWorkItemEfl.h: |
| (WorkItem::WorkItem): |
| (TimerWorkItem::create): |
| (TimerWorkItem::TimerWorkItem): |
| * wtf/efl/WorkQueueEfl.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| * wtf/generic/RunLoopGeneric.cpp: |
| (WTF::RunLoop::TimerBase::ScheduledTask::create): |
| (WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask): |
| (WTF::RunLoop::dispatchAfter): |
| * wtf/generic/WorkQueueGeneric.cpp: |
| (WorkQueue::dispatch): |
| (WorkQueue::dispatchAfter): |
| * wtf/glib/RunLoopGLib.cpp: |
| (WTF::DispatchAfterContext::DispatchAfterContext): |
| (WTF::RunLoop::dispatchAfter): |
| * wtf/win/WorkItemWin.cpp: |
| (WTF::WorkItemWin::WorkItemWin): |
| (WTF::WorkItemWin::create): |
| (WTF::HandleWorkItem::HandleWorkItem): |
| (WTF::HandleWorkItem::createByAdoptingHandle): |
| * wtf/win/WorkItemWin.h: |
| (WTF::WorkItemWin::function): |
| * wtf/win/WorkQueueWin.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| |
| 2016-05-28 Dan Bernstein <mitz@apple.com> |
| |
| Build fix for projects that include MainThread.h without including FastMalloc.h. |
| |
| * wtf/NoncopyableFunction.h: Include FastMalloc.h from here. |
| |
| 2016-05-27 Chris Dumez <cdumez@apple.com> |
| |
| callOnMainThread() should not copy captured lambda variables |
| https://bugs.webkit.org/show_bug.cgi?id=158166 |
| |
| Reviewed by Brady Eidson. |
| |
| callOnMainThread() should not copy captured lambda variables. This |
| function is usually called cross-thread with a lambda and copying |
| the lambda (and its captured variables) can lead to thread-safety |
| issues. |
| |
| This patch updates callOnMainThread() to take a NoncopyableFunction&& |
| in parameter instead of a std::function. The call sites of |
| callOnMainThread() have also been updated to use C++14's lambda |
| capture with initializer. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| |
| * wtf/FunctionDispatcher.h: |
| * wtf/NoncopyableFunction.h: |
| - Moved NoncopyableFunction from FunctionDispatcher.h to |
| NoncopyableFunction.h. |
| - Add a new operator=(nullptr_t) operator to NoncopyableFunction to |
| match std::function, as one of the call sites needed it. |
| |
| * wtf/MainThread.cpp: |
| (WTF::functionQueue): |
| (WTF::dispatchFunctionsFromMainThread): |
| (WTF::callOnMainThread): |
| * wtf/MainThread.h: |
| |
| 2016-05-27 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Unreviewed, build fix for JSCOnly port. |
| https://bugs.webkit.org/show_bug.cgi?id=158111 |
| |
| Use NoncopyableFunction instead of std::function<>. |
| |
| * wtf/generic/RunLoopGeneric.cpp: |
| (WTF::RunLoop::TimerBase::ScheduledTask::create): |
| (WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask): |
| |
| 2016-05-27 Chris Dumez <cdumez@apple.com> |
| |
| WorkQueue::dispatch() / RunLoop::dispatch() should not copy captured lambda variables |
| https://bugs.webkit.org/show_bug.cgi?id=158111 |
| |
| Reviewed by Darin Adler. |
| |
| WorkQueue::dispatch() / RunLoop::dispatch() should not copy captured lambda variables. |
| These are often used cross-thread and copying the captured lambda variables can be |
| dangerous (e.g. we do not want to copy a String after calling isolatedCopy() upon |
| capture). |
| |
| This patch introduces a new NoncopyableFunction type that behaves similarly to |
| std::function but guarantees that the passed-in lambda (and its captured variables) |
| cannot be copied. This new NoncopyableFunction type is now used for |
| WorkQueue / RunLoop's dispatch() / dispatchAfter() which are commonly used |
| cross-thread. This should now allow us to call WorkQueue::dispatch() with a lambda |
| that captures a String like so: |
| [str = str.isolatedCopy()]() { } |
| |
| Also note that even though this is not leveraged in this patch, NoncopyableFunction |
| would allow us to capture move-only types such as std::unique_ptr as so: |
| [p = WTFMove(p)]() { } |
| This does not work if we convert the lambda into an std::function because |
| std::function requires the lambda to be copyable, NoncopyableFunction does not. |
| |
| * wtf/FunctionDispatcher.h: |
| (WTF::CallableWrapperBase::~CallableWrapperBase): |
| (WTF::NoncopyableFunction::NoncopyableFunction): |
| (WTF::NoncopyableFunction::operator()): |
| (WTF::NoncopyableFunction::operator bool): |
| (WTF::NoncopyableFunction::operator=): |
| * wtf/RunLoop.cpp: |
| (WTF::RunLoop::performWork): |
| (WTF::RunLoop::dispatch): |
| * wtf/RunLoop.h: |
| * wtf/WorkQueue.h: |
| * wtf/cocoa/WorkQueueCocoa.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| * wtf/efl/DispatchQueueWorkItemEfl.h: |
| (WorkItem::WorkItem): |
| (TimerWorkItem::create): |
| (TimerWorkItem::TimerWorkItem): |
| * wtf/efl/WorkQueueEfl.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| * wtf/generic/RunLoopGeneric.cpp: |
| (WTF::RunLoop::dispatchAfter): |
| * wtf/generic/WorkQueueGeneric.cpp: |
| (WorkQueue::dispatch): |
| (WorkQueue::dispatchAfter): |
| * wtf/glib/RunLoopGLib.cpp: |
| (WTF::DispatchAfterContext::DispatchAfterContext): |
| (WTF::RunLoop::dispatchAfter): |
| * wtf/win/WorkItemWin.cpp: |
| (WTF::WorkItemWin::WorkItemWin): |
| (WTF::WorkItemWin::create): |
| (WTF::HandleWorkItem::HandleWorkItem): |
| (WTF::HandleWorkItem::createByAdoptingHandle): |
| * wtf/win/WorkItemWin.h: |
| (WTF::WorkItemWin::function): |
| * wtf/win/WorkQueueWin.cpp: |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::timerCallback): |
| (WTF::WorkQueue::dispatchAfter): |
| |
| 2016-05-26 Filip Pizlo <fpizlo@apple.com> |
| |
| ScopedLambda should have a lifetime story that makes sense to the compiler |
| https://bugs.webkit.org/show_bug.cgi?id=158118 |
| |
| Reviewed by Mark Lam. |
| |
| Prior to this change, there were two lifetime bugs in ScopedLambda: |
| |
| - scopedLambda(Functor&&) would bind Functor to const lambda&, so the resulting ScopedLambdaFunctor |
| would hold a reference to the original lambda. This would have surprising behavior; for example |
| it meant that this code was wrong: |
| |
| auto l = scopedLambda<things>([&] ...); |
| |
| The solution is to have explicit copy/move versions of scopedLambda() rather than rely on perfect |
| forwarding. |
| |
| - ScopedLambdaFunctor did not override its copy or move operations, so if the compiler did not RVO |
| scopedLambda(), it would return a ScopedLambdaFunctor whose m_arg points to a dead temporary |
| ScopedLambdaFunctor instance. The solution is to have explicit copy/move constructors and |
| operators, which preserve the invariant that ScopedLambda::m_arg points to this. |
| |
| One nice side-effect of all of these constructors and operators being explicit is that we can rely |
| on WTFMove's excellent assertions, which helped catch the first issue. |
| |
| This reverts ParkingLot to use ScopedLambda again. |
| |
| * wtf/ParkingLot.cpp: |
| (WTF::ParkingLot::parkConditionallyImpl): |
| (WTF::ParkingLot::unparkOne): |
| (WTF::ParkingLot::unparkOneImpl): |
| * wtf/ParkingLot.h: |
| (WTF::ParkingLot::parkConditionally): |
| (WTF::ParkingLot::unparkOne): |
| * wtf/ScopedLambda.h: |
| (WTF::scopedLambda): |
| |
| 2016-05-25 Anders Carlsson <andersca@apple.com> |
| |
| Get rid of WTF/Functional.h |
| https://bugs.webkit.org/show_bug.cgi?id=158081 |
| |
| Reviewed by Chris Dumez. |
| |
| This is no longer used, and removing it will free up the name for a new Functional.h implementation. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/Functional.h: Removed. |
| (WTF::RefAndDeref::ref): Deleted. |
| (WTF::RefAndDeref::deref): Deleted. |
| (WTF::ParamStorageTraits::wrap): Deleted. |
| (WTF::ParamStorageTraits::unwrap): Deleted. |
| (WTF::ParamStorageTraits<PassRefPtr<T>>::wrap): Deleted. |
| (WTF::ParamStorageTraits<PassRefPtr<T>>::unwrap): Deleted. |
| (WTF::ParamStorageTraits<RefPtr<T>>::wrap): Deleted. |
| (WTF::ParamStorageTraits<RefPtr<T>>::unwrap): Deleted. |
| (WTF::ParamStorageTraits<RetainPtr<T>>::wrap): Deleted. |
| (WTF::ParamStorageTraits<RetainPtr<T>>::unwrap): Deleted. |
| (WTF::FunctionImplBase::~FunctionImplBase): Deleted. |
| (WTF::FunctionBase::isNull): Deleted. |
| (WTF::FunctionBase::FunctionBase): Deleted. |
| (WTF::FunctionBase::impl): Deleted. |
| (WTF::bind): Deleted. |
| * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: |
| |
| 2016-05-24 Keith Miller <keith_miller@apple.com> |
| |
| LLInt should be able to cache prototype loads for values in GetById |
| https://bugs.webkit.org/show_bug.cgi?id=158032 |
| |
| Reviewed by Filip Pizlo. |
| |
| Add move constructors/initializers to Bags. |
| |
| * wtf/Bag.h: |
| (WTF::Bag::Bag): |
| (WTF::Bag::operator=): |
| |
| 2016-05-24 Chris Dumez <cdumez@apple.com> |
| |
| Use auto for some of our lambda function parameters |
| https://bugs.webkit.org/show_bug.cgi?id=158001 |
| |
| Reviewed by Darin Adler. |
| |
| Use auto for some of our lambda function parameters now that we build with c++14. |
| |
| * wtf/BubbleSort.h: |
| (WTF::bubbleSort): |
| |
| 2016-05-23 Chris Dumez <cdumez@apple.com> |
| |
| Speed up move of vectors of POD types that have an inline buffer |
| https://bugs.webkit.org/show_bug.cgi?id=158003 |
| |
| Reviewed by Benjamin Poulain. |
| |
| When moving a vector of POD types that have an inline buffer, we would |
| call std::swap() on the inline buffers. This unnecessarily slow because: |
| 1. It does not consider the vector size, and therefore may end up doing |
| more work than necessary when the inline buffer is not full. |
| 2. In the "move" case, the destination buffer is completely empty so |
| we don't really want a swap. We merely want the move the content of |
| the source's inline buffer into the destination's one. |
| |
| Instead of calling std::swap(), we now call swapInlineBuffers() which |
| was already used for non-POD types. swapInlineBuffers() will do just |
| what we want in the "move" case because swapBound is going to be 0. |
| As a result, we will only move the content of the source buffer into |
| the destination one. Also swapInlineBuffers() is aware of the source |
| vector's size so it will only move what's strictly needed. |
| |
| This seems to be a 2% progression on Dromaeo DOM attributes test. |
| |
| * wtf/Vector.h: |
| (WTF::VectorBuffer::swapInlineBuffer): |
| |
| 2016-05-22 Dan Bernstein <mitz@apple.com> |
| |
| Added NSEventMaskMouseMoved to AppKitCompatibilityDeclarations.h. |
| |
| Rubber-stamped by Anders Carlsson. |
| |
| * wtf/mac/AppKitCompatibilityDeclarations.h: |
| |
| 2016-05-22 Dan Bernstein <mitz@apple.com> |
| |
| Another attempt to fix the GTK build after my previous changes. |
| |
| * wtf/StdLibExtras.h: |
| |
| 2016-05-22 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix the GTK build after r201257. |
| |
| * wtf/StdLibExtras.h: |
| |
| 2016-05-22 Dan Bernstein <mitz@apple.com> |
| |
| Additional fixes for non-C++14 Apple projects that use WTF. |
| |
| * wtf/StdLibExtras.h: |
| (std::exchange): |
| |
| 2016-05-22 Dan Bernstein <mitz@apple.com> |
| |
| Additional fixes for non-C++14 Apple projects that use WTF. |
| |
| * wtf/StdLibExtras.h: |
| (std::make_unique): |
| (std::move): |
| |
| 2016-05-22 Dan Bernstein <mitz@apple.com> |
| |
| Correct the previous build fix attempt. |
| |
| * wtf/StdLibExtras.h: |
| |
| 2016-05-22 Dan Bernstein <mitz@apple.com> |
| |
| Build fix for non-C++14 Apple projects that use WTF. |
| |
| Rubber-stamped by Anders. |
| |
| * wtf/StdLibExtras.h: |
| |
| 2016-05-22 Brady Eidson <beidson@apple.com> |
| |
| Move to C++14. |
| https://bugs.webkit.org/show_bug.cgi?id=157948 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * Configurations/Base.xcconfig: |
| |
| Delete a lot of "stl additions until we can adopt C++14" code: |
| * wtf/StdLibExtras.h: |
| (std::make_unique): Deleted. |
| (std::index_sequence::size): Deleted. |
| (std::exchange): Deleted. |
| (std::literals::chrono_literals::operator _s): Deleted. |
| (std::literals::chrono_literals::operator _ms): Deleted. |
| |
| 2016-05-20 Rawinder Singh <rawinder.singh-webkit@cisra.canon.com.au> |
| |
| Implement operator== for WeakPtr |
| https://bugs.webkit.org/show_bug.cgi?id=157883 |
| |
| Reviewed by Chris Dumez. |
| |
| Implement operator== and operator!= for WeakPtr and update code to use the operators. |
| |
| * wtf/WeakPtr.h: |
| (WTF::operator==): |
| (WTF::operator!=): |
| |
| 2016-05-19 Chris Dumez <cdumez@apple.com> |
| |
| Improve compile-time assertions in is<>() / downcast<>() |
| https://bugs.webkit.org/show_bug.cgi?id=157817 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Ref.h: |
| (WTF::is): |
| Add is<>() overloads taking a Ref<>() so that is<>() keeps working when |
| passing a Ref<>(), despite the new static assertions on the input type. |
| Some call sites were already leveraging this as it was working by |
| implicitly converting the Ref<T> into a T&. |
| |
| * wtf/TypeCasts.h: |
| (WTF::is): |
| (WTF::downcast): |
| Make static assertions stricter in is<>() / downcast<>() to catch more |
| cases where those are either unnecessary or incorrect. |
| |
| 2016-05-19 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, fix all of the builds. I failed a second time. |
| |
| * wtf/BackwardsGraph.h: |
| (WTF::BackwardsGraph::rootName): |
| |
| 2016-05-19 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, fix all of the builds. I had made an additional change that I did not mean to |
| commit. This fixes it. |
| |
| * wtf/BackwardsGraph.h: |
| (WTF::BackwardsGraph::rootName): |
| (WTF::BackwardsGraph::Set::dump): |
| (WTF::BackwardsGraph::dump): |
| |
| 2016-05-18 Filip Pizlo <fpizlo@apple.com> |
| |
| DFG::LICMPhase shouldn't hoist type checks unless it knows that the check will succeed at the loop pre-header |
| https://bugs.webkit.org/show_bug.cgi?id=144527 |
| |
| Reviewed by Saam Barati. |
| |
| This adds an adaptor for graphs called BackwardsGraph. The WTF graph framework is based on |
| passing around a Graph template argument that follows the protocol shared by DFG::CFG, |
| B3::CFG, and Air::CFG. These graphs always have a single root node but may have many leaf |
| nodes. This new BackwardsGraph adaptor reverses the graph by creating a synthetic return |
| node that it uses as the root in the inverted graph. This currently may resort to some |
| heuristics in programs that have an infinite loop, but other than that, it'll work well in |
| the general case. |
| |
| This allows us to say Dominators<BackwardsGraph<some graph type>> as a way of computing |
| backwards dominators, which then allows us to easily answer control flow equivalence |
| queries. |
| |
| * CMakeLists.txt: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/BackwardsGraph.h: Added. |
| (WTF::BackwardsGraph::Node::Node): |
| (WTF::BackwardsGraph::Node::root): |
| (WTF::BackwardsGraph::Node::operator==): |
| (WTF::BackwardsGraph::Node::operator!=): |
| (WTF::BackwardsGraph::Node::operator bool): |
| (WTF::BackwardsGraph::Node::isRoot): |
| (WTF::BackwardsGraph::Node::node): |
| (WTF::BackwardsGraph::Set::Set): |
| (WTF::BackwardsGraph::Set::add): |
| (WTF::BackwardsGraph::Set::remove): |
| (WTF::BackwardsGraph::Set::contains): |
| (WTF::BackwardsGraph::Set::dump): |
| (WTF::BackwardsGraph::Map::Map): |
| (WTF::BackwardsGraph::Map::clear): |
| (WTF::BackwardsGraph::Map::size): |
| (WTF::BackwardsGraph::Map::operator[]): |
| (WTF::BackwardsGraph::BackwardsGraph): |
| (WTF::BackwardsGraph::root): |
| (WTF::BackwardsGraph::newMap): |
| (WTF::BackwardsGraph::successors): |
| (WTF::BackwardsGraph::predecessors): |
| (WTF::BackwardsGraph::index): |
| (WTF::BackwardsGraph::node): |
| (WTF::BackwardsGraph::numNodes): |
| (WTF::BackwardsGraph::dump): |
| * wtf/Dominators.h: |
| (WTF::Dominators::Dominators): |
| (WTF::Dominators::dump): |
| (WTF::Dominators::LengauerTarjan::computeDepthFirstPreNumbering): |
| * wtf/GraphNodeWorklist.h: |
| (WTF::GraphNodeWith::GraphNodeWith): |
| (WTF::GraphNodeWith::operator bool): |
| * wtf/StdLibExtras.h: |
| (WTF::callStatelessLambda): |
| (WTF::checkAndSet): |
| |
| 2016-05-18 Saam barati <sbarati@apple.com> |
| |
| StringBuilder::appendQuotedJSONString doesn't properly protect against the math it's doing. Make the math fit the assertion. |
| https://bugs.webkit.org/show_bug.cgi?id=157868 |
| |
| Reviewed by Benjamin Poulain. |
| |
| appendQuotedJSONString was rounding up to the next power of two when resizing |
| its buffer. Lets call the allocation size X. If X > 2^31, then |
| roundUpToPowerOfTwo(X) == 0. This patch fixes this by making the |
| assertion reflect what the code is doing. We now allocate to a size |
| of X = std::max(maximumCapacityRequired , roundUpToPowerOfTwo(maximumCapacityRequired)) |
| |
| * wtf/text/StringBuilder.cpp: |
| (WTF::StringBuilder::appendQuotedJSONString): |
| |
| 2016-05-17 Joseph Pecoraro <pecoraro@apple.com> |
| |
| REGRESSION(r192855): Math.random() always produces the same first 7 decimal points the first two invocations |
| https://bugs.webkit.org/show_bug.cgi?id=157805 |
| <rdar://problem/26327851> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/WeakRandom.h: |
| (WTF::WeakRandom::setSeed): |
| Advance once to randomize the 32bit seed across the 128bit state |
| and avoid re-using 64bits of state in the second advance. |
| |
| 2016-05-17 Dean Jackson <dino@apple.com> |
| |
| Remove ES6_GENERATORS flag |
| https://bugs.webkit.org/show_bug.cgi?id=157815 |
| <rdar://problem/26332894> |
| |
| Reviewed by Geoffrey Garen. |
| |
| This flag isn't needed. Generators are enabled everywhere and |
| part of a stable specification. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-05-17 Filip Pizlo <fpizlo@apple.com> |
| |
| WTF should know about Language |
| https://bugs.webkit.org/show_bug.cgi?id=157756 |
| |
| Reviewed by Geoffrey Garen. |
| |
| This contains two changes: |
| |
| - Move everything that WebCore's logic for getting the platform user preferred language |
| depended on into WTF. This means CFBundleSPI.h and BlockObjCExceptions.h|cpp. |
| |
| - Move WebCore::platformUserPreferredLanguages() to WTF::platformUserPreferredLanguages(). |
| This is needed by https://bugs.webkit.org/show_bug.cgi?id=157755, which will make JSC |
| use this to detect the platform user preferred language when running standalone. |
| |
| Moving the dependencies accounts for a huge chunk of this change, since we have to rewire |
| all of the references to those headers in all of WebKit. |
| |
| Moving platformUserPreferredLanguages() is mostly easy except for the weird callback. |
| That function would call languageDidChange(), which needs to stay in WebCore. So, this |
| gives WebCore the ability to register a languageDidChange callback. Other than this new |
| logic, the code being added to WTF is just being lifted out of WebCore. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/BlockObjCExceptions.h: Added. |
| * wtf/BlockObjCExceptions.mm: Added. |
| (ReportBlockedObjCException): |
| * wtf/PlatformEfl.cmake: |
| * wtf/PlatformGTK.cmake: |
| * wtf/PlatformJSCOnly.cmake: |
| * wtf/PlatformMac.cmake: |
| * wtf/PlatformUserPreferredLanguages.h: Added. |
| * wtf/PlatformUserPreferredLanguagesMac.mm: Added. |
| (WTF::setPlatformUserPreferredLanguagesChangedCallback): |
| (WTF::preferredLanguages): |
| (+[WTFLanguageChangeObserver languagePreferencesDidChange:]): |
| (WTF::httpStyleLanguageCode): |
| (WTF::isValidICUCountryCode): |
| (WTF::platformUserPreferredLanguages): |
| * wtf/PlatformUserPreferredLanguagesUnix.cpp: Added. |
| (WTF::setPlatformUserPreferredLanguagesChangedCallback): |
| (WTF::platformLanguage): |
| (WTF::platformUserPreferredLanguages): |
| * wtf/PlatformUserPreferredLanguagesWin.cpp: Added. |
| (WTF::setPlatformUserPreferredLanguagesChangedCallback): |
| (WTF::localeInfo): |
| (WTF::platformLanguage): |
| (WTF::platformUserPreferredLanguages): |
| * wtf/PlatformWin.cmake: |
| * wtf/spi/cf: Added. |
| * wtf/spi/cf/CFBundleSPI.h: Added. |
| |
| 2016-05-17 Youenn Fablet <youenn.fablet@crf.canon.fr> |
| |
| DOMPromise should only restrict the resolution type |
| https://bugs.webkit.org/show_bug.cgi?id=157307 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Ref.h: Adding static constexpr to ease detection of Ref for templates. |
| * wtf/RefPtr.h: Ditto. |
| |
| 2016-05-16 Michael Saboff <msaboff@apple.com> |
| |
| ARMV7K: Crash at JavaScriptCore: WTF::ScopedLambdaFunctor<bool |
| https://bugs.webkit.org/show_bug.cgi?id=157781 |
| |
| Reviewed by Filip Pizlo. |
| |
| Replaced use of ScopedLambda in locking code with std::function much as it was |
| before change set 199760 to work around what appears to be a clang compiler issue. |
| |
| * wtf/ParkingLot.cpp: |
| (WTF::ParkingLot::parkConditionallyImpl): |
| (WTF::ParkingLot::unparkOne): |
| (WTF::ParkingLot::unparkAll): |
| (WTF::ParkingLot::forEach): |
| (WTF::ParkingLot::unparkOneImpl): Deleted. |
| (WTF::ParkingLot::forEachImpl): Deleted. |
| * wtf/ParkingLot.h: |
| (WTF::ParkingLot::parkConditionally): |
| (WTF::ParkingLot::unparkOne): Deleted. |
| (WTF::ParkingLot::forEach): Deleted. |
| |
| 2016-05-15 Chris Dumez <cdumez@apple.com> |
| |
| Use more references in JS wrappers related code |
| https://bugs.webkit.org/show_bug.cgi?id=157721 |
| |
| Reviewed by Darin Adler. |
| |
| Add new static_reference_cast() overload that takes a Ref<U>&& in |
| in order to downcast Ref<> types without causing ref-counting |
| churn. |
| |
| * wtf/Ref.h: |
| (WTF::static_reference_cast): |
| |
| 2016-05-13 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r200837. |
| |
| Seems to have regressed Speedometer and JetStream on iOS |
| |
| Reverted changeset: |
| |
| "DOMPromise should only restrict the resolution type" |
| https://bugs.webkit.org/show_bug.cgi?id=157307 |
| http://trac.webkit.org/changeset/200837 |
| |
| 2016-05-13 Beth Dakin <bdakin@apple.com> |
| |
| Add dyldSPI.h |
| https://bugs.webkit.org/show_bug.cgi?id=157401 |
| -and corresponding- |
| rdar://problem/26253396 |
| |
| Reviewed by Darin Adler. |
| |
| New header for dyld spi. |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/spi/darwin/dyldSPI.h: Added. |
| |
| 2016-05-13 Youenn Fablet <youenn.fablet@crf.canon.fr> |
| |
| DOMPromise should only restrict the resolution type |
| https://bugs.webkit.org/show_bug.cgi?id=157307 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Ref.h: Adding static constexpr to ease detection of Ref for templates. |
| * wtf/RefPtr.h: Ditto. |
| |
| 2016-05-12 Daniel Bates <dabates@apple.com> |
| |
| Use SecTask SPI to retrieve code signing identifier for user directory suffix |
| https://bugs.webkit.org/show_bug.cgi?id=157570 |
| |
| Reviewed by Darin Adler. |
| <rdar://problem/25706517> |
| |
| Forward declare SPI SecTaskCopySigningIdentifier(). |
| |
| * wtf/spi/cocoa/SecuritySPI.h: |
| |
| 2016-05-12 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Remove ENABLE(ES6_ARROWFUNCTION_SYNTAX) guards |
| https://bugs.webkit.org/show_bug.cgi?id=157564 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-05-10 Filip Pizlo <fpizlo@apple.com> |
| |
| Internal JSC profiler should have a timestamped log of events for each code block |
| https://bugs.webkit.org/show_bug.cgi?id=157538 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/PrintStream.h: |
| (WTF::PrintStream::print): |
| |
| 2016-05-10 Chris Dumez <cdumez@apple.com> |
| |
| Get rid of a lot of calls to RefPtr::release() |
| https://bugs.webkit.org/show_bug.cgi?id=157505 |
| |
| Reviewed by Alex Christensen. |
| |
| Get rid of a lot of calls to RefPtr::release() and use WTFMove() instead. |
| |
| * wtf/text/AtomicStringImpl.cpp: |
| (WTF::HashAndUTF8CharactersTranslator::translate): |
| * wtf/text/CString.cpp: |
| (WTF::CString::copyBufferIfNeeded): |
| * wtf/text/StringBuilder.cpp: |
| (WTF::StringBuilder::allocateBuffer): |
| (WTF::StringBuilder::allocateBufferUpConvert): |
| (WTF::StringBuilder::shrinkToFit): |
| * wtf/text/WTFString.cpp: |
| (WTF::String::append): |
| (WTF::String::insert): |
| (WTF::String::removeInternal): |
| * wtf/text/WTFString.h: |
| (WTF::String::String): |
| (WTF::String::operator=): |
| (WTF::String::releaseImpl): |
| (WTF::String::isNull): Deleted. |
| |
| 2016-05-08 Chris Dumez <cdumez@apple.com> |
| |
| [COCOA] Disable HAVE_DTRACE at build time |
| https://bugs.webkit.org/show_bug.cgi?id=157433 |
| <rdar://problem/26148841> |
| |
| Reviewed by Mark Lam. |
| |
| Disable HAVE_DTRACE on COCOA since it is mostly unused and has a performance |
| impact, at least on iOS. |
| |
| * wtf/Platform.h: |
| |
| 2016-05-08 Chris Dumez <cdumez@apple.com> |
| |
| [Bindings] Simplify [RequiresExistingAtomicString] IDL extended attribute handling |
| https://bugs.webkit.org/show_bug.cgi?id=157465 |
| |
| Reviewed by Darin Adler. |
| |
| Add an AtomicString(RefPtr<AtomicStringImpl>&&) constructor that is now |
| used by the bindings when [RequiresExistingAtomicString] is used. This |
| is more efficient than using AtomicString(AtomicStringImpl*) as the |
| caller has a RefPtr<AtomicStringImpl> and is consistent with the |
| pre-existing String(RefPtr<AtomicStringImpl>&&) constructor. |
| |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::AtomicString): |
| |
| 2016-05-08 Darin Adler <darin@apple.com> |
| |
| * wtf/text/WTFString.h: Remove pragma once. Not working for some reason. |
| |
| 2016-05-08 Darin Adler <darin@apple.com> |
| |
| Follow-up to that last patch (missed review comments). |
| |
| * wtf/text/WTFString.h: Use nullptr instead of 0 as needed. Also use pragma once. |
| |
| 2016-05-08 Darin Adler <darin@apple.com> |
| |
| Change EventSource constructor to take an IDL dictionary instead of a WebCore::Dictionary |
| https://bugs.webkit.org/show_bug.cgi?id=157459 |
| |
| Reviewed by Chris Dumez. |
| |
| * wtf/text/WTFString.h: Export a symbol now used in WebCore. |
| |
| 2016-05-02 Sam Weinig <sam@webkit.org> |
| |
| On platforms that support it, use a SecTrustRef as the basis of CertificateInfo instead of a chain of SecCertificateRefs. |
| https://bugs.webkit.org/show_bug.cgi?id=157220 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Platform.h: |
| Add support for HAVE(SEC_TRUST_SERIALIZATION). |
| |
| * wtf/spi/cocoa/SecuritySPI.h: |
| Add SPI access to SecTrustSerialize and SecTrustDeserialize. |
| |
| 2016-05-04 Filip Pizlo <fpizlo@apple.com> |
| |
| Add HLE locks and synchronic TTAS locks to the ToyLocks benchmark suite |
| https://bugs.webkit.org/show_bug.cgi?id=157367 |
| |
| Rubber stamped by Benjamin Poulain. |
| |
| Turns out they are both a lot slower than WTF::Lock. The HLE lock is written according to Intel's |
| documentation. The synchronic lock follows the algorithm of the "ttas_lock" in the synchronic |
| test.hpp. |
| |
| * benchmarks/ToyLocks.h: |
| |
| 2016-05-04 Filip Pizlo <fpizlo@apple.com> |
| |
| Add a few more WTF locking benchmarks |
| https://bugs.webkit.org/show_bug.cgi?id=157365 |
| |
| Rubber stamped by Benjamin Poulain. |
| |
| Factors out our toy locks into ToyLocks.h and adds a new test (LockFairnessTest) that measures |
| the fairness of locks. |
| |
| The result: WTF::Lock is pretty fair enough. |
| |
| * benchmarks/LockFairnessTest.cpp: Added. |
| (main): |
| * benchmarks/LockSpeedTest.cpp: |
| (main): |
| * benchmarks/ToyLocks.h: Added. |
| |
| 2016-05-04 Filip Pizlo <fpizlo@apple.com> |
| |
| Speed up JSGlobalObject initialization by making some properties lazy |
| https://bugs.webkit.org/show_bug.cgi?id=157045 |
| |
| Reviewed by Keith Miller. |
| |
| This WTF change is at the heart of a large JSC change. In JSC I found myself wanting to |
| do this a lot: |
| |
| static void callback(Foo& foo) { ... } |
| |
| foo.setCallback(callback); |
| |
| But that's not very nice to write if many different setCallback() calls are inside of the |
| same very large function: you'll have to have a lot of static function definitions in |
| one part of the file, and then a bunch of setCallback() calls in another part. It's hard |
| to reason about what's going on with such code. |
| |
| So what if you wrote this instead: |
| |
| foo.setCallback([] (Foo& foo) { ... }); |
| |
| Much nicer! There is a standard way to do this: lambdas that are stateless are |
| convertible to function pointers. This change also offers another approach that is a bit |
| more general. |
| |
| These additions to WTF help you do it: |
| |
| isStatelessLambda<Func>(): tells you if Func is a stateless lambda. This uses is_empty to |
| test if the lambda is stateless. This turns out to be a stronger property than |
| convertibility to function pointers. For example, a function pointer is convertible to a |
| function pointer, but it is definitely stateful: you cannot successfully call it if you |
| only has its type. On the other hand, a stateless lambda is really stateless in the sense |
| that you only need its type to call it. |
| |
| callStatelessLambda<ResultType, Func>(Arguments&&...): calls the given stateless lambda. |
| |
| JSC uses these to build up some sophisticated lazy-initialization APIs. The use of |
| statelessness allows JSC to combine a lambda with other logic into a single function |
| pointer. |
| |
| * wtf/StdLibExtras.h: |
| (WTF::isStatelessLambda): |
| (WTF::callStatelessLambda): |
| |
| 2016-05-04 Per Arne Vollan <peavo@outlook.com> |
| |
| [Win] Use NeverDestroyed template. |
| https://bugs.webkit.org/show_bug.cgi?id=157345 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/ThreadingWin.cpp: |
| (WTF::threadMapMutex): |
| (WTF::threadMap): |
| |
| 2016-05-04 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r200383 and r200406. |
| |
| Seems to have caused crashes on iOS / ARMv7s |
| |
| Reverted changesets: |
| |
| "Speed up JSGlobalObject initialization by making some |
| properties lazy" |
| https://bugs.webkit.org/show_bug.cgi?id=157045 |
| http://trac.webkit.org/changeset/200383 |
| |
| "REGRESSION(r200383): Setting lazily initialized properties |
| across frame boundaries crashes" |
| https://bugs.webkit.org/show_bug.cgi?id=157333 |
| http://trac.webkit.org/changeset/200406 |
| |
| 2016-05-03 Filip Pizlo <fpizlo@apple.com> |
| |
| Speed up JSGlobalObject initialization by making some properties lazy |
| https://bugs.webkit.org/show_bug.cgi?id=157045 |
| |
| Reviewed by Keith Miller. |
| |
| This WTF change is at the heart of a large JSC change. In JSC I found myself wanting to |
| do this a lot: |
| |
| static void callback(Foo& foo) { ... } |
| |
| foo.setCallback(callback); |
| |
| But that's not very nice to write if many different setCallback() calls are inside of the |
| same very large function: you'll have to have a lot of static function definitions in |
| one part of the file, and then a bunch of setCallback() calls in another part. It's hard |
| to reason about what's going on with such code. |
| |
| So what if you wrote this instead: |
| |
| foo.setCallback([] (Foo& foo) { ... }); |
| |
| Much nicer! There is a standard way to do this: lambdas that are stateless are |
| convertible to function pointers. This change also offers another approach that is a bit |
| more general. |
| |
| These additions to WTF help you do it: |
| |
| isStatelessLambda<Func>(): tells you if Func is a stateless lambda. This uses is_empty to |
| test if the lambda is stateless. This turns out to be a stronger property than |
| convertibility to function pointers. For example, a function pointer is convertible to a |
| function pointer, but it is definitely stateful: you cannot successfully call it if you |
| only has its type. On the other hand, a stateless lambda is really stateless in the sense |
| that you only need its type to call it. |
| |
| callStatelessLambda<ResultType, Func>(Arguments&&...): calls the given stateless lambda. |
| |
| JSC uses these to build up some sophisticated lazy-initialization APIs. The use of |
| statelessness allows JSC to combine a lambda with other logic into a single function |
| pointer. |
| |
| * wtf/StdLibExtras.h: |
| (WTF::isStatelessLambda): |
| (WTF::callStatelessLambda): |
| |
| 2016-05-03 Per Arne Vollan <peavo@outlook.com> |
| |
| [Win] Remove Windows XP Compatibility Requirements |
| https://bugs.webkit.org/show_bug.cgi?id=152899 |
| |
| Reviewed by Brent Fulgham. |
| |
| Windows XP is not supported anymore, we can remove workarounds. |
| |
| * wtf/Assertions.cpp: |
| |
| 2016-05-03 Per Arne Vollan <peavo@outlook.com> |
| |
| [Win] Warning fix. |
| https://bugs.webkit.org/show_bug.cgi?id=157309 |
| |
| Reviewed by Darin Adler. |
| |
| MSVC gives a warning when converting from signed to unsigned. |
| |
| * wtf/SmallPtrSet.h: |
| (WTF::SmallPtrSet::begin): |
| |
| 2016-05-02 Brady Eidson <beidson@apple.com> |
| |
| Add the ability to accumulate logs for specific logging channels to help diagnose test timeouts. |
| https://bugs.webkit.org/show_bug.cgi?id=157274 |
| |
| Reviewed by Alex Christensen. |
| |
| This patch changes WTFLog to add the logging string to the logging accumulator if the logging channel says so. |
| It also adds support for using this new accumulation mechanism. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| |
| * wtf/Assertions.cpp: |
| (WTF::resetAccumulatedLogs): |
| (WTF::getAndResetAccumulatedLogs): |
| * wtf/Assertions.h: |
| |
| * wtf/LoggingAccumulator.h: Added. Expose functions to get accumulated logs and to reset the accumulation. |
| |
| * wtf/text/WTFString.cpp: |
| (WTF::String::format): Update to handle %@ on CF (Well, really ObjC) platforms. |
| |
| 2016-05-02 Per Arne Vollan <peavo@outlook.com> |
| |
| [Win] Enable IndexedDB. |
| https://bugs.webkit.org/show_bug.cgi?id=157192 |
| |
| Reviewed by Brent Fulgham. |
| |
| Fix compile errors when format specifiers like PRIu64 is used, by defining |
| __STDC_FORMAT_MACROS before inttypes.h is included. |
| |
| * wtf/Platform.h: |
| |
| 2016-04-27 Brady Eidson <beidson@apple.com> |
| |
| Modern IDB: Implement native IDBFactory.getAllDatabaseNames for WebInspector. |
| https://bugs.webkit.org/show_bug.cgi?id=157072 |
| |
| Reviewed by Alex Christensen. |
| |
| Moved these Hex Digit utilities from WebCore URL code (???), |
| and add a checked version of getting the hex digit value. |
| |
| * wtf/HexNumber.h: |
| (WTF::isHexDigit): |
| (WTF::uncheckedHexDigit): |
| (WTF::hexDigitValue): |
| (WTF::uncheckedHexDigitValue): |
| |
| 2016-04-25 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Remove the build flag for template elements |
| https://bugs.webkit.org/show_bug.cgi?id=157022 |
| |
| Reviewed by Daniel Bates. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-04-25 Fujii Hironori <Hironori.Fujii@sony.com> |
| |
| Heap corruption is detected when destructing JSGlobalObject |
| https://bugs.webkit.org/show_bug.cgi?id=156831 |
| |
| Reviewed by Mark Lam. |
| |
| WebKit uses CRT static library on Windows. Each copy of the CRT |
| library has its own heap manager, allocating memory in one CRT |
| library and passing the pointer across a DLL boundary to be freed |
| by a different copy of the CRT library is a potential cause for |
| heap corruption. |
| |
| Potential Errors Passing CRT Objects Across DLL Boundaries |
| <https://msdn.microsoft.com/en-us/library/ms235460(v=vs.140).aspx> |
| |
| JSGlobalObject::createRareDataIfNeeded is inlined but |
| JSGlobalObject::~JSGlobalObject is not. Then, the heap of |
| allocating JSGlobalObjectRareData is WebKit.dll, but deallocating |
| JavaScriptCore.dll. Adding WTF_MAKE_FAST_ALLOCATED to |
| JSGlobalObjectRareData ensures heap consistency of it. WTF::Lock |
| also needs WTF_MAKE_FAST_ALLOCATED because it is allocated from |
| the inlined constructor of JSGlobalObjectRareData. |
| |
| * wtf/Lock.h: Add WTF_MAKE_FAST_ALLOCATED. |
| |
| 2016-04-21 Saam barati <sbarati@apple.com> |
| |
| Lets do less locking of symbol tables in the BytecodeGenerator where we don't have race conditions |
| https://bugs.webkit.org/show_bug.cgi?id=156821 |
| |
| Reviewed by Filip Pizlo. |
| |
| This patch introduces a new constructor for Locker which implies no |
| locking is necessary. You instantiate such a locker like so: |
| `Locker<Lock> locker(Locker<Lock>::NoLockingNecessary);` |
| |
| This is useful to for very specific places when it is not yet |
| required to engage in a specified locking protocol. As an example, |
| we use this in JSC when we allocate a particular object that |
| engages in a locking protocol with the concurrent compiler thread, |
| but before a concurrent compiler thread that could have access |
| to the object exists. |
| |
| * wtf/Locker.h: |
| (WTF::Locker::Locker): |
| (WTF::Locker::~Locker): |
| |
| 2016-04-19 Michael Saboff <msaboff@apple.com> |
| |
| iTunes crashing JavaScriptCore.dll |
| https://bugs.webkit.org/show_bug.cgi?id=156647 |
| |
| Reviewed by Filip Pizlo. |
| |
| If a thread was created without using the WTF thread apis and that thread uses |
| a JavaScript VM and that thread exits with the VM still around, JSC won't know |
| that the thread has exited. Currently, we use ThreadSpecificThreadExit() to |
| clean up any thread specific keys. Cleaning up these keys is how JSC is |
| notified of a thread exit. We only call ThreadSpecificThreadExit() from |
| wtfThreadEntryPoint() when the thread entry point function returns. |
| This mechanism was put in place for Windows because we layer the WTF::ThreadSpecific |
| functionality on top of TLS (Thread Local Storage), but TLS doesn't have |
| a thread exiting callback the way that pthread_create_key does. |
| |
| The fix is to change from using TLS to using FLS (Fiber Local Storage). Although |
| Windows allows multiple fibers per thread, WebKit is not designed to work with a |
| multiple fibers per thread. When there is only one fiber per thread, FLS works just |
| like TLS, but it has the destroy callback. |
| |
| I restructured the Windows version of WTF::ThreadSpecific to be almost the same |
| as the pthread version. Added THREAD_SPECIFIC_CALL to set the correct |
| calling convenction for Windows 32 bit. |
| |
| * wtf/ThreadSpecific.h: |
| (WTF::threadSpecificKeyCreate): |
| (WTF::threadSpecificKeyDelete): |
| (WTF::threadSpecificSet): |
| (WTF::threadSpecificGet): |
| (WTF::ThreadSpecific<T>::ThreadSpecific): |
| (WTF::ThreadSpecific<T>::~ThreadSpecific): |
| (WTF::ThreadSpecific<T>::get): |
| (WTF::ThreadSpecific<T>::set): |
| (WTF::ThreadSpecific<T>::destroy): |
| Restructured to use FLS. Renamed TLS* to FLS*. |
| |
| * wtf/ThreadSpecificWin.cpp: |
| (WTF::flsKeyCount): |
| (WTF::flsKeys): |
| Renamed from tlsKey*() to flsKey*(). |
| |
| (WTF::destructorsList): Deleted. |
| (WTF::destructorsMutex): Deleted. |
| (WTF::PlatformThreadSpecificKey::PlatformThreadSpecificKey): Deleted. |
| (WTF::PlatformThreadSpecificKey::~PlatformThreadSpecificKey): Deleted. |
| (WTF::PlatformThreadSpecificKey::setValue): Deleted. |
| (WTF::PlatformThreadSpecificKey::value): Deleted. |
| (WTF::PlatformThreadSpecificKey::callDestructor): Deleted. |
| (WTF::tlsKeyCount): Deleted. |
| (WTF::tlsKeys): Deleted. |
| (WTF::threadSpecificKeyCreate): Deleted. |
| (WTF::threadSpecificKeyDelete): Deleted. |
| (WTF::threadSpecificSet): Deleted. |
| (WTF::threadSpecificGet): Deleted. |
| (WTF::ThreadSpecificThreadExit): Deleted. |
| |
| * wtf/ThreadingWin.cpp: |
| (WTF::wtfThreadEntryPoint): Eliminated call to ThreadSpecificThreadExit. |
| |
| 2016-04-19 Filip Pizlo <fpizlo@apple.com> |
| |
| Add more locking algorithms to the LockSpeedTest. |
| |
| Rubber stamped by Saam Barati. |
| |
| * benchmarks/LockSpeedTest.cpp: |
| (main): |
| |
| 2016-04-19 Filip Pizlo <fpizlo@apple.com> |
| |
| Clean up the ParkingLot uparking API a bit |
| https://bugs.webkit.org/show_bug.cgi?id=156746 |
| |
| Reviewed by Saam Barati and Geoffrey Garen. |
| |
| Previously, unparkOne() would either return a boolean to tell you if there are any more threads on |
| the queue or it would pass your callback a pair of booleans - one to tell if a thread was unparked |
| and another to tell if there are any more threads. This was an annoying inconsistency. What if you |
| wanted to know if unparkOne() unparked a thread but you don't care to use callbacks? |
| |
| This fixes unparkOne() to use a struct called UnparkResult for both of its variants. This makes the |
| code a bit cleaner. |
| |
| * wtf/Atomics.h: Add some more atomic ops. |
| (WTF::Atomic::exchangeAndAdd): |
| (WTF::Atomic::exchange): |
| * wtf/Condition.h: Change calls to unparkOne(). |
| (WTF::ConditionBase::notifyOne): |
| * wtf/Lock.cpp: Change calls to unparkOne(). |
| (WTF::LockBase::unlockSlow): |
| * wtf/ParkingLot.cpp: |
| (WTF::ParkingLot::parkConditionally): |
| (WTF::ParkingLot::unparkOne): |
| * wtf/ParkingLot.h: Switch to using ScopedLambda and introduce UnparkResult. |
| |
| 2016-04-19 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r199726. |
| https://bugs.webkit.org/show_bug.cgi?id=156748 |
| |
| WebKit tests crash on Windows 32 (Requested by msaboff on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "iTunes crashing JavaScriptCore.dll" |
| https://bugs.webkit.org/show_bug.cgi?id=156647 |
| http://trac.webkit.org/changeset/199726 |
| |
| 2016-04-19 Michael Saboff <msaboff@apple.com> |
| |
| iTunes crashing JavaScriptCore.dll |
| https://bugs.webkit.org/show_bug.cgi?id=156647 |
| |
| Reviewed by Saam Barati. |
| |
| If a thread was created without using the WTF thread apis and that thread uses |
| a JavaScript VM and that thread exits with the VM still around, JSC won't know |
| that the thread has exited. Currently, we use ThreadSpecificThreadExit() to |
| clean up any thread specific keys. Cleaning up these keys is how JSC is |
| notified of a thread exit. We only call ThreadSpecificThreadExit() from |
| wtfThreadEntryPoint() when the thread entry point function returns. |
| This mechanism was put in place for Windows because we layer the WTF::ThreadSpecific |
| functionality on top of TLS (Thread Local Storage), but TLS doesn't have |
| a thread exiting callback the way that pthread_create_key. |
| |
| The fix is to change from using TLS to using FLS (Fiber Local Storage). Although |
| Windows allows multiple fibers per thread, WebKit is not designed to work with a |
| multiple fibers per thread. When there is only one fiber per thread, FLS works just |
| like TLS, but it has the destroy callback. |
| |
| I restructured the Windows version of WTF::ThreadSpecific to be almost the same |
| as the pthread version. |
| |
| * wtf/ThreadSpecific.h: |
| (WTF::threadSpecificKeyCreate): |
| (WTF::threadSpecificKeyDelete): |
| (WTF::threadSpecificSet): |
| (WTF::threadSpecificGet): |
| (WTF::ThreadSpecific<T>::ThreadSpecific): |
| (WTF::ThreadSpecific<T>::~ThreadSpecific): |
| (WTF::ThreadSpecific<T>::get): |
| (WTF::ThreadSpecific<T>::set): |
| (WTF::ThreadSpecific<T>::destroy): |
| Restructured to use FLS. Renamed TLS* to FLS*. |
| |
| * wtf/ThreadSpecificWin.cpp: |
| (WTF::flsKeyCount): |
| (WTF::flsKeys): |
| Renamed from tlsKey*() to flsKey*(). |
| |
| (WTF::destructorsList): Deleted. |
| (WTF::destructorsMutex): Deleted. |
| (WTF::PlatformThreadSpecificKey::PlatformThreadSpecificKey): Deleted. |
| (WTF::PlatformThreadSpecificKey::~PlatformThreadSpecificKey): Deleted. |
| (WTF::PlatformThreadSpecificKey::setValue): Deleted. |
| (WTF::PlatformThreadSpecificKey::value): Deleted. |
| (WTF::PlatformThreadSpecificKey::callDestructor): Deleted. |
| (WTF::tlsKeyCount): Deleted. |
| (WTF::tlsKeys): Deleted. |
| (WTF::threadSpecificKeyCreate): Deleted. |
| (WTF::threadSpecificKeyDelete): Deleted. |
| (WTF::threadSpecificSet): Deleted. |
| (WTF::threadSpecificGet): Deleted. |
| (WTF::ThreadSpecificThreadExit): Deleted. |
| |
| * wtf/ThreadingWin.cpp: |
| (WTF::wtfThreadEntryPoint): Eliminated call to ThreadSpecificThreadExit. |
| |
| 2016-04-19 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [GTK] Use Generic WorkQueue instead of WorkQueueGLib |
| https://bugs.webkit.org/show_bug.cgi?id=156721 |
| |
| Reviewed by Benjamin Poulain. |
| |
| WorkQueueGLib includes platform-dependent part only for WorkQueue::dispatchAfter. |
| However, its code is related to RunLoopGLib rather than WorkQueueGLib. |
| In this patch, we move the code from WorkQueueGLib to RunLoopGLib, drop WorkQueueGLib |
| and use WorkQueueGeneric. |
| |
| * wtf/PlatformGTK.cmake: |
| * wtf/RunLoop.h: |
| * wtf/WorkQueue.h: |
| * wtf/glib/RunLoopGLib.cpp: |
| (WTF::DispatchAfterContext::DispatchAfterContext): |
| (WTF::DispatchAfterContext::dispatch): |
| (WTF::RunLoop::dispatchAfter): |
| * wtf/glib/WorkQueueGLib.cpp: Removed. |
| (WTF::WorkQueue::platformInitialize): Deleted. |
| (WTF::WorkQueue::platformInvalidate): Deleted. |
| (WTF::WorkQueue::dispatch): Deleted. |
| (WTF::DispatchAfterContext::DispatchAfterContext): Deleted. |
| (WTF::DispatchAfterContext::~DispatchAfterContext): Deleted. |
| (WTF::DispatchAfterContext::dispatch): Deleted. |
| (WTF::WorkQueue::dispatchAfter): Deleted. |
| |
| 2016-04-18 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [JSCOnly] Implement RunLoop and remove glib dependency |
| https://bugs.webkit.org/show_bug.cgi?id=155706 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add missing RunLoop and WorkQueue platform code for JSCOnly port. |
| The implementation does not use platform specific things. Instead, we |
| implement them on WTF framework; using condition variables to construct |
| the run loop and timers. |
| |
| Since the fallback is implemented, it is not necessary for JSCOnly port |
| to depend on GLib's RunLoop abstraction. So this patch removes its |
| dependency. As a result, now, JSCOnly port removes dependencies except for the system ICU. |
| |
| We clean up event loop ifdefs by introducing USE_XXX_EVENT_LOOP flags. |
| USE(XXX_EVENT_LOOP) is exclusive to each other. So from now, we do not need to take care |
| of the order of if-defs for the event loops. (For example, USE(GLIB) should have lead before |
| OS(DARWIN) in WorkQueue.h for WebKitGTK on Darwin.) |
| |
| EVENT_LOOP determination is done in Platform.h. This follows the style of WTF PLATFORM. |
| |
| * wtf/Platform.h: |
| * wtf/PlatformJSCOnly.cmake: |
| * wtf/RunLoop.h: |
| * wtf/WorkQueue.h: |
| * wtf/generic/MainThreadGeneric.cpp: Renamed from Source/WTF/wtf/none/MainThreadNone.cpp. |
| (WTF::initializeMainThreadPlatform): |
| (WTF::scheduleDispatchFunctionsOnMainThread): |
| * wtf/generic/RunLoopGeneric.cpp: Added. |
| (WTF::RunLoop::TimerBase::ScheduledTask::create): |
| (WTF::RunLoop::TimerBase::ScheduledTask::ScheduledTask): |
| (WTF::RunLoop::TimerBase::ScheduledTask::fired): |
| (WTF::RunLoop::TimerBase::ScheduledTask::scheduledTimePoint): |
| (WTF::RunLoop::TimerBase::ScheduledTask::updateReadyTime): |
| (WTF::RunLoop::TimerBase::ScheduledTask::EarliestSchedule::operator()): |
| (WTF::RunLoop::TimerBase::ScheduledTask::isActive): |
| (WTF::RunLoop::TimerBase::ScheduledTask::deactivate): |
| (WTF::RunLoop::RunLoop): |
| (WTF::RunLoop::~RunLoop): |
| (WTF::RunLoop::populateTasks): |
| (WTF::RunLoop::runImpl): |
| (WTF::RunLoop::run): |
| (WTF::RunLoop::iterate): |
| (WTF::RunLoop::stop): |
| (WTF::RunLoop::wakeUp): |
| (WTF::RunLoop::schedule): |
| (WTF::RunLoop::scheduleAndWakeUp): |
| (WTF::RunLoop::dispatchAfter): |
| (WTF::RunLoop::TimerBase::TimerBase): |
| (WTF::RunLoop::TimerBase::~TimerBase): |
| (WTF::RunLoop::TimerBase::start): |
| (WTF::RunLoop::TimerBase::stop): |
| (WTF::RunLoop::TimerBase::isActive): |
| * wtf/generic/WorkQueueGeneric.cpp: Added. |
| (WorkQueue::platformInitialize): |
| (WorkQueue::platformInvalidate): |
| (WorkQueue::dispatch): |
| (WorkQueue::dispatchAfter): |
| * wtf/none/MainThreadNone.cpp: |
| (WTF::initializeMainThreadPlatform): Deleted. |
| (WTF::scheduleDispatchFunctionsOnMainThread): Deleted. |
| * wtf/none/RunLoopNone.cpp: |
| (WTF::RunLoop::RunLoop): Deleted. |
| (WTF::RunLoop::~RunLoop): Deleted. |
| (WTF::RunLoop::run): Deleted. |
| (WTF::RunLoop::stop): Deleted. |
| (WTF::RunLoop::wakeUp): Deleted. |
| (WTF::RunLoop::TimerBase::TimerBase): Deleted. |
| (WTF::RunLoop::TimerBase::~TimerBase): Deleted. |
| (WTF::RunLoop::TimerBase::start): Deleted. |
| (WTF::RunLoop::TimerBase::stop): Deleted. |
| (WTF::RunLoop::TimerBase::isActive): Deleted. |
| * wtf/none/WorkQueueNone.cpp: |
| (WorkQueue::platformInitialize): Deleted. |
| (WorkQueue::platformInvalidate): Deleted. |
| (WorkQueue::dispatch): Deleted. |
| (WorkQueue::dispatchAfter): Deleted. |
| |
| 2016-04-18 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r199621. |
| https://bugs.webkit.org/show_bug.cgi?id=156708 |
| |
| made windows tests crash (Requested by alexchristensen on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "iTunes crashing JavaScriptCore.dll" |
| https://bugs.webkit.org/show_bug.cgi?id=156647 |
| http://trac.webkit.org/changeset/199621 |
| |
| 2016-04-15 Michael Saboff <msaboff@apple.com> |
| |
| iTunes crashing JavaScriptCore.dll |
| https://bugs.webkit.org/show_bug.cgi?id=156647 |
| |
| Reviewed by Geoffrey Garen. |
| |
| If a thread was created without using the WTF thread apis and that thread uses |
| a JavaScript VM and that thread exits with the VM still around, JSC won't know |
| that the thread has exited. Currently, we use ThreadSpecificThreadExit() to |
| clean up any thread specific keys. Cleaning up these keys is how JSC is |
| notified of a thread exit. We only call ThreadSpecificThreadExit() from |
| wtfThreadEntryPoint() when the thread entry point function returns. |
| This mechanism was put in place for Windos because we layer the WTF::ThreadSpecific |
| functionality on top of TLS (Thread Local Storage), but TLS doesn't have |
| a thread exiting callback the way that pthread_create_key. |
| |
| The fix is to change from using TLS to using FLS (Fiber Local Storage). Although |
| Windows allows multiple fibers per thread, WebKit is not designed to work with a |
| multiple fibers per thread. When ther is only one fiber per thread, FLS works just |
| like TLS, but it has the destroy callback. |
| |
| I restructured the Windows version of WTF::ThreadSpecific to be almost the same |
| as the pthread version. |
| |
| * wtf/ThreadSpecific.h: |
| (WTF::threadSpecificKeyCreate): |
| (WTF::threadSpecificKeyDelete): |
| (WTF::threadSpecificSet): |
| (WTF::threadSpecificGet): |
| (WTF::ThreadSpecific<T>::ThreadSpecific): |
| (WTF::ThreadSpecific<T>::~ThreadSpecific): |
| (WTF::ThreadSpecific<T>::get): |
| (WTF::ThreadSpecific<T>::set): |
| (WTF::ThreadSpecific<T>::destroy): |
| Restructured to use FLS. Renamed TLS* to FLS*. |
| |
| * wtf/ThreadSpecificWin.cpp: |
| (WTF::flsKeyCount): |
| (WTF::flsKeys): |
| Renamed from tlsKey*() to flsKey*(). |
| |
| (WTF::destructorsList): Deleted. |
| (WTF::destructorsMutex): Deleted. |
| (WTF::PlatformThreadSpecificKey::PlatformThreadSpecificKey): Deleted. |
| (WTF::PlatformThreadSpecificKey::~PlatformThreadSpecificKey): Deleted. |
| (WTF::PlatformThreadSpecificKey::setValue): Deleted. |
| (WTF::PlatformThreadSpecificKey::value): Deleted. |
| (WTF::PlatformThreadSpecificKey::callDestructor): Deleted. |
| (WTF::tlsKeyCount): Deleted. |
| (WTF::tlsKeys): Deleted. |
| (WTF::threadSpecificKeyCreate): Deleted. |
| (WTF::threadSpecificKeyDelete): Deleted. |
| (WTF::threadSpecificSet): Deleted. |
| (WTF::threadSpecificGet): Deleted. |
| (WTF::ThreadSpecificThreadExit): Deleted. |
| |
| * wtf/ThreadingWin.cpp: |
| (WTF::wtfThreadEntryPoint): Eliminated call to ThreadSpecificThreadExit. |
| |
| 2016-04-12 Filip Pizlo <fpizlo@apple.com> |
| |
| PolymorphicAccess should buffer AccessCases before regenerating |
| https://bugs.webkit.org/show_bug.cgi?id=156457 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/TinyPtrSet.h: |
| (WTF::TinyPtrSet::add): Add a helpful comment because I had forgotten what the bool return meant. |
| |
| 2016-04-12 Tomas Popela <tpopela@redhat.com> |
| |
| S390X and PPC64 architectures detection is wrong |
| https://bugs.webkit.org/show_bug.cgi?id=156337 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| After the http://trac.webkit.org/changeset/198919 was committed |
| it showed that the PPC64 detection is wrong as the CPU(PPC) path was |
| activated even for PPC64. The thing is that GCC defines __ppc__ |
| even on PPC64 and not just on PPC(32). The same applies for S390X. |
| |
| * wtf/Platform.h: |
| |
| 2016-04-05 Oliver Hunt <oliver@apple.com> |
| |
| Remove compile time define for SEPARATED_HEAP |
| https://bugs.webkit.org/show_bug.cgi?id=155508 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/FeatureDefines.h: |
| * wtf/Platform.h: |
| |
| 2016-04-11 Fujii Hironori <Hironori.Fujii@jp.sony.com> |
| |
| [CMake] Make FOLDER property INHERITED |
| https://bugs.webkit.org/show_bug.cgi?id=156460 |
| |
| Reviewed by Brent Fulgham. |
| |
| * CMakeLists.txt: |
| Set FOLDER directory property |
| |
| 2016-04-08 Alex Christensen <achristensen@webkit.org> |
| |
| Progress towards running CMake WebKit2 on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=156426 |
| |
| Reviewed by Tim Horton. |
| |
| * wtf/PlatformMac.cmake: |
| |
| 2016-04-08 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [JSC] Enable Concurrent JIT by default |
| https://bugs.webkit.org/show_bug.cgi?id=156341 |
| |
| Reviewed by Filip Pizlo. |
| |
| We enable Concurrent JIT by default when DFG JIT and JSVALUE64 are enabled. |
| This change offers Concurrent JIT to the JSCOnly port. |
| |
| * wtf/Platform.h: |
| |
| 2016-04-07 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Remove ENABLE(ENABLE_ES6_CLASS_SYNTAX) guards |
| https://bugs.webkit.org/show_bug.cgi?id=156384 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-04-06 Filip Pizlo <fpizlo@apple.com> |
| |
| JSC should have a simple way of gathering IC statistics |
| https://bugs.webkit.org/show_bug.cgi?id=156317 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Make it easier to do relative sleeping on a condition. Previously you could do this using |
| std::chrono. I now believe that std::chrono is just a bad decision, and I always want to |
| use doubles instead. This makes it easier to do the right thing and use doubles. |
| |
| * wtf/Condition.h: |
| (WTF::ConditionBase::waitUntilMonotonicClockSeconds): |
| (WTF::ConditionBase::waitForSeconds): |
| |
| 2016-04-06 Simon Fraser <simon.fraser@apple.com> |
| |
| Fix Windows build by converting clampToInteger() into a template that only |
| takes integral types. |
| |
| * wtf/MathExtras.h: |
| (clampToInteger): |
| |
| 2016-04-06 Simon Fraser <simon.fraser@apple.com> |
| |
| Page tiles are missing when graphics acceleration is unavailable |
| https://bugs.webkit.org/show_bug.cgi?id=156325 |
| |
| Reviewed by Tim Horton. |
| |
| Add clampToInteger(size_t). |
| |
| * wtf/MathExtras.h: |
| (clampToInteger): |
| |
| 2016-04-05 Simon Fraser <simon.fraser@apple.com> |
| |
| Implement operator== and operator!= for Optional<> |
| https://bugs.webkit.org/show_bug.cgi?id=156266 |
| |
| Reviewed by Anders Carlsson. |
| |
| Implement non-member operator== and operator!= variants for Optional<>. |
| |
| * wtf/Optional.h: |
| (WTF::operator==): |
| (WTF::operator!=): |
| |
| 2016-03-19 Filip Pizlo <fpizlo@apple.com> |
| |
| DFG and FTL should constant-fold RegExpExec |
| https://bugs.webkit.org/show_bug.cgi?id=155270 |
| |
| Reviewed by Saam Barati. |
| |
| Make executeInsertions() return the amount by which the vector increased in size. This is a |
| convenient feature that I use in DFG::InsertionSet. |
| |
| * wtf/Insertion.h: |
| (WTF::executeInsertions): |
| |
| 2016-04-05 Antoine Quint <graouts@apple.com> |
| |
| [WebGL2] Allow enabling WebGL2 with a runtime flag |
| https://bugs.webkit.org/show_bug.cgi?id=156166 |
| <rdar://problem/25526929> |
| |
| Removed the manual overrides of ENABLE_WEBGL2. |
| |
| Reviewed by Dean Jackson. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-03-31 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Removed leftovers of ENABLE(INSPECTOR) and ENABLE(VIEWPORT). |
| https://bugs.webkit.org/show_bug.cgi?id=156064 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| This ifdef guards were removed in r178820 and r147714, respectively. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-03-31 Brent Fulgham <bfulgham@apple.com> |
| |
| [WK2] Support download attribute feature |
| https://bugs.webkit.org/show_bug.cgi?id=102914 |
| <rdar://problem/13177492> |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FeatureDefines.h: Turn the ENABLE_DOWNLOAD_ATTRIBUTE flag |
| on to see what happens. |
| |
| 2016-03-30 Brian Burg <bburg@apple.com> |
| |
| Web Automation: Add Automation.performKeyboardInteractions |
| https://bugs.webkit.org/show_bug.cgi?id=155990 |
| <rdar://problem/25426408> |
| |
| Reviewed by Timothy Hatcher. |
| |
| Add a missing NSEventType declaration. |
| |
| * wtf/mac/AppKitCompatibilityDeclarations.h: |
| |
| 2016-03-29 Benjamin Poulain <bpoulain@apple.com> |
| |
| [WTF] Removing a smart pointer from HashTable issues two stores to the same location |
| https://bugs.webkit.org/show_bug.cgi?id=155676 |
| |
| Reviewed by Darin Adler. |
| |
| While working on the hot loop of r198376, I noticed something |
| weird... |
| Every time we removed a smart pointer from the hash table, |
| the code generated was something like: |
| Load([bucket]) -> Tmp |
| Store(0 -> [bucket]) |
| JumpIfZero(Tmp, ->End) |
| Call fastFree() |
| Store(-1 -> [bucket]) |
| -> End: |
| |
| The useless store before the branch is annoying, especially on ARM. |
| |
| Here is what happens: |
| 1) The destructor of the smart pointer swaps its internal value with nullptr. |
| 2) Since the smart pointer is not a local in-register value, that nullptr |
| is stored in memory because it could be observable from fastFree(). |
| 3) The destructor destroy the value if not zero (or deref for RefPtr). |
| The "if-not-zero" may or may not be eliminated depending on what |
| is between getting the iterator and the call to remove(). |
| 4) fastFree() is called. |
| 5) The deleted value is set in the bucket. |
| |
| This patch adds custom deletion for those cases to avoid the useless |
| store. The useless null check is still eliminated when we are lucky. |
| |
| I went this path instead of changing the destructor of RefPtr for two reasons: |
| -I need this to work in unique_ptr for JSC. |
| -Nulling the memory may have security advantages in the cases where we do not immediately |
| write over that memory again. |
| |
| This patch removes 13kb out of x86_64 WebCore. |
| |
| * wtf/HashTable.h: |
| (WTF::HashTable::deleteBucket): |
| (WTF::KeyTraits>::removeIf): |
| * wtf/HashTraits.h: |
| (WTF::HashTraits<RefPtr<P>>::customDeleteBucket): |
| (WTF::hashTraitsDeleteBucket): |
| (WTF::KeyValuePairHashTraits::customDeleteBucket): |
| * wtf/text/AtomicStringHash.h: |
| (WTF::HashTraits<WTF::AtomicString>::isEmptyValue): |
| (WTF::HashTraits<WTF::AtomicString>::customDeleteBucket): |
| * wtf/text/StringHash.h: |
| (WTF::HashTraits<String>::customDeleteBucket): |
| |
| 2016-03-28 Brian Burg <bburg@apple.com> |
| |
| Web Automation: implement Automation.performMouseInteraction |
| https://bugs.webkit.org/show_bug.cgi?id=155606 |
| <rdar://problem/25227576> |
| |
| Reviewed by Timothy Hatcher. |
| |
| * wtf/mac/AppKitCompatibilityDeclarations.h: Add missing some NSEventTypes. |
| |
| 2016-03-29 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| REGRESSION(r192914): 10% regression on Sunspider's date-format-tofte |
| https://bugs.webkit.org/show_bug.cgi?id=155559 |
| |
| Reviewed by Saam Barati. |
| |
| Add HashTable::inlineLookup and HashMap::fastGet. |
| |
| * wtf/HashMap.h: |
| * wtf/HashTable.h: |
| |
| 2016-03-25 Alex Christensen <achristensen@webkit.org> |
| |
| Add a compile time flag for using QTKit |
| https://bugs.webkit.org/show_bug.cgi?id=155868 |
| |
| Reviewed by Dan Bates. |
| |
| * wtf/Platform.h: |
| |
| 2016-03-24 Alex Christensen <achristensen@webkit.org> |
| |
| Fix iOS9 performance regression after r197572 |
| https://bugs.webkit.org/show_bug.cgi?id=155845 |
| <rdar://problem/25144924> |
| |
| Reviewed by Chris Dumez. |
| |
| * wtf/Platform.h: |
| Use CFURLConnection instead of NSURLConnection on internal iOS9 builds. |
| |
| 2016-03-23 Saam Barati <sbarati@apple.com> |
| |
| SmallPtrSet leaks memory in its move assignment operator when !this->isSmall() |
| https://bugs.webkit.org/show_bug.cgi?id=155701 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/SmallPtrSet.h: |
| (WTF::SmallPtrSet::SmallPtrSet): |
| (WTF::SmallPtrSet::operator=): |
| |
| 2016-03-22 Per Arne Vollan <peavo@outlook.com> |
| |
| [Win] [64-bit] Remove MSVC 2013 FMA3 Bug Workaround |
| https://bugs.webkit.org/show_bug.cgi?id=141499 |
| |
| Reviewed by Brent Fulgham. |
| |
| As we have moved on to VS2015, this workaround is no longer needed. |
| |
| * wtf/PlatformWin.cmake: |
| * wtf/win/WTFDLL.cpp: Removed. |
| |
| 2016-03-20 Dan Bernstein <mitz@apple.com> |
| |
| [Mac] Determine TARGET_MAC_OS_X_VERSION_MAJOR from MACOSX_DEPLOYMENT_TARGET rather than from MAC_OS_X_VERSION_MAJOR |
| https://bugs.webkit.org/show_bug.cgi?id=155707 |
| <rdar://problem/24980691> |
| |
| Reviewed by Darin Adler. |
| |
| * Configurations/Base.xcconfig: Set TARGET_MAC_OS_X_VERSION_MAJOR based on the last |
| component of MACOSX_DEPLOYMENT_TARGET. |
| * Configurations/DebugRelease.xcconfig: For engineering builds, preserve the behavior of |
| TARGET_MAC_OS_X_VERSION_MAJOR being the host’s OS version. |
| |
| 2016-03-20 Dan Bernstein <mitz@apple.com> |
| |
| Update build settings |
| |
| Rubber-stamped by Andy Estes. |
| |
| * Configurations/DebugRelease.xcconfig: |
| |
| 2016-03-17 Benjamin Poulain <bpoulain@apple.com> |
| |
| [JSC] Make CSE's ImpureData faster when dealing with large blocks |
| https://bugs.webkit.org/show_bug.cgi?id=155594 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/HashSet.h: |
| (WTF::V>::removeIf): |
| |
| 2016-03-17 Saam barati <sbarati@apple.com> |
| |
| Implement SmallPtrSet and integrate it into the Parser |
| https://bugs.webkit.org/show_bug.cgi?id=155552 |
| |
| Reviewed by Filip Pizlo. |
| |
| This patch implements the SmallPtrSet data struture. |
| Inspired by the implementation in llvm: |
| http://llvm.org/docs/doxygen/html/SmallPtrSet_8h_source.html |
| |
| The data structure uses an inline array for storage up until |
| a fixed limit (8 entries in our implementation). If that storage |
| fills up, we fall back to a simple hash table implementation. |
| Crucially, this implementation doesn't support the remove |
| operation. This is on purpose. The hash table will only ever |
| grow. |
| |
| Also, the implementation allows for it to be memcopied around. |
| I.e, we can put SmallPtrSet inside a Vector and allow that |
| Vector to use memcpy as its move operation (of course this |
| is only valid if the SmallPtrSet in the old memory doesn't have |
| its destructor called unless it is set back to its initial state.) |
| |
| For now, SmallPtrSet only supports pointer types that are trivially |
| destructible. It's probably not too difficult to extend this to |
| smart pointers, but it's not part of this original implementation. |
| |
| I've also implemented a pure forwarding varargs constructAndAppend |
| method on Vector. This allows you to do: |
| Vector<T> v; |
| v.constructAndAppend(a1, a2, ...) |
| as long as T has a constructor that accepts arguments (a1, a2, ...). |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/SmallPtrSet.h: Added. |
| (WTF::SmallPtrSet::SmallPtrSet): |
| (WTF::SmallPtrSet::operator=): |
| (WTF::SmallPtrSet::~SmallPtrSet): |
| (WTF::SmallPtrSet::add): |
| (WTF::SmallPtrSet::contains): |
| (WTF::SmallPtrSet::iterator::operator++): |
| (WTF::SmallPtrSet::iterator::operator*): |
| (WTF::SmallPtrSet::iterator::operator==): |
| (WTF::SmallPtrSet::iterator::operator!=): |
| (WTF::SmallPtrSet::begin): |
| (WTF::SmallPtrSet::end): |
| (WTF::SmallPtrSet::size): |
| (WTF::SmallPtrSet::emptyValue): |
| (WTF::SmallPtrSet::isValidEntry): |
| (WTF::SmallPtrSet::isSmall): |
| (WTF::SmallPtrSet::initialize): |
| (WTF::SmallPtrSet::grow): |
| (WTF::SmallPtrSet::bucket): |
| * wtf/Vector.h: |
| (WTF::Vector::append): |
| (WTF::Vector::uncheckedAppend): |
| (WTF::minCapacity>::append): |
| (WTF::minCapacity>::constructAndAppend): |
| (WTF::minCapacity>::appendSlowCase): |
| (WTF::minCapacity>::constructAndAppendSlowCase): |
| |
| 2016-03-16 Filip Pizlo <fpizlo@apple.com> |
| |
| Replace all of the various non-working and non-compiling sampling profiler hacks with a single super hack |
| https://bugs.webkit.org/show_bug.cgi?id=155561 |
| |
| Reviewed by Saam Barati. |
| |
| This patch replaces all of our various ad hoc profiling hacks with a single ad hoc profiling hack. |
| That needs to be able to sleep a thread, so I added a portable way to do it. |
| |
| This also removes a bunch of ENABLE flags for all of the old non-working hacks. |
| |
| * wtf/CurrentTime.cpp: |
| (WTF::currentCPUTime): |
| (WTF::sleep): |
| * wtf/CurrentTime.h: |
| (WTF::sleepMS): |
| * wtf/Platform.h: |
| |
| 2016-03-17 Chris Dumez <cdumez@apple.com> |
| |
| Set the WebContent process's main thread QoS to USER-INTERACTIVE |
| https://bugs.webkit.org/show_bug.cgi?id=155595 |
| <rdar://problem/22534965> |
| |
| Reviewed by Antti Koivisto. |
| |
| Add a relativePriority parameter to setCurrentThreadIsUser*() so that |
| we can do more fine-grained prioritization of threads that have the |
| same QoS. |
| |
| * wtf/Threading.cpp: |
| (WTF::setCurrentThreadIsUserInteractive): |
| (WTF::setCurrentThreadIsUserInitiated): |
| (WTF::createThread): Deleted. |
| * wtf/Threading.h: |
| |
| 2016-03-17 Filip Pizlo <fpizlo@apple.com> |
| |
| Silence leaks in ParkingLot |
| https://bugs.webkit.org/show_bug.cgi?id=155510 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| ParkingLot has a concurrent hashtable that it reallocates on demand. It will not reallocate |
| it in steady state. The hashtable is sized to accommodate the high watermark of the number |
| of active threads - so long as the program doesn't just keep starting an unbounded number |
| of threads that are all active, the hashtable will stop resizing. Each resize operation is |
| designed to stay out of the way of the data-access-parallel normal path, in which two |
| threads operating on different lock addresses don't have to synchronize. To do this, it |
| simply drops the old hashtable without deleting it, so that threads that were still using |
| it don't crash. They will realize that they have the wrong hashtable before doing anything |
| bad, but we don't have a way of proving when all of those threads are no longer going to |
| read from the old hashtables. So, we just leak them. |
| |
| This is a bounded leak, since the hashtable resizes exponentially. Thus the total memory |
| utilization of all hashtables, including the leaked ones, converges to a linear function of |
| the current hashtable's size (it's 2 * size of current hashtable). |
| |
| But this leak is a problem for leaks tools, which will always report this leak. This is not |
| useful. It's better to silence the leak. That's what this patch does by ensuring that all |
| hashtables, including leaked ones, end up in a global vector. This is perf-neutral. |
| |
| This requires making a StaticWordLock variant of WordLock. That's probably the biggest part |
| of this change. |
| |
| * wtf/ParkingLot.cpp: |
| * wtf/WordLock.cpp: |
| (WTF::WordLockBase::lockSlow): |
| (WTF::WordLockBase::unlockSlow): |
| (WTF::WordLock::lockSlow): Deleted. |
| (WTF::WordLock::unlockSlow): Deleted. |
| * wtf/WordLock.h: |
| (WTF::WordLockBase::lock): |
| (WTF::WordLockBase::isLocked): |
| (WTF::WordLock::WordLock): |
| (WTF::WordLock::lock): Deleted. |
| (WTF::WordLock::isLocked): Deleted. |
| |
| 2016-03-16 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r198235, r198240, r198241, and |
| r198252. |
| |
| Causing crashes on ARM |
| |
| Reverted changesets: |
| |
| "Remove compile time define for SEPARATED_HEAP" |
| https://bugs.webkit.org/show_bug.cgi?id=155508 |
| http://trac.webkit.org/changeset/198235 |
| |
| "Gardening: build fix after r198235." |
| http://trac.webkit.org/changeset/198240 |
| |
| "Build fix." |
| http://trac.webkit.org/changeset/198241 |
| |
| "Rename performJITMemcpy to something more inline with our |
| normal webkit function names" |
| https://bugs.webkit.org/show_bug.cgi?id=155525 |
| http://trac.webkit.org/changeset/198252 |
| |
| 2016-03-15 Oliver Hunt <oliver@apple.com> |
| |
| Remove compile time define for SEPARATED_HEAP |
| https://bugs.webkit.org/show_bug.cgi?id=155508 |
| |
| Reviewed by Mark Lam. |
| |
| Remove the feature define. |
| |
| * wtf/FeatureDefines.h: |
| * wtf/Platform.h: |
| |
| 2016-03-14 Mark Lam <mark.lam@apple.com> |
| |
| Need to distinguish between Symbol() and Symbol(""). |
| https://bugs.webkit.org/show_bug.cgi?id=155438 |
| |
| Reviewed by Saam Barati. |
| |
| While toString of both Symbol() and Symbol("") yields "Symbol()", Function.name |
| should yield "" and "[]" respectively. Hence, we need to tell between the two. |
| This functionality will be needed later in https://bugs.webkit.org/show_bug.cgi?id=155437. |
| |
| We achieve this by creating another singleton instance like the empty StringImpl |
| as the null StringImpl. isNullSymbol() tests if the Stringimpl instance is a |
| symbol, and its substring is the null() singleton. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::createSymbol): |
| (WTF::StringImpl::createNullSymbol): |
| (WTF::StringImpl::containsOnlyWhitespace): |
| (WTF::StringImpl::createSymbolEmpty): Deleted. |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::tryCreateUninitialized): |
| (WTF::StringImpl::stringKind): |
| (WTF::StringImpl::isSymbol): |
| (WTF::StringImpl::isAtomic): |
| (WTF::StringImpl::isNullSymbol): |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::null): |
| |
| 2016-03-13 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Remove ENABLE(ES6_TEMPLATE_LITERAL_SYNTAX) guards |
| https://bugs.webkit.org/show_bug.cgi?id=155417 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-03-13 Konstantin Tokarev <annulen@yandex.ru> |
| |
| Added new port JSCOnly. |
| https://bugs.webkit.org/show_bug.cgi?id=154512 |
| |
| Reviewed by Michael Catanzaro. |
| |
| This port allows to build JavaScriptCore engine with minimal |
| dependencies. |
| |
| * wtf/PlatformJSCOnly.cmake: Added. |
| * wtf/none/MainThreadNone.cpp: Added. |
| * wtf/none/RunLoopNone.cpp: Added. |
| * wtf/none/WorkQueueNone.cpp: Added. |
| |
| 2016-03-13 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r198079): Windows build broke because of "%PRId64" format specifier |
| |
| This fixes the following build failure in WebCore for Windows: |
| C:\Source\WebCore\page\DOMTimer.cpp(396): error C2146: syntax error: missing ')' before identifier 'PRId64' [C:\WebKitBuild\Debug\Source\WebCore\WebCore.vcxproj] |
| C:\Source\WebCore\page\DOMTimer.cpp(399): error C2146: syntax error: missing ')' before identifier 'PRId64' [C:\WebKitBuild\Debug\Source\WebCore\WebCore.vcxproj] |
| |
| * wtf/StdLibExtras.h: Define "PRId64" for Windows here so it may |
| be shared. This should fix DOMTimer.cpp after r198079 since it |
| already includes StdLibExtras.h. |
| |
| 2016-03-11 Youenn Fablet <youenn.fablet@crf.canon.fr> |
| |
| WTF should have a similar function as equalLettersIgnoringASCIICase to match beginning of strings |
| https://bugs.webkit.org/show_bug.cgi?id=153419 |
| |
| Reviewed by Darin Adler. |
| |
| Introducing startsWithLettersIgnoringASCIICase, to check the beginning of a string. |
| Moving some code from WTF::equalLettersIgnoringASCIICaseCommonWithoutLength in |
| WTF::hasPrefixWithLettersIgnoringASCIICaseCommon to enable reuse in |
| WTF::startsWithLettersIgnoringASCIICaseCommon. |
| |
| * wtf/text/StringCommon.h: |
| (WTF::hasPrefixWithLettersIgnoringASCIICaseCommon): |
| (WTF::equalLettersIgnoringASCIICaseCommonWithoutLength): |
| (WTF::startsWithLettersIgnoringASCIICaseCommonWithoutLength): |
| (WTF::startsWithLettersIgnoringASCIICaseCommon): |
| * wtf/text/StringImpl.h: |
| (WTF::startsWithLettersIgnoringASCIICase): |
| * wtf/text/WTFString.h: |
| (WTF::startsWithLettersIgnoringASCIICase): |
| |
| 2016-03-10 Frederic Wang <fwang@igalia.com> |
| |
| [GTK] Add support for WOFF2 |
| https://bugs.webkit.org/show_bug.cgi?id=152616 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * wtf/FeatureDefines.h: Enable USE_WOFF2 flag on GTK. |
| |
| 2016-03-09 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add runtime flags for shadow DOM and custom elements |
| https://bugs.webkit.org/show_bug.cgi?id=155213 |
| |
| Reviewed by Dean Jackson. |
| |
| Removed the manual overrides of ENABLE_SHADOW_DOM and ENABLE_CUSTOM_ELEMENTS as they were |
| making --no-shadow-dom and --no-custom-elements flags on build-webkit useless. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-03-09 Keith Rollin <krollin@apple.com> |
| |
| Add state dumping facility |
| https://bugs.webkit.org/show_bug.cgi?id=154930 |
| <rdar://problem/24939135> |
| |
| Reviewed by Anders Carlsson. |
| |
| Add an OS_STATE flag to control the inclusion of process state dumping |
| functionality. |
| |
| * wtf/Platform.h: |
| |
| 2016-03-09 Oliver Hunt <oliver@apple.com> |
| |
| Fix old iOS |
| |
| * wtf/Platform.h: |
| |
| 2016-03-08 Filip Pizlo <fpizlo@apple.com> |
| |
| Remove failing assertion. There are strings that claim to be atomic but that the |
| compiler thread can totally deal with, like the empty string. |
| |
| Rubber stamped by Mark Lam. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::ref): |
| (WTF::StringImpl::deref): |
| |
| 2016-03-08 Filip Pizlo <fpizlo@apple.com> |
| |
| DFG should be able to constant-fold strings |
| https://bugs.webkit.org/show_bug.cgi?id=155200 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Also disable assertions about reference counting strings on the JIT thread. We will do |
| that now and it's OK. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::ref): |
| (WTF::StringImpl::deref): |
| |
| 2016-03-08 Anders Carlsson <andersca@apple.com> |
| |
| Fix AppKitCompatibilityDeclarations build. |
| |
| * wtf/mac/AppKitCompatibilityDeclarations.h: |
| Remove duplicate declarations, conditionally define NSTextAlignment and |
| add a NSWindowStyleMask typedef. |
| |
| 2016-03-08 Oliver Hunt <oliver@apple.com> |
| |
| Start moving to separated writable and executable mappings in the JIT |
| https://bugs.webkit.org/show_bug.cgi?id=155178 |
| |
| Reviewed by Fil Pizlo. |
| |
| Update feature defines. |
| |
| * wtf/FeatureDefines.h: |
| * wtf/Platform.h: ARM64 for now. |
| |
| 2016-03-08 Anders Carlsson <andersca@apple.com> |
| |
| Add AppKit compatibility header |
| https://bugs.webkit.org/show_bug.cgi?id=155202 |
| |
| Reviewed by Beth Dakin. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/mac/AppKitCompatibilityDeclarations.h: Added. |
| |
| 2016-03-08 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r197793 and r197799. |
| https://bugs.webkit.org/show_bug.cgi?id=155195 |
| |
| something weird happened while landing this and everything |
| broke (Requested by olliej on #webkit). |
| |
| Reverted changesets: |
| |
| "Start moving to separated writable and executable mappings in |
| the JIT" |
| https://bugs.webkit.org/show_bug.cgi?id=155178 |
| http://trac.webkit.org/changeset/197793 |
| |
| "arm64 build fix after r197793." |
| http://trac.webkit.org/changeset/197799 |
| |
| 2016-03-08 Oliver Hunt <oliver@apple.com> |
| |
| Start moving to separated writable and executable mappings in the JIT |
| https://bugs.webkit.org/show_bug.cgi?id=155178 |
| |
| Reviewed by Filip Pizlo. |
| |
| Update feature defines. |
| |
| * wtf/FeatureDefines.h: |
| * wtf/Platform.h: ARM64 for now. |
| |
| 2016-03-08 Daniel Bates <dabates@apple.com> |
| |
| Support iterating over an OptionSet and checking if it is empty |
| https://bugs.webkit.org/show_bug.cgi?id=154941 |
| <rdar://problem/24964187> |
| |
| Reviewed by Darin Adler. |
| |
| Implements support for iterating over the enumerators in an OptionSet as well as |
| determining if the set is empty. |
| |
| Iterating over an OptionSet is in Big Theta(N) where N is the number of items in |
| the set. More precisely, it is in Big Theta(log M) where M is the bitmask represented |
| by the bitwise OR-ing of all enumerators in the set. |
| |
| * wtf/OptionSet.h: Added comment to describe the purpose of this class and its invariant - |
| the enumerators must be positive powers of two. |
| (WTF::OptionSet::Iterator::operator*): Returns the enumerator pointed to by the iterator. |
| (WTF::OptionSet::Iterator::operator++): Advance to the next smallest enumerator in the set. |
| (WTF::OptionSet::Iterator::operator==): Returns whether the iterator is equal to the specified iterator. |
| (WTF::OptionSet::Iterator::operator!=): Returns whether the iterator is not equal to the specified iterator. |
| (WTF::OptionSet::Iterator::Iterator): Added. |
| (WTF::OptionSet::fromRaw): Instantiate using specialized private constructor to allow |
| instantiation with a raw value of 0. |
| (WTF::OptionSet::OptionSet): Specialized constructor that asserts that the specified value |
| is a positive power of two. This variant is only compiled when assertions are enabled (i.e. !ASSERT_DISABLED). |
| (WTF::OptionSet::isEmpty): Returns whether the set is empty. |
| (WTF::OptionSet::begin): Returns an iterator to the enumerator with the smallest value in the set. |
| (WTF::OptionSet::end): Returns an iterator that represents the end sentinel of the set. |
| |
| 2016-03-07 Keith Rollin <krollin@apple.com> |
| |
| Enhance logging: Use "always on" macros |
| https://bugs.webkit.org/show_bug.cgi?id=154499 |
| <rdar://problem/24757730> |
| |
| Reviewed by Chris Dumez. |
| |
| Update LOG_ALWAYS and LOG_ALWAYS_ERROR macros to take an expression to |
| be evaluated. If the expression evaluates to True, the associated |
| message is logged. This facility is used to prevent logging from being |
| performed in private sessions, but it could be extended to prevent |
| logging under other circumstances as well. |
| |
| * wtf/Assertions.h: |
| |
| 2016-03-04 Alex Christensen <achristensen@webkit.org> |
| |
| Remove vcxproj build system |
| https://bugs.webkit.org/show_bug.cgi?id=154388 |
| |
| Rubber-stamped by Brent Fulgham. |
| |
| * WTF.vcxproj/WTF.submit.sln: Removed. |
| * WTF.vcxproj/WTF.vcxproj: Removed. |
| * WTF.vcxproj/WTF.vcxproj.filters: Removed. |
| * WTF.vcxproj/WTFCFLite.props: Removed. |
| * WTF.vcxproj/WTFCommon.props: Removed. |
| * WTF.vcxproj/WTFCoreFoundation.props: Removed. |
| * WTF.vcxproj/WTFDebug.props: Removed. |
| * WTF.vcxproj/WTFDebugWinCairo.props: Removed. |
| * WTF.vcxproj/WTFGenerated.make: Removed. |
| * WTF.vcxproj/WTFGenerated.vcxproj: Removed. |
| * WTF.vcxproj/WTFGenerated.vcxproj.filters: Removed. |
| * WTF.vcxproj/WTFGeneratedCommon.props: Removed. |
| * WTF.vcxproj/WTFGeneratedDebug.props: Removed. |
| * WTF.vcxproj/WTFGeneratedProduction.props: Removed. |
| * WTF.vcxproj/WTFGeneratedRelease.props: Removed. |
| * WTF.vcxproj/WTFPostBuild.cmd: Removed. |
| * WTF.vcxproj/WTFPreBuild.cmd: Removed. |
| * WTF.vcxproj/WTFProduction.props: Removed. |
| * WTF.vcxproj/WTFRelease.props: Removed. |
| * WTF.vcxproj/WTFReleaseWinCairo.props: Removed. |
| * WTF.vcxproj/build-generated-files.pl: Removed. |
| * WTF.vcxproj/copy-files.cmd: Removed. |
| * WTF.vcxproj/work-around-vs-dependency-tracking-bugs.py: Removed. |
| |
| 2016-03-04 Alex Christensen <achristensen@webkit.org> |
| |
| Use NSURLSession for loading in WebKit2 |
| https://bugs.webkit.org/show_bug.cgi?id=154993 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/Platform.h: |
| |
| 2016-03-03 Daniel Bates <dabates@apple.com> |
| |
| Add unit tests for WTF::OptionSet |
| https://bugs.webkit.org/show_bug.cgi?id=154925 |
| <rdar://problem/24964211> |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/CMakeLists.txt: Add header OptionSet.h to the list of WTF headers. |
| * wtf/OptionSet.h: Use in-class initialization to initialize m_storage and declare |
| the trivial constexpr constructor as default. |
| (WTF::OptionSet::OptionSet): For convenience add a constructor that takes a std::initializer_list. |
| This code was written by Anders Carlsson. |
| |
| 2016-03-03 Andy Estes <aestes@apple.com> |
| |
| Adopt CFNetwork storage partitioning SPI |
| https://bugs.webkit.org/show_bug.cgi?id=154957 |
| rdar://problem/23614620 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Platform.h: Defined HAVE_CFNETWORK_STORAGE_PARTITIONING. |
| |
| 2016-03-02 Konstantin Tokarev <annulen@yandex.ru> |
| |
| [cmake] Moved PRE/POST_BUILD_COMMAND to WEBKIT_FRAMEWORK. |
| https://bugs.webkit.org/show_bug.cgi?id=154651 |
| |
| Reviewed by Alex Christensen. |
| |
| * CMakeLists.txt: Moved shared code to WEBKIT_FRAMEWORK macro. |
| |
| 2016-03-01 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r197226 and r197256. |
| https://bugs.webkit.org/show_bug.cgi?id=154910 |
| |
| Caused crashes on Mac 32-bit and on ARM (Requested by ap on |
| #webkit). |
| |
| Reverted changesets: |
| |
| "Remove the on demand executable allocator" |
| https://bugs.webkit.org/show_bug.cgi?id=154749 |
| http://trac.webkit.org/changeset/197226 |
| |
| "CLoop build fix." |
| http://trac.webkit.org/changeset/197256 |
| |
| 2016-03-01 Alex Christensen <achristensen@webkit.org> |
| |
| Reduce size of internal windows build output |
| https://bugs.webkit.org/show_bug.cgi?id=154763 |
| |
| Reviewed by Brent Fulgham. |
| |
| * WTF.vcxproj/WTF.proj: |
| |
| 2016-03-01 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r197056. |
| https://bugs.webkit.org/show_bug.cgi?id=154870 |
| |
| broke win ews (Requested by alexchristensen on #webkit). |
| |
| Reverted changeset: |
| |
| "[cmake] Moved PRE/POST_BUILD_COMMAND to WEBKIT_FRAMEWORK." |
| https://bugs.webkit.org/show_bug.cgi?id=154651 |
| http://trac.webkit.org/changeset/197056 |
| |
| 2016-02-29 Gavin Barraclough <barraclough@apple.com> |
| |
| RefCounter<T>::Event -> RefCounterEvent |
| https://bugs.webkit.org/show_bug.cgi?id=154767 |
| |
| Reviewed by Darin Adler. |
| |
| RefCounter<T>::Event is kinda verbose to use, and there is no need for this |
| to be specific to a particular typeof RefCounter. Move the enum class up to |
| the top level & rename to RefCounterEvent. |
| |
| * wtf/RefCounter.h: |
| (WTF::RefCounter<T>::Count::ref): |
| (WTF::RefCounter<T>::Count::deref): |
| |
| 2016-02-26 Oliver Hunt <oliver@apple.com> |
| |
| Remove the on demand executable allocator |
| https://bugs.webkit.org/show_bug.cgi?id=154749 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Remove the DeamndExecutableAllocator compile flags. |
| |
| * wtf/Platform.h: |
| |
| 2016-02-26 Keith Rollin <krollin@apple.com> |
| |
| Enhance logging: Add "always on" macros |
| https://bugs.webkit.org/show_bug.cgi?id=154498 |
| <rdar://problem/24757759> |
| |
| Reviewed by Chris Dumez. |
| |
| Add support for efficient always-on logging (logging that is available |
| in both debug and release builds). This is implemented in the form of |
| some new macros: |
| |
| - LOG_ALWAYS: Always log information-level statements. |
| - LOG_ALWAYS_ERROR: Always log error-level statements. These can be |
| filtered out of the normal logging so that they can be found more |
| easily. |
| |
| In cases where there is no efficient underlying facility for it to |
| utilize, LOG_ALWAYS_ERROR is redirected to WTFReportError as a backup |
| mechanism. LOG_ALWAYS is not given a similar treatment so that we |
| don't overwhelm other logging systems that aren't prepared for "always |
| on" logging. |
| |
| * wtf/Assertions.h: |
| * wtf/Platform.h: |
| |
| 2016-02-26 Anders Carlsson <andersca@apple.com> |
| |
| Add WTF::OptionSet and use it for the website data types enum |
| https://bugs.webkit.org/show_bug.cgi?id=154733 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add WTF::OptionSet which makes it easier to use strong enums as flags. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/Forward.h: |
| * wtf/OptionSet.h: Copied from Source/WebKit2/Shared/WebsiteData/WebsiteData.h. |
| (WTF::OptionSet::fromRaw): |
| (WTF::OptionSet::OptionSet): |
| (WTF::OptionSet::toRaw): |
| (WTF::OptionSet::contains): |
| (WTF::OptionSet::operator|=): |
| |
| 2016-02-26 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r197168. |
| https://bugs.webkit.org/show_bug.cgi?id=154728 |
| |
| crashing on some devices (Requested by kling on #webkit). |
| |
| Reverted changeset: |
| |
| "[Darwin] Use vm_kernel_page_size for WTF::pageSize()." |
| https://bugs.webkit.org/show_bug.cgi?id=154726 |
| http://trac.webkit.org/changeset/197168 |
| |
| 2016-02-26 Andreas Kling <akling@apple.com> |
| |
| [Darwin] Use vm_kernel_page_size for WTF::pageSize(). |
| <https://webkit.org/b/154726> |
| |
| Reviewed by Antti Koivisto. |
| |
| Make sure we use the right VM page size on Darwin systems. |
| On devices where the native page size is 4 KB, it's both |
| possible and profitable to madvise in smaller chunks. |
| |
| * wtf/PageBlock.cpp: |
| (WTF::systemPageSize): |
| |
| 2016-02-25 Gavin Barraclough <barraclough@apple.com> |
| |
| RefCounter value changed callback should be called on all changes (not just zero edge). |
| https://bugs.webkit.org/show_bug.cgi?id=154699 |
| |
| Reviewed by Anders Carlsson. |
| |
| RefCounter currently only triggers a callback when the count goes from zero |
| to non-zero and vice-versa. Change that, to be useful to more clients. |
| |
| * wtf/RefCounter.h: |
| (WTF::RefCounter::Count::Count): |
| (WTF::RefCounter::RefCounter): |
| - Removed superfluous WTF_EXPORT_PRIVATE. |
| (WTF::RefCounter::value): |
| - Changed value() to a size_t. |
| (WTF::RefCounter<T>::Count::ref): |
| (WTF::RefCounter<T>::Count::deref): |
| - Trigger the callback on all increments/decrements. |
| (WTF::RefCounter<T>::RefCounter): |
| - Changed siganture of callback. |
| |
| 2016-02-25 Gavin Barraclough <barraclough@apple.com> |
| |
| Replace RefCounter::Token implementation with RefPtr |
| https://bugs.webkit.org/show_bug.cgi?id=154698 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/RefCounter.h: |
| (WTF::RefCounter::RefCounter): |
| (WTF::RefCounter::count): |
| (WTF::RefCounter::value): |
| (WTF::RefCounter<T>::~RefCounter): |
| (WTF::RefCounter::Token::Token): Deleted. |
| (WTF::RefCounter::Token::operator bool): Deleted. |
| (WTF::RefCounter<T>::Token::Token): Deleted. |
| (WTF::=): Deleted. |
| - Delete. |
| |
| 2016-02-25 Gavin Barraclough <barraclough@apple.com> |
| |
| Should template RefCounter instead of RefCounter::Token |
| https://bugs.webkit.org/show_bug.cgi?id=154691 |
| |
| Speculative windows build fix. |
| |
| * wtf/RefCounter.h: |
| (WTF::RefCounter::RefCounter): |
| (WTF::RefCounter::count): |
| |
| 2016-02-25 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r197137. |
| https://bugs.webkit.org/show_bug.cgi?id=154700 |
| |
| broke windows build (Requested by alexchristensen on #webkit). |
| |
| Reverted changeset: |
| |
| "Replace RefCounter::Token implementation with RefPtr" |
| https://bugs.webkit.org/show_bug.cgi?id=154698 |
| http://trac.webkit.org/changeset/197137 |
| |
| 2016-02-25 Gavin Barraclough <barraclough@apple.com> |
| |
| Replace RefCounter::Token implementation with RefPtr |
| https://bugs.webkit.org/show_bug.cgi?id=154698 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/RefCounter.h: |
| (WTF::RefCounter::RefCounter): |
| (WTF::RefCounter::count): |
| (WTF::RefCounter::value): |
| (WTF::RefCounter<T>::~RefCounter): |
| (WTF::RefCounter::Token::Token): Deleted. |
| (WTF::RefCounter::Token::operator bool): Deleted. |
| (WTF::RefCounter<T>::Token::Token): Deleted. |
| (WTF::=): Deleted. |
| - Delete. |
| |
| 2016-02-25 Gavin Barraclough <barraclough@apple.com> |
| |
| Should template RefCounter instead of RefCounter::Token |
| https://bugs.webkit.org/show_bug.cgi?id=154691 |
| |
| Reviewed by Anders Carlsson. |
| |
| My real goal here is to make the counter accurate. Currently returning a Token from token<>() |
| results in ref-count churn. Fixing this either means changing the return value, or improving |
| Token (which will probably mean replacing it with RefPtr). Either way would break the current |
| type checking. Move type tag to RefCount so this can still be enforced. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/RefCounter.cpp: Removed. |
| - Removed RefCounter.cpp. |
| * wtf/RefCounter.h: |
| (WTF::RefCounter::Token::Token): |
| (WTF::RefCounter::Token::operator bool): |
| (WTF::RefCounter::RefCounter): |
| (WTF::RefCounter::count): |
| (WTF::RefCounter::value): |
| (WTF::RefCounter<T>::Count::ref): |
| (WTF::RefCounter<T>::Count::deref): |
| (WTF::RefCounter<T>::RefCounter): |
| (WTF::RefCounter<T>::~RefCounter): |
| (WTF::RefCounter<T>::Token::Token): |
| (WTF::=): |
| (WTF::RefCounter::token): Deleted. |
| (WTF::RefCounter::Token<T>::Token): Deleted. |
| - RefCounter -> RefCounter<T>, |
| - Token<T> -> Token, |
| - renamed token<>() -> count(). |
| |
| 2016-02-25 Sam Weinig <sam@webkit.org> |
| |
| HashMap::ensure() should return an AddResult like all the other add-like functions. |
| https://bugs.webkit.org/show_bug.cgi?id=154680 |
| |
| Reviewed by Anders Carlsson. |
| |
| While adopting HashMap::ensure(), I found it was useful in some circumstances to know |
| if the value was added or not. While I could discern this information by setting a bool |
| in the passed in lambda, it seemed clearer and more idiomatic to just have ensure return |
| an AddResult like all the other add-like functions do. |
| |
| * wtf/HashMap.h: |
| Change return type of HashMap::ensure() to be an AddResult. |
| |
| 2016-02-24 Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au> |
| |
| [web-animations] Add AnimationTimeline, DocumentTimeline and add extensions to Document interface |
| https://bugs.webkit.org/show_bug.cgi?id=151688 |
| |
| Reviewed by Dean Jackson. |
| |
| Enables the WEB_ANIMATIONS compiler switch. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-02-24 Konstantin Tokarev <annulen@yandex.ru> |
| |
| [cmake] Moved PRE/POST_BUILD_COMMAND to WEBKIT_FRAMEWORK. |
| https://bugs.webkit.org/show_bug.cgi?id=154651 |
| |
| Reviewed by Alex Christensen. |
| |
| * CMakeLists.txt: Moved shared code to WEBKIT_FRAMEWORK macro. |
| |
| 2016-02-23 Dan Bernstein <mitz@apple.com> |
| |
| [Xcode] Linker errors display mangled names, but no longer should |
| https://bugs.webkit.org/show_bug.cgi?id=154632 |
| |
| Reviewed by Sam Weinig. |
| |
| * Configurations/Base.xcconfig: Stop setting LINKER_DISPLAYS_MANGLED_NAMES to YES. |
| |
| 2016-02-23 Gavin Barraclough <barraclough@apple.com> |
| |
| Remove HIDDEN_PAGE_DOM_TIMER_THROTTLING feature define |
| https://bugs.webkit.org/show_bug.cgi?id=112323 |
| |
| Reviewed by Chris Dumez. |
| |
| This feature is controlled by a runtime switch, and defaults off. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-02-22 Konstantin Tokarev <annulen@yandex.ru> |
| |
| [cmake] Moved library setup code to WEBKIT_FRAMEWORK macro. |
| https://bugs.webkit.org/show_bug.cgi?id=154450 |
| |
| Reviewed by Alex Christensen. |
| |
| * wtf/CMakeLists.txt: |
| |
| 2016-02-20 Mark Lam <mark.lam@apple.com> |
| |
| Use of inlined asm statements causes problems for -std=c99 builds. |
| https://bugs.webkit.org/show_bug.cgi?id=154507 |
| |
| Reviewed by Dan Bernstein. |
| |
| WTF's Assertions.h may inadvertantly get included by other projects that are built |
| with -std=c99. The use of the inlined asm statements with the keyword "asm" is |
| not recognized when the -std compiler flag is used. |
| |
| https://gcc.gnu.org/onlinedocs/gcc/Extended-Asm.html says "When writing code that |
| can be compiled with -ansi and the various -std options, use __asm__ instead of |
| asm (see Alternate Keywords)." |
| |
| So, to be a good citizen, we can change the use of "asm" in CRASH() to "__asm__" |
| so that we don't break the build of such other projects. |
| |
| * wtf/Assertions.h: |
| |
| 2016-02-18 Brent Fulgham <bfulgham@apple.com> |
| |
| Extend HashCountedSet with a method to efficiently set the count of an entry |
| https://bugs.webkit.org/show_bug.cgi?id=154352 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Tested by new TestWebKitAPI tests. |
| |
| Update the HashCountedSet class with a new 'add' method to support efficient initialization of |
| the count of a given key. Also provide move and pointer template specializations to expand the |
| types of data that can be used as 'keys' in the HashCountedSet to match the underlying HashMap |
| implementation. |
| |
| * wtf/HashCountedSet.h: |
| (WTF::Traits>::add): Added new overload supporting a supplied count. |
| |
| 2016-02-18 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r196791. |
| https://bugs.webkit.org/show_bug.cgi?id=154438 |
| |
| broke windows build (Requested by alexchristensen on #webkit). |
| |
| Reverted changeset: |
| |
| "Extend HashCountedSet with a method to efficiently set the |
| count of an entry" |
| https://bugs.webkit.org/show_bug.cgi?id=154352 |
| http://trac.webkit.org/changeset/196791 |
| |
| 2016-02-18 Brent Fulgham <bfulgham@apple.com> |
| |
| Extend HashCountedSet with a method to efficiently set the count of an entry |
| https://bugs.webkit.org/show_bug.cgi?id=154352 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Tested by new TestWebKitAPI tests. |
| |
| Update the HashCountedSet class with a new 'add' method to support efficient initialization of |
| the count of a given key. Also provide move and pointer template specializations to expand the |
| types of data that can be used as 'keys' in the HashCountedSet to match the underlying HashMap |
| implementation. |
| |
| * wtf/HashCountedSet.h: |
| (WTF::Traits>::add): Added new overload supporting a supplied count. |
| |
| 2016-02-17 Filip Pizlo <fpizlo@apple.com> |
| |
| Remove LLVM dependencies from WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=154323 |
| |
| Reviewed by Antti Koivisto and Benjamin Poulain. |
| |
| * wtf/Platform.h: |
| |
| 2016-02-16 Sam Weinig <sam@webkit.org> |
| |
| Add an ensure function on HashMap that takes a key and a function to make the lazy value initialization idiom easier |
| https://bugs.webkit.org/show_bug.cgi?id=134857 |
| |
| Reviewed by Geoffrey Garen. |
| |
| The current idiom for adding a value to a HashMap if the key is not already present, to allow for not |
| unnecessarily constructing the new value if it won't be used, is: |
| |
| { |
| auto result = map.add(key, Value()); |
| if (!result.isNewEntry) |
| return result.iterator->value; |
| |
| result.iterator->value = createNewValue(); |
| return result.iterator->value; |
| } |
| |
| or sometimes |
| |
| { |
| auto& value = map.add(key, Value()).iterator->value; |
| if (!value) |
| value = createNewValue(); |
| return value; |
| } |
| |
| With this patch, you can now use the new function HashMap::ensure(key, functor). This will allow us to |
| change to using the following idiom: |
| |
| { |
| return map.ensure(key, [] { return createNewValue(); }); |
| } |
| |
| The passed in functor will only be called if the key is not already present in the HashMap. |
| |
| * wtf/HashMap.h: |
| (WTF::HashMapTranslator::translate): |
| (WTF::HashMapEnsureTranslator::hash): |
| (WTF::HashMapEnsureTranslator::equal): |
| (WTF::HashMapEnsureTranslator::translate): |
| (WTF::HashMapTranslatorAdapter::hash): |
| |
| 2016-02-16 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL_USES_B3 should be unconditionally true |
| https://bugs.webkit.org/show_bug.cgi?id=154324 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/Platform.h: |
| |
| 2016-02-13 Mark Lam <mark.lam@apple.com> |
| |
| Eliminate the need for WTFCrashImpl(). |
| https://bugs.webkit.org/show_bug.cgi?id=154202 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| |
| 2016-02-12 Sukolsak Sakshuwong <sukolsak@gmail.com> |
| |
| Update ICU header files to version 52 |
| https://bugs.webkit.org/show_bug.cgi?id=154160 |
| |
| Reviewed by Alex Christensen. |
| |
| Update ICU header files to version 52 to allow the use of newer APIs. |
| |
| * icu/unicode/bytestream.h: |
| * icu/unicode/localpointer.h: |
| * icu/unicode/platform.h: |
| * icu/unicode/ptypes.h: |
| * icu/unicode/putil.h: |
| * icu/unicode/rep.h: |
| (Replaceable::Replaceable): |
| * icu/unicode/std_string.h: |
| * icu/unicode/strenum.h: |
| * icu/unicode/stringpiece.h: |
| * icu/unicode/uchar.h: |
| * icu/unicode/ucnv.h: |
| * icu/unicode/ucol.h: |
| * icu/unicode/uconfig.h: |
| * icu/unicode/uenum.h: |
| * icu/unicode/uiter.h: |
| * icu/unicode/uloc.h: |
| * icu/unicode/umachine.h: |
| * icu/unicode/unistr.h: |
| (UnicodeString::UnicodeString): |
| (UnicodeString::operator== ): |
| (UnicodeString::startsWith): |
| (UnicodeString::setTo): |
| (UnicodeString::remove): |
| (UnicodeString::replace): Deleted. |
| (UnicodeString::extract): Deleted. |
| (UnicodeString::char32At): Deleted. |
| (UnicodeString::getChar32Start): Deleted. |
| (UnicodeString::getChar32Limit): Deleted. |
| (UnicodeString::getTerminatedBuffer): Deleted. |
| (UnicodeString::append): Deleted. |
| (UnicodeString::truncate): Deleted. |
| * icu/unicode/unorm2.h: |
| * icu/unicode/uobject.h: |
| * icu/unicode/urename.h: |
| * icu/unicode/uscript.h: |
| * icu/unicode/uset.h: |
| * icu/unicode/ustring.h: |
| * icu/unicode/utf.h: |
| * icu/unicode/utf16.h: |
| * icu/unicode/utf8.h: |
| * icu/unicode/utf_old.h: |
| * icu/unicode/utypes.h: |
| * icu/unicode/uvernum.h: |
| * icu/unicode/uversion.h: |
| |
| 2016-02-11 Mark Lam <mark.lam@apple.com> |
| |
| Need WTFCrash workaround for shipping SafariForWebKitDevelopment binaries. |
| https://bugs.webkit.org/show_bug.cgi?id=154125 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| Presently shipping SafariForWebKitDevelopment binaries still expect to link to a |
| WTFCrash function. We need to provide this function as a workaround until we can |
| update SafariForWebKitDevelopment to use the new inlined version. |
| |
| We do this by doing: |
| 1. Make WTFCrashImpl() the sole function for implementing a crash. |
| The CRASH() macro is now defined to be WTFCrashImpl() instead of WTFCrash(). |
| 2. Renamed the legacy WTFCrash() to WTFCrashImpl() for debug or non-Darwin builds. |
| For (non-debug && OS(DARWIN)) builds, WTFCrashImpl() will be an inlined |
| function with an asm statement that issues a breakpoint trap. |
| 3. Implement WTFCrash() as a function that calls CRASH(). |
| This satisfies the need of shipping SafariForWebKitDevelopment binaries. |
| 4. Change WTFCrashWithSecurityImplication() to call CRASH(). |
| This ensures that we have a consistent implementation of how we crash. |
| 5. Changed WTFLogAlwaysAndCrash() to call CRASH() instead of WTFCrash(). |
| This is just to have consistency in that all code in the WebKit project |
| now crashes by calling CRASH(), not WTFCrash(). |
| |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| |
| 2016-02-09 Mark Lam <mark.lam@apple.com> |
| |
| Changed WTFCrash to not trash the crash site register state. |
| https://bugs.webkit.org/show_bug.cgi?id=153996 |
| |
| Reviewed by Geoffrey Garen. |
| |
| When doing post-mortem crash site analysis using data from crash reports, it is |
| immensely valuable to be able to infer the crashing program's state from the |
| register values at crash time. However, for RELEASE_ASSERT failures, we crash |
| using WTFCrash(), and WTFCrash() is currently implemented as a function call |
| that, in turn, calls a lot of other functions to do crash handling before |
| actually crashing. As a result, the register values captured in the crash |
| reports are not likely to still contain the values used by the caller function |
| that failed the RELEASE_ASSERT. |
| |
| This patch aims to remedy this issue for non-debug builds on OS(DARWIN) ports. |
| It does so by changing WTFCrash() into an inlined function that has an inlined |
| asm statement to issues the CPU specific breakpoint trap instruction. As a |
| result, for non-debug OS(DARWIN) builds, crashes due to failed RELEASE_ASSERTs |
| will now show up in crash reports as crashing due to EXC_BREAKPOINT (SIGTRAP) |
| instead of a EXC_BAD_ACCESS (SIGSEGV) on address 0xbbadbeef. |
| |
| For debug and non-DARWIN builds, WTFCrash() behavior currently remains unchanged. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| |
| 2016-02-09 Csaba Osztrogonác <ossy@webkit.org> |
| |
| [GTK][EFL] Fix several build configuration related to SamplingProfiler after r196245 |
| https://bugs.webkit.org/show_bug.cgi?id=154033 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * wtf/Platform.h: |
| |
| 2016-02-08 Filip Pizlo <fpizlo@apple.com> |
| |
| Make sure that locking code that relies on module boundaries for compiler fences uses NEVER_INLINE |
| https://bugs.webkit.org/show_bug.cgi?id=153972 |
| |
| Reviewed by Andreas Kling. |
| |
| When this code was written, we assumed that module boundaries were compiler fences. That might |
| not be the case if we ever do LTO. |
| |
| * wtf/Lock.cpp: |
| (WTF::LockBase::lockSlow): |
| (WTF::LockBase::unlockSlow): |
| * wtf/ParkingLot.cpp: |
| (WTF::ParkingLot::parkConditionally): |
| (WTF::ParkingLot::unparkOne): |
| (WTF::ParkingLot::unparkAll): |
| (WTF::ParkingLot::forEach): |
| * wtf/WordLock.cpp: |
| (WTF::WordLock::lockSlow): |
| (WTF::WordLock::unlockSlow): |
| |
| 2016-02-07 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [GTK][EFL] Enable SamplingProfiler |
| https://bugs.webkit.org/show_bug.cgi?id=153638 |
| |
| Reviewed by Michael Catanzaro. |
| |
| * wtf/Platform.h: |
| |
| 2016-02-07 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Replace __has_include guards around inclusion of Apple-internal-SDK headers with USE(APPLE_INTERNAL_SDK) |
| https://bugs.webkit.org/show_bug.cgi?id=153963 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/SystemTracing.h: |
| * wtf/WTFThreadData.h: |
| * wtf/spi/darwin/CommonCryptoSPI.h: |
| |
| 2016-02-06 Darin Adler <darin@apple.com> |
| |
| Finish auditing call sites of upper() and lower(), eliminate many, and rename the functions |
| https://bugs.webkit.org/show_bug.cgi?id=153905 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::lower): Deleted. |
| * wtf/text/AtomicString.h: Deleted the lower function. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::convertToLowercaseWithoutLocale): Renamed from lower. |
| (WTF::StringImpl::convertToUppercaseWithoutLocale): Renamed from upper. |
| (WTF::StringImpl::convertToLowercaseWithLocale): Renamed from lower. |
| (WTF::StringImpl::convertToUppercaseWithLocale): Renamed from upper. |
| (WTF::StringImpl::foldCase): Added fast cases for ASCII since this is |
| now used in some more-performance-critical code. |
| * wtf/text/StringImpl.h: Renamed lower and upper. |
| |
| * wtf/text/WTFString.cpp: |
| (WTF::String::convertToLowercaseWithoutLocale): Renamed from lower. |
| (WTF::String::convertToUppercaseWithoutLocale): Renamed from upper. |
| (WTF::String::convertToLowercaseWithLocale): Renamed from lower. |
| (WTF::String::convertToUppercaseWithLocale): Renamed from upper. |
| * wtf/text/WTFString.h: Renamed lower and upper. Removed unneeded comment. |
| |
| 2016-02-03 Darin Adler <darin@apple.com> |
| |
| Convert another batch of String::lower callsites to something better, typically convertToASCIILowercase |
| https://bugs.webkit.org/show_bug.cgi?id=153789 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::toInt): Added an overload without the out parameter. |
| |
| 2016-02-03 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [GTK][EFL] Switch FTL to B3 |
| https://bugs.webkit.org/show_bug.cgi?id=153478 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| Enable B3 by default on all x86. |
| |
| * wtf/Platform.h: |
| |
| 2016-02-03 Anders Carlsson <andersca@apple.com> |
| |
| Fix BlockPtr's call operator |
| https://bugs.webkit.org/show_bug.cgi?id=153836 |
| |
| Reviewed by Enrica Casucci. |
| |
| * wtf/BlockPtr.h: |
| |
| 2016-02-01 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Cache the Path instead of creating it every time it is required |
| https://bugs.webkit.org/show_bug.cgi?id=152939 |
| |
| Reviewed by Darin Adler. |
| |
| If the key type of an LRU cache can't to be strongly tided to a specific |
| data type; e.g. FloatRect -> Path, we need to be able to pass the policy |
| type to the TinyLRUCache template instead of just specializing it. This |
| will make the code more readable and will allow different caches for the |
| same key type. |
| |
| * wtf/TinyLRUCache.h: |
| (WebCore::TinyLRUCache::get): |
| |
| 2016-02-01 Alex Christensen <achristensen@webkit.org> |
| |
| [Win] WTFHeaderDetection.h no longer needed |
| https://bugs.webkit.org/show_bug.cgi?id=153753 |
| rdar://problem/24434627 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Platform.h: |
| * wtf/PlatformWin.cmake: |
| |
| 2016-01-31 Darin Adler <darin@apple.com> |
| |
| Cut down on calls to String::lower; mostly replace with convertToASCIILowercase |
| https://bugs.webkit.org/show_bug.cgi?id=153732 |
| |
| Reviewed by Dean Jackson. |
| |
| * wtf/text/StringView.h: Added toIntStrict. Not thrilled about the name of this |
| function, but generally it seems likely to be useful more often than toInt. |
| And it's needed for one call site in WebCore that was using String::lower. |
| |
| 2016-01-31 Darin Adler <darin@apple.com> |
| |
| Get rid of most calls to String::upper; mostly replace them with convertToASCIIUppercase |
| https://bugs.webkit.org/show_bug.cgi?id=153715 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::upper): Deleted. |
| |
| 2016-01-31 Dan Bernstein <mitz@apple.com> |
| |
| [Cocoa] Remove unused definition of HAVE_HEADER_DETECTION_H |
| https://bugs.webkit.org/show_bug.cgi?id=153729 |
| |
| Reviewed by Sam Weinig. |
| |
| After r141700, HAVE_HEADER_DETECTION_H is no longer used. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2016-01-31 Darin Adler <darin@apple.com> |
| |
| Replace CaseFoldingHash with ASCIICaseInsensitiveHash |
| https://bugs.webkit.org/show_bug.cgi?id=153639 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/text/StringHash.h: Renamed CaseFoldingHash to ASCIICaseInsensitiveHash. |
| (WTF::ASCIICaseInsensitiveHash::foldCase): Use toASCIILower. |
| (WTF::ASCIICaseInsensitiveHash::equal): Use equalIgnoringASCIICase. |
| Also added some assertions. |
| |
| * wtf/text/StringImpl.cpp: Made the latin1CaseFoldTable private to this file, |
| since it's no longer needed by CaseFoldingHash. Moved it up before its first use. |
| (WTF::equalCompatibilityCaseless): Fixed typo in the name of this function. |
| (WTF::equalCompatibiltyCaselessNonNull): Deleted. |
| |
| * wtf/text/StringImpl.h: Removed declarations of latin1CaseFoldTable and |
| equalCompatibiltyCaselessNonNull |
| |
| 2016-01-30 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r195911. |
| https://bugs.webkit.org/show_bug.cgi?id=153723 |
| |
| Caused frequent assertion failures on bots (Requested by ap on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Replace CaseFoldingHash with ASCIICaseInsensitiveHash" |
| https://bugs.webkit.org/show_bug.cgi?id=153639 |
| http://trac.webkit.org/changeset/195911 |
| |
| 2016-01-30 Darin Adler <darin@apple.com> |
| |
| Replace CaseFoldingHash with ASCIICaseInsensitiveHash |
| https://bugs.webkit.org/show_bug.cgi?id=153639 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/text/StringHash.h: Renamed CaseFoldingHash to ASCIICaseInsensitiveHash. |
| (WTF::ASCIICaseInsensitiveHash::foldCase): Use toASCIILower. |
| (WTF::ASCIICaseInsensitiveHash::equal): Use equalIgnoringASCIICase. |
| Also added some assertions. |
| |
| * wtf/text/StringImpl.cpp: Made the latin1CaseFoldTable private to this file, |
| since it's no longer needed by CaseFoldingHash. Moved it up before its first use. |
| (WTF::equalCompatibilityCaseless): Fixed typo in the name of this function. |
| (WTF::equalCompatibiltyCaselessNonNull): Deleted. |
| |
| * wtf/text/StringImpl.h: Removed declarations of latin1CaseFoldTable and |
| equalCompatibiltyCaselessNonNull |
| |
| 2016-01-29 Ada Chan <adachan@apple.com> |
| |
| Enable VIDEO_PRESENTATION_MODE only in Debug and Release builds on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=153665 |
| |
| Reviewed by Dan Bernstein. |
| |
| * wtf/Platform.h: |
| Remove this as the flag is already defined in FeatureDefines.xcconfig files. |
| |
| 2016-01-30 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Enable SamplingProfiler on POSIX environment |
| https://bugs.webkit.org/show_bug.cgi?id=153584 |
| |
| Reviewed by Michael Saboff. |
| |
| Use __GLIBC__ since mcontext_t layout depends on it. |
| |
| * wtf/Platform.h: |
| |
| 2016-01-28 Darin Adler <darin@apple.com> |
| |
| Remove equalIgnoringCase since all callers really wanted equalIgnoringASCIICase |
| https://bugs.webkit.org/show_bug.cgi?id=153411 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * wtf/text/AtomicString.h: Removed equalIgnoringCase. |
| Added some overloads for equalIgnoringASCIICase and moved the function bodies to |
| bottom of the file to make the function declarations easier to read and scan through. |
| I plan to do this for more of the functions in this class in the future. |
| |
| * wtf/text/StringCommon.h: Added overloads for equalIgnoringASCIICase, |
| equalPossiblyIgnoringASCIICase, and a helper named equalIgnoringASCIICaseCommon. |
| Added an overload for equalLettersIgnoringASCIICase. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::equalIgnoringCase): Made the few remaining versions of this function private |
| to this file. Once we get done moving every client that should be using ASCII case |
| instead to new functions, these will almost certainly be deleted. |
| (WTF::equalIgnoringASCIICaseNonNull): Tweaked implementation a tiny bit. |
| |
| * wtf/text/StringImpl.h: Sorted forward declarations at the top of the file. |
| Fixed some small formatting mistakes. Removed equalIgnoringCase, but left |
| equalIgnoringCaseNonNull behind for use by CaseFoldingHash until it is replaced |
| with ASCIICaseFoldingHash. Improved equalIgnoringASCIICase implementation. |
| Removed unneeded using for equalIgnoringASCIICase now that StringCommon.h takes |
| care of it. |
| |
| * wtf/text/StringView.cpp: |
| (WTF::equalIgnoringASCIICase): Deleted. We no longer pass in the length for this, |
| so the arguments have changed and the implementation is also now in ASCIICommon.h |
| so it's an inline in the header file. |
| |
| * wtf/text/StringView.h: Added an overload of equalIgnoringASCIICase,while |
| removing another. |
| |
| * wtf/text/WTFString.h: Removed some unneeded forward delcarations. Fixed formatting |
| of the type name NSString *. Improved some comments. Removed equalIgnoringCase. |
| Separated declaration from implementation in a few cases to start making the |
| function declarations easier to read and scan through. I plan to do more in the future. |
| |
| 2016-01-27 Chris Dumez <cdumez@apple.com> |
| |
| window.atob() should ignore spaces in input |
| https://bugs.webkit.org/show_bug.cgi?id=153522 |
| <rdar://problem/24357822> |
| |
| Reviewed by Benjamin Poulain. |
| |
| Turn Base64DecodePolicy enum into flags so that the caller can indicate |
| to both validate padding AND ignore spaces. |
| |
| Also make sure that the output Vector size is properly shrunk when |
| spaces are ignored. |
| |
| * wtf/text/Base64.cpp: |
| (WTF::base64DecodeInternal): |
| (WTF::base64Decode): |
| (WTF::base64URLDecode): |
| * wtf/text/Base64.h: |
| |
| 2016-01-27 Alexey Proskuryakov <ap@apple.com> |
| |
| Remove ENABLE_CURRENTSRC |
| https://bugs.webkit.org/show_bug.cgi?id=153545 |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-01-26 I-Ting Liu <iting_liu@apple.com> |
| |
| Implement wildcard matching for plug-in policy host. |
| https://bugs.webkit.org/show_bug.cgi?id=153090 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::AtomicString): |
| Add __bridge to allow compilation. |
| |
| 2016-01-26 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Generalize ResourceUsageData gathering to be used outside of ResourceUsageOverlay |
| https://bugs.webkit.org/show_bug.cgi?id=153509 |
| <rdar://problem/24354291> |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Platform.h: |
| Rename the ENABLE flag. |
| |
| 2016-01-26 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Make HashTable iterators STL iterators compatible |
| https://bugs.webkit.org/show_bug.cgi?id=153512 |
| |
| Reviewed by Alex Christensen. |
| |
| While r178581 makes many hash table iterators STL compatible, still several iterators are not. |
| This patch fixes that; inheriting std::iterator correctly to meet STL iterator requirements (like iterator_category etc.) |
| It could recover Windows build failure. |
| |
| * wtf/HashTable.h: |
| |
| 2016-01-26 Anders Carlsson <andersca@apple.com> |
| |
| BlockPtr needs boolean operators |
| https://bugs.webkit.org/show_bug.cgi?id=153506 |
| |
| Reviewed by Tim Horton. |
| |
| * wtf/BlockPtr.h: |
| |
| 2016-01-25 Filip Pizlo <fpizlo@apple.com> |
| |
| FTLB3Output should maintain good block order like the LLVM one does |
| https://bugs.webkit.org/show_bug.cgi?id=152222 |
| |
| Reviewed by Geoffrey Garen. |
| |
| In the FTL we need to be able to construct a list by inserting elements before other |
| specific elements. We didn't already have a scalable way to do this, so this adds such a |
| data structure to WTF. This also has changes to SentinelLinkedList to make it support |
| these kinds of insertions. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/OrderMaker.h: Added. |
| (WTF::OrderMaker::Node::Node): |
| (WTF::OrderMaker::OrderMaker): |
| (WTF::OrderMaker::prepend): |
| (WTF::OrderMaker::append): |
| (WTF::OrderMaker::insertBefore): |
| (WTF::OrderMaker::insertAfter): |
| (WTF::OrderMaker::iterator::iterator): |
| (WTF::OrderMaker::iterator::operator*): |
| (WTF::OrderMaker::iterator::operator++): |
| (WTF::OrderMaker::iterator::operator==): |
| (WTF::OrderMaker::iterator::operator!=): |
| (WTF::OrderMaker::begin): |
| (WTF::OrderMaker::end): |
| (WTF::OrderMaker::newNode): |
| * wtf/SentinelLinkedList.h: |
| (WTF::BasicRawSentinelNode::isOnList): |
| (WTF::BasicRawSentinelNode<T>::remove): |
| (WTF::BasicRawSentinelNode<T>::prepend): |
| (WTF::BasicRawSentinelNode<T>::append): |
| (WTF::RawNode>::SentinelLinkedList): |
| (WTF::RawNode>::push): |
| (WTF::RawNode>::append): |
| (WTF::RawNode>::remove): |
| (WTF::RawNode>::prepend): |
| (WTF::RawNode>::isOnList): |
| |
| 2016-01-25 Alex Christensen <achristensen@webkit.org> |
| |
| [Win] Copy forwarding headers before building a project |
| https://bugs.webkit.org/show_bug.cgi?id=153434 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/CMakeLists.txt: |
| * wtf/PlatformWin.cmake: |
| |
| 2016-01-20 Ryosuke Niwa <rniwa@webkit.org> |
| |
| HTMLElement::nodeName should not upper case non-ASCII characters |
| https://bugs.webkit.org/show_bug.cgi?id=153231 |
| |
| Reviewed by Darin Adler. |
| |
| Added convertToASCIIUppercase to AtomicString, String, and StringImpl. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::convertASCIICase): Generalized from convertToASCIILowercase. |
| (WTF::AtomicString::convertToASCIILowercase): |
| (WTF::AtomicString::convertToASCIIUppercase): |
| * wtf/text/AtomicString.h: |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::convertASCIICase): Generalized from convertToASCIILowercase. |
| (WTF::StringImpl::convertToASCIILowercase): |
| (WTF::StringImpl::convertToASCIIUppercase): |
| * wtf/text/StringImpl.h: |
| * wtf/text/WTFString.cpp: |
| (WTF::String::convertToASCIIUppercase): Added. |
| * wtf/text/WTFString.h: |
| |
| 2016-01-22 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed attempt to fix the Windows build after r195452. |
| |
| * wtf/text/WTFString.h: |
| |
| 2016-01-22 Darin Adler <darin@apple.com> |
| |
| Reduce use of equalIgnoringCase to just ignore ASCII case |
| https://bugs.webkit.org/show_bug.cgi?id=153266 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * wtf/ASCIICType.h: |
| (WTF::isASCIIAlphaCaselessEqual): Loosened the assertion in this function |
| so it can work with ASCII spaces, numeric digits, and some punctuation. |
| Commented that we might want to change its name later. |
| |
| * wtf/Assertions.cpp: |
| (WTFInitializeLogChannelStatesFromString): Use equalLettersIgnoringASCIICase. |
| |
| * wtf/text/AtomicString.h: |
| (WTF::equalLettersIgnoringASCIICase): Added. Calls the version that takes a String. |
| |
| * wtf/text/StringCommon.h: |
| (WTF::equalLettersIgnoringASCIICase): Added. Takes a pointer to characters. |
| (WTF::equalLettersIgnoringASCIICaseCommonWithoutLength): Added. |
| (WTF::equalLettersIgnoringASCIICaseCommon): Added. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::equalLettersIgnoringASCIICase): Added. Calls equalLettersIgnoringASCIICaseCommon. |
| |
| * wtf/text/StringView.h: |
| (WTF::equalLettersIgnoringASCIICase): Added. Calls equalLettersIgnoringASCIICaseCommon. |
| |
| * wtf/text/WTFString.h: Reordered/reformatted a little. |
| (WTF::equalIgnoringASCIICase): Added. Calls the version that takes a StringImpl. |
| |
| 2016-01-22 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Buildfix for older GCCs after r195142 |
| https://bugs.webkit.org/show_bug.cgi?id=153351 |
| |
| Unreviewed buildfix. |
| |
| * wtf/SystemTracing.h: |
| |
| 2016-01-21 Filip Pizlo <fpizlo@apple.com> |
| |
| REGRESSION(r195417): many tests crash |
| https://bugs.webkit.org/show_bug.cgi?id=153316 |
| |
| Reviewed by Saam Barati. |
| |
| This rolls out the StdLibExtras.h change, and simplifies RangeSet to not use binary search. |
| That's fine for now, since B3 doesn't stress RangeSet enough right now. |
| |
| * wtf/RangeSet.h: |
| (WTF::RangeSet::contains): |
| (WTF::RangeSet::overlaps): |
| (WTF::RangeSet::clear): |
| (WTF::RangeSet::findRange): |
| * wtf/StdLibExtras.h: |
| (WTF::binarySearchImpl): |
| (WTF::binarySearch): |
| (WTF::tryBinarySearch): |
| (WTF::approximateBinarySearch): |
| |
| 2016-01-21 Filip Pizlo <fpizlo@apple.com> |
| |
| B3 should have load elimination |
| https://bugs.webkit.org/show_bug.cgi?id=153288 |
| |
| Reviewed by Geoffrey Garen. |
| |
| I needed a way to track sets of ranges, where there is a high likelihood that all of the |
| ranges overlap. So I created RangeSet. It's a usually-sorted list of coalesced ranges. |
| Practically this means that right now, FTL B3 will end up with two kinds of range sets: a set |
| that just contains top and a set that contains nothing. In the future, most sets will either |
| be top of empty but some of them will contain a handful of other things. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/MathExtras.h: |
| (WTF::leftShiftWithSaturation): |
| (WTF::nonEmptyRangesOverlap): |
| (WTF::rangesOverlap): |
| * wtf/RangeSet.h: Added. |
| (WTF::RangeSet::RangeSet): |
| (WTF::RangeSet::~RangeSet): |
| (WTF::RangeSet::add): |
| (WTF::RangeSet::contains): |
| (WTF::RangeSet::overlaps): |
| (WTF::RangeSet::clear): |
| (WTF::RangeSet::dump): |
| (WTF::RangeSet::dumpRaw): |
| (WTF::RangeSet::compact): |
| (WTF::RangeSet::overlapsNonEmpty): |
| (WTF::RangeSet::subsumesNonEmpty): |
| (WTF::RangeSet::findRange): |
| * wtf/StdLibExtras.h: |
| (WTF::binarySearchImpl): |
| (WTF::binarySearch): |
| (WTF::tryBinarySearch): |
| (WTF::approximateBinarySearch): |
| |
| 2016-01-19 Ada Chan <adachan@apple.com> |
| |
| Make it possible to enable VIDEO_PRESENTATION_MODE on other Cocoa platforms. |
| https://bugs.webkit.org/show_bug.cgi?id=153218 |
| |
| Reviewed by Eric Carlson. |
| |
| * wtf/Platform.h: |
| |
| 2016-01-19 Filip Pizlo <fpizlo@apple.com> |
| |
| B3 should have basic path specialization |
| https://bugs.webkit.org/show_bug.cgi?id=153200 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/GraphNodeWorklist.h: |
| (WTF::GraphNodeWorklist::push): |
| (WTF::GraphNodeWorklist::pushAll): |
| (WTF::GraphNodeWorklist::isEmpty): |
| (WTF::GraphNodeWorklist::notEmpty): |
| |
| 2016-01-20 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Refactor AtomicStringKeyedMRUCache to be a generic LRU cache |
| https://bugs.webkit.org/show_bug.cgi?id=153109 |
| |
| Reviewed by Darin Adler. |
| |
| Refactor AtomicStringKeyedMRUCache, move it to WTF project and rename it |
| to be TinyLRUCache. Define another template and call it TinyLRUCachePolicy. |
| This one can be overridden for different keys and values. Its function is |
| creating the cached values. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/TinyLRUCache.h: Added. |
| (WebCore::TinyLRUCachePolicy::isKeyNull): |
| (WebCore::TinyLRUCachePolicy::createValueForNullKey): |
| (WebCore::TinyLRUCachePolicy::createValueForKey): |
| (WebCore::TinyLRUCache::get): |
| |
| 2016-01-19 Saam barati <sbarati@apple.com> |
| |
| WTF::Bag should be non-copyable |
| https://bugs.webkit.org/show_bug.cgi?id=153253 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/Bag.h: |
| * wtf/SegmentedVector.h: |
| (WTF::SegmentedVector::append): |
| (WTF::SegmentedVector::alloc): |
| |
| 2016-01-19 Enrica Casucci <enrica@apple.com> |
| |
| Add support for DataDetectors in WK (iOS). |
| https://bugs.webkit.org/show_bug.cgi?id=152989 |
| rdar://problem/22855960 |
| |
| Reviewed by Tim Horton. |
| |
| Adding feature definition for data detection. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-01-19 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r195300. |
| https://bugs.webkit.org/show_bug.cgi?id=153244 |
| |
| enrica wants more time to fix Windows (Requested by thorton on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Add support for DataDetectors in WK (iOS)." |
| https://bugs.webkit.org/show_bug.cgi?id=152989 |
| http://trac.webkit.org/changeset/195300 |
| |
| 2016-01-19 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r195141. |
| |
| Seems to cause crashes on iOS9 64bit |
| |
| Reverted changeset: |
| |
| "Fragmentation-free allocator for timeless and/or coupled |
| allocations." |
| https://bugs.webkit.org/show_bug.cgi?id=152696 |
| http://trac.webkit.org/changeset/195141 |
| |
| 2016-01-19 Enrica Casucci <enrica@apple.com> |
| |
| Add support for DataDetectors in WK (iOS). |
| https://bugs.webkit.org/show_bug.cgi?id=152989 |
| rdar://problem/22855960 |
| |
| Reviewed by Tim Horton. |
| |
| Adding feature definition for data detection. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-01-17 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL B3 should be just as fast as FTL LLVM on Octane/crypto |
| https://bugs.webkit.org/show_bug.cgi?id=153113 |
| |
| Reviewed by Saam Barati. |
| |
| * wtf/IndexSparseSet.h: |
| (WTF::IndexSparseSet<OverflowHandler>::IndexSparseSet): |
| (WTF::IndexSparseSet<OverflowHandler>::add): |
| (WTF::IndexSparseSet<OverflowHandler>::remove): |
| * wtf/StringPrintStream.h: |
| (WTF::StringPrintStream::length): |
| |
| 2016-01-17 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [CMake] Do not build bmalloc when USE_SYSTEM_MALLOC is ON |
| https://bugs.webkit.org/show_bug.cgi?id=153190 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| Build bmalloc when NOT USE_SYSTEM_MALLOC rather than when NOT WIN32. |
| |
| * wtf/CMakeLists.txt: |
| |
| 2016-01-15 Simon Fraser <simon.fraser@apple.com> |
| |
| Add kdebug_trace signposts for a few WebCore operations |
| https://bugs.webkit.org/show_bug.cgi?id=153136 |
| rdar://problem/24208487 |
| |
| Reviewed by Sam Weinig. |
| |
| New header with the reserved WebKit component code, trace point codes, and |
| a stack-based helper that traces scope entry and exit. |
| |
| The available range of trace point codes is arbitrarily segmented into WTF, JSC, |
| WebCore, WebKit and WebKit2. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/SystemTracing.h: Added. |
| (WTF::TraceScope::TraceScope): |
| (WTF::TraceScope::~TraceScope): |
| |
| 2016-01-15 Andreas Kling <akling@apple.com> |
| |
| Fragmentation-free allocator for timeless and/or coupled allocations. |
| <https://webkit.org/b/152696> |
| |
| Reviewed by Antti Koivisto. |
| |
| Introduce BumpArena, a space-efficient memory allocator for situations where |
| you feel pretty confident betting on allocation lifetimes. |
| |
| Basic design: |
| |
| - Reserves 128MB range of memory at startup. |
| - Allocates 4kB-aligned blocks of 4kB from VM at a time. |
| - Bump-pointer allocates out of a block until it reaches end. |
| - Each allocation increments the ref-count of its block. |
| - Each deallocation decrements the ref-count of its block. |
| - Transparently falls back to fastMalloc()/fastFree() when needed. |
| |
| Interface: |
| |
| - BumpArena::create() |
| |
| Create your very own BumpArena! |
| |
| - BumpArena::allocate(BumpArena* arena, size_t size) |
| |
| Allocates 'size' bytes of memory from 'arena'. |
| If 'arena' is null, falls back to fastMalloc(). |
| |
| - BumpArena::deallocate(void* ptr) |
| |
| If 'ptr' is BumpArena allocation, decrements block ref-count. |
| If 'ptr' is FastMalloc allocation, calls fastFree() on it. |
| |
| - WTF_MAKE_BUMPARENA_ALLOCATED; |
| |
| Macro that gives a class or struct custom operators new and delete |
| for allocation out of BumpArena. Just like WTF_MAKE_FAST_ALLOCATED; |
| |
| Note that while the name of this patch says "fragmentation-free allocator" |
| it will only be fragmentation-free when used for appropriate things. |
| This is not meant to be a general-purpose allocator. Only use it for sets of |
| allocations that are known to die roughly at the same time. |
| |
| BumpArena will never resume allocating from a block that has been filled, |
| so it's even more important than usual that everything gets deallocated. |
| |
| BumpArena redirects allocations to FastMalloc in three cases: |
| |
| - When invoked with a null BumpArena* |
| - When allocation request is larger than BumpArena's block size (4kB) |
| - When BumpArena has exhausted all of its pre-reserved VM. (128MB) |
| |
| The VM allocator will eagerly return blocks of VM to the kernel by calling |
| madvise(). Average time spent in madvise is around 0.007ms on my box. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/BumpArena.cpp: Added. |
| (WTF::BumpArena::Block::capacity): |
| (WTF::BumpArena::Block::arena): |
| (WTF::BumpArena::Block::payloadStart): |
| (WTF::arenas): |
| (WTF::BumpArena::Block::Block): |
| (WTF::BumpArena::Block::~Block): |
| (WTF::BumpArena::Block::ref): |
| (WTF::BlockAllocator::BlockAllocator): |
| (WTF::BlockAllocator::isAllocation): |
| (WTF::blockAllocator): |
| (WTF::BlockAllocator::allocateBlock): |
| (WTF::BlockAllocator::deallocateBlock): |
| (WTF::BumpArena::Block::deref): |
| (WTF::BumpArena::Block::create): |
| (WTF::BumpArena::Block::dump): |
| (WTF::BumpArena::dump): |
| (WTF::BumpArena::create): |
| (WTF::BumpArena::BumpArena): |
| (WTF::BumpArena::~BumpArena): |
| (WTF::BumpArena::allocateSlow): |
| (WTF::BumpArena::allocate): |
| (WTF::BumpArena::deallocate): |
| (WTF::BumpArena::Block::blockFor): |
| (WTF::BumpArena::arenaFor): |
| * wtf/BumpArena.h: Added. |
| * wtf/CMakeLists.txt: |
| |
| 2016-01-15 Konstantin Tokarev <annulen@yandex.ru> |
| |
| [EFL] WorkQueue methods should be defined inside WTF namespace. |
| https://bugs.webkit.org/show_bug.cgi?id=153097 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| * wtf/efl/WorkQueueEfl.cpp: |
| |
| 2016-01-14 Chris Dumez <cdumez@apple.com> |
| |
| Unreviewed, rolling out r195035. |
| |
| Caused 1-3% PLT regression on iOS |
| |
| Reverted changeset: |
| |
| "Part 2/2: Stop using USE(CFNETWORK) path on iOS" |
| https://bugs.webkit.org/show_bug.cgi?id=142540 |
| http://trac.webkit.org/changeset/195035 |
| |
| 2016-01-14 David Kilzer <ddkilzer@apple.com> |
| |
| Part 2/2: Stop using USE(CFNETWORK) path on iOS |
| <https://webkit.org/b/142540> |
| |
| Original patch by Antti Koivisto <antti@apple.com> on 2015-03-10 |
| Reviewed by Chris Dumez. |
| |
| * wtf/Platform.h: Turn off USE(CFNETWORK) for PLATFORM(IOS). |
| |
| 2016-01-14 Per Arne Vollan <peavo@outlook.com> |
| |
| [Win] Remove workarounds for fixed bugs in fmod and pow. |
| https://bugs.webkit.org/show_bug.cgi?id=153071 |
| |
| Reviewed by Brent Fulgham. |
| |
| The bugs have been fixed in the MSVC CRT, and we can remove the workarounds. |
| |
| * wtf/MathExtras.h: |
| (wtf_fmod): Deleted. |
| (wtf_pow): Deleted. |
| |
| 2016-01-13 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r194963. |
| https://bugs.webkit.org/show_bug.cgi?id=153079 |
| |
| This change causes ASan tests to crash and exit early |
| (Requested by ryanhaddad on #webkit). |
| |
| Reverted changeset: |
| |
| "Fragmentation-free allocator for timeless and/or coupled |
| allocations." |
| https://bugs.webkit.org/show_bug.cgi?id=152696 |
| http://trac.webkit.org/changeset/194963 |
| |
| 2016-01-13 Andreas Kling <akling@apple.com> |
| |
| Fragmentation-free allocator for timeless and/or coupled allocations. |
| <https://webkit.org/b/152696> |
| |
| Reviewed by Antti Koivisto. |
| |
| Introduce BumpArena, a space-efficient memory allocator for situations where |
| you feel pretty confident betting on allocation lifetimes. |
| |
| Basic design: |
| |
| - Allocates 4kB-aligned blocks of 4kB from bmalloc at a time. |
| - Bump-pointer allocates out of a block until it reaches end. |
| - Each allocation increments the ref-count of its block. |
| - Each deallocation decrements the ref-count of its block. |
| |
| Interface: |
| |
| - BumpArena::create() |
| |
| Create your very own BumpArena! |
| |
| - BumpArena::allocate(BumpArena* arena, size_t size) |
| |
| Allocates 'size' bytes of memory from 'arena'. |
| If 'arena' is null, allocation comes out of the shared global BumpArena. |
| |
| - BumpArena::deallocate(void* ptr) |
| |
| Deallocates 'ptr', decrementing the ref-count of its block. |
| |
| - WTF_MAKE_BUMPARENA_ALLOCATED; |
| |
| Macro that gives a class or struct custom operators new and delete |
| for allocation out of BumpArena. Just like WTF_MAKE_FAST_ALLOCATED; |
| |
| Note that while the name of this patch says "fragmentation-free allocator" |
| it will only be fragmentation-free when used for appropriate things. |
| This is not meant to be a general-purpose allocator. Only use it for sets of |
| allocations that are known to die roughly at the same time. |
| |
| BumpArena will never resume allocating from a block that has been filled, |
| so it's even more important than usual that everything gets deallocated. |
| |
| As noted above, calling allocate() with a null BumpArena will allocate out |
| of a global shared arena. Ideally you're always allocating out of a specific, |
| controlled arena, but there are situations where you may not have one. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/BumpArena.cpp: Added. |
| (WTF::BumpArena::Block::defaultCapacity): |
| (WTF::BumpArena::Block::arena): |
| (WTF::BumpArena::Block::payloadStart): |
| (WTF::globalArena): |
| (WTF::arenas): |
| (WTF::BumpArena::Block::Block): |
| (WTF::BumpArena::Block::~Block): |
| (WTF::BumpArena::Block::ref): |
| (WTF::BumpArena::Block::deref): |
| (WTF::BumpArena::Block::create): |
| (WTF::BumpArena::Block::dump): |
| (WTF::BumpArena::dump): |
| (WTF::BumpArena::create): |
| (WTF::BumpArena::BumpArena): |
| (WTF::BumpArena::~BumpArena): |
| (WTF::BumpArena::allocateSlow): |
| (WTF::BumpArena::allocate): |
| (WTF::BumpArena::deallocate): |
| (WTF::BumpArena::Block::blockFor): |
| (WTF::BumpArena::arenaFor): |
| * wtf/BumpArena.h: Added. |
| * wtf/CMakeLists.txt: |
| |
| 2016-01-08 Andy Estes <aestes@apple.com> |
| |
| [Content Filtering] Lazily load platform frameworks |
| https://bugs.webkit.org/show_bug.cgi?id=152881 |
| rdar://problem/23270886 |
| |
| Reviewed by Brady Eidson. |
| |
| * wtf/Platform.h: Moved definition of HAVE_NETWORK_EXTENSION to here from WebCore/platform/cocoa/NetworkExtensionContentFilter.h. |
| |
| 2016-01-12 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add a build flag for custom element |
| https://bugs.webkit.org/show_bug.cgi?id=153005 |
| |
| Reviewed by Alex Christensen. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-01-11 Andreas Kling <akling@apple.com> |
| |
| NeverDestroyed should relax adoption requirements on all RefCountedBase subclasses. |
| <https://webkit.org/b/152960> |
| |
| Reviewed by Antti Koivisto. |
| |
| Instead of relaxing on subclasses of RefCounted<T>, relax on subclasses of RefCountedBase. |
| This allows e.g NeverDestroyed<CSSPrimitiveValue> to relax its pointee despite the class |
| hierarchy starting with RefCounted<CSSValue> (not RefCounted<CSSPrimitiveValue>.) |
| |
| * wtf/NeverDestroyed.h: |
| |
| 2016-01-10 Saam barati <sbarati@apple.com> |
| |
| Implement a sampling profiler |
| https://bugs.webkit.org/show_bug.cgi?id=151713 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/MetaAllocator.cpp: |
| (WTF::MetaAllocator::decrementPageOccupancy): |
| (WTF::MetaAllocator::isInAllocatedMemory): |
| (WTF::MetaAllocator::roundUp): |
| * wtf/MetaAllocator.h: |
| (WTF::MetaAllocator::getLock): |
| * wtf/Platform.h: |
| |
| 2016-01-10 Filip Pizlo <fpizlo@apple.com> |
| |
| It should be possible to run liveness over registers without also tracking Tmps |
| https://bugs.webkit.org/show_bug.cgi?id=152963 |
| |
| Reviewed by Saam Barati. |
| |
| Add set methods (add/contains/remove) to BitVector, since it gets used as a set in a lot of |
| places. This also makes BitVector a drop-in replacement for HashSet<unsigned> in a lot of |
| places. |
| |
| Also made the iterator methods of BitVector live on BitVector directly rather than behind the |
| thing returned from setBits(). This makes sense since that makes BitVector even more of a |
| drop-in for HashSet. It's not harmful since we've never added any other mode of iterating a |
| BitVector other than this, so it doesn't make sense to make it harder to access. |
| |
| * wtf/BitVector.h: |
| (WTF::BitVector::get): |
| (WTF::BitVector::contains): |
| (WTF::BitVector::set): |
| (WTF::BitVector::add): |
| (WTF::BitVector::ensureSizeAndSet): |
| (WTF::BitVector::clear): |
| (WTF::BitVector::remove): |
| (WTF::BitVector::hash): |
| (WTF::BitVector::iterator::iterator): |
| (WTF::BitVector::iterator::operator*): |
| (WTF::BitVector::iterator::operator++): |
| (WTF::BitVector::iterator::operator==): |
| (WTF::BitVector::iterator::operator!=): |
| (WTF::BitVector::begin): |
| (WTF::BitVector::end): |
| (WTF::BitVector::bitsInPointer): |
| (WTF::BitVector::SetBitsIterable::SetBitsIterable): Deleted. |
| (WTF::BitVector::SetBitsIterable::iterator::iterator): Deleted. |
| (WTF::BitVector::SetBitsIterable::iterator::operator*): Deleted. |
| (WTF::BitVector::SetBitsIterable::iterator::operator++): Deleted. |
| (WTF::BitVector::SetBitsIterable::iterator::operator==): Deleted. |
| (WTF::BitVector::SetBitsIterable::iterator::operator!=): Deleted. |
| (WTF::BitVector::SetBitsIterable::begin): Deleted. |
| (WTF::BitVector::SetBitsIterable::end): Deleted. |
| (WTF::BitVector::setBits): Deleted. |
| |
| 2016-01-09 Andreas Kling <akling@apple.com> |
| |
| Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL |
| <https://webkit.org/b/152902> |
| |
| Reviewed by Anders Carlsson. |
| |
| Mostly mechanical conversion to NeverDestroyed throughout WTF. |
| |
| * wtf/RunLoop.cpp: |
| (WTF::RunLoop::current): |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::threadMapMutex): |
| (WTF::threadMap): |
| |
| 2016-01-08 Anders Carlsson <andersca@apple.com> |
| |
| Nullopt and InPlace should be structs, not enum values |
| https://bugs.webkit.org/show_bug.cgi?id=152915 |
| |
| Reviewed by Andreas Kling. |
| |
| Without this, |
| |
| Optional<int> o = flag ? 1 : Nullopt; |
| |
| would cause Nullopt to be treated as an integer, causing o to be initialized to 0, |
| instead of Nullopt. With this change, the above code now causes a compile error. |
| |
| Also, get rid of the CONSTEXPR macro since all compilers support constexpr properly, |
| and add a WTF::makeOptional to match the current iteration of std::experimental::optional. |
| |
| * wtf/Compiler.h: |
| * wtf/Forward.h: |
| * wtf/Optional.h: |
| (WTF::NulloptTag::NulloptTag): |
| (WTF::makeOptional): |
| * wtf/StdLibExtras.h: |
| (std::literals::chrono_literals::operator _s): |
| (std::literals::chrono_literals::operator _ms): |
| (std::move): |
| |
| 2016-01-06 Anders Carlsson <andersca@apple.com> |
| |
| Add a smart block pointer |
| https://bugs.webkit.org/show_bug.cgi?id=152799 |
| |
| Reviewed by Tim Horton. |
| |
| Introduce WTF::BlockPtr, a smart block pointer. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/BlockPtr.h: Added. |
| (WTF::makeBlockPtr): |
| |
| 2016-01-04 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Allow to save and restore session |
| https://bugs.webkit.org/show_bug.cgi?id=115600 |
| |
| Reviewed by Michael Catanzaro. |
| |
| Add GVariantIter specialization of GUniquePtr. |
| |
| * wtf/glib/GTypedefs.h: |
| * wtf/glib/GUniquePtr.h: |
| |
| 2016-01-04 Tim Horton <timothy_horton@apple.com> |
| |
| Turn on gesture events when building for Yosemite |
| https://bugs.webkit.org/show_bug.cgi?id=152704 |
| rdar://problem/24042472 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2016-01-04 Benjamin Poulain <bpoulain@apple.com> |
| |
| [JSC] Build B3 by default on iOS ARM64 |
| https://bugs.webkit.org/show_bug.cgi?id=152525 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/Platform.h: |
| |
| 2016-01-03 Andreas Kling <akling@apple.com> |
| |
| Unreviewed, rolling out r194510. |
| |
| Broke 2 API tests, no time to investigate right now |
| |
| Reverted changeset: |
| |
| "StringBuilder often creates two StringImpls." |
| https://bugs.webkit.org/show_bug.cgi?id=152662 |
| http://trac.webkit.org/changeset/194510 |
| |
| 2016-01-03 Khem Raj <raj.khem@gmail.com> |
| |
| WebKit fails to build with musl libc library |
| https://bugs.webkit.org/show_bug.cgi?id=152625 |
| |
| Reviewed by Daniel Bates. |
| |
| Disable ctype.h check for musl C library on Linux. |
| Enable backtrace on Linux when using glibc. |
| We don't have backtrace() implemented on non-glibc system |
| C libraries on Linux e.g. musl. |
| |
| * wtf/DisallowCType.h: Check for __GLIBC__. |
| * wtf/Assertions.cpp: |
| (WTFGetBacktrace): Check if libc is glibc. |
| |
| 2016-01-03 Andreas Kling <akling@apple.com> |
| |
| StringBuilder often creates two StringImpls. |
| <https://webkit.org/b/152662> |
| |
| Reviewed by Anders Carlsson. |
| |
| If StringBuilder didn't manage to guess the exact final length of the |
| string being built, it would still keep the buffer around, and the final |
| build process would then return a substring into that buffer. |
| |
| This effectively yielded two StringImpls instead of one, with the substring |
| retaining the longer buffer StringImpl. |
| |
| This patch improves the situation by having StringImpl crop the buffer's |
| m_length field to the final built string length. That way we never have to |
| return a substring. |
| |
| * wtf/text/StringBuilder.cpp: |
| (WTF::StringBuilder::reifyString): |
| * wtf/text/StringImpl.h: |
| |
| 2016-01-03 Andreas Kling <akling@apple.com> |
| |
| Remove redundant StringImpl substring creation function. |
| <https://webkit.org/b/152652> |
| |
| Reviewed by Daniel Bates. |
| |
| Remove StringImpl::createSubstringSharingImpl8() and make the only |
| caller use createSubstringSharingImpl() instead. |
| |
| They do the same thing anyway, the only difference is that the branch |
| on is8Bit() now happens in the callee instead of at the call site. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::createSubstringSharingImpl8): Deleted. |
| |
| 2015-12-31 Andy Estes <aestes@apple.com> |
| |
| Replace WTF::move with WTFMove |
| https://bugs.webkit.org/show_bug.cgi?id=152601 |
| |
| Reviewed by Brady Eidson. |
| |
| This also removes the definition of WTF::move. |
| |
| * wtf/Deque.h: |
| * wtf/HashMap.h: |
| * wtf/HashSet.h: |
| * wtf/HashTable.h: |
| (WTF::HashTable::add): |
| (WTF::KeyTraits>::HashTable): |
| * wtf/Insertion.h: |
| (WTF::executeInsertions): |
| * wtf/IteratorAdaptors.h: |
| (WTF::FilterIterator::FilterIterator): |
| (WTF::TransformIterator::TransformIterator): |
| (WTF::makeTransformIterator): |
| * wtf/IteratorRange.h: |
| (WTF::IteratorRange::IteratorRange): |
| * wtf/ListHashSet.h: |
| (WTF::U>::takeFirst): |
| (WTF::U>::takeLast): |
| * wtf/MainThread.cpp: |
| (WTF::callOnMainThread): |
| * wtf/MallocPtr.h: |
| (WTF::MallocPtr::operator=): |
| * wtf/MessageQueue.h: |
| (WTF::MessageQueue<DataType>::append): |
| (WTF::MessageQueue<DataType>::appendAndKill): |
| (WTF::MessageQueue<DataType>::appendAndCheckEmpty): |
| (WTF::MessageQueue<DataType>::prepend): |
| * wtf/NakedPtr.h: |
| (WTF::=): |
| * wtf/OSObjectPtr.h: |
| (WTF::OSObjectPtr::operator=): |
| * wtf/Optional.h: |
| (WTF::Optional::Optional): |
| (WTF::Optional::operator=): |
| * wtf/RefPtr.h: |
| (WTF::=): |
| * wtf/RetainPtr.h: |
| (WTF::=): |
| * wtf/RunLoop.cpp: |
| (WTF::RunLoop::dispatch): |
| * wtf/SharedTask.h: |
| (WTF::createSharedTask): |
| * wtf/StdLibExtras.h: |
| (WTF::move): Deleted. |
| * wtf/Threading.cpp: |
| (WTF::threadEntryPoint): |
| (WTF::createThread): |
| * wtf/Vector.h: |
| (WTF::Vector::takeLast): |
| * wtf/efl/DispatchQueueEfl.cpp: |
| (DispatchQueue::dispatch): |
| (DispatchQueue::setSocketEventHandler): |
| (DispatchQueue::performTimerWork): |
| (DispatchQueue::insertTimerWorkItem): |
| * wtf/efl/DispatchQueueWorkItemEfl.h: |
| (WorkItem::WorkItem): |
| (TimerWorkItem::create): |
| (TimerWorkItem::TimerWorkItem): |
| * wtf/efl/WorkQueueEfl.cpp: |
| (WorkQueue::registerSocketEventHandler): |
| (WorkQueue::dispatch): |
| (WorkQueue::dispatchAfter): |
| * wtf/glib/GRefPtr.h: |
| (WTF::=): |
| * wtf/glib/WorkQueueGLib.cpp: |
| (WTF::DispatchAfterContext::DispatchAfterContext): |
| (WTF::WorkQueue::dispatchAfter): |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::AtomicString): |
| (WTF::AtomicString::operator=): |
| * wtf/text/StringConcatenate.h: |
| (WTF::tryMakeString): |
| * wtf/text/WTFString.cpp: |
| (WTF::String::isolatedCopy): |
| * wtf/text/WTFString.h: |
| (WTF::String::String): |
| (WTF::StringCapture::releaseString): |
| * wtf/win/GDIObject.h: |
| (WTF::=): |
| |
| 2015-12-31 David Kilzer <ddkilzer@apple.com> |
| |
| Stop using USE(CFNETWORK) path on iOS |
| <https://webkit.org/b/142540> |
| |
| Step 1/2: Do everything but turn off USE(CFNETWORK) internally. |
| |
| Original patch by Antti Koivisto <antti@apple.com> on 2015-03-10 |
| Reviewed by Daniel Bates. |
| |
| * wtf/SchedulePair.h: Update macros to match WebCore. |
| |
| 2015-12-31 Andy Estes <aestes@apple.com> |
| |
| Rename WTF_MOVE to WTFMove |
| https://bugs.webkit.org/show_bug.cgi?id=152601 |
| |
| Reviewed by Daniel Bates. |
| |
| Our coding style guidelines say that macros that expand to function calls should be named like functions, |
| so WTFMove() is a more appropriate name. |
| |
| * wtf/StdLibExtras.h: |
| |
| 2015-12-30 Andy Estes <aestes@apple.com> |
| |
| Use of WTF::move prevents clang's move diagnostics from warning about several classes of mistakes |
| https://bugs.webkit.org/show_bug.cgi?id=152601 |
| |
| Reviewed by Brady Eidson. |
| |
| Clang has recently added warnings to catch certain classes of mistakes with the use of std::move(): |
| -Wpessimizing-move (warns if moving prevents copy elision), -Wredundant-move (warns if a move is redundant), |
| and -Wself-move (warns if moving to self). Enabling these warnings manually (by renaming WTF::move to std::move) |
| have caught numerous mistakes in our codebase (see http://trac.webkit.org/changeset/194428). |
| |
| It would be nice to be able to take advantage of these warnings, but doing so requires that we use std::move, |
| not WTF::move. But since WTF::move does provide useful checks for which clang does not yet have warnings, |
| we should write a best-of-both-worlds move function. |
| |
| This patch adds a function that satisfies clang's criteria for a move function (in namespace std, named "move", |
| and takes a single argument) but also retains WTF::move's compile-time checks. It also adds a convenience macro |
| called WTF_MOVE for use by callers. |
| |
| * wtf/StdLibExtras.h: |
| (std::move): |
| |
| 2015-12-25 Andy Estes <aestes@apple.com> |
| |
| Stop moving local objects in return statements |
| https://bugs.webkit.org/show_bug.cgi?id=152557 |
| |
| Reviewed by Brady Eidson. |
| |
| * wtf/StdLibExtras.h: Added a FIXME about how using WTF::move() prevents several Clang diagnostics from emitting useful warnings. |
| |
| 2015-12-22 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL B3 should be able to run richards |
| https://bugs.webkit.org/show_bug.cgi?id=152514 |
| |
| Reviewed by Michael Saboff. |
| |
| Change the list dumping helpers to work with a broader set of list kinds. |
| |
| * wtf/ListDump.h: |
| (WTF::ListDump::dump): |
| (WTF::MapDump::dump): |
| (WTF::sortedMapDump): |
| (WTF::ListDumpInContext::dump): |
| |
| 2015-12-22 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL B3 does not logicalNot correctly |
| https://bugs.webkit.org/show_bug.cgi?id=152512 |
| |
| Reviewed by Saam Barati. |
| |
| This change introduces yet another use of SharedTask in JSC. While doing this, I noticed that |
| SharedTask::run() always demands that whatever arguments the callback takes, they must be |
| passed as rvalue references. This was a clear misuse of perfect forwarding. This change makes |
| SharedTask's approach to forwarding match what we were already doing in ScopedLambda. |
| |
| * wtf/SharedTask.h: |
| |
| 2015-12-20 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [SOUP] Performs DNS prefetch when a proxy is configured (information leak) |
| https://bugs.webkit.org/show_bug.cgi?id=145542 |
| |
| Reviewed by Darin Adler. |
| |
| Specialize GUniquePtr<char*>, using g_strfreev. |
| |
| * wtf/glib/GUniquePtr.h: |
| |
| 2015-12-19 Dan Bernstein <mitz@apple.com> |
| |
| [Mac] WebKit contains dead source code for OS X Mavericks and earlier |
| https://bugs.webkit.org/show_bug.cgi?id=152462 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Configurations/DebugRelease.xcconfig: Removed definition of MACOSX_DEPLOYMENT_TARGET for |
| OS X 10.9. |
| |
| - Simplified expressions involving __MAC_OS_X_VERSION_MIN_REQUIRED and removed code that was |
| never getting compiled: |
| |
| * wtf/FeatureDefines.h: |
| * wtf/MainThread.h: |
| * wtf/OSObjectPtr.h: |
| * wtf/Platform.h: |
| * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: |
| * wtf/spi/darwin/XPCSPI.h: |
| |
| 2015-12-17 Sukolsak Sakshuwong <sukolsak@gmail.com> |
| |
| [INTL] Implement Collator Compare Functions |
| https://bugs.webkit.org/show_bug.cgi?id=147604 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/unicode/Collator.h: |
| |
| 2015-12-16 Andreas Kling <akling@apple.com> |
| |
| Give kernel VM some hints about non-live memory-cached resources. |
| <https://webkit.org/b/152362> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add an API to OSAllocator for hinting to the OS that a range of memory |
| is not expected to be used anytime soon. |
| |
| * wtf/OSAllocator.h: |
| * wtf/OSAllocatorPosix.cpp: |
| (WTF::OSAllocator::hintMemoryNotNeededSoon): |
| * wtf/OSAllocatorWin.cpp: |
| (WTF::OSAllocator::hintMemoryNotNeededSoon): |
| * wtf/Platform.h: |
| |
| 2015-12-16 Alex Christensen <achristensen@webkit.org> |
| |
| Fix internal Windows build |
| https://bugs.webkit.org/show_bug.cgi?id=152364 |
| rdar://problem/23928759 |
| |
| Reviewed by Tim Horton. |
| |
| * WTF.vcxproj/WTF.proj: |
| |
| 2015-12-16 Youenn Fablet <youenn.fablet@crf.canon.fr> |
| |
| [Fetch API] Add fetch API compile time flag |
| https://bugs.webkit.org/show_bug.cgi?id=152254 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-12-14 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Math.random should have an intrinsic thunk and it should be later handled as a DFG Node |
| https://bugs.webkit.org/show_bug.cgi?id=152133 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Change 64bit random to double logic to convert efficiently. |
| |
| * wtf/WeakRandom.h: |
| (WTF::WeakRandom::get): |
| (WTF::WeakRandom::lowOffset): |
| (WTF::WeakRandom::highOffset): |
| |
| 2015-12-14 Sukolsak Sakshuwong <sukolsak@gmail.com> |
| |
| Make UCharIterator createIterator(StringView) visible to other classes |
| https://bugs.webkit.org/show_bug.cgi?id=151917 |
| |
| Reviewed by Darin Adler. |
| |
| Make UCharIterator createIterator(StringView) in CollatorICU.cpp visible |
| to other classes so that future patches that will ucol_strcollIter |
| (including Bug 147604) can use it. |
| |
| * wtf/unicode/Collator.h: |
| * wtf/unicode/icu/CollatorICU.cpp: |
| (WTF::createIterator): |
| |
| 2015-12-14 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r162777): Remove Boost Software License from WTF |
| <http://webkit.org/b/152243> |
| |
| Reviewed by Darin Adler. |
| |
| The source code that the Boost Software License was referring to |
| was removed in r162777 by switching to std::atomic. |
| |
| * wtf/Atomics.cpp: |
| * wtf/Atomics.h: |
| * wtf/ThreadSafeRefCounted.h: |
| - Remove Boost Software License. |
| - Update Apple Inc. copyright as needed. |
| - Refresh Apple Inc. license text. |
| |
| 2015-12-10 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Remote Inspector: Verify the identity of the other side of XPC connections |
| https://bugs.webkit.org/show_bug.cgi?id=152153 |
| |
| Reviewed by Brian Burg. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/spi/cocoa/SecuritySPI.h: Renamed from Source/WebCore/platform/spi/cocoa/SecuritySPI.h. |
| Push this down into WTF from WebCore and add a new method. |
| |
| 2015-12-08 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL B3 should have basic GetById support |
| https://bugs.webkit.org/show_bug.cgi?id=152035 |
| |
| Reviewed by Saam Barati. |
| |
| When dealing with shared task lambdas, you often want to force a value to be allocated so that it |
| has reference semantics, but you still want the lambda to execute OK when we pop stack. In PL we |
| usually call this a "box". This is easy to do if the value that happened to be stack-allocated |
| is also RefCounted, but that's rare, since stack-allocated values often have copy semantics. So, |
| I've added a Box type to WTF. Behind the scenes, it allocates your object with fast malloc inside |
| a ThreadSAfeRefCounted. When you pass Box<T>, you're passing the reference. This makes it a lot |
| easier to work with by-reference capture. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/Box.h: Added. |
| (WTF::Box::Box): |
| (WTF::Box::create): |
| (WTF::Box::get): |
| (WTF::Box::operator*): |
| (WTF::Box::operator->): |
| (WTF::Box::operator bool): |
| (WTF::Box::Data::Data): |
| |
| 2015-12-09 Andreas Kling <akling@apple.com> |
| |
| [iOS] ResourceUsageOverlay should work on iOS. |
| <https://webkit.org/b/152021> |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/Platform.h: Enable RESOURCE_USAGE_OVERLAY for all COCOA platforms. |
| |
| 2015-12-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Create a Sandbox SPI header |
| https://bugs.webkit.org/show_bug.cgi?id=151981 |
| |
| Reviewed by Andy Estes. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/spi/darwin/SandboxSPI.h: Added. |
| |
| 2015-12-07 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL B3 should be able to flag the tag constants as being super important so that B3 can hoist them and Air can force them into registers |
| https://bugs.webkit.org/show_bug.cgi?id=151955 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Remove some remaining DFG-specific snippets from Dominators. This used to be a non-template |
| DFG class, and some time ago I hoisted it into WTF and made it generic. But since the only |
| user of the class was the DFG, this class still had a handful of DFG-specific snippets that |
| didn't compile when I started using it from B3. |
| |
| Also renamed immediateDominatorOf() to idom(). This is the sort of abbreviation that we |
| wouldn't ordinarily want to have in WebKit. But WebKit does allow for abbreviations that are |
| "more canonical". The term "idom" is definitely more canonical than "immediateDominatorOf". |
| |
| * wtf/Dominators.h: |
| (WTF::Dominators::dominates): |
| (WTF::Dominators::idom): |
| (WTF::Dominators::forAllStrictDominatorsOf): |
| (WTF::Dominators::NaiveDominators::dominates): |
| (WTF::Dominators::NaiveDominators::dump): |
| (WTF::Dominators::ValidationContext::handleErrors): |
| |
| 2015-12-03 Anders Carlsson <andersca@apple.com> |
| |
| Remove Objective-C GC support |
| https://bugs.webkit.org/show_bug.cgi?id=151819 |
| rdar://problem/23746991 |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::initializeCurrentThreadInternal): Deleted. |
| * wtf/text/cf/StringImplCF.cpp: |
| (WTF::StringImpl::createCFString): |
| (garbageCollectionEnabled): Deleted. |
| (WTF::StringWrapperCFAllocator::create): Deleted. |
| |
| 2015-12-02 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL B3 should support OSR exit |
| https://bugs.webkit.org/show_bug.cgi?id=151710 |
| |
| Reviewed by Saam Barati. |
| |
| Make sure that this has perfect forwarding. |
| |
| * wtf/SegmentedVector.h: |
| (WTF::SegmentedVector::append): |
| (WTF::SegmentedVector::alloc): |
| |
| 2015-12-01 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [ES6] Implement LLInt/Baseline Support for ES6 Generators and enable this feature |
| https://bugs.webkit.org/show_bug.cgi?id=150792 |
| |
| Reviewed by Saam Barati. |
| |
| * wtf/FastBitVector.h: |
| (WTF::FastBitVector::forEachSetBit): |
| * wtf/FeatureDefines.h: |
| |
| 2015-12-01 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r192914. |
| https://bugs.webkit.org/show_bug.cgi?id=151734 |
| |
| JSC tests for this change are failing on 32 and 64-bit bots |
| (Requested by ryanhaddad on #webkit). |
| |
| Reverted changeset: |
| |
| "[ES6] Implement LLInt/Baseline Support for ES6 Generators and |
| enable this feature" |
| https://bugs.webkit.org/show_bug.cgi?id=150792 |
| http://trac.webkit.org/changeset/192914 |
| |
| 2015-12-01 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Give String and AtomicString an existingHash() function |
| https://bugs.webkit.org/show_bug.cgi?id=151717 |
| |
| Reviewed by Andreas Kling. |
| |
| Test: WTF.AtomicStringExistingHash |
| WTF.StringExistingHash |
| |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::existingHash): |
| * wtf/text/WTFString.h: |
| (WTF::String::existingHash): |
| |
| 2015-12-01 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [ES6] Implement LLInt/Baseline Support for ES6 Generators and enable this feature |
| https://bugs.webkit.org/show_bug.cgi?id=150792 |
| |
| Reviewed by Saam Barati. |
| |
| * wtf/FastBitVector.h: |
| (WTF::FastBitVector::forEachSetBit): |
| * wtf/FeatureDefines.h: |
| |
| 2015-11-30 Geoffrey Garen <ggaren@apple.com> |
| |
| Use a better RNG for Math.random() |
| https://bugs.webkit.org/show_bug.cgi?id=151641 |
| |
| Reviewed by Anders Carlsson. |
| |
| Use 64 bits in the random number generator instead of 32 bit. (In |
| the end, JavaScript, which uses doubles, will only see 52 bits.) This |
| prevents programs that multiply a random number by a large constant from |
| seeing non-random "banding" caused by zeroes in the low 20 bits. |
| |
| I also took the opportunity to upgrade from GameRandom to Xorshift+, |
| since Xorshift+ passes more benchmarks for randomness, and is not any |
| slower or more complicated. |
| |
| Now let us all remember the fateful words of Steve Weibe, who would be |
| King of Kong: "The randomness went the opposite way that it usually goes." |
| |
| * wtf/WeakRandom.h: |
| (WTF::WeakRandom::WeakRandom): |
| (WTF::WeakRandom::setSeed): Use standard naming. |
| |
| (WTF::WeakRandom::seed): This function is safe now. "Unsafe" in function |
| names makes me itch. |
| |
| (WTF::WeakRandom::get): |
| (WTF::WeakRandom::getUint32): Update to 64bit. |
| |
| (WTF::WeakRandom::advance): The Xorshift+ algorithm. |
| |
| (WTF::WeakRandom::initializeSeed): Deleted. |
| (WTF::WeakRandom::seedUnsafe): Deleted. |
| |
| 2015-11-30 Benjamin Poulain <bpoulain@apple.com> |
| |
| [JSC] Speed up Air Liveness Analysis on Tmps |
| https://bugs.webkit.org/show_bug.cgi?id=151556 |
| |
| Reviewed by Filip Pizlo. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/IndexSparseSet.h: Added. |
| (WTF::IndexSparseSet<OverflowHandler>::IndexSparseSet): |
| (WTF::IndexSparseSet<OverflowHandler>::add): |
| (WTF::IndexSparseSet<OverflowHandler>::remove): |
| (WTF::IndexSparseSet<OverflowHandler>::clear): |
| (WTF::IndexSparseSet<OverflowHandler>::size): |
| (WTF::IndexSparseSet<OverflowHandler>::isEmpty): |
| (WTF::IndexSparseSet<OverflowHandler>::contains): |
| |
| 2015-11-30 Tim Horton <timothy_horton@apple.com> |
| |
| Get rid of the !USE(ASYNC_NSTEXTINPUTCLIENT) codepath |
| https://bugs.webkit.org/show_bug.cgi?id=151673 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Platform.h: |
| |
| 2015-11-30 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GLIB] Remove GMainLoopSource and GThreadSafeMainLoopSource |
| https://bugs.webkit.org/show_bug.cgi?id=151633 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * wtf/PlatformEfl.cmake: |
| * wtf/PlatformGTK.cmake: |
| * wtf/glib/GMainLoopSource.cpp: Removed. |
| * wtf/glib/GMainLoopSource.h: Removed. |
| * wtf/glib/GThreadSafeMainLoopSource.cpp: Removed. |
| * wtf/glib/GThreadSafeMainLoopSource.h: Removed. |
| |
| 2015-11-27 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Fix build warning in bignum.cc |
| https://bugs.webkit.org/show_bug.cgi?id=150797 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/dtoa/bignum.cc: |
| |
| 2015-11-18 Daniel Bates <dabates@apple.com> |
| |
| [iOS] ASSERTION FAILED: temporaryFilePath.last() == '/' in WebCore::openTemporaryFile() |
| https://bugs.webkit.org/show_bug.cgi?id=151392 |
| <rdar://problem/23595341> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Workaround <rdar://problem/23579077> where confstr(_CS_DARWIN_USER_TEMP_DIR, ..., ...) retrieves |
| the path to the user temporary directory without a trailing slash in the iOS simulator. |
| |
| * wtf/DataLog.cpp: |
| (WTF::initializeLogFileOnce): |
| |
| 2015-11-17 Filip Pizlo <fpizlo@apple.com> |
| |
| CheckAdd/Mul should have commutativity optimizations in B3->Air lowering |
| https://bugs.webkit.org/show_bug.cgi?id=151214 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Disable my failed attempts at perfect forwarding, since they were incorrect, and caused compile |
| errors if you tried to pass an argument that bound to lvalue. This shouldn't affect performance of |
| anything we care about, and performance tests seem to confirm that it's all good. |
| |
| * wtf/ScopedLambda.h: |
| |
| 2015-11-17 Filip Pizlo <fpizlo@apple.com> |
| |
| Air should lay out code optimally |
| https://bugs.webkit.org/show_bug.cgi?id=150478 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/GraphNodeWorklist.h: |
| (WTF::GraphNodeWorklist::push): |
| (WTF::GraphNodeWorklist::isEmpty): |
| (WTF::GraphNodeWorklist::notEmpty): |
| (WTF::GraphNodeWorklist::pop): |
| |
| 2015-11-11 Anders Carlsson <andersca@apple.com> |
| |
| Enable cross-platform context menus by default |
| https://bugs.webkit.org/show_bug.cgi?id=151173 |
| |
| Reviewed by Tim Horton. |
| |
| * wtf/Platform.h: |
| |
| 2015-11-12 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Remove ENABLE(SATURATED_LAYOUT_ARITHMETIC) guards |
| https://bugs.webkit.org/show_bug.cgi?id=150972 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-11-11 Filip Pizlo <fpizlo@apple.com> |
| |
| B3 should be able to compile and canonicalize Mul |
| https://bugs.webkit.org/show_bug.cgi?id=151124 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/MathExtras.h: |
| (WTF::fastLog2): |
| |
| 2015-11-10 Filip Pizlo <fpizlo@apple.com> |
| |
| B3 should be able to compile a program with ChillDiv |
| https://bugs.webkit.org/show_bug.cgi?id=151114 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Needed to beef up some compiler algorithms. All of the hardening was about making them |
| work with objects that have move semantics but not copy semantics. This arises in B3 |
| basic block insertion sets. |
| |
| * wtf/BubbleSort.h: |
| (WTF::bubbleSort): |
| * wtf/Insertion.h: |
| (WTF::Insertion::Insertion): |
| (WTF::Insertion::index): |
| (WTF::Insertion::element): |
| (WTF::Insertion::operator<): |
| (WTF::executeInsertions): |
| |
| 2015-11-10 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Use CROSS_PLATFORM_CONTEXT_MENUS |
| https://bugs.webkit.org/show_bug.cgi?id=150642 |
| |
| Reviewed by Martin Robinson. |
| |
| Enable CROSS_PLATFORM_CONTEXT_MENUS for GTK+ port. |
| |
| * wtf/Platform.h: |
| |
| 2015-11-09 Anders Carlsson <andersca@apple.com> |
| |
| Introspect reply block types as well |
| https://bugs.webkit.org/show_bug.cgi?id=151048 |
| |
| Reviewed by Tim Horton. |
| |
| Fix operator-> implementation. |
| |
| * wtf/Optional.h: |
| (WTF::Optional::operator->): |
| |
| 2015-11-05 Nikos Andronikos <nikos.andronikos-webkit@cisra.canon.com.au> |
| |
| Add runtime and compile time flags for enabling Web Animations API and model. |
| https://bugs.webkit.org/show_bug.cgi?id=150914 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Add ENABLE_WEB_ANIMATIONS compile time flag, runtime flag webAnimationsEnabled and Expose WK2 preference for runtime flag. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-11-05 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GLib] Avoid gint64, std::chrono::microseconds overflows in RunLoop::TimerBase |
| https://bugs.webkit.org/show_bug.cgi?id=150930 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| In RunLoop::TimerBase::start(), avoid overflowing the std::chrono::microseconds |
| value in case the passed-in fire interval (in seconds) is too large (e.g. when |
| std::chrono::microseconds::max() is used as the desired interval). This is |
| achieved by using the passed-in fire interval, converted in microseconds, only |
| if the value of this interval is smaller than std::chrono::microseconds::max(). |
| |
| In RunLoop::TimerBase::updateReadyTime(), the zero-delay is still considered a |
| short cut, but we use G_MAXINT64 in case the sum of the current time and the |
| desired fire interval (now in microseconds) would overflow. |
| |
| * wtf/glib/RunLoopGLib.cpp: |
| (WTF::RunLoop::TimerBase::updateReadyTime): |
| (WTF::RunLoop::TimerBase::start): |
| |
| 2015-11-02 Filip Pizlo <fpizlo@apple.com> |
| |
| B3/Air should use bubble sort for their insertion sets, because it's faster than std::stable_sort |
| https://bugs.webkit.org/show_bug.cgi?id=150828 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add a pretty good bubble sort implementation to WTF. This implementation has three |
| common tricks: |
| |
| - Forward and backward scans. This reduces the severity of certain kinds of bubble sort |
| pathologies. |
| |
| - Return if a scan finds the list to be sorted. This gives the algorithm one of its most |
| attractive properties: it's super fast when the list is already sorted. |
| |
| - Each scan eliminates one element from future scans. This makes the algorithm no worse |
| than insertion sort. |
| |
| Why do we want this? Because bubble sort is a really great stable sort for small lists, |
| or large lists in which only a handful of elements are out of order. Compiler insertion |
| sets tend to be one of those or somewhere in between: usually they are very small, and |
| usually they are sorted. It's rare that an element will be out of order, and when it is, |
| it's usually very close to where it's supposed to be. |
| |
| This is a significant speed-up for B3 compile times. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/BubbleSort.h: Added. |
| (WTF::bubbleSort): |
| * wtf/CMakeLists.txt: |
| |
| 2015-11-02 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] Add tvOS and watchOS to SUPPORTED_PLATFORMS |
| https://bugs.webkit.org/show_bug.cgi?id=150819 |
| |
| Reviewed by Dan Bernstein. |
| |
| This tells Xcode to include these platforms in its Devices dropdown, making it possible to build in the IDE. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2015-11-02 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GLIB] Remove support for GSocket main loop sources from GMainLoopSource |
| https://bugs.webkit.org/show_bug.cgi?id=150772 |
| |
| Reviewed by Žan Doberšek. |
| |
| It complicated the code just to make generic what is only used in |
| one place. |
| |
| * wtf/glib/GMainLoopSource.cpp: |
| (WTF::GMainLoopSource::cancel): Deleted. |
| (WTF::GMainLoopSource::schedule): Deleted. |
| (WTF::GMainLoopSource::scheduleTimeoutSource): Deleted. |
| (WTF::GMainLoopSource::scheduleAfterDelay): Deleted. |
| (WTF::GMainLoopSource::finishVoidCallback): Deleted. |
| (WTF::GMainLoopSource::voidCallback): Deleted. |
| (WTF::GMainLoopSource::prepareBoolCallback): Deleted. |
| * wtf/glib/GMainLoopSource.h: |
| (WTF::GMainLoopSource::Context::operator=): Deleted. |
| |
| 2015-11-02 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GLIB] Remove delete on destroy GMainLoopSources |
| https://bugs.webkit.org/show_bug.cgi?id=150771 |
| |
| Reviewed by Žan Doberšek. |
| |
| Delete on destroy sources made the GMainLoopSource implementation |
| more complex and they are currently unused. |
| |
| * wtf/glib/GMainLoopSource.cpp: |
| (WTF::GMainLoopSource::boolCallback): |
| (WTF::GMainLoopSource::create): Deleted. |
| (WTF::GMainLoopSource::GMainLoopSource): Deleted. |
| (WTF::GMainLoopSource::cancel): Deleted. |
| (WTF::GMainLoopSource::scheduleAndDeleteOnDestroy): Deleted. |
| (WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy): Deleted. |
| (WTF::GMainLoopSource::voidCallback): Deleted. |
| * wtf/glib/GMainLoopSource.h: |
| |
| 2015-11-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Use RunLoop in WorkQueue implementation |
| https://bugs.webkit.org/show_bug.cgi?id=150770 |
| |
| Reviewed by Darin Adler. |
| |
| Instead of using GMainLoop directly. RunLoop already abstracts the |
| GMainLoop details and uses persistent sources making it more efficient. |
| For the dispatchAfter implementation we use a helper context class |
| and a GSource directly, since we are going to get rid of delete on |
| destroy GMainLoop soon and this is the only place where we still |
| use them. |
| |
| * wtf/RunLoop.h: |
| (WTF::RunLoop::mainContext): Return the GMainContext. |
| * wtf/WorkQueue.h: |
| * wtf/glib/WorkQueueGLib.cpp: |
| (WTF::WorkQueue::platformInitialize): The RunLoop needs to be |
| created in the worker thread now, so we now use a mutex to wait |
| until the thread has started and the RunLoop has been created. |
| (WTF::WorkQueue::platformInvalidate): Stop the RunLoop and wait |
| until the thread finishes. |
| (WTF::WorkQueue::dispatch): Use RunLoop::dispatch(). |
| (WTF::DispatchAfterContext::DispatchAfterContext): |
| (WTF::DispatchAfterContext::~DispatchAfterContext): |
| (WTF::DispatchAfterContext::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| |
| 2015-11-01 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [ES6] Support Generator Syntax |
| https://bugs.webkit.org/show_bug.cgi?id=150769 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Added ENABLE_ES6_GENERATORS flag. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-11-01 Darin Adler <darin@apple.com> |
| |
| ASCIICType refinements |
| https://bugs.webkit.org/show_bug.cgi?id=150787 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Refined ASCIICType.h by using narrower types. The most valuable part of this |
| is the part where the result of toASCIIHexValue is uint8_t instead of int; |
| that's slightly better for RGB values that the compiler needs to know fit |
| into a byte (coming in some Color work I plan to do soon). |
| |
| * wtf/ASCIICType.h: Used CharacterType instead of CharType throughout, and |
| also sorted the using declarations at the bottom of the header. |
| (WTF::isASCII): Use the name "character" instead of "c". |
| (WTF::isASCIIAlpha): Ditto. Also use isASCIILower and toASCIILowerUnchecked |
| instead of writing it out. |
| (WTF::isASCIIDigit): Ditto. |
| (WTF::isASCIIAlphanumeric): Ditto. |
| (WTF::isASCIIHexDigit): Ditto. Also use toASCIILowerUnchecked instead of |
| writing it out. |
| (WTF::isASCIILower): Ditto. |
| (WTF::isASCIIBinaryDigit): Ditto. Also removed unneeded parentheses to match |
| the style of the rest of the file. |
| (WTF::isASCIIOctalDigit): Ditto. |
| (WTF::isASCIIPrintable): Ditto. |
| (WTF::isASCIISpace): Ditto. |
| (WTF::isASCIIUpper): Ditto. |
| (WTF::toASCIILower): Ditto. Also use isASCIIUpper instead of writing it out. |
| (WTF::toASCIILowerUnchecked): Tweaked comment. |
| (WTF::toASCIIUpper): Ditto. Also use isASCIILower instead of writing it out. |
| (WTF::toASCIIHexValue): Ditto. Also change return type from int to uint8_t. |
| Also broke a single assertion with && into two separate assertions and got |
| rid of unnnecessary masking with 0xF0 after shifting left. Also renamed |
| arguments for the two argument value so they are more sensible. |
| (WTF::lowerNibbleToASCIIHexDigit): Changed argument type to uint8_t, since |
| this function does not take a character. Also called it "value" instead of "c". |
| Also slightly tweaked how the expression is written. |
| (WTF::upperNibbleToASCIIHexDigit): Ditto. Using the more specific type also |
| got rid of the need to explicitly mask in this function. |
| (WTF::isASCIIAlphaCaselessEqual): Renamed the arguments for greater clarity. |
| With the new clearer argument names, the comment was superfluous. |
| |
| 2015-11-01 Filip Pizlo <fpizlo@apple.com> |
| |
| Dominators should be factored out of the DFG |
| https://bugs.webkit.org/show_bug.cgi?id=150764 |
| |
| Reviewed by Geoffrey Garen. |
| |
| This takes what used to be DFGDominators.h/DFGDominators.cpp and turns it into a generic |
| algorithm that can take any abstract graph. The idea is that you create Dominators<CFG> and |
| pass it a CFG object, which defines the types of graph nodes and methods for getting |
| successors, predecessors, etc. The DFG now defines a class called CFG, which is a wrapper for |
| DFG::Graph that conforms to the thing that wtf/Dominators.h expects. |
| |
| When doing things to graphs, it's common to refer to the things in the graph as "nodes". |
| Because I intend to reuse the CFG abstraction with many graph algorithms, that abstraction uses |
| the term "node" to refer to a DFG basic block. But in Dominators, the method and variable names |
| still use "block". This is because although Dominators are applicable to any kind of directed |
| graph, it's super unlikely that we will ever use them for anything but compilers. Indeed, the |
| only reason why I'm factoring them out of the DFG is so that I can use them with B3 and Air. |
| |
| This has the nice side effect that a user of WTF::Dominators<JSC::DFG::CFG> will see familiar |
| terminology like "blocksStrictlyDominatedBy(...)" instead of "nodesStrictlyDominatedBy(...)", |
| which would be super confusing. |
| |
| Overall, wtf/Dominators.h is a combination of what used to be in DFGDominators.h, |
| DFGDominators.cpp, DFGNaiveDominators.h, and DFGNaiveDominators.cpp. I only changed code when I |
| had to in order to make it generic. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/Dominators.h: Added. |
| (WTF::Dominators::Dominators): |
| (WTF::Dominators::compute): |
| (WTF::Dominators::strictlyDominates): |
| (WTF::Dominators::dominates): |
| (WTF::Dominators::immediateDominatorOf): |
| (WTF::Dominators::forAllStrictDominatorsOf): |
| (WTF::Dominators::forAllDominatorsOf): |
| (WTF::Dominators::forAllBlocksStrictlyDominatedBy): |
| (WTF::Dominators::forAllBlocksDominatedBy): |
| (WTF::Dominators::strictDominatorsOf): |
| (WTF::Dominators::dominatorsOf): |
| (WTF::Dominators::blocksStrictlyDominatedBy): |
| (WTF::Dominators::blocksDominatedBy): |
| (WTF::Dominators::forAllBlocksInDominanceFrontierOf): |
| (WTF::Dominators::dominanceFrontierOf): |
| (WTF::Dominators::forAllBlocksInIteratedDominanceFrontierOf): |
| (WTF::Dominators::forAllBlocksInPrunedIteratedDominanceFrontierOf): |
| (WTF::Dominators::iteratedDominanceFrontierOf): |
| (WTF::Dominators::dump): |
| (WTF::Dominators::LengauerTarjan::LengauerTarjan): |
| (WTF::Dominators::LengauerTarjan::compute): |
| (WTF::Dominators::LengauerTarjan::immediateDominator): |
| (WTF::Dominators::LengauerTarjan::computeDepthFirstPreNumbering): |
| (WTF::Dominators::LengauerTarjan::computeSemiDominatorsAndImplicitImmediateDominators): |
| (WTF::Dominators::LengauerTarjan::computeExplicitImmediateDominators): |
| (WTF::Dominators::LengauerTarjan::link): |
| (WTF::Dominators::LengauerTarjan::eval): |
| (WTF::Dominators::LengauerTarjan::compress): |
| (WTF::Dominators::LengauerTarjan::BlockData::BlockData): |
| (WTF::Dominators::NaiveDominators::NaiveDominators): |
| (WTF::Dominators::NaiveDominators::dominates): |
| (WTF::Dominators::NaiveDominators::dump): |
| (WTF::Dominators::NaiveDominators::pruneDominators): |
| (WTF::Dominators::ValidationContext::ValidationContext): |
| (WTF::Dominators::ValidationContext::reportError): |
| (WTF::Dominators::ValidationContext::handleErrors): |
| (WTF::Dominators::naiveDominates): |
| (WTF::Dominators::forAllBlocksInDominanceFrontierOfImpl): |
| (WTF::Dominators::forAllBlocksInIteratedDominanceFrontierOfImpl): |
| (WTF::Dominators::BlockData::BlockData): |
| |
| 2015-11-01 Darin Adler <darin@apple.com> |
| |
| Remove some dead and unneeded code (ScrollbarThemeSafari, RenderThemeSafari, OPENCL, a little color space logic) |
| https://bugs.webkit.org/show_bug.cgi?id=150783 |
| |
| Reviewed by Tim Horton. |
| |
| * wtf/FeatureDefines.h: Removed the OPENCL feature, no longer supported. |
| |
| 2015-10-31 Filip Pizlo <fpizlo@apple.com> |
| |
| B3::reduceStrength's DCE should be more agro and less wrong |
| https://bugs.webkit.org/show_bug.cgi?id=150748 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/GraphNodeWorklist.h: |
| (WTF::GraphNodeWorklist::saw): This method is super useful. |
| |
| 2015-11-01 Philip Chimento <philip.chimento@gmail.com> |
| |
| [GTK] Fix combinations of PLATFORM(GTK) and OS(DARWIN) |
| https://bugs.webkit.org/show_bug.cgi?id=144560 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Platform.h: Don't USE(ACCELERATE) on PLATFORM(GTK). |
| * wtf/WorkQueue.h: Change order of OS(DARWIN) and PLATFORM(GTK) |
| checks so that GTK facilities are used even when building the |
| GTK platform on Darwin. |
| |
| 2015-11-01 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Use RunLoop::Timer in main thread shared timer GTK+ implementation |
| https://bugs.webkit.org/show_bug.cgi?id=150754 |
| |
| Reviewed by Darin Adler. |
| |
| Add API to set the priority of a RunLoop::Timer for GLib. |
| |
| * wtf/RunLoop.h: |
| * wtf/glib/RunLoopGLib.cpp: |
| (WTF::RunLoop::TimerBase::setPriority): |
| |
| 2015-10-31 Andreas Kling <akling@apple.com> |
| |
| Add a debug overlay with information about web process resource usage. |
| <https://webkit.org/b/150599> |
| |
| Reviewed by Darin Adler. |
| |
| Add ENABLE(RESOURCE_USAGE_OVERLAY) flag, enabled on Mac by default. |
| |
| * wtf/Platform.h: |
| |
| 2015-10-30 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r191673): Crash in RunLoopTimer::schedule() |
| https://bugs.webkit.org/show_bug.cgi?id=150723 |
| |
| Reviewed by Anders Carlsson. |
| |
| We were crashing in RunLoopTimer::schedule() when iterating over the |
| SchedulePairHashSet. The reason is that we were passing this |
| SchedulePairHashSet from the main thread to a background thread, which |
| was not safe because the SchedulePair objects inside the HashSet were |
| not ThreadSafeRefCounted. This patch makes them ThreadSafeRefCounted. |
| |
| * wtf/SchedulePair.h: |
| |
| 2015-10-30 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Move the socket polling off the WorkQueue |
| https://bugs.webkit.org/show_bug.cgi?id=150593 |
| |
| Reviewed by Anders Carlsson. |
| |
| It doesn't really belong to the WorkQueue, it's only used by the |
| WebKit2 connection, so it can be moved there. |
| |
| * wtf/WorkQueue.h: |
| * wtf/glib/WorkQueueGLib.cpp: |
| (WTF::WorkQueue::registerSocketEventHandler): Deleted. |
| (WTF::WorkQueue::unregisterSocketEventHandler): Deleted. |
| |
| 2015-10-29 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Use a persistent main loop source in RunLoop glib implementation |
| https://bugs.webkit.org/show_bug.cgi?id=150590 |
| |
| Reviewed by Žan Doberšek. |
| |
| It's more efficient than creating and destroying a new source for |
| every dispatch and it simplifies the code. |
| |
| * wtf/RunLoop.h: |
| * wtf/glib/MainThreadGLib.cpp: |
| (WTF::scheduleDispatchFunctionsOnMainThread): Use |
| RunLoop::dispatch() instead of GMainLoopSource::scheduleAndDeleteOnDestroy(). |
| * wtf/glib/RunLoopGLib.cpp: |
| (WTF::RunLoop::RunLoop): Create and setup the persistent source. |
| (WTF::RunLoop::~RunLoop): Destroy the persistent source. |
| (WTF::RunLoop::stop): Stop the persistent source before stopping |
| the main loop. |
| (WTF::RunLoop::wakeUp): Make the persistent source active. We |
| no longer need to explicitly wakeup the context. |
| (WTF::RunLoop::TimerBase::TimerBase): Create and setup the |
| persistent source. |
| (WTF::RunLoop::TimerBase::~TimerBase): Destroy the persistent source. |
| (WTF::RunLoop::TimerBase::updateReadyTime): Set the ready time |
| according to the fire interval. |
| (WTF::RunLoop::TimerBase::start): Make the persistent source active. |
| (WTF::RunLoop::TimerBase::stop): Stop the persistent source. |
| (WTF::RunLoop::TimerBase::isActive): Return whether the |
| persistent source is active. |
| |
| 2015-10-30 Philippe Normand <pnormand@igalia.com> |
| |
| [GTK][Mac] fix WTF build |
| https://bugs.webkit.org/show_bug.cgi?id=150502 |
| |
| Reviewed by Alex Christensen. |
| |
| * wtf/CMakeLists.txt: Add CommonCryptoSPI.h in the headers. |
| |
| 2015-10-29 Alex Christensen <achristensen@webkit.org> |
| |
| Fix Mac CMake build |
| https://bugs.webkit.org/show_bug.cgi?id=150686 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/CMakeLists.txt: |
| * wtf/Platform.h: |
| * wtf/PlatformMac.cmake: |
| |
| 2015-10-29 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r191728. |
| https://bugs.webkit.org/show_bug.cgi?id=150668 |
| |
| Caused a lot of timeouts in layout tests (Requested by KaL on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "[GTK] Use a persistent main loop source in RunLoop glib |
| implementation" |
| https://bugs.webkit.org/show_bug.cgi?id=150590 |
| http://trac.webkit.org/changeset/191728 |
| |
| 2015-10-29 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Use a persistent main loop source in RunLoop glib implementation |
| https://bugs.webkit.org/show_bug.cgi?id=150590 |
| |
| Reviewed by Žan Doberšek. |
| |
| It's more efficient than creating and destroying a new source for |
| every dispatch and it simplifies the code. |
| |
| * wtf/RunLoop.h: |
| * wtf/glib/MainThreadGLib.cpp: |
| (WTF::scheduleDispatchFunctionsOnMainThread): Use |
| RunLoop::dispatch() instead of GMainLoopSource::scheduleAndDeleteOnDestroy(). |
| * wtf/glib/RunLoopGLib.cpp: |
| (WTF::RunLoop::RunLoop): Create and setup the persistent source. |
| (WTF::RunLoop::~RunLoop): Destroy the persistent source. |
| (WTF::RunLoop::stop): Stop the persistent source before stopping |
| the main loop. |
| (WTF::RunLoop::wakeUp): Make the persistent source active. We |
| no longer need to explicitly wakeup the context. |
| (WTF::RunLoop::TimerBase::TimerBase): Create and setup the |
| persistent source. |
| (WTF::RunLoop::TimerBase::~TimerBase): Destroy the persistent source. |
| (WTF::RunLoop::TimerBase::updateReadyTime): Set the ready time |
| according to the fire interval. |
| (WTF::RunLoop::TimerBase::start): Make the persistent source active. |
| (WTF::RunLoop::TimerBase::stop): Stop the persistent source. |
| (WTF::RunLoop::TimerBase::isActive): Return whether the |
| persistent source is active. |
| |
| 2015-10-28 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, make sure B3 is disabled on iOS for now. |
| |
| * wtf/Platform.h: |
| |
| 2015-10-28 Filip Pizlo <fpizlo@apple.com> |
| |
| Create a super rough prototype of B3 |
| https://bugs.webkit.org/show_bug.cgi?id=150280 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/HashSet.h: |
| (WTF::copyToVector): |
| (WTF::=): |
| * wtf/ListDump.h: |
| (WTF::PointerListDump::PointerListDump): |
| (WTF::PointerListDump::dump): |
| (WTF::MapDump::MapDump): |
| (WTF::listDump): |
| (WTF::pointerListDump): |
| (WTF::sortedListDump): |
| * wtf/MathExtras.h: |
| (WTF::leftShiftWithSaturation): |
| (WTF::rangesOverlap): |
| * wtf/Platform.h: |
| * wtf/ScopedLambda.h: Added. |
| (WTF::scopedLambda): |
| * wtf/SharedTask.h: |
| (WTF::createSharedTask): |
| |
| 2015-10-28 Alberto Garcia <berto@igalia.com> |
| |
| [SOUP] Cannot build the network process in glibc-based BSD systems |
| https://bugs.webkit.org/show_bug.cgi?id=150618 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * wtf/Platform.h: Don't enable HAVE_STAT_BIRTHTIME if the system |
| is using glibc. |
| |
| 2015-10-21 Filip Pizlo <fpizlo@apple.com> |
| |
| Factor out the graph node worklists from DFG into WTF |
| https://bugs.webkit.org/show_bug.cgi?id=150411 |
| |
| Reviewed by Geoffrey Garen. |
| |
| The new GraphNodeWorklist.h file is basically just the functionality from the old |
| DFGBlockWorklist.h, but templatized to work for any graph node type and any kind of graph |
| node set. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/GraphNodeWorklist.h: Added. |
| (WTF::GraphNodeWorklist::push): |
| (WTF::GraphNodeWorklist::notEmpty): |
| (WTF::GraphNodeWorklist::pop): |
| (WTF::GraphNodeWith::GraphNodeWith): |
| (WTF::GraphNodeWith::operator bool): |
| (WTF::ExtendedGraphNodeWorklist::ExtendedGraphNodeWorklist): |
| (WTF::ExtendedGraphNodeWorklist::forcePush): |
| (WTF::ExtendedGraphNodeWorklist::push): |
| (WTF::ExtendedGraphNodeWorklist::notEmpty): |
| (WTF::ExtendedGraphNodeWorklist::pop): |
| (WTF::GraphNodeWithOrder::GraphNodeWithOrder): |
| (WTF::GraphNodeWithOrder::operator bool): |
| (WTF::PostOrderGraphNodeWorklist::PostOrderGraphNodeWorklist): |
| (WTF::PostOrderGraphNodeWorklist::~PostOrderGraphNodeWorklist): |
| (WTF::PostOrderGraphNodeWorklist::pushPre): |
| (WTF::PostOrderGraphNodeWorklist::pushPost): |
| (WTF::PostOrderGraphNodeWorklist::push): |
| (WTF::PostOrderGraphNodeWorklist::notEmpty): |
| (WTF::PostOrderGraphNodeWorklist::pop): |
| * wtf/HashTable.h: |
| (WTF::HashTableAddResult::HashTableAddResult): |
| (WTF::HashTableAddResult::operator bool): |
| |
| 2015-10-20 Tim Horton <timothy_horton@apple.com> |
| |
| Try to fix the build by disabling MAC_GESTURE_EVENTS on 10.9 and 10.10 |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-10-20 Yoav Weiss <yoav@yoav.ws> |
| |
| Rename the PICTURE_SIZES flag to CURRENTSRC |
| https://bugs.webkit.org/show_bug.cgi?id=150275 |
| |
| Reviewed by Dean Jackson. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-10-19 Beth Dakin <bdakin@apple.com> |
| |
| Build fix. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-10-19 Tim Horton <timothy_horton@apple.com> |
| |
| Add magnify and rotate gesture event support for Mac |
| https://bugs.webkit.org/show_bug.cgi?id=150179 |
| <rdar://problem/8036240> |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FeatureDefines.h: |
| New feature flag. |
| |
| 2015-10-17 Mark Lam <mark.lam@apple.com> |
| |
| Add CPU(X86) to the supported MASM_PROBE CPUs. This was accidentally left out in r191197. |
| |
| Not reviewed. |
| |
| * wtf/Platform.h: |
| |
| 2015-10-16 Mark Lam <mark.lam@apple.com> |
| |
| Always enable MASM_PROBE for debug builds. |
| https://bugs.webkit.org/show_bug.cgi?id=150190 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Platform.h: |
| |
| 2015-10-14 Andreas Kling <akling@apple.com> |
| |
| REGRESSION(r190882): Concatenating a character array and an empty string is broken. |
| <https://webkit.org/b/150135> |
| |
| Reviewed by Geoffrey Garen. |
| |
| StringAdapter templates for raw character arrays were always using 1 as the array length |
| in toString(). |
| |
| * wtf/text/StringConcatenate.h: |
| |
| 2015-10-14 Per Arne Vollan <peavo@outlook.com> |
| |
| [Win64] Enable concurrent JIT. |
| https://bugs.webkit.org/show_bug.cgi?id=150098 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/Platform.h: |
| |
| 2015-10-13 Simon Fraser <simon.fraser@apple.com> |
| |
| Add helper funtion for checking pointer equivalency and use it |
| https://bugs.webkit.org/show_bug.cgi?id=150022 |
| |
| Reviewed by Darin Adler. |
| |
| Add PointerComparison.h which contains the templated pointer comparison |
| function. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/PointerComparison.h: Added. |
| (WTF::arePointingToEqualData): |
| |
| 2015-10-12 Andreas Kling <akling@apple.com> |
| |
| "A + B" with strings shouldn't copy if A or B is empty. |
| <https://webkit.org/b/150034> |
| |
| Reviewed by Anders Carlsson. |
| |
| Add a fast path to WTF's operator+ magic for concatenation of two strings where |
| one of them is empty. In that case, try to avoid allocation altogether by returning |
| the non-empty string. |
| |
| Spotted this while analyzing memory peaks during page load; it turns out we were |
| duplicating whole text resources (JS, CSS) at the end of decoding, below |
| TextResourceDecoder::decodeAndFlush(). That function effectively does: |
| |
| return decode() + flush(); |
| |
| Very often, flush() returns an empty string, so due to the naive operator+, |
| we'd allocate a new StringImpl of length (decode().length() + flush().length()) |
| and copy the return value from decode() into it. So silly! |
| |
| Had to make the tryMakeString() machinery use String as a return type instead of |
| RefPtr<StringImpl> to make all the right overloads gel. StringTypeAdapter templates |
| are now required to provide a toString() function. |
| |
| * wtf/text/StringConcatenate.h: |
| (WTF::StringTypeAdapter<char>::toString): |
| (WTF::StringTypeAdapter<UChar>::toString): |
| (WTF::StringTypeAdapter<Vector<char>>::toString): |
| (WTF::StringTypeAdapter<String>::toString): |
| (WTF::tryMakeString): |
| (WTF::makeString): |
| * wtf/text/StringOperators.h: |
| (WTF::StringAppend::operator String): |
| * wtf/text/StringView.h: |
| (WTF::StringTypeAdapter<StringView>::toString): |
| |
| 2015-10-12 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, fix style in the hopes that it fixes Windows. |
| |
| * wtf/ParallelHelperPool.cpp: |
| (WTF::ParallelHelperClient::~ParallelHelperClient): |
| (WTF::ParallelHelperClient::setTask): |
| (WTF::ParallelHelperClient::doSomeHelping): |
| (WTF::ParallelHelperClient::runTaskInParallel): |
| (WTF::ParallelHelperClient::finish): |
| (WTF::ParallelHelperClient::claimTask): |
| (WTF::ParallelHelperClient::runTask): |
| (WTF::ParallelHelperPool::doSomeHelping): |
| (WTF::ParallelHelperPool::helperThreadBody): |
| * wtf/ParallelHelperPool.h: |
| (WTF::ParallelHelperClient::setFunction): |
| (WTF::ParallelHelperClient::runFunctionInParallel): |
| (WTF::ParallelHelperClient::pool): |
| |
| 2015-10-10 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL should generate code to call slow paths lazily |
| https://bugs.webkit.org/show_bug.cgi?id=149936 |
| |
| Reviewed by Saam Barati. |
| |
| Enables SharedTask to handle any function type, not just void(). |
| |
| It's probably better to use SharedTask instead of std::function in performance-sensitive |
| code. std::function uses the system malloc and has copy semantics. SharedTask uses FastMalloc |
| and has aliasing semantics. So, you can just trust that it will have sensible performance |
| characteristics. |
| |
| * wtf/ParallelHelperPool.cpp: |
| (WTF::ParallelHelperClient::~ParallelHelperClient): |
| (WTF::ParallelHelperClient::setTask): |
| (WTF::ParallelHelperClient::doSomeHelping): |
| (WTF::ParallelHelperClient::runTaskInParallel): |
| (WTF::ParallelHelperClient::finish): |
| (WTF::ParallelHelperClient::claimTask): |
| (WTF::ParallelHelperClient::runTask): |
| (WTF::ParallelHelperPool::doSomeHelping): |
| (WTF::ParallelHelperPool::helperThreadBody): |
| * wtf/ParallelHelperPool.h: |
| (WTF::ParallelHelperClient::setFunction): |
| (WTF::ParallelHelperClient::runFunctionInParallel): |
| (WTF::ParallelHelperClient::pool): |
| * wtf/SharedTask.h: |
| (WTF::createSharedTask): |
| (WTF::SharedTask::SharedTask): Deleted. |
| (WTF::SharedTask::~SharedTask): Deleted. |
| (WTF::SharedTaskFunctor::SharedTaskFunctor): Deleted. |
| |
| 2015-10-10 Dan Bernstein <mitz@apple.com> |
| |
| [iOS] Remove unnecessary iOS version checks |
| https://bugs.webkit.org/show_bug.cgi?id=150002 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * wtf/Platform.h: |
| |
| 2015-10-10 Dan Bernstein <mitz@apple.com> |
| |
| [iOS] Remove project support for iOS 8 |
| https://bugs.webkit.org/show_bug.cgi?id=149993 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/WTF.xcconfig: |
| * Configurations/mbmalloc.xcconfig: |
| |
| 2015-10-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Clean up Marked classes |
| https://bugs.webkit.org/show_bug.cgi?id=149853 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/PageBlock.h: |
| Remove duplicate using statement. |
| |
| 2015-10-08 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Remove PageReservation.h clang fixme that has been fixed for a while |
| https://bugs.webkit.org/show_bug.cgi?id=149908 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/PageReservation.h: |
| (WTF::PageReservation::operator bool): Deleted. |
| |
| 2015-10-06 Daniel Bates <dbates@webkit.org> |
| |
| Enable XSLT when building WebKit for iOS using the public iOS SDK |
| https://bugs.webkit.org/show_bug.cgi?id=149827 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-10-04 Filip Pizlo <fpizlo@apple.com> |
| |
| Inline cache repatching should be throttled if it happens a lot |
| https://bugs.webkit.org/show_bug.cgi?id=149796 |
| rdar://problem/22674436 |
| |
| Reviewed by Saam Barati. |
| |
| Add some helpers for saturated math. |
| |
| * wtf/MathExtras.h: |
| (WTF::incrementWithSaturation): |
| (WTF::leftShiftWithSaturation): |
| |
| 2015-10-01 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Unreviewed CMake build fixes. |
| |
| * wtf/CMakeLists.txt: Correct build flags to match |
| the original project files. |
| |
| 2015-09-30 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r190324. |
| https://bugs.webkit.org/show_bug.cgi?id=149671 |
| |
| Caused flaky crashes, rdar://problem/22916304 (Requested by ap |
| on #webkit). |
| |
| Reverted changeset: |
| |
| "ParallelHelperPool::runFunctionInParallel() shouldn't |
| allocate, and ParallelHelperPool.h shouldn't be included |
| everywhere" |
| https://bugs.webkit.org/show_bug.cgi?id=149635 |
| http://trac.webkit.org/changeset/190324 |
| |
| 2015-09-29 Filip Pizlo <fpizlo@apple.com> |
| |
| ParallelHelperPool::runFunctionInParallel() shouldn't allocate, and ParallelHelperPool.h shouldn't be included everywhere |
| https://bugs.webkit.org/show_bug.cgi?id=149635 |
| |
| Reviewed by Saam Barati. |
| |
| * wtf/ParallelHelperPool.h: |
| (WTF::ParallelHelperClient::runFunctionInParallel): Stack-allocate the task instead of heap-allocating it. |
| |
| 2015-09-29 Filip Pizlo <fpizlo@apple.com> |
| |
| GC copy phase spans too many files |
| https://bugs.webkit.org/show_bug.cgi?id=149586 |
| |
| Reviewed by Andreas Kling. |
| |
| Extract the load balancing algorithm used by the GC's copy phase into a reusable template. |
| The GC copy phase now uses this. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/ParallelVectorIterator.h: Added. |
| (WTF::ParallelVectorIterator::ParallelVectorIterator): |
| (WTF::ParallelVectorIterator::iterate): |
| |
| 2015-09-26 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, fix Windows build by adding WTF_EXPORT_PRIVATE in various places. |
| |
| * wtf/ParallelHelperPool.h: |
| (WTF::ParallelHelperClient::setFunction): |
| (WTF::ParallelHelperPool::numberOfThreads): |
| |
| 2015-09-24 Filip Pizlo <fpizlo@apple.com> |
| |
| VMs should share GC threads |
| https://bugs.webkit.org/show_bug.cgi?id=149433 |
| rdar://problem/12859344 |
| |
| Reviewed by Geoffrey Garen. |
| |
| This adds two major things to WTF: WeakRandom and ParallelHelperPool. WeakRandom was |
| already in JSC; we're just hoisting it into WTF. It's just a weak random number generator |
| that's suitable for places where you need just a tiny bit of randomness. |
| |
| ParallelHelperPool is a new API that simplifies data-parallel algorithms like the JSC GC. |
| In a data-parallel algorithm, we want to run one task on as many cores as possible and let |
| the task worry about which subset of the input data to work on. In some cases, the |
| algorithm will not need to do any load balancing - and if load balancing is required, it's |
| up to the user. This is appropriate in contexts where the load balancing needs to be |
| custom-tuned for performance, like the GC's marking phase. |
| |
| This new API has three concepts: task, client, and pool. A task is a reference counted |
| object with a run() method, which may be run in parallel. It is usually used to wrap a |
| functor. A pool is a pool of threads that can run things. A client is a placeholder for a |
| task. A client can have zero or one tasks. A client must be registered with a pool. When a |
| client has a task, the pool's threads may choose to run it. If a thread starts running a |
| task, it will run it to completion. When the task returns on any thread, the client takes |
| it to mean that the task should be removed. That means that any currently running instances |
| of the task will finish but no new threads will attempt to run the task. You can easily ask |
| a client to wait until a task finishes. You can also easily ask a client to run a task on |
| the current thread in addition to possibly some helper threads from the pool. |
| |
| For some data-parallel algorithms, programming with ParallelHelperPool is as easy as: |
| |
| client.runFunctionInParallel( |
| [=] () { |
| do things; |
| }); |
| |
| Note that you cannot tell ahead of time how many threads will join to help the task. |
| Threads may become available after the task has already started running. Those threads may |
| join after the other threads have already started. It's not advisable to make algorithmic |
| decisions based on client.numberOfActiveThreads(), since that number may change. Usually |
| the best way to use ParallelHelperPool is with an algorithm that has its own custom |
| worklist. An example of a very simple custom worklist is the one in the JSC GC's copying |
| phase - it's just a Vector and an index that indicates the next set of elements to process. |
| |
| This new API was initially designed to simplify how GCThread works, by replacing Phase with |
| a callback that contains the phase's workload. I then realized that with a few tweaks, I |
| could make this somewhat general enough that it might become interesting outside GC. I also |
| realized that I could use this to enable thread sharing. So, although the API is kinda |
| quirky, it's grounded in the reality of how the JSC GC does parallelism. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/ParallelHelperPool.cpp: Added. |
| (WTF::ParallelHelperClient::ParallelHelperClient): |
| (WTF::ParallelHelperClient::~ParallelHelperClient): |
| (WTF::ParallelHelperClient::setTask): |
| (WTF::ParallelHelperClient::finish): |
| (WTF::ParallelHelperClient::doSomeHelping): |
| (WTF::ParallelHelperClient::runTaskInParallel): |
| (WTF::ParallelHelperClient::claimTask): |
| (WTF::ParallelHelperClient::runTask): |
| (WTF::ParallelHelperPool::ParallelHelperPool): |
| (WTF::ParallelHelperPool::~ParallelHelperPool): |
| (WTF::ParallelHelperPool::addThreads): |
| (WTF::ParallelHelperPool::ensureThreads): |
| (WTF::ParallelHelperPool::doSomeHelping): |
| (WTF::ParallelHelperPool::didMakeWorkAvailable): |
| (WTF::ParallelHelperPool::helperThreadBody): |
| (WTF::ParallelHelperPool::hasClientWithTask): |
| (WTF::ParallelHelperPool::getClientWithTask): |
| (WTF::ParallelHelperPool::waitForClientWithTask): |
| * wtf/ParallelHelperPool.h: Added. |
| (WTF::ParallelHelperClient::setFunction): |
| (WTF::ParallelHelperClient::runFunctionInParallel): |
| (WTF::ParallelHelperClient::pool): |
| (WTF::ParallelHelperClient::numberOfActiveThreads): |
| (WTF::ParallelHelperPool::numberOfThreads): |
| * wtf/SharedTask.h: Added. |
| (WTF::SharedTask::SharedTask): |
| (WTF::SharedTask::~SharedTask): |
| (WTF::SharedTaskFunctor::SharedTaskFunctor): |
| (WTF::createSharedTask): |
| * wtf/WeakRandom.h: Copied from Source/JavaScriptCore/runtime/WeakRandom.h. |
| (WTF::WeakRandom::WeakRandom): |
| (WTF::WeakRandom::initializeSeed): |
| (WTF::WeakRandom::seedUnsafe): |
| (WTF::WeakRandom::getUint32): |
| (WTF::WeakRandom::advance): |
| (JSC::WeakRandom::WeakRandom): Deleted. |
| (JSC::WeakRandom::seedUnsafe): Deleted. |
| (JSC::WeakRandom::getUint32): Deleted. |
| (JSC::WeakRandom::advance): Deleted. |
| (JSC::WeakRandom::initializeSeed): Deleted. |
| |
| 2015-09-25 Alex Christensen <achristensen@webkit.org> |
| |
| Clean up CMake build on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=149573 |
| |
| Reviewed by Chris Dumez. |
| |
| * wtf/PlatformMac.cmake: |
| |
| 2015-09-25 Alex Christensen <achristensen@webkit.org> |
| |
| [Win] Switch to CMake |
| https://bugs.webkit.org/show_bug.cgi?id=148111 |
| |
| Reviewed by Brent Fulgham. |
| |
| * WTF.vcxproj/WTF.proj: |
| |
| 2015-09-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Simplify Stopwatch::elapsedTime |
| https://bugs.webkit.org/show_bug.cgi?id=149538 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Stopwatch.h: |
| (WTF::Stopwatch::elapsedTime): |
| Simplify by not starting/stopping but just computing without updating members. |
| |
| 2015-09-25 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Unreviewed build fix. |
| |
| * wtf/FeatureDefines.h: Don't turn STREAMS_API on by default |
| on Windows. |
| |
| 2015-09-24 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Ran sort-Xcode-project-file. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| |
| 2015-09-23 Andy Estes <aestes@apple.com> |
| |
| Disable QuickLook on watchOS |
| https://bugs.webkit.org/show_bug.cgi?id=149508 |
| <rdar://problem/22517968> |
| |
| Reviewed by Dan Bernstein. |
| |
| * wtf/Platform.h: |
| |
| 2015-09-22 Andy Estes <aestes@apple.com> |
| |
| Disable QuickLook on tvOS |
| https://bugs.webkit.org/show_bug.cgi?id=149492 |
| <rdar://problem/22741586> |
| |
| Reviewed by Dan Bernstein. |
| |
| * wtf/Platform.h: Stopped enabling QuickLook on tvOS. |
| |
| 2015-09-22 Filip Pizlo <fpizlo@apple.com> |
| |
| Get rid of ENABLE(PARALLEL_GC) |
| https://bugs.webkit.org/show_bug.cgi?id=149436 |
| |
| Reviewed by Mark Lam. |
| |
| We always enable parallel GC everywhere but Windows, and it doesn't look like it was disabled |
| there for any good reason. So, get rid of the flag. |
| |
| * wtf/MainThread.cpp: |
| (WTF::canAccessThreadLocalDataForThread): |
| (WTF::initializeGCThreads): |
| (WTF::registerGCThread): |
| (WTF::isMainThreadOrGCThread): |
| * wtf/Platform.h: |
| |
| 2015-09-22 Filip Pizlo <fpizlo@apple.com> |
| |
| Get rid of ENABLE(GGC) |
| https://bugs.webkit.org/show_bug.cgi?id=149472 |
| |
| Reviewed by Mark Hahnenberg and Mark Lam. |
| |
| * wtf/Platform.h: |
| |
| 2015-09-21 Filip Pizlo <fpizlo@apple.com> |
| |
| Always use the compiler's CAS implementation and get rid of ENABLE(COMPARE_AND_SWAP) |
| https://bugs.webkit.org/show_bug.cgi?id=149438 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/Atomics.h: Make weakCompareAndSwap() just forward to the system CAS via WTF::Atomic. |
| (WTF::weakCompareAndSwap): |
| (WTF::weakCompareAndSwapUIntPtr): Deleted. |
| (WTF::weakCompareAndSwapSize): Deleted. |
| * wtf/Bitmap.h: Small changes to use the new API. |
| (WTF::WordType>::concurrentTestAndSet): |
| * wtf/Platform.h: Remove ENABLE(COMPARE_AND_SWAP) |
| |
| 2015-09-21 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Remove old GCC cruft from wtf/StdLibExtras.h |
| https://bugs.webkit.org/show_bug.cgi?id=149401 |
| |
| Reviewed by Alex Christensen. |
| |
| * wtf/StdLibExtras.h: |
| |
| 2015-09-21 Andy Estes <aestes@apple.com> |
| |
| Disable Parental Controls on the Apple TV platform |
| https://bugs.webkit.org/show_bug.cgi?id=149421 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Platform.h: |
| |
| 2015-09-21 Filip Pizlo <fpizlo@apple.com> |
| |
| JSC should infer property types |
| https://bugs.webkit.org/show_bug.cgi?id=148610 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/HashTable.h: |
| (WTF::HashTableAddResult::HashTableAddResult): Make it possible to say "HashMap::AddResult result" without assigning anything to it yet. |
| * wtf/PrintStream.h: |
| (WTF::printInternal): Beef up printing of some common WTF types, in particular RefPtr<UniquedStringImpl>. |
| |
| 2015-09-20 Youenn Fablet <youenn.fablet@crf.canon.fr> |
| |
| Remove XHR_TIMEOUT compilation guard |
| https://bugs.webkit.org/show_bug.cgi?id=149260 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-09-17 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, revert unintended change. |
| |
| * benchmarks/LockSpeedTest.cpp: |
| (main): |
| |
| 2015-09-15 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add ShadowRoot interface and Element.prototype.attachShadow |
| https://bugs.webkit.org/show_bug.cgi?id=149187 |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/FeatureDefines.h: |
| |
| |
| 2015-09-11 Keith Miller <keith_miller@apple.com> |
| |
| cryptographicallyRandomValuesFromOS should use CCRandomCopyBytes when available. |
| https://bugs.webkit.org/show_bug.cgi?id=148439 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Recently, we switched to using arc4random_buf on Darwin but further research indicates that |
| arc4random_buf has the same behavior we had before and thus we were just pushing the problem |
| further down the stack. CCRandomCopyBytes, however, appears to be more advanced and has much |
| better error handling than we had before. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/OSRandomSource.cpp: |
| (WTF::cryptographicallyRandomValuesFromOS): |
| * wtf/spi/darwin/CommonCryptoSPI.h: Added. |
| |
| 2015-09-08 Filip Pizlo <fpizlo@apple.com> |
| |
| There should be one stub hanging off an inline cache that contains code for all of the cases, rather than forming a linked list consisting of one stub per case |
| https://bugs.webkit.org/show_bug.cgi?id=148717 |
| |
| Reviewed by Michael Saboff. |
| |
| Beef up dumping a bit. |
| |
| * wtf/PrintStream.h: |
| (WTF::pointerDump): |
| (WTF::printInternal): |
| |
| 2015-09-08 Mark Lam <mark.lam@apple.com> |
| |
| GC stack scan should include ABI red zone. |
| https://bugs.webkit.org/show_bug.cgi?id=148976 |
| |
| Reviewed by Geoffrey Garen and Benjamin Poulain. |
| |
| * wtf/StackBounds.h: |
| (WTF::StackBounds::origin): |
| (WTF::StackBounds::end): |
| (WTF::StackBounds::size): |
| |
| 2015-09-04 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Enable reference qualified functions for GCC |
| https://bugs.webkit.org/show_bug.cgi?id=148526 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Compiler.h: |
| |
| 2015-09-04 Csaba Osztrogonác <ossy@webkit.org> |
| |
| webkit-unassigned@lists.webkit.org |
| https://bugs.webkit.org/show_bug.cgi?id=148525 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Compiler.h: |
| |
| 2015-08-29 Zan Dobersek <zdobersek@igalia.com> |
| |
| [WTF] Improve a ParkingLot::parkConditionally() comment for a libstdc++ workaround |
| https://bugs.webkit.org/show_bug.cgi?id=148571 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/ParkingLot.cpp: |
| (WTF::ParkingLot::parkConditionally): Adjust the comment about the workaround for |
| the libstdc++ std::condition_variable implementation, linking to the WebKit bug |
| that dissected the problem and the GCC bug that originally reported the problem. |
| |
| 2015-08-28 Anders Carlsson <andersca@apple.com> |
| |
| Remove the #if PLATFORM(MAC) in DeprecatedSymbolsUsedBySafari.mm so we'll actually build it on iOS. |
| |
| Reviewed by Dan Bernstein. |
| |
| * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: |
| |
| 2015-08-27 Anders Carlsson <andersca@apple.com> |
| |
| Define legacy main thread calling functions for iOS as well |
| https://bugs.webkit.org/show_bug.cgi?id=148530 |
| |
| Reviewed by Tim Horton. |
| |
| * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: |
| |
| 2015-08-26 Anders Carlsson <andersca@apple.com> |
| |
| Fix build. |
| |
| * wtf/WorkQueue.cpp: |
| |
| 2015-08-26 Anders Carlsson <andersca@apple.com> |
| |
| Add and implement WorkQueue::concurrentApply |
| https://bugs.webkit.org/show_bug.cgi?id=148488 |
| |
| Reviewed by Geoffrey Garen. |
| |
| WorkQueue::concurrentApply is modeled after dispatch_apply, and on Cocoa it uses dispatch_apply directly. |
| For other ports there's a generic concurrentApply implemented using our threading primitives. |
| |
| * wtf/NeverDestroyed.h: |
| (WTF::LazyNeverDestroyed::operator->): |
| * wtf/WorkQueue.cpp: |
| (WTF::WorkQueue::concurrentApply): |
| * wtf/WorkQueue.h: |
| * wtf/cocoa/WorkQueueCocoa.cpp: |
| (WTF::WorkQueue::concurrentApply): |
| |
| 2015-08-25 Filip Pizlo <fpizlo@apple.com> |
| |
| Node::origin should be able to tell you if it's OK to exit |
| https://bugs.webkit.org/show_bug.cgi?id=145204 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Insertion.h: |
| (WTF::executeInsertions): Add a useful assertion. This come into play because JSC will use UINT_MAX as "invalid index", and that ought to trigger this assertion. |
| |
| 2015-08-25 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Require GCC version at least 4.9 |
| https://bugs.webkit.org/show_bug.cgi?id=148430 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Compiler.h: |
| |
| 2015-08-22 Anders Carlsson <andersca@apple.com> |
| |
| std::once_flag needs to be static. |
| |
| * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: |
| (WTF::MainThreadFunctionTracker::singleton): |
| |
| 2015-08-21 Anders Carlsson <andersca@apple.com> |
| |
| Build fix. |
| |
| * wtf/MainThread.h: |
| |
| 2015-08-21 Anders Carlsson <andersca@apple.com> |
| |
| Address review feedback from Darin. |
| |
| * wtf/MainThread.h: |
| * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: |
| (WTF::callOnMainThread): |
| (WTF::cancelCallOnMainThread): |
| |
| 2015-08-21 Anders Carlsson <andersca@apple.com> |
| |
| Deprecate the old school callOnMainThread/cancelCallOnMainThread functions |
| https://bugs.webkit.org/show_bug.cgi?id=148327 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/MainThread.cpp: |
| (WTF::functionQueue): |
| (WTF::dispatchFunctionsFromMainThread): |
| (WTF::callOnMainThread): |
| Change the function queue to be a queue of std::function<void ()> and get rid of dead code. |
| |
| * wtf/MainThread.h: |
| Conditionalize callOnMainThread and cancelCallOnMainThread because Safari on Mavericks still expects to them to be |
| declared in MainThread.h under 10.9. |
| |
| * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: |
| Add a MainThreadFunctionTracker singleton that keeps track of scheduled functions so we can ensure that they're not |
| called if they're cancelled. |
| |
| (WTF::MainThreadFunctionTracker::singleton): |
| Return the singleton. |
| |
| (WTF::MainThreadFunctionTracker::callOnMainThread): |
| Add the function/context pair to our map and schedule the function to be run on the main thread. |
| If the function has been removed, don't call it. |
| |
| (WTF::MainThreadFunctionTracker::cancelCallOnMainThread): |
| Remove all entries with the given function/context pair. |
| |
| (WTF::MainThreadFunctionTracker::addFunction): |
| Add the function/context pair to the map and return the unique identifier. |
| |
| (WTF::MainThreadFunctionTracker::removeIdentifier): |
| Look up the identifier and remove it if it still exists. If it exists we know that it hasn't been canceled and that we can call it. |
| |
| (WTF::MainThreadFunctionTracker::removeFunctions): |
| Remove all function identifiers matched by the function/context pair. |
| |
| (WTF::callOnMainThread): |
| Implement using MainThreadFunctionTracker. |
| |
| (WTF::cancelCallOnMainThread): |
| Implement using MainThreadFunctionTracker. |
| |
| 2015-08-21 Anders Carlsson <andersca@apple.com> |
| |
| Get rid of uses of the old callOnMainThread function that takes a function ptr + context |
| https://bugs.webkit.org/show_bug.cgi?id=148324 |
| |
| Reviewed by Tim Horton. |
| |
| * wtf/text/cf/StringImplCF.cpp: |
| (WTF::StringWrapperCFAllocator::deallocate): |
| (WTF::StringWrapperCFAllocator::deallocateOnMainThread): Deleted. |
| |
| 2015-08-20 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r188717 and r188719. |
| https://bugs.webkit.org/show_bug.cgi?id=148272 |
| |
| Broke the Mavericks build (Requested by andersca on #webkit). |
| |
| Reverted changesets: |
| |
| "Merge Lock and LockBase" |
| https://bugs.webkit.org/show_bug.cgi?id=148266 |
| http://trac.webkit.org/changeset/188717 |
| |
| "Merge ConditionBase and Condition" |
| https://bugs.webkit.org/show_bug.cgi?id=148270 |
| http://trac.webkit.org/changeset/188719 |
| |
| 2015-08-20 Anders Carlsson <andersca@apple.com> |
| |
| Merge ConditionBase and Condition |
| https://bugs.webkit.org/show_bug.cgi?id=148270 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/Condition.h: |
| Direct initialize m_hasWaiters so Condition gets a constexpr constructor. |
| |
| * wtf/Lock.h: |
| Remove a now outdated comment. |
| |
| 2015-08-20 Anders Carlsson <andersca@apple.com> |
| |
| Merge Lock and LockBase |
| https://bugs.webkit.org/show_bug.cgi?id=148266 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/Atomics.h: |
| (WTF::Atomic::Atomic): |
| Add a default constructor as well as a constexpr constructor that takes a value. |
| |
| * wtf/Lock.cpp: |
| (WTF::Lock::lockSlow): |
| (WTF::Lock::unlockSlow): |
| Rename LockBase to Lock. |
| |
| * wtf/Lock.h: |
| Rename LockBase to Lock and direct-initialize Atomic to 0. Since the Atomic constructor is constexpr, |
| Lock also gets a constexpr constructor. Change the LockBase -> StaticLock typedef and add a fixme. |
| |
| * wtf/WordLock.h: |
| Direct initialize m_word to 0. |
| |
| 2015-08-19 Filip Pizlo <fpizlo@apple.com> |
| |
| Remove WTF::SpinLock |
| https://bugs.webkit.org/show_bug.cgi?id=148208 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Remove the SpinLock.h file and remove references to the SpinLock class. Put the old SpinLock |
| algorithm in LockSpeedTest.cpp - which isn't compiled as part of a WTF or WebKit build - just |
| so we can still benchmark our locking algorithms against a spinlock baseline. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.xcodeproj/project.pbxproj: |
| * benchmarks/LockSpeedTest.cpp: |
| * wtf/CMakeLists.txt: |
| * wtf/Lock.h: |
| * wtf/SpinLock.h: Removed. |
| * wtf/WordLock.h: |
| |
| 2015-08-19 Alex Christensen <achristensen@webkit.org> |
| |
| CMake Windows build should not include files directly from other Source directories |
| https://bugs.webkit.org/show_bug.cgi?id=148198 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/CMakeLists.txt: |
| * wtf/PlatformWin.cmake: |
| |
| 2015-08-18 Filip Pizlo <fpizlo@apple.com> |
| |
| Replace all uses of std::mutex/std::condition_variable with WTF::Lock/WTF::Condition |
| https://bugs.webkit.org/show_bug.cgi?id=148140 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Also beef up Condition by giving it a StaticCondition variant. |
| |
| * wtf/Condition.h: |
| (WTF::ConditionBase::notifyAll): |
| (WTF::ConditionBase::waitForSecondsImpl): |
| (WTF::ConditionBase::absoluteFromRelative): |
| (WTF::Condition::Condition): |
| (WTF::Condition::notifyAll): Deleted. |
| (WTF::Condition::waitForSecondsImpl): Deleted. |
| (WTF::Condition::absoluteFromRelative): Deleted. |
| * wtf/CryptographicallyRandomNumber.cpp: |
| * wtf/HashTable.cpp: |
| (WTF::HashTableStats::recordCollisionAtCount): |
| (WTF::HashTableStats::dumpStats): |
| (WTF::hashTableStatsMutex): Deleted. |
| * wtf/HashTable.h: |
| (WTF::KeyTraits>::HashTable): |
| (WTF::KeyTraits>::invalidateIterators): |
| (WTF::addIterator): |
| (WTF::removeIterator): |
| * wtf/Lock.h: |
| * wtf/MainThread.cpp: |
| (WTF::functionQueue): |
| (WTF::dispatchFunctionsFromMainThread): |
| (WTF::callOnMainThread): |
| (WTF::cancelCallOnMainThread): |
| (WTF::mainThreadFunctionQueueMutex): Deleted. |
| * wtf/StackStats.cpp: |
| (WTF::StackStats::PerThreadStats::PerThreadStats): |
| (WTF::StackStats::CheckPoint::CheckPoint): |
| (WTF::StackStats::CheckPoint::~CheckPoint): |
| (WTF::StackStats::probe): |
| (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint): |
| (WTF::StackStats::LayoutCheckPoint::~LayoutCheckPoint): |
| (WTF::StackStats::initialize): Deleted. |
| * wtf/StackStats.h: |
| (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint): |
| (WTF::StackStats::probe): |
| (WTF::StackStats::initialize): Deleted. |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::initializeThreading): |
| * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: |
| (WTF::callOnMainThread): |
| (WTF::lockAtomicallyInitializedStaticMutex): |
| (WTF::unlockAtomicallyInitializedStaticMutex): |
| (WTF::atomicallyInitializedStaticMutex): Deleted. |
| * wtf/text/StringView.cpp: |
| (WTF::StringView::UnderlyingString::UnderlyingString): |
| (WTF::underlyingStrings): |
| (WTF::StringView::invalidate): |
| (WTF::StringView::adoptUnderlyingString): |
| (WTF::StringView::setUnderlyingString): |
| (WTF::underlyingStringsMutex): Deleted. |
| * wtf/unicode/icu/CollatorICU.cpp: |
| (WTF::Collator::Collator): |
| (WTF::Collator::~Collator): |
| (WTF::cachedCollatorMutex): Deleted. |
| |
| 2015-08-18 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GLib] GMainLoopSource should receive the std::function<> objects through rvalue references |
| https://bugs.webkit.org/show_bug.cgi?id=147981 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Scheduling methods on GMainLoopSource and GThreadSafeMainLoopSource should |
| have the std::function<> objects passed through rvalue references, and should |
| move the passed-in objects forward when required. |
| |
| * wtf/glib/GMainLoopSource.cpp: |
| (WTF::GMainLoopSource::schedule): |
| (WTF::GMainLoopSource::scheduleAfterDelay): |
| (WTF::GMainLoopSource::scheduleAndDeleteOnDestroy): |
| (WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy): |
| * wtf/glib/GMainLoopSource.h: |
| * wtf/glib/GThreadSafeMainLoopSource.cpp: |
| (WTF::GThreadSafeMainLoopSource::schedule): |
| (WTF::GThreadSafeMainLoopSource::scheduleAfterDelay): |
| * wtf/glib/GThreadSafeMainLoopSource.h: |
| |
| 2015-08-18 Eric Carlson <eric.carlson@apple.com> |
| |
| Remove "platform text track menu" |
| https://bugs.webkit.org/show_bug.cgi?id=148139 |
| |
| Reviewed by Jer Noble. |
| |
| * wtf/Platform.h: Remove PLATFORM_TEXT_TRACK_MENU. |
| |
| 2015-08-18 Filip Pizlo <fpizlo@apple.com> |
| |
| WTF::Condition should have a fast path for notifyOne/notifyAll that avoids calling unparkOne/unparkAll |
| https://bugs.webkit.org/show_bug.cgi?id=148090 |
| |
| Reviewed by Geoffrey Garen. |
| |
| This change makes notifyOne()/notifyAll() blazing fast when nobody is waiting, by using the |
| various hooks that ParkingLot gives us to maintain a m_hasWaiters variable. When it's false, it |
| means that any unpark operation would simply return immediately. |
| |
| This is a 45% speed-up for the 1-producer/1-consumer scenario with a 100-element queue when you |
| use the notifyOne()-per-enqueue style. What's cool about this change is that you can now safely |
| call notifyOne() (or notifyAll()) out of paranoia, just in case someone might be waiting. It's |
| free to do so if nobody is waiting! |
| |
| * wtf/Condition.h: |
| (WTF::Condition::Condition): |
| (WTF::Condition::waitUntil): |
| (WTF::Condition::notifyOne): |
| (WTF::Condition::notifyAll): |
| |
| 2015-08-17 Filip Pizlo <fpizlo@apple.com> |
| |
| Replace all remaining uses of WTF::Mutex with WTF::Lock |
| https://bugs.webkit.org/show_bug.cgi?id=148089 |
| |
| Reviewed by Geoffrey Garen. |
| |
| This also beefs up and rationalizes the Condition API, so that it can deal with units of time |
| other than just steady_clock. This makes it easier to port ThreadCondition and |
| std::condition_variable code over to Condition. This patch does not take a position on what |
| kind of time is best; from reading a lot of the uses in WebCore, it seems like our use of |
| double to measure seconds is often nicer than the many different classes in std::chrono. |
| |
| Also added a Condition speed test, to make sure that all of this is a good idea. And indeed it |
| is. The 1-producer/1-consumer scenario with a 100-element queue runs 36x faster using |
| Lock/Condition than Mutex/ThreadCondition when you use the notifyOne()-per-enqueue style. It |
| runs 58x faster with Lock/Condition when you use the notifyAll()-at-boundary style. Note that |
| I have a bug open for making the notifyOne()-per-enqueue style even faster: |
| https://bugs.webkit.org/show_bug.cgi?id=148090. Also, the 10-consumer/10-producer scenario with |
| a 100-element queue runs 20x faster with Lock/Condition for notifyOne()-per-enqueue and 30x |
| faster with notifyAll()-at-boundary. The only way to tweak the test to get |
| Mutex/ThreadCondition to win is to have one producer, one consumer, a 1-element queue, and use |
| the notifyOne()-per-enqueue style. In that case, one of the two threads is going to be waiting |
| most of the time and the test basically measures wake-up latency and nothing else. Because |
| Condition::wait() does a little bit more work than ThreadCondition::wait(), |
| Mutex/ThreadCondition end up running 3% faster in this test case. But if you vary any of the |
| parameters of the test, Mutex/ThreadCondition ends up losing - all it takes is more threads or |
| a queue size of 5 or more. To my knowledge, we never do producer/consumer with a queue bounded |
| to one element precisely because that approach is the least efficient regardless of locking |
| algorithm. For example, neither WTF::MessageQueue nor DFG::Worklist have any bounds on their |
| queue size. So, it seems that replacing all uses of system mutexes and condition variables with |
| our own thing is a great idea. |
| |
| * benchmarks/LockSpeedTest.cpp: |
| * benchmarks/ConditionSpeedTest.cpp: Added. |
| * wtf/Condition.h: |
| (WTF::Condition::Condition): |
| (WTF::Condition::waitUntil): |
| (WTF::Condition::waitFor): |
| (WTF::Condition::wait): |
| (WTF::Condition::waitUntilWallClockSeconds): |
| (WTF::Condition::waitUntilMonotonicClockSeconds): |
| (WTF::Condition::notifyOne): |
| (WTF::Condition::notifyAll): |
| (WTF::Condition::waitForSecondsImpl): |
| (WTF::Condition::waitForImpl): |
| (WTF::Condition::absoluteFromRelative): |
| * wtf/MessageQueue.h: |
| (WTF::MessageQueue::infiniteTime): |
| (WTF::MessageQueue<DataType>::append): |
| (WTF::MessageQueue<DataType>::appendAndKill): |
| (WTF::MessageQueue<DataType>::appendAndCheckEmpty): |
| (WTF::MessageQueue<DataType>::prepend): |
| (WTF::MessageQueue<DataType>::removeIf): |
| (WTF::MessageQueue<DataType>::isEmpty): |
| (WTF::MessageQueue<DataType>::kill): |
| (WTF::MessageQueue<DataType>::killed): |
| * wtf/ParallelJobsGeneric.cpp: |
| (WTF::ParallelEnvironment::ThreadPrivate::execute): |
| (WTF::ParallelEnvironment::ThreadPrivate::waitForFinish): |
| (WTF::ParallelEnvironment::ThreadPrivate::workerThread): |
| * wtf/ParallelJobsGeneric.h: |
| * wtf/ParkingLot.cpp: |
| (WTF::ParkingLot::parkConditionally): |
| * wtf/ParkingLot.h: |
| (WTF::ParkingLot::compareAndPark): |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::initializeThreading): |
| * wtf/ThreadingWin.cpp: |
| (WTF::initializeThreading): |
| * wtf/dtoa.cpp: |
| (WTF::pow5mult): |
| * wtf/dtoa.h: |
| |
| 2015-08-17 Alex Christensen <achristensen@webkit.org> |
| |
| Build Debug Suffix on Windows with CMake |
| https://bugs.webkit.org/show_bug.cgi?id=148083 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/PlatformWin.cmake: |
| Add DEBUG_SUFFIX |
| |
| 2015-08-17 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Implement IntegerHasher |
| https://bugs.webkit.org/show_bug.cgi?id=147866 |
| |
| Reviewed by Darin Adler and Anders Carlsson. |
| |
| Rename StringHasher.h to Hasher.h, and include an IntegerHasher class. |
| |
| * WTF.vcxproj/WTF.vcxproj: Update to target new file. |
| * WTF.vcxproj/WTF.vcxproj.filters: Ditto. |
| * WTF.xcodeproj/project.pbxproj: Ditto. |
| * wtf/CMakeLists.txt: Ditto. |
| * wtf/Hasher.h: Renamed from Source/WTF/wtf/StringHasher.h. |
| * wtf/text/CString.cpp: Use new #include |
| * wtf/text/StringHash.h: Ditto. |
| * wtf/text/StringImpl.h: Ditto. |
| * wtf/unicode/UTF8.cpp: Ditto. |
| |
| 2015-08-17 Alex Christensen <achristensen@webkit.org> |
| |
| Move some commands from ./CMakeLists.txt to Source/cmake |
| https://bugs.webkit.org/show_bug.cgi?id=148003 |
| |
| Reviewed by Brent Fulgham. |
| |
| * CMakeLists.txt: |
| Added commands needed to build WTF by itself. |
| |
| 2015-08-14 Filip Pizlo <fpizlo@apple.com> |
| |
| Use WTF::Lock and WTF::Condition instead of WTF::Mutex, WTF::ThreadCondition, std::mutex, and std::condition_variable |
| https://bugs.webkit.org/show_bug.cgi?id=147999 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Relanding after fixing a deadlock on Linux. |
| |
| * wtf/Condition.h: "using WTF::Condition". |
| * wtf/Lock.h: |
| (WTF::LockBase::lock): |
| (WTF::LockBase::tryLock): Add tryLock() because it turns out that we use it sometimes. |
| (WTF::LockBase::try_lock): unique_lock needs this. |
| (WTF::LockBase::unlock): |
| * wtf/ParkingLot.cpp: |
| (WTF::ParkingLot::parkConditionally): Work around a Linux C++ bug where wait_until with time_point::max() immediately returns and doesn't flash the lock. |
| |
| 2015-08-14 Keith Miller <keith_miller@apple.com> |
| |
| cryptographicallyRandomValuesFromOS should use arc4random_buf on Darwin. |
| https://bugs.webkit.org/show_bug.cgi?id=148038 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Currently, we open a file descriptor to /dev/urandom, which can sometimes |
| fail to open. Using arc4random_buf instead should get around this issue. |
| |
| * wtf/OSRandomSource.cpp: |
| (WTF::cryptographicallyRandomValuesFromOS): |
| |
| 2015-08-14 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r188444. |
| https://bugs.webkit.org/show_bug.cgi?id=148029 |
| |
| Broke GTK and EFL (see bug #148027) (Requested by philn on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Use WTF::Lock and WTF::Condition instead of WTF::Mutex, |
| WTF::ThreadCondition, std::mutex, and std::condition_variable" |
| https://bugs.webkit.org/show_bug.cgi?id=147999 |
| http://trac.webkit.org/changeset/188444 |
| |
| 2015-08-13 Filip Pizlo <fpizlo@apple.com> |
| |
| Use WTF::Lock and WTF::Condition instead of WTF::Mutex, WTF::ThreadCondition, std::mutex, and std::condition_variable |
| https://bugs.webkit.org/show_bug.cgi?id=147999 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Condition.h: "using WTF::Condition". |
| * wtf/Lock.h: |
| (WTF::LockBase::lock): |
| (WTF::LockBase::tryLock): Add tryLock() because it turns out that we use it sometimes. |
| (WTF::LockBase::try_lock): unique_lock needs this. |
| (WTF::LockBase::unlock): |
| |
| 2015-08-13 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r188428. |
| https://bugs.webkit.org/show_bug.cgi?id=148015 |
| |
| broke cmake build (Requested by alexchristensen on #webkit). |
| |
| Reverted changeset: |
| |
| "Move some commands from ./CMakeLists.txt to Source/cmake" |
| https://bugs.webkit.org/show_bug.cgi?id=148003 |
| http://trac.webkit.org/changeset/188428 |
| |
| 2015-08-13 Alex Christensen <achristensen@webkit.org> |
| |
| Move some commands from ./CMakeLists.txt to Source/cmake |
| https://bugs.webkit.org/show_bug.cgi?id=148003 |
| |
| Reviewed by Brent Fulgham. |
| |
| * CMakeLists.txt: |
| Added commands needed to build WTF by itself. |
| |
| 2015-08-13 Mark Lam <mark.lam@apple.com> |
| |
| WorkQueue::dispatchAfter() on Windows fires early. |
| https://bugs.webkit.org/show_bug.cgi?id=147992 |
| |
| Reviewed by Brent Fulgham. |
| |
| The Windows implementation of WorkQueue::dispatchAfter() uses CreateTimerQueueTimer(). |
| Unfortunately, CreateTimerQueueTimer() is sloppy and can fire early. We need to compensate |
| for this slop to ensure that the specified duration does expire before the callback function |
| is called. Otherwise, the JSC watchdog (which depends on this) can fail randomly. |
| |
| * wtf/win/WorkQueueWin.cpp: |
| (WTF::WorkQueue::dispatchAfter): |
| |
| 2015-08-13 Filip Pizlo <fpizlo@apple.com> |
| |
| WTF should have a compact Condition object to use with Lock |
| https://bugs.webkit.org/show_bug.cgi?id=147986 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Adds a condition variable implementation based on ParkingLot, called simply WTF::Condition. |
| It can be used with WTF::Lock or actually any lock implementation. It should even work with |
| WTF::SpinLock, WTF::Mutex, or std::mutex. Best of all, Condition only requires one byte. |
| |
| ParkingLot almost contained all of the functionality needed to implemenet wait/notify. We |
| could have implemented Condition using a 32-bit (or even 64-bit) version that protects |
| against a notify that happens just before we park. But, this changes the ParkingLot API to |
| give us the ability to run some code between when ParkingLot enqueues the current thread |
| and when it actually sleeps. This callback is called with no locks held, so it can call |
| unlock() on any kind of lock, so long as that lock's unlock() method doesn't recurse into |
| ParkingLot::parkConditionally(). That seems unlikely; unlock() is more likely to call |
| ParkingLot::unparkOne() or unparkAll(). WTF::Lock will never call parkConditionally() |
| inside unlock(), so WTF::Lock is definitely appropriate for use with Condition. |
| |
| Condition supports most of the API that std::condition_variable supports. It does some |
| things to try to reduce footgun potential. The preferred timeout form is waitUntil() which |
| takes an absolute time from the steady_clock. The only relative timeout form also takes a |
| predicate callback, so it's impossible to write the subtly incorrect |
| "while (...) wait_for(...)" idiom. |
| |
| This patch doesn't actually introduce any uses of WTF::Condition other than the unit tests. |
| I'll start switching code over to using WTF::Condition in another patch. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/Condition.h: Added. |
| (WTF::Condition::Condition): |
| (WTF::Condition::waitUntil): |
| (WTF::Condition::waitFor): |
| (WTF::Condition::wait): |
| (WTF::Condition::notifyOne): |
| (WTF::Condition::notifyAll): |
| * wtf/Lock.cpp: |
| (WTF::LockBase::unlockSlow): Make this useful assertion be a release assertion. It catches cases where you unlock the lock even though you don't hold it. |
| * wtf/ParkingLot.cpp: |
| (WTF::ParkingLot::parkConditionally): Add the beforeSleep() callback. |
| (WTF::ParkingLot::unparkOne): |
| * wtf/ParkingLot.h: |
| (WTF::ParkingLot::compareAndPark): |
| |
| 2015-08-12 Anders Carlsson <andersca@apple.com> |
| |
| Use WTF::Optional in WindowFeatures |
| https://bugs.webkit.org/show_bug.cgi?id=147956 |
| |
| Reviewed by Sam Weinig. |
| |
| Add new operators to WTF::Optional to make it more like std::optional. |
| |
| * wtf/Optional.h: |
| (WTF::Optional::operator->): |
| (WTF::Optional::operator*): |
| |
| 2015-08-12 Filip Pizlo <fpizlo@apple.com> |
| |
| WTF::Lock should not suffer from the thundering herd |
| https://bugs.webkit.org/show_bug.cgi?id=147947 |
| |
| Reviewed by Geoffrey Garen. |
| |
| This changes Lock::unlockSlow() to use unparkOne() instead of unparkAll(). The problem with |
| doing this is that it's not obvious after calling unparkOne() if there are any other threads |
| that are still parked on the lock's queue. If we assume that there are and leave the |
| hasParkedBit set, then future calls to unlock() will take the slow path. We don't want that |
| if there aren't actually any threads parked. On the other hand, if we assume that there |
| aren't any threads parked and clear the hasParkedBit, then if there actually were some |
| threads parked, then they may never be awoken since future calls to unlock() won't take slow |
| path and so won't call unparkOne(). In other words, we need a way to be very precise about |
| when we clear the hasParkedBit and we need to do it in a race-free way: it can't be the case |
| that we clear the bit just as some thread gets parked on the queue. |
| |
| A similar problem arises in futexes, and one of the solutions is to have a thread that |
| acquires a lock after parking sets the hasParkedBit. This is what Rusty Russel's usersem |
| does. It's a subtle algorithm. Also, it means that if a thread barges in before the unparked |
| thread runs, then that barging thread will not know that there are threads parked. This |
| could increase the severity of barging. |
| |
| Since ParkingLot is a user-level API, we don't have to worry about the kernel-user security |
| issues and so we can expose callbacks while ParkingLot is holding its internal locks. This |
| change does exactly that for unparkOne(). The new variant of unparkOne() will call a user |
| function while the queue from which we are unparking is locked. The callback is told basic |
| stats about the queue: did we unpark a thread this time, and could there be more threads to |
| unpark in the future. The callback runs while it's impossible for the queue state to change, |
| since the ParkingLot's internal locks for the queue is held. This means that |
| Lock::unlockSlow() can either clear, or leave, the hasParkedBit while releasing the lock |
| inside the callback from unparkOne(). This takes care of the thundering herd problem while |
| also reducing the greed that arises from barging threads. |
| |
| This required some careful reworking of the ParkingLot algorithm. The first thing I noticed |
| was that the ThreadData::shouldPark flag was useless, since it's set exactly when |
| ThreadData::address is non-null. Then I had to make sure that dequeue() could lazily create |
| both hashtables and buckets, since the "callback is called while queue is locked" invariant |
| requires that we didn't exit early due to the hashtable or bucket not being present. Note |
| that all of this is done in such a way that the old unparkOne() and unparkAll() don't have |
| to create any buckets, though they now may create the hashtable. We don't care as much about |
| the hashtable being created by unpark since it's just such an unlikely scenario and it would |
| only happen once. |
| |
| This change reduces the kernel CPU usage of WTF::Lock for the long critical section test by |
| about 8x and makes it always perform as well as WTF::WordLock and WTF::Mutex for that |
| benchmark. |
| |
| * benchmarks/LockSpeedTest.cpp: |
| * wtf/Lock.cpp: |
| (WTF::LockBase::unlockSlow): |
| * wtf/Lock.h: |
| (WTF::LockBase::isLocked): |
| (WTF::LockBase::isFullyReset): |
| * wtf/ParkingLot.cpp: |
| (WTF::ParkingLot::parkConditionally): |
| (WTF::ParkingLot::unparkOne): |
| (WTF::ParkingLot::unparkAll): |
| * wtf/ParkingLot.h: |
| * wtf/WordLock.h: |
| (WTF::WordLock::isLocked): |
| (WTF::WordLock::isFullyReset): |
| |
| 2015-08-11 Filip Pizlo <fpizlo@apple.com> |
| |
| Always use a byte-sized lock implementation |
| https://bugs.webkit.org/show_bug.cgi?id=147908 |
| |
| Reviewed by Geoffrey Garen. |
| |
| At the start of my locking algorithm crusade, I implemented Lock, which is a sizeof(void*) |
| lock implementation with some nice theoretical properties and good performance. Then I added |
| the ParkingLot abstraction and ByteLock. ParkingLot uses Lock in its implementation. |
| ByteLock uses ParkingLot to create a sizeof(char) lock implementation that performs like |
| Lock. |
| |
| It turns out that ByteLock is always at least as good as Lock, and sometimes a lot better: |
| it requires 8x less memory on 64-bit systems. It's hard to construct a benchmark where |
| ByteLock is significantly slower than Lock, and when you do construct such a benchmark, |
| tweaking it a bit can also create a scenario where ByteLock is significantly faster than |
| Lock. |
| |
| So, the thing that we call "Lock" should really use ByteLock's algorithm, since it is more |
| compact and just as fast. That's what this patch does. |
| |
| But we still need to keep the old Lock algorithm, because it's used to implement ParkingLot, |
| which in turn is used to implement ByteLock. So this patch does this transformation: |
| |
| - Move the algorithm in Lock into files called WordLock.h|cpp. Make ParkingLot use |
| WordLock. |
| |
| - Move the algorithm in ByteLock into Lock.h|cpp. Make everyone who used ByteLock use Lock |
| instead. All other users of Lock now get the byte-sized lock implementation. |
| |
| - Remove the old ByteLock files. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.xcodeproj/project.pbxproj: |
| * benchmarks/LockSpeedTest.cpp: |
| (main): |
| * wtf/WordLock.cpp: Added. |
| (WTF::WordLock::lockSlow): |
| (WTF::WordLock::unlockSlow): |
| * wtf/WordLock.h: Added. |
| (WTF::WordLock::WordLock): |
| (WTF::WordLock::lock): |
| (WTF::WordLock::unlock): |
| (WTF::WordLock::isHeld): |
| (WTF::WordLock::isLocked): |
| * wtf/ByteLock.cpp: Removed. |
| * wtf/ByteLock.h: Removed. |
| * wtf/CMakeLists.txt: |
| * wtf/Lock.cpp: |
| (WTF::LockBase::lockSlow): |
| (WTF::LockBase::unlockSlow): |
| * wtf/Lock.h: |
| (WTF::LockBase::lock): |
| (WTF::LockBase::unlock): |
| (WTF::LockBase::isHeld): |
| (WTF::LockBase::isLocked): |
| (WTF::Lock::Lock): |
| * wtf/ParkingLot.cpp: |
| |
| 2015-08-11 Filip Pizlo <fpizlo@apple.com> |
| |
| Remove ByteSpinLock |
| https://bugs.webkit.org/show_bug.cgi?id=147900 |
| |
| Rubber stamped by Mark Lam. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/ByteSpinLock.h: Removed. |
| |
| 2015-08-11 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Switch Windows build to Visual Studio 2015 |
| https://bugs.webkit.org/show_bug.cgi?id=147887 |
| <rdar://problem/22235098> |
| |
| Reviewed by Alex Christensen. |
| |
| Update Visual Studio project file settings to use the current Visual |
| Studio and compiler. Continue targeting binaries to run on our minimum |
| supported configuration of Windows 7. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTFGenerated.vcxproj: |
| |
| 2015-08-10 Filip Pizlo <fpizlo@apple.com> |
| |
| WTF should have a ParkingLot for parking sleeping threads, so that locks can fit in 1.6 bits |
| https://bugs.webkit.org/show_bug.cgi?id=147665 |
| |
| Reviewed by Mark Lam. |
| |
| This change adds a major new abstraction for concurrency algorithms in WebKit. It's called a |
| ParkingLot, and it makes available a thread parking queue for each virtual address in memory. |
| The queues are maintained by a data-access-parallel concurrent hashtable implementation. The |
| memory usage is bounded at around half a KB per thread. |
| |
| The ParkingLot makes it easy to turn any spinlock-based concurrency protocol into one that |
| parks threads after a while. Because queue state management is up to the ParkingLot and not |
| the user's data structure, this patch uses it to implement a full adaptive mutex in one byte. |
| In fact, only three states of that byte are used (0 = available, 1 = locked, 2 = locked and |
| there are parked threads). Hence the joke that ParkingLot allows locks that fit in 1.6 bits. |
| |
| ByteLock is used as a replacement for ByteSpinLock in JavaScriptCore. |
| |
| The API tests for this also demo how to create a completely fair (FIFO) binary semamphore. The |
| comment in Lock.h shows how we could accelerate Lock performance using ParkingLot. After we |
| are sure that this code works, we can expand the use of ParkingLot. That's covered by |
| https://bugs.webkit.org/show_bug.cgi?id=147841. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.xcodeproj/project.pbxproj: |
| * benchmarks/LockSpeedTest.cpp: |
| (main): |
| * wtf/Atomics.h: |
| (WTF::Atomic::compareExchangeWeak): |
| (WTF::Atomic::compareExchangeStrong): |
| * wtf/ByteLock.cpp: Added. |
| (WTF::ByteLock::lockSlow): |
| (WTF::ByteLock::unlockSlow): |
| * wtf/ByteLock.h: Added. |
| (WTF::ByteLock::ByteLock): |
| (WTF::ByteLock::lock): |
| (WTF::ByteLock::unlock): |
| (WTF::ByteLock::isHeld): |
| (WTF::ByteLock::isLocked): |
| * wtf/CMakeLists.txt: |
| * wtf/Lock.h: |
| * wtf/ParkingLot.cpp: Added. |
| (WTF::ParkingLot::parkConditionally): |
| (WTF::ParkingLot::unparkOne): |
| (WTF::ParkingLot::unparkAll): |
| (WTF::ParkingLot::forEach): |
| * wtf/ParkingLot.h: Added. |
| (WTF::ParkingLot::compareAndPark): |
| |
| 2015-08-11 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Unreviewed gardening. |
| |
| * WTF.vcxproj/WTF.vcxproj.filters: Place file references so that files appear in correct |
| folders in IDE. |
| |
| 2015-08-10 Youenn Fablet <youenn.fablet@crf.canon.fr> |
| |
| Compile warning (-Wsign-compare) on 32-bits at WebCore/platform/FileSystem.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=146414 |
| |
| Reviewed by Darin Adler. |
| |
| Added convertSafely routine based on isInBounds routine. |
| Updated BoundChecker by adding a third boolean parameter to this template giving whether Target has greater or equal precision than Source. |
| Removed BoundCheckElider, which is no longer necessary and had some issues. |
| |
| * wtf/CheckedArithmetic.h: |
| (WTF::isInBounds): |
| (WTF::convertSafely): |
| |
| 2015-08-07 Filip Pizlo <fpizlo@apple.com> |
| |
| Lightweight locks should be adaptive |
| https://bugs.webkit.org/show_bug.cgi?id=147545 |
| |
| Reviewed by Geoffrey Garen. |
| |
| A common idiom in WebKit is to use spinlocks. We use them because the lock acquisition |
| overhead is lower than system locks and because they take dramatically less space than system |
| locks. The speed and space advantages of spinlocks can be astonishing: an uncontended spinlock |
| acquire is up to 10x faster and under microcontention - short critical section with two or |
| more threads taking turns - spinlocks are up to 100x faster. Spinlocks take only 1 byte or 4 |
| bytes depending on the flavor, while system locks take 64 bytes or more. Clearly, WebKit |
| should continue to avoid system locks - they are just far too slow and far too big. |
| |
| But there is a problem with this idiom. System lock implementations will sleep a thread when |
| it attempts to acquire a lock that is held, while spinlocks will cause the thread to burn CPU. |
| In WebKit spinlocks, the thread will repeatedly call sched_yield(). This is awesome for |
| microcontention, but awful when the lock will not be released for a while. In fact, when |
| critical sections take tens of microseconds or more, the CPU time cost of our spinlocks is |
| almost 100x more than the CPU time cost of a system lock. This case doesn't arise too |
| frequently in our current uses of spinlocks, but that's probably because right now there are |
| places where we make a conscious decision to use system locks - even though they use more |
| memory and are slower - because we don't want to waste CPU cycles when a thread has to wait a |
| while to acquire the lock. |
| |
| The solution is to just implement a modern adaptive mutex in WTF. Luckily, this isn't a new |
| concept. This patch implements a mutex that is reminiscent of the kinds of low-overhead locks |
| that JVMs use. The actual implementation here is inspired by some of the ideas from [1]. The |
| idea is simple: the fast path is an inlined CAS to immediately acquire a lock that isn't held, |
| the slow path tries some number of spins to acquire the lock, and if that fails, the thread is |
| put on a queue and put to sleep. The queue is made up of statically allocated thread nodes and |
| the lock itself is a tagged pointer: either it is just bits telling us the complete lock state |
| (not held or held) or it is a pointer to the head of a queue of threads waiting to acquire the |
| lock. This approach gives WTF::Lock three different levels of adaptation: an inlined fast path |
| if the lock is not contended, a short burst of spinning for microcontention, and a full-blown |
| queue for critical sections that are held for a long time. |
| |
| On a locking microbenchmark, this new Lock exhibits the following performance |
| characteristics: |
| |
| - Lock+unlock on an uncontended no-op critical section: 2x slower than SpinLock and 3x faster |
| than a system mutex. |
| |
| - Lock+unlock on a contended no-op critical section: 2x slower than SpinLock and 100x faster |
| than a system mutex. |
| |
| - CPU time spent in lock() on a lock held for a while: same as system mutex, 90x less than a |
| SpinLock. |
| |
| - Memory usage: sizeof(void*), so on 64-bit it's 8x less than a system mutex but 2x worse than |
| a SpinLock. |
| |
| This patch replaces all uses of SpinLock with Lock, since our critical sections are not |
| no-ops so if you do basically anything in your critical section, the Lock overhead will be |
| invisible. Also, in all places where we used SpinLock, we could tolerate 8 bytes of overhead |
| instead of 4. Performance benchmarking using JSC macrobenchmarks shows no difference, which is |
| as it should be: the purpose of this change is to reduce CPU time wasted, not wallclock time. |
| This patch doesn't replace any uses of ByteSpinLock, since we expect that the space benefits |
| of having a lock that just uses a byte are still better than the CPU wastage benefits of |
| Lock. But, this work will enable some future work to create locks that will fit in just 1.6 |
| bits: https://bugs.webkit.org/show_bug.cgi?id=147665. |
| |
| Rolling this back in after fixing Lock::unlockSlow() for architectures that have a truly weak |
| CAS. Since the Lock::unlock() fast path can go to slow path spuriously, it may go there even if |
| there aren't any threads on the Lock's queue. So, unlockSlow() must be able to deal with the |
| possibility of a null queue head. |
| |
| [1] http://www.filpizlo.com/papers/pizlo-pppj2011-fable.pdf |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.xcodeproj/project.pbxproj: |
| * benchmarks: Added. |
| * benchmarks/LockSpeedTest.cpp: Added. |
| (main): |
| * wtf/Atomics.h: |
| (WTF::Atomic::compareExchangeWeak): |
| (WTF::Atomic::compareExchangeStrong): |
| * wtf/CMakeLists.txt: |
| * wtf/Lock.cpp: Added. |
| (WTF::LockBase::lockSlow): |
| (WTF::LockBase::unlockSlow): |
| * wtf/Lock.h: Added. |
| (WTF::LockBase::lock): |
| (WTF::LockBase::unlock): |
| (WTF::LockBase::isHeld): |
| (WTF::LockBase::isLocked): |
| (WTF::Lock::Lock): |
| * wtf/MetaAllocator.cpp: |
| (WTF::MetaAllocator::release): |
| (WTF::MetaAllocatorHandle::shrink): |
| (WTF::MetaAllocator::allocate): |
| (WTF::MetaAllocator::currentStatistics): |
| (WTF::MetaAllocator::addFreshFreeSpace): |
| (WTF::MetaAllocator::debugFreeSpaceSize): |
| * wtf/MetaAllocator.h: |
| * wtf/SpinLock.h: |
| * wtf/ThreadingPthreads.cpp: |
| * wtf/ThreadingWin.cpp: |
| * wtf/text/AtomicString.cpp: |
| * wtf/text/AtomicStringImpl.cpp: |
| (WTF::AtomicStringTableLocker::AtomicStringTableLocker): |
| |
| 2015-08-05 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, roll out http://trac.webkit.org/changeset/187972. |
| |
| * wtf/Atomics.cpp: |
| (WTF::getSwapLock): |
| (WTF::atomicStep): |
| * wtf/MessageQueue.h: |
| (WTF::MessageQueue::infiniteTime): |
| (WTF::MessageQueue<DataType>::append): |
| (WTF::MessageQueue<DataType>::appendAndKill): |
| (WTF::MessageQueue<DataType>::appendAndCheckEmpty): |
| (WTF::MessageQueue<DataType>::prepend): |
| (WTF::MessageQueue<DataType>::removeIf): |
| (WTF::MessageQueue<DataType>::isEmpty): |
| (WTF::MessageQueue<DataType>::kill): |
| (WTF::MessageQueue<DataType>::killed): |
| * wtf/ParallelJobsGeneric.cpp: |
| (WTF::ParallelEnvironment::ThreadPrivate::execute): |
| (WTF::ParallelEnvironment::ThreadPrivate::waitForFinish): |
| (WTF::ParallelEnvironment::ThreadPrivate::workerThread): |
| * wtf/ParallelJobsGeneric.h: |
| * wtf/RunLoop.cpp: |
| (WTF::RunLoop::performWork): |
| (WTF::RunLoop::dispatch): |
| * wtf/RunLoop.h: |
| * wtf/ThreadSpecificWin.cpp: |
| (WTF::destructorsList): |
| (WTF::destructorsMutex): |
| (WTF::threadSpecificKeyCreate): |
| (WTF::threadSpecificKeyDelete): |
| (WTF::ThreadSpecificThreadExit): |
| * wtf/Threading.cpp: |
| (WTF::threadEntryPoint): |
| (WTF::createThread): |
| * wtf/ThreadingPrimitives.h: |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::threadMapMutex): |
| (WTF::initializeThreading): |
| (WTF::identifierByPthreadHandle): |
| (WTF::establishIdentifierForPthreadHandle): |
| (WTF::changeThreadPriority): |
| (WTF::waitForThreadCompletion): |
| (WTF::detachThread): |
| (WTF::threadDidExit): |
| (WTF::currentThread): |
| (WTF::Mutex::Mutex): |
| (WTF::Mutex::~Mutex): |
| (WTF::Mutex::lock): |
| (WTF::Mutex::tryLock): |
| (WTF::Mutex::unlock): |
| (WTF::ThreadCondition::~ThreadCondition): |
| (WTF::ThreadCondition::wait): |
| (WTF::ThreadCondition::timedWait): |
| (WTF::DeprecatedMutex::DeprecatedMutex): Deleted. |
| (WTF::DeprecatedMutex::~DeprecatedMutex): Deleted. |
| (WTF::DeprecatedMutex::lock): Deleted. |
| (WTF::DeprecatedMutex::tryLock): Deleted. |
| (WTF::DeprecatedMutex::unlock): Deleted. |
| * wtf/ThreadingWin.cpp: |
| (WTF::initializeCurrentThreadInternal): |
| (WTF::threadMapMutex): |
| (WTF::initializeThreading): |
| (WTF::storeThreadHandleByIdentifier): |
| (WTF::threadHandleForIdentifier): |
| (WTF::clearThreadHandleForIdentifier): |
| (WTF::currentThread): |
| (WTF::Mutex::Mutex): |
| (WTF::Mutex::~Mutex): |
| (WTF::Mutex::lock): |
| (WTF::Mutex::tryLock): |
| (WTF::Mutex::unlock): |
| (WTF::ThreadCondition::~ThreadCondition): |
| (WTF::ThreadCondition::wait): |
| (WTF::ThreadCondition::timedWait): |
| (WTF::DeprecatedMutex::DeprecatedMutex): Deleted. |
| (WTF::DeprecatedMutex::~DeprecatedMutex): Deleted. |
| (WTF::DeprecatedMutex::lock): Deleted. |
| (WTF::DeprecatedMutex::tryLock): Deleted. |
| (WTF::DeprecatedMutex::unlock): Deleted. |
| * wtf/WorkQueue.h: |
| * wtf/dtoa.cpp: |
| * wtf/dtoa.h: |
| * wtf/efl/DispatchQueueEfl.cpp: |
| (DispatchQueue::dispatch): |
| (DispatchQueue::performWork): |
| (DispatchQueue::performTimerWork): |
| (DispatchQueue::insertTimerWorkItem): |
| (DispatchQueue::wakeUpThread): |
| (DispatchQueue::getNextTimeOut): |
| * wtf/efl/DispatchQueueEfl.h: |
| * wtf/efl/RunLoopEfl.cpp: |
| (WTF::RunLoop::wakeUpEvent): |
| (WTF::RunLoop::wakeUp): |
| * wtf/threads/BinarySemaphore.cpp: |
| (WTF::BinarySemaphore::signal): |
| (WTF::BinarySemaphore::wait): |
| * wtf/threads/BinarySemaphore.h: |
| * wtf/win/WorkQueueWin.cpp: |
| (WTF::WorkQueue::handleCallback): |
| (WTF::WorkQueue::platformInvalidate): |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::timerCallback): |
| (WTF::WorkQueue::dispatchAfter): |
| |
| 2015-08-05 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, fix Windows. |
| |
| * wtf/ThreadSpecificWin.cpp: |
| (WTF::destructorsList): |
| (WTF::destructorsMutex): |
| (WTF::threadSpecificKeyCreate): |
| (WTF::threadSpecificKeyDelete): |
| (WTF::ThreadSpecificThreadExit): |
| |
| 2015-08-04 Filip Pizlo <fpizlo@apple.com> |
| |
| Rename Mutex to DeprecatedMutex |
| https://bugs.webkit.org/show_bug.cgi?id=147675 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Atomics.cpp: |
| (WTF::getSwapLock): |
| (WTF::atomicStep): |
| * wtf/MessageQueue.h: |
| (WTF::MessageQueue::infiniteTime): |
| (WTF::MessageQueue<DataType>::append): |
| (WTF::MessageQueue<DataType>::appendAndKill): |
| (WTF::MessageQueue<DataType>::appendAndCheckEmpty): |
| (WTF::MessageQueue<DataType>::prepend): |
| (WTF::MessageQueue<DataType>::removeIf): |
| (WTF::MessageQueue<DataType>::isEmpty): |
| (WTF::MessageQueue<DataType>::kill): |
| (WTF::MessageQueue<DataType>::killed): |
| * wtf/ParallelJobsGeneric.cpp: |
| (WTF::ParallelEnvironment::ThreadPrivate::execute): |
| (WTF::ParallelEnvironment::ThreadPrivate::waitForFinish): |
| (WTF::ParallelEnvironment::ThreadPrivate::workerThread): |
| * wtf/ParallelJobsGeneric.h: |
| * wtf/RunLoop.cpp: |
| (WTF::RunLoop::performWork): |
| (WTF::RunLoop::dispatch): |
| * wtf/RunLoop.h: |
| * wtf/Threading.cpp: |
| (WTF::threadEntryPoint): |
| (WTF::createThread): |
| * wtf/ThreadingPrimitives.h: |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::threadMapMutex): |
| (WTF::initializeThreading): |
| (WTF::identifierByPthreadHandle): |
| (WTF::establishIdentifierForPthreadHandle): |
| (WTF::changeThreadPriority): |
| (WTF::waitForThreadCompletion): |
| (WTF::detachThread): |
| (WTF::threadDidExit): |
| (WTF::currentThread): |
| (WTF::DeprecatedMutex::DeprecatedMutex): |
| (WTF::DeprecatedMutex::~DeprecatedMutex): |
| (WTF::DeprecatedMutex::lock): |
| (WTF::DeprecatedMutex::tryLock): |
| (WTF::DeprecatedMutex::unlock): |
| (WTF::ThreadCondition::~ThreadCondition): |
| (WTF::ThreadCondition::wait): |
| (WTF::ThreadCondition::timedWait): |
| (WTF::Mutex::Mutex): Deleted. |
| (WTF::Mutex::~Mutex): Deleted. |
| (WTF::Mutex::lock): Deleted. |
| (WTF::Mutex::tryLock): Deleted. |
| (WTF::Mutex::unlock): Deleted. |
| * wtf/ThreadingWin.cpp: |
| (WTF::initializeCurrentThreadInternal): |
| (WTF::threadMapMutex): |
| (WTF::initializeThreading): |
| (WTF::storeThreadHandleByIdentifier): |
| (WTF::threadHandleForIdentifier): |
| (WTF::clearThreadHandleForIdentifier): |
| (WTF::currentThread): |
| (WTF::DeprecatedMutex::DeprecatedMutex): |
| (WTF::DeprecatedMutex::~DeprecatedMutex): |
| (WTF::DeprecatedMutex::lock): |
| (WTF::DeprecatedMutex::tryLock): |
| (WTF::DeprecatedMutex::unlock): |
| (WTF::ThreadCondition::~ThreadCondition): |
| (WTF::ThreadCondition::wait): |
| (WTF::ThreadCondition::timedWait): |
| (WTF::Mutex::Mutex): Deleted. |
| (WTF::Mutex::~Mutex): Deleted. |
| (WTF::Mutex::lock): Deleted. |
| (WTF::Mutex::tryLock): Deleted. |
| (WTF::Mutex::unlock): Deleted. |
| * wtf/WorkQueue.h: |
| * wtf/dtoa.cpp: |
| * wtf/dtoa.h: |
| * wtf/efl/DispatchQueueEfl.cpp: |
| (DispatchQueue::dispatch): |
| (DispatchQueue::performWork): |
| (DispatchQueue::performTimerWork): |
| (DispatchQueue::insertTimerWorkItem): |
| (DispatchQueue::wakeUpThread): |
| (DispatchQueue::getNextTimeOut): |
| * wtf/efl/DispatchQueueEfl.h: |
| * wtf/efl/RunLoopEfl.cpp: |
| (WTF::RunLoop::wakeUpEvent): |
| (WTF::RunLoop::wakeUp): |
| * wtf/threads/BinarySemaphore.cpp: |
| (WTF::BinarySemaphore::signal): |
| (WTF::BinarySemaphore::wait): |
| * wtf/threads/BinarySemaphore.h: |
| * wtf/win/WorkQueueWin.cpp: |
| (WTF::WorkQueue::handleCallback): |
| (WTF::WorkQueue::platformInvalidate): |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::timerCallback): |
| (WTF::WorkQueue::dispatchAfter): |
| |
| 2015-08-04 Alex Christensen <achristensen@webkit.org> |
| |
| Fix quirks with CMake and VS2015 |
| https://bugs.webkit.org/show_bug.cgi?id=147663 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/Platform.h: |
| Build fix after r187908 |
| |
| 2015-08-04 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Update Apple Windows build for VS2015 |
| https://bugs.webkit.org/show_bug.cgi?id=147653 |
| |
| Reviewed by Dean Jackson. |
| |
| * WTF.vcxproj/WTF.vcxproj.filters: Drive-by-fix to place files in |
| proper project locations in the IDE. |
| * wtf/Platform.h: Don't define the _HAS_EXCEPTIONS macro when building with |
| Visual Studio 2015. |
| |
| 2015-08-04 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r187815 and r187817. |
| https://bugs.webkit.org/show_bug.cgi?id=147644 |
| |
| Caused lots of Windows crashes (Requested by smfr on #webkit). |
| |
| Reverted changesets: |
| |
| "[WTF] Turn tryMakeString(), makeString() into variadic |
| templates" |
| https://bugs.webkit.org/show_bug.cgi?id=147142 |
| http://trac.webkit.org/changeset/187815 |
| |
| "Unreviewed build fix." |
| http://trac.webkit.org/changeset/187817 |
| |
| 2015-08-04 Alex Christensen <achristensen@webkit.org> |
| |
| Enable WebGL on Windows CMake build. |
| https://bugs.webkit.org/show_bug.cgi?id=143311 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/FeatureDefines.h: |
| Made the CMake feature defines the same as the non-CMake feature defines. |
| |
| 2015-08-03 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Introduce COMPILER(GCC_OR_CLANG) guard and make COMPILER(GCC) true only for GCC |
| https://bugs.webkit.org/show_bug.cgi?id=146833 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: Removed redundant COMPILER(CLANG) guard. |
| * wtf/Atomics.cpp: |
| * wtf/Atomics.h: |
| (WTF::weakCompareAndSwap): |
| (WTF::compilerFence): |
| * wtf/Compiler.h: |
| - Renamed COMPILER(GCC) to COMPILER(GCC_OR_CLANG), because it is true for both compiler. |
| - Added COMPILER(GCC) which is true only for GCC. |
| - Moved all GCC related stuff to one block and removed redundant guards accordingly. |
| - Removed the unused default false definition of GCC_VERSION_AT_LEAST for non GCC compilers. |
| * wtf/ExportMacros.h: |
| * wtf/FastMalloc.h: |
| * wtf/Platform.h: |
| * wtf/StdLibExtras.h: |
| * wtf/Vector.h: |
| * wtf/text/ASCIIFastPath.h: |
| (WTF::copyLCharsFromUCharSource): |
| |
| 2015-08-03 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed build fix. |
| |
| * wtf/text/StringConcatenate.h: Include <tuple> to avoid missing |
| std::tuple<> class definitions. |
| |
| 2015-08-03 Zan Dobersek <zdobersek@igalia.com> |
| |
| [WTF] Turn tryMakeString(), makeString() into variadic templates |
| https://bugs.webkit.org/show_bug.cgi?id=147142 |
| |
| Reviewed by Sam Weinig. |
| |
| Built upon the original work by Anders Carlsson, Mark Rowe and Sam Weinig. |
| |
| Implement tryMakeString() and makeString() as variadic templates, replacing |
| the argument count-based overloads. |
| |
| tryMakeString() now constructs a stack-based tuple of necessary StringTypeAdapter |
| objects and utilizes the StringAdapterTuple struct template to operate on that |
| tuple, recursively calling the necessary operations on each element in the tuple. |
| This effectively mimics the process of previous tryMakeString() implementation, |
| but makes it scalable to a tuple of elements that are to be concatenated. |
| |
| StringAppend class template now stores two StringTypeAdapter objects for the |
| two passed-in string objects, packed in a tuple, calling |
| StringAdapterTuple<>::createString() directly when concatenating the two objects |
| into one String. |
| |
| * wtf/text/StringConcatenate.h: |
| (WTF::StringTypeAdapter<char>::length): |
| (WTF::StringTypeAdapter<char>::is8Bit): |
| (WTF::StringAdapterTuple::sumWithOverflow): |
| (WTF::StringAdapterTuple::is8Bit): |
| (WTF::StringAdapterTuple::writeTo): |
| (WTF::StringAdapterTuple::createString): |
| (WTF::tryMakeString): |
| (WTF::makeString): |
| (WTF::sumWithOverflow): Deleted. |
| * wtf/text/StringOperators.h: |
| (WTF::StringAppend::StringAppend): |
| (WTF::StringAppend::operator String): |
| (WTF::StringAppend::is8Bit): |
| (WTF::StringAppend::writeTo): |
| (WTF::StringAppend::length): |
| (WTF::StringAppend::string1): |
| (WTF::StringAppend::string2): |
| |
| 2015-08-03 Anders Carlsson <andersca@apple.com> |
| |
| Make it possible to use String::utf8() in the debugger |
| https://bugs.webkit.org/show_bug.cgi?id=147566 |
| |
| Reviewed by Tim Horton. |
| |
| Add a new utf8() overload that doesn't take any parameters and just calls utf8(LenientConversion), since lldb doesn't support evaluating |
| function calls with default parameters at the moment. |
| |
| * wtf/text/WTFString.cpp: |
| (WTF::String::utf8): |
| * wtf/text/WTFString.h: |
| |
| 2015-08-02 Benjamin Poulain <bpoulain@apple.com> |
| |
| Investigate HashTable::HashTable(const HashTable&) and HashTable::operator=(const HashTable&) performance for hash-based static analyses |
| https://bugs.webkit.org/show_bug.cgi?id=118455 |
| |
| Reviewed by Filip Pizlo. |
| |
| Previously, when copying a HashTable, we would start from scratch |
| with an empty table and insert elements one by one, growing-rehashing |
| the table as needed. |
| |
| With this patch, we have 2 improvements to remove most of the cost. |
| |
| First, we compute a good size from the start. This removes all the |
| reallocations and rehashs. |
| This is where the biggest gain comes from. |
| |
| The second part is a simpler version of add() when we know that |
| we cannot find a bucket with the same key and there cannot |
| be any deleted bucket. |
| This removes most branches from the hot loop, cutting another 25% |
| of the time. |
| |
| * wtf/HashTable.h: |
| (WTF::KeyTraits>::addUniqueForInitialization): |
| (WTF::KeyTraits>::HashTable): |
| |
| 2015-08-01 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| HashTraits<AtomicString> can use SimpleClassHashTraits |
| https://bugs.webkit.org/show_bug.cgi?id=147528 |
| |
| Reviewed by Andreas Kling. |
| |
| No point in duplicating the code inside SimpleClassHashTraits. |
| |
| * wtf/text/AtomicStringHash.h: |
| (WTF::HashTraits<WTF::AtomicString>::constructDeletedValue): Deleted. |
| (WTF::HashTraits<WTF::AtomicString>::isDeletedValue): Deleted. |
| |
| 2015-08-01 Alex Christensen <achristensen@webkit.org> |
| |
| Fix compile errors with VS2015 |
| https://bugs.webkit.org/show_bug.cgi?id=147526 |
| |
| Reviewed by Myles Maxfield. |
| |
| * wtf/StringExtras.h: |
| (snprintf): |
| (wtf_vsnprintf): |
| VS2015 has an implementation of snprintf. |
| |
| 2015-07-31 Alex Christensen <achristensen@webkit.org> |
| |
| Prepare for VS2015 |
| https://bugs.webkit.org/show_bug.cgi?id=146579 |
| |
| Reviewed by Jon Honeycutt. |
| |
| * wtf/StdLibExtras.h: |
| (std::exchange): |
| Added preprocessor macros around functions implemented in VS2015's standard library. |
| |
| 2015-07-30 Chris Dumez <cdumez@apple.com> |
| |
| Mark more classes as fast allocated |
| https://bugs.webkit.org/show_bug.cgi?id=147440 |
| |
| Reviewed by Sam Weinig. |
| |
| Mark more classes as fast allocated for performance. We heap-allocate |
| objects of those types throughout the code base. |
| |
| * wtf/Bag.h: |
| * wtf/SegmentedVector.h: |
| * wtf/SentinelLinkedList.h: |
| |
| 2015-07-29 Basile Clement <basile_clement@apple.com> |
| |
| Remove native call inlining |
| https://bugs.webkit.org/show_bug.cgi?id=147417 |
| |
| Rubber-stamped by Filip Pizlo. |
| |
| * wtf/Platform.h: |
| |
| 2015-07-28 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [ES6] Add ENABLE_ES6_MODULES compile time flag with the default value "false" |
| https://bugs.webkit.org/show_bug.cgi?id=147350 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-07-28 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, fix Windows build. |
| |
| * wtf/MetaAllocatorHandle.h: |
| (WTF::MetaAllocatorHandle::key): |
| |
| 2015-07-27 Filip Pizlo <fpizlo@apple.com> |
| |
| Add logging when executable code gets deallocated |
| https://bugs.webkit.org/show_bug.cgi?id=147355 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/MetaAllocator.cpp: |
| (WTF::MetaAllocatorHandle::dump): It's useful to be able to dump these. |
| * wtf/MetaAllocatorHandle.h: |
| |
| 2015-07-28 Benjamin Poulain <bpoulain@apple.com> |
| |
| Speed up StringBuilder::appendQuotedJSONString() |
| https://bugs.webkit.org/show_bug.cgi?id=147352 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/text/StringBuilder.cpp: |
| (WTF::appendQuotedJSONStringInternal): |
| The cases '"' and '\\' are not that uncommon, and they can easily |
| be handled in the original branch testing for them. |
| |
| This is about 2.5% better on the JSON.stringify test. |
| |
| 2015-07-27 Alex Christensen <achristensen@webkit.org> |
| |
| Progress towards building AppleWin with CMake |
| https://bugs.webkit.org/show_bug.cgi?id=147325 |
| |
| Reviewed by Martin Robinson. |
| |
| * wtf/PlatformWin.cmake: |
| Link with CoreFoundation.lib. |
| |
| 2015-07-25 Carlos Alberto Lopez Perez <clopez@igalia.com> |
| |
| REGRESSION (bmalloc): WebKit performance tests don't report memory stats. |
| https://bugs.webkit.org/show_bug.cgi?id=141247 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Meanwhile a better way of getting memory stats with bmalloc is not found |
| (see bug 136592), we can report as memory stats the resident set size |
| information that the operating system provides to us. |
| |
| This at least should be good enough to get back the memory stats on the |
| performance tests and being able to track down memory usage regressions |
| at https://perf.webkit.org |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::fastMallocStatistics): Report maxrss data as committedVMBytes. |
| |
| 2015-07-24 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Remove the unused GCC workaround - std::is_trivially_destructible |
| https://bugs.webkit.org/show_bug.cgi?id=147226 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/StdLibExtras.h: |
| |
| 2015-07-23 Alex Christensen <achristensen@webkit.org> |
| |
| Remove compile and runtime flags for promises. |
| https://bugs.webkit.org/show_bug.cgi?id=147244 |
| |
| Reviewed by Yusuke Suzuki. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-07-22 Sukolsak Sakshuwong <sukolsak@gmail.com> |
| |
| Add ENABLE_WEBASSEMBLY feature flag for WebAssembly |
| https://bugs.webkit.org/show_bug.cgi?id=147212 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-07-22 Filip Pizlo <fpizlo@apple.com> |
| |
| Introduce release assert for using threads before threading is initialized |
| https://bugs.webkit.org/show_bug.cgi?id=147200 |
| |
| Reviewed by Michael Saboff. |
| |
| This will help bugs where you use createThread() before calling initializeThreading(). |
| |
| * wtf/ThreadIdentifierDataPthreads.cpp: |
| (WTF::ThreadIdentifierData::initialize): |
| |
| 2015-07-21 Daniel Bates <dabates@apple.com> |
| |
| WTFCrash() in WebKit::WebProcess::networkConnection() |
| https://bugs.webkit.org/show_bug.cgi?id=147112 |
| <rdar://problem/18477459> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Add explicit boolean conversion function and remove overload of operator! to support |
| checking whether an activity token is valid more directly than using the overloaded operator!. |
| |
| * wtf/RefCounter.h: |
| (WTF::RefCounter::Token::operator bool): Added. |
| (WTF::RefCounter::Token::operator!): Deleted. |
| |
| 2015-07-20 Mark Lam <mark.lam@apple.com> |
| |
| Rollout r187020 and r187021: breaks JSC API tests on debug builds. |
| https://bugs.webkit.org/show_bug.cgi?id=147110 |
| |
| * wtf/WTFThreadData.cpp: |
| (WTF::WTFThreadData::WTFThreadData): |
| * wtf/WTFThreadData.h: |
| (WTF::WTFThreadData::stack): |
| |
| 2015-07-20 Alex Christensen <achristensen@webkit.org> |
| |
| Resurrect CMake build on Windows. |
| https://bugs.webkit.org/show_bug.cgi?id=147083 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| * wtf/PlatformWin.cmake: |
| |
| 2015-07-20 Per Arne Vollan <peavo@outlook.com> |
| |
| JavaScriptCore performance is very bad on Windows |
| https://bugs.webkit.org/show_bug.cgi?id=146448 |
| |
| Reviewed by Mark Lam. |
| |
| Updating the stack bounds is time consuming. |
| Only update the stack bounds when a new fiber is running. |
| |
| * wtf/WTFThreadData.cpp: |
| (WTF::WTFThreadData::WTFThreadData): |
| * wtf/WTFThreadData.h: |
| (WTF::WTFThreadData::stack): |
| |
| 2015-07-20 Julien Brianceau <julien.brianceau@gmail.com> |
| |
| Use isnan from std namespace in Stopwatch.h. |
| https://bugs.webkit.org/show_bug.cgi?id=146911 |
| |
| Reviewed by Žan Doberšek. |
| |
| * wtf/Stopwatch.h: |
| (WTF::Stopwatch::isActive): |
| (WTF::Stopwatch::start): |
| (WTF::Stopwatch::stop): |
| (WTF::Stopwatch::elapsedTime): |
| |
| 2015-07-16 Benjamin Poulain <bpoulain@apple.com> |
| |
| [Content extensions] Combine suffixes when generating NFAs |
| https://bugs.webkit.org/show_bug.cgi?id=146961 |
| |
| Reviewed by Alex Christensen. |
| |
| * wtf/Vector.h: |
| (WTF::minCapacity>::Vector): |
| (WTF::=): |
| Copying a vector with a different inline capacity was broken due to |
| the addition of MinimumCapacity. |
| |
| This feature was needed by this patch so I fixed WTF. |
| |
| 2015-07-15 Anders Carlsson <andersca@apple.com> |
| |
| Make JavaScriptCore SPI headers used by WebCore SPI headers self-contained |
| https://bugs.webkit.org/show_bug.cgi?id=146978 |
| |
| Reviewed by Dan Bernstein. |
| |
| * wtf/ExportMacros.h: |
| |
| 2015-07-14 Anders Carlsson <andersca@apple.com> |
| |
| Assertions.h should include ExportMacros.h |
| https://bugs.webkit.org/show_bug.cgi?id=146948 |
| |
| Reviewed by Tim Horton. |
| |
| * wtf/Assertions.h: |
| |
| 2015-07-11 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Unreviewed build fix, restrict APP_LINKS to just iOS. |
| |
| * wtf/Platform.h: |
| |
| 2015-07-09 Tim Horton <timothy_horton@apple.com> |
| |
| Use CoreAnimation fences instead of synchronous IPC to synchronize resize |
| https://bugs.webkit.org/show_bug.cgi?id=146294 |
| <rdar://problem/21090193> |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Platform.h: |
| Add HAVE(COREANIMATION_FENCES) |
| |
| 2015-07-04 Chris Dumez <cdumez@apple.com> |
| |
| Drop RefPtr::clear() method |
| https://bugs.webkit.org/show_bug.cgi?id=146556 |
| |
| Reviewed by Brady Eidson. |
| |
| Drop RefPtr::clear() method in favor of "= nullptr;" pattern. |
| Also made the "= nullptr;" pattern as efficient as clear() |
| by providing a operator=(nullptr_t) overload. Local micro- |
| benchmarking showed that "= nullptr;" used to be ~1.7% slower |
| than clear(). |
| |
| 2015-07-03 Dan Bernstein <mitz@apple.com> |
| |
| [Xcode] Update some build settings as recommended by Xcode 7 |
| https://bugs.webkit.org/show_bug.cgi?id=146597 |
| |
| Reviewed by Sam Weinig. |
| |
| * Configurations/Base.xcconfig: Enabled CLANG_WARN_UNREACHABLE_CODE and |
| GCC_NO_COMMON_BLOCKS. Removed GCC_MODEL_TUNING. |
| |
| * WTF.xcodeproj/project.pbxproj: Updated LastUpgradeCheck. |
| |
| 2015-07-01 Alex Christensen <achristensen@webkit.org> |
| |
| Re-enable WebGL on WinCairo |
| https://bugs.webkit.org/show_bug.cgi?id=146537 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/FeatureDefines.h: |
| Enable WebGL on WinCairo again. |
| |
| 2015-07-01 Alex Christensen <achristensen@webkit.org> |
| |
| Ignore Visual Studio warning in SegmentedVector |
| https://bugs.webkit.org/show_bug.cgi?id=146514 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/SegmentedVector.h: |
| (WTF::SegmentedVector::deleteAllSegments): |
| Use pragmas to ignore the 0 element array warning. |
| |
| 2015-07-01 Dean Jackson <dino@apple.com> |
| |
| Disable the experimental WebGL2 implementation |
| https://bugs.webkit.org/show_bug.cgi?id=146526 |
| <rdar://problem/21641235> |
| |
| Reviewed by Myles Maxfield. |
| |
| Add (and disable) an ENABLE_WEBGL2 flag. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-06-30 Alex Christensen <achristensen@webkit.org> |
| |
| [Win] Unreviewed build fix after r186169. |
| |
| * wtf/FeatureDefines.h: |
| Temporarily disable WebGL on WinCairo. It was already temporarily disabled on AppleWin. |
| |
| 2015-06-30 Andy VanWagoner <thetalecrafter@gmail.com> |
| |
| Implement ECMAScript Internationalization API |
| https://bugs.webkit.org/show_bug.cgi?id=90906 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/FeatureDefines.h: add ENABLE_INTL flag |
| |
| 2015-06-30 Keith Miller <keith_miller@apple.com> |
| |
| Errors in read() are not handled in WTF::cryptographicallyRandomValuesFromOS. |
| https://bugs.webkit.org/show_bug.cgi?id=146473 |
| |
| Reviewed by Filip Pizlo. |
| |
| We were not checking if errors occurred in WTF::cryptographicallyRandomValuesFromOS. |
| We now buffer the data until enough bits of entropy exist to fill the buffer |
| rather than crash. Additionally, added two crash functions so we can distinguish |
| between the two reasons why we crashed in traces. |
| |
| * wtf/OSRandomSource.cpp: |
| (WTF::crashUnableToOpenFD): |
| (WTF::crashUnableToReadFromFD): |
| (WTF::cryptographicallyRandomValuesFromOS): |
| |
| 2015-06-29 Dean Jackson <dino@apple.com> |
| |
| Temporarily disable PICTURE_SIZES |
| https://bugs.webkit.org/show_bug.cgi?id=146435 |
| <rdar://problem/21087013> |
| |
| Reviewed by Tim Horton. |
| |
| Temporarily disable PICTURE_SIZES because it causes problems with out |
| of date <picture> polyfills. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-06-26 Antti Koivisto <antti@apple.com> |
| |
| Network process hangs fetching disk cache entries |
| https://bugs.webkit.org/show_bug.cgi?id=146348 |
| <rdar://problem/21528072> |
| |
| Reviewed by Anders Carlsson. |
| |
| RunLoop::dispatch may deadlock if invoked with std::function that captures an object that calls RunLoop::dispatch in destructor. |
| |
| * wtf/RunLoop.cpp: |
| (WTF::RunLoop::performWork): |
| |
| Don't reuse std::function variable in loop. We may end up destroying previously held std::function in assignment |
| while holding the runloop mutex. With this change std::function is always destroyed with mutex unlocked. |
| |
| 2015-06-24 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r185906. |
| https://bugs.webkit.org/show_bug.cgi?id=146276 |
| |
| MSVC doesn't yet provide a const-qualified std::array<T, |
| N>::size(), failing to compile the static_assert (Requested by |
| zdobersek on #webkit). |
| |
| Reverted changeset: |
| |
| "Improve the source code generated by make_names.pl" |
| https://bugs.webkit.org/show_bug.cgi?id=146208 |
| http://trac.webkit.org/changeset/185906 |
| |
| 2015-06-24 Zan Dobersek <zdobersek@igalia.com> |
| |
| Improve the source code generated by make_names.pl |
| https://bugs.webkit.org/show_bug.cgi?id=146208 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::assertHashIsCorrect): Make this method const-qualified. |
| |
| 2015-06-22 Darin Adler <darin@apple.com> |
| |
| Make Array.join work directly on substrings without reifying them |
| https://bugs.webkit.org/show_bug.cgi?id=146191 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Vector.h: Added an overload of uncheckedAppend like the one we added |
| a while back, a non-template function that forwards through to the function |
| template. This lets us call uncheckedAppend on an argument list and have it |
| properly convert it to the Vector's element type. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::getCharactersWithUpconvert): Changed to not use memcpy; |
| saw some indication the hand-written loop was faster when profiling. Also |
| use m_length directly when we know we are dealing with an 8-bit string, |
| since the masking that the index function does is not needed in that case. |
| (WTF::StringView::UpconvertedCharacters::UpconvertedCharacters): Ditto. |
| (WTF::StringView::toString): Ditto. |
| (WTF::StringView::toFloat): Ditto. |
| (WTF::StringView::toInt): Ditto. |
| (WTF::StringView::toStringWithoutCopying): Ditto. |
| (WTF::StringView::find): Ditto. |
| |
| 2015-06-22 YunQiang Su <wzssyqa@gmail.com> |
| |
| [WTF] Platform.h: use _ABI64 instead of _MIPS_SIM_ABI64 to determine MIPS N64 |
| https://bugs.webkit.org/show_bug.cgi?id=145113 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/Platform.h: |
| |
| 2015-06-22 Anders Carlsson <andersca@apple.com> |
| |
| Fix build. |
| |
| * wtf/threads/BinarySemaphore.cpp: |
| |
| 2015-06-22 Anders Carlsson <andersca@apple.com> |
| |
| Get rid of the Windows specific BinarySemaphore implementation |
| https://bugs.webkit.org/show_bug.cgi?id=146216 |
| |
| Reviewed by Andreas Kling. |
| |
| The fact that the Windows implementation uses a HEVENT internally was only useful |
| to the Windows port of WebKit2; we can get rid of it now. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * wtf/threads/BinarySemaphore.h: |
| (WTF::BinarySemaphore::event): Deleted. |
| * wtf/threads/win/BinarySemaphoreWin.cpp: Removed. |
| (WTF::BinarySemaphore::BinarySemaphore): Deleted. |
| (WTF::BinarySemaphore::~BinarySemaphore): Deleted. |
| (WTF::BinarySemaphore::signal): Deleted. |
| (WTF::BinarySemaphore::wait): Deleted. |
| |
| 2015-06-21 Gavin Barraclough <barraclough@apple.com> |
| |
| Page load performance regression due to bugs.webkit.org/show_bug.cgi?id=145542 |
| https://bugs.webkit.org/show_bug.cgi?id=146198 |
| |
| Unreviewed rollout. |
| |
| * wtf/glib/GUniquePtr.h: |
| |
| 2015-06-20 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [EFL][GTK] Define GLIB_VERSION_MIN_REQUIRED and require glib 2.36 for GTK |
| https://bugs.webkit.org/show_bug.cgi?id=146181 |
| |
| Reviewed by Martin Robinson. |
| |
| Define GLIB_VERSION_MIN_REQUIRED to avoid deprecation warnings. |
| |
| * wtf/Platform.h: |
| |
| 2015-06-19 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [SOUP] Define SOUP_VERSION_MIN_REQUIRED |
| https://bugs.webkit.org/show_bug.cgi?id=146165 |
| |
| Reviewed by Martin Robinson. |
| |
| Define SOUP_VERSION_MIN_REQUIRED to avoid deprecation warnings. |
| |
| * wtf/Platform.h: |
| |
| 2015-06-19 Mark Lam <mark.lam@apple.com> |
| |
| Gardening: build fixes for GTK and EFL for CheckedArithmetic change. |
| |
| Not reviewed. |
| |
| * wtf/CheckedArithmetic.h: |
| (WTF::Checked::operator<): |
| (WTF::Checked::operator<=): |
| (WTF::Checked::operator>): |
| (WTF::Checked::operator>=): |
| |
| 2015-06-19 Mark Lam <mark.lam@apple.com> |
| |
| CheckedArithmetic's operator bool() and operator==() is broken. |
| https://bugs.webkit.org/show_bug.cgi?id=146129 |
| |
| Reviewed by Geoffrey Garen and Oliver Hunt. |
| |
| The existing operator UnspecifiedBoolType*() in CheckedArithmetic is erroneously |
| allowing the Checked value to be implicitly casted into pointer types. This is |
| because it is doing a reinterpret_cast<UnspecifiedBoolType*>(1) whereas the idiom |
| relies on the address of a member e.g. &Checked::m_value. As a result, |
| ImageBufferData::putData() was getting an implicit cast of a Checked value to |
| (void*)1 and doing incorrect pointer comparisons on it. |
| |
| Also, 2 of CheckedArithmetic's operator==() will crash if used on an overflowed |
| value, while a 3rd one does not. The 3rd one should be consistent and also crash |
| if used on an overflowed Checked value. |
| |
| In this fix, we replace operator UnspecifiedBoolType*() with an explicit operator |
| bool(). We also add the missing operators <, <=, >, and >=. That takes care of |
| the comparisons in ImageBufferData::putData(). |
| |
| * wtf/CheckedArithmetic.h: |
| (WTF::CrashOnOverflow::overflowed): |
| (WTF::CrashOnOverflow::crash): |
| (WTF::RecordOverflow::crash): |
| |
| (WTF::Checked::operator!): |
| (WTF::Checked::operator bool): |
| (WTF::Checked::unsafeGet): |
| - Don't call CRASH() directly. Delegate to the handler. |
| |
| (WTF::Checked::operator==): |
| - Should call the handler's crash() to be consistent with the other 2 versions of |
| operator== which will crash in unsafeGet() if used on an overflowed Checked |
| value. |
| |
| (WTF::Checked::operator<): |
| (WTF::Checked::operator<=): |
| (WTF::Checked::operator>): |
| (WTF::Checked::operator>=): |
| - Add missing operators. |
| |
| (WTF::Checked::operator UnspecifiedBoolType*): Deleted. |
| |
| 2015-06-19 Csaba Osztrogonác <ossy@webkit.org> |
| |
| [WK2] Fix unused-private-field warning in WebProcess/Plugins/PluginView.<h|cpp> |
| https://bugs.webkit.org/show_bug.cgi?id=145252 |
| |
| Reviewed by Tim Horton. |
| |
| * wtf/FeatureDefines.h: Moved the definition of ENABLE_PRIMARY_SNAPSHOTTED_PLUGIN_HEURISTIC |
| here from Source/WebKit2/WebProcess/WebPage/WebPage.h |
| |
| 2015-06-17 Andreas Kling <akling@apple.com> |
| |
| SegmentedVector should waste less memory. |
| <https://webkit.org/b/146069> |
| |
| Reviewed by Anders Carlsson. |
| |
| We were wasting sizeof(Vector) on every segment in SegmentVector. |
| The segments were using inline capacity, and would never go beyond it, |
| so all the size/capacity/out-of-line-buffer metadata was useless. |
| |
| Change the internal representation to Vector<T[SegmentSize]> instead. |
| This saves 16 bytes per segment, so lower SegmentSize -> bigger savings! |
| |
| * wtf/SegmentedVector.h: |
| (WTF::SegmentedVectorIterator::operator*): |
| (WTF::SegmentedVectorIterator::operator->): |
| (WTF::SegmentedVectorIterator::operator++): |
| (WTF::SegmentedVectorIterator::operator==): |
| (WTF::SegmentedVectorIterator::operator!=): |
| (WTF::SegmentedVectorIterator::SegmentedVectorIterator): |
| (WTF::SegmentedVector::at): |
| (WTF::SegmentedVector::append): |
| (WTF::SegmentedVector::removeLast): |
| (WTF::SegmentedVector::grow): |
| (WTF::SegmentedVector::begin): |
| (WTF::SegmentedVector::end): |
| (WTF::SegmentedVector::deleteAllSegments): |
| (WTF::SegmentedVector::ensureSegmentsFor): |
| (WTF::SegmentedVector::ensureSegment): |
| (WTF::SegmentedVector::allocateSegment): |
| (WTF::SegmentedVectorIterator::operator=): Deleted. |
| (WTF::SegmentedVector::SegmentedVector): Deleted. |
| |
| 2015-06-16 Andreas Kling <akling@apple.com> |
| |
| Remove unused template parameter InlineCapacity from SegmentedVector. |
| <https://webkit.org/b/146044> |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/SegmentedVector.h: |
| (WTF::SegmentedVectorIterator::operator=): |
| (WTF::SegmentedVectorIterator::SegmentedVectorIterator): |
| (WTF::SegmentedVector::at): |
| |
| 2015-06-16 Mark Lam <mark.lam@apple.com> |
| |
| Use NakedPtr<Exception>& to return exception results. |
| https://bugs.webkit.org/show_bug.cgi?id=145870 |
| |
| Reviewed by Anders Carlsson and Filip Pizlo. |
| |
| Introducing the NakedPtr class. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/NakedPtr.h: Added. |
| (WTF::NakedPtr::NakedPtr): |
| (WTF::NakedPtr::get): |
| (WTF::NakedPtr::clear): |
| (WTF::NakedPtr::operator*): |
| (WTF::NakedPtr::operator->): |
| (WTF::NakedPtr::operator T*): |
| (WTF::NakedPtr::operator!): |
| (WTF::NakedPtr::operator bool): |
| (WTF::=): |
| (WTF::NakedPtr<T>::swap): |
| (WTF::swap): |
| |
| 2015-06-12 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GLib] Move files under Source/WTF/wtf/gobject to Source/WTF/wtf/glib |
| https://bugs.webkit.org/show_bug.cgi?id=145799 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Move the GLib-specific files to the Source/WTF/wtf/glib/ directory. |
| 'gobject' wasn't the most appropriate name for the directory since |
| GObject is a submodule of GLib, but a lot of the code there didn't |
| have much to do with GObject specifically. |
| |
| Build rules for the moved files are also updated. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * wtf/Platform.h: |
| * wtf/PlatformEfl.cmake: |
| * wtf/PlatformGTK.cmake: |
| * wtf/RunLoop.h: |
| * wtf/WorkQueue.h: |
| * wtf/glib/GLibUtilities.cpp: Renamed from Source/WTF/wtf/gobject/GlibUtilities.cpp. |
| (getCurrentExecutablePath): |
| * wtf/glib/GLibUtilities.h: Renamed from Source/WTF/wtf/gobject/GlibUtilities.h. |
| * wtf/glib/GMainLoopSource.cpp: Renamed from Source/WTF/wtf/gobject/GMainLoopSource.cpp. |
| (WTF::GMainLoopSource::create): |
| (WTF::GMainLoopSource::GMainLoopSource): |
| (WTF::GMainLoopSource::~GMainLoopSource): |
| (WTF::GMainLoopSource::isScheduled): |
| (WTF::GMainLoopSource::isActive): |
| (WTF::GMainLoopSource::cancel): |
| (WTF::GMainLoopSource::scheduleIdleSource): |
| (WTF::GMainLoopSource::schedule): |
| (WTF::GMainLoopSource::scheduleTimeoutSource): |
| (WTF::GMainLoopSource::scheduleAfterDelay): |
| (WTF::createMicrosecondsTimeoutSource): |
| (WTF::GMainLoopSource::scheduleAndDeleteOnDestroy): |
| (WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy): |
| (WTF::GMainLoopSource::prepareVoidCallback): |
| (WTF::GMainLoopSource::finishVoidCallback): |
| (WTF::GMainLoopSource::voidCallback): |
| (WTF::GMainLoopSource::prepareBoolCallback): |
| (WTF::GMainLoopSource::finishBoolCallback): |
| (WTF::GMainLoopSource::boolCallback): |
| (WTF::GMainLoopSource::socketCallback): |
| (WTF::GMainLoopSource::voidSourceCallback): |
| (WTF::GMainLoopSource::boolSourceCallback): |
| (WTF::GMainLoopSource::socketSourceCallback): |
| (WTF::GMainLoopSource::Context::destroySource): |
| * wtf/glib/GMainLoopSource.h: Renamed from Source/WTF/wtf/gobject/GMainLoopSource.h. |
| (WTF::GMainLoopSource::Context::operator=): |
| * wtf/glib/GMutexLocker.h: Renamed from Source/WTF/wtf/gobject/GMutexLocker.h. |
| (WTF::MutexWrapper<GMutex>::lock): |
| (WTF::MutexWrapper<GMutex>::unlock): |
| (WTF::MutexWrapper<GRecMutex>::lock): |
| (WTF::MutexWrapper<GRecMutex>::unlock): |
| (WTF::GMutexLocker::GMutexLocker): |
| (WTF::GMutexLocker::~GMutexLocker): |
| (WTF::GMutexLocker::lock): |
| (WTF::GMutexLocker::unlock): |
| * wtf/glib/GRefPtr.cpp: Renamed from Source/WTF/wtf/gobject/GRefPtr.cpp. |
| (WTF::refGPtr): |
| (WTF::derefGPtr): |
| * wtf/glib/GRefPtr.h: Renamed from Source/WTF/wtf/gobject/GRefPtr.h. |
| (WTF::GRefPtr::GRefPtr): |
| (WTF::GRefPtr::~GRefPtr): |
| (WTF::GRefPtr::clear): |
| (WTF::GRefPtr::outPtr): |
| (WTF::GRefPtr::isHashTableDeletedValue): |
| (WTF::GRefPtr::get): |
| (WTF::GRefPtr::operator*): |
| (WTF::GRefPtr::operator->): |
| (WTF::GRefPtr::operator!): |
| (WTF::GRefPtr::operator UnspecifiedBoolType): |
| (WTF::GRefPtr::hashTableDeletedValue): |
| (WTF::=): |
| (WTF::GRefPtr<T>::swap): |
| (WTF::swap): |
| (WTF::operator==): |
| (WTF::operator!=): |
| (WTF::static_pointer_cast): |
| (WTF::const_pointer_cast): |
| (WTF::adoptGRef): |
| (WTF::refGPtr): |
| (WTF::derefGPtr): |
| * wtf/glib/GThreadSafeMainLoopSource.cpp: Renamed from Source/WTF/wtf/gobject/GThreadSafeMainLoopSource.cpp. |
| (WTF::GThreadSafeMainLoopSource::GThreadSafeMainLoopSource): |
| (WTF::GThreadSafeMainLoopSource::~GThreadSafeMainLoopSource): |
| (WTF::GThreadSafeMainLoopSource::cancel): |
| (WTF::GThreadSafeMainLoopSource::schedule): |
| (WTF::GThreadSafeMainLoopSource::scheduleAfterDelay): |
| (WTF::GThreadSafeMainLoopSource::prepareVoidCallback): |
| (WTF::GThreadSafeMainLoopSource::finishVoidCallback): |
| (WTF::GThreadSafeMainLoopSource::voidCallback): |
| (WTF::GThreadSafeMainLoopSource::prepareBoolCallback): |
| (WTF::GThreadSafeMainLoopSource::finishBoolCallback): |
| (WTF::GThreadSafeMainLoopSource::boolCallback): |
| * wtf/glib/GThreadSafeMainLoopSource.h: Renamed from Source/WTF/wtf/gobject/GThreadSafeMainLoopSource.h. |
| * wtf/glib/GTypedefs.h: Renamed from Source/WTF/wtf/gobject/GTypedefs.h. |
| * wtf/glib/GUniquePtr.h: Renamed from Source/WTF/wtf/gobject/GUniquePtr.h. |
| (WTF::GPtrDeleter::operator()): |
| (WTF::GUniqueOutPtr::GUniqueOutPtr): |
| (WTF::GUniqueOutPtr::~GUniqueOutPtr): |
| (WTF::GUniqueOutPtr::outPtr): |
| (WTF::GUniqueOutPtr::release): |
| (WTF::GUniqueOutPtr::operator*): |
| (WTF::GUniqueOutPtr::operator->): |
| (WTF::GUniqueOutPtr::get): |
| (WTF::GUniqueOutPtr::operator!): |
| (WTF::GUniqueOutPtr::operator UnspecifiedBoolType): |
| (WTF::GUniqueOutPtr::reset): |
| * wtf/glib/MainThreadGLib.cpp: |
| * wtf/gobject/GMainLoopSource.cpp: |
| (WTF::GMainLoopSource::create): Deleted. |
| (WTF::GMainLoopSource::GMainLoopSource): Deleted. |
| (WTF::GMainLoopSource::~GMainLoopSource): Deleted. |
| (WTF::GMainLoopSource::isScheduled): Deleted. |
| (WTF::GMainLoopSource::isActive): Deleted. |
| (WTF::GMainLoopSource::cancel): Deleted. |
| (WTF::GMainLoopSource::scheduleIdleSource): Deleted. |
| (WTF::GMainLoopSource::schedule): Deleted. |
| (WTF::GMainLoopSource::scheduleTimeoutSource): Deleted. |
| (WTF::GMainLoopSource::scheduleAfterDelay): Deleted. |
| (WTF::createMicrosecondsTimeoutSource): Deleted. |
| (WTF::GMainLoopSource::scheduleAndDeleteOnDestroy): Deleted. |
| (WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy): Deleted. |
| (WTF::GMainLoopSource::prepareVoidCallback): Deleted. |
| (WTF::GMainLoopSource::finishVoidCallback): Deleted. |
| (WTF::GMainLoopSource::voidCallback): Deleted. |
| (WTF::GMainLoopSource::prepareBoolCallback): Deleted. |
| (WTF::GMainLoopSource::finishBoolCallback): Deleted. |
| (WTF::GMainLoopSource::boolCallback): Deleted. |
| (WTF::GMainLoopSource::socketCallback): Deleted. |
| (WTF::GMainLoopSource::voidSourceCallback): Deleted. |
| (WTF::GMainLoopSource::boolSourceCallback): Deleted. |
| (WTF::GMainLoopSource::socketSourceCallback): Deleted. |
| (WTF::GMainLoopSource::Context::destroySource): Deleted. |
| * wtf/gobject/GMainLoopSource.h: |
| (WTF::GMainLoopSource::Context::operator=): Deleted. |
| * wtf/gobject/GMutexLocker.h: |
| (WTF::MutexWrapper<GMutex>::lock): Deleted. |
| (WTF::MutexWrapper<GMutex>::unlock): Deleted. |
| (WTF::MutexWrapper<GRecMutex>::lock): Deleted. |
| (WTF::MutexWrapper<GRecMutex>::unlock): Deleted. |
| (WTF::GMutexLocker::GMutexLocker): Deleted. |
| (WTF::GMutexLocker::~GMutexLocker): Deleted. |
| (WTF::GMutexLocker::lock): Deleted. |
| (WTF::GMutexLocker::unlock): Deleted. |
| * wtf/gobject/GRefPtr.cpp: |
| (WTF::refGPtr): Deleted. |
| (WTF::derefGPtr): Deleted. |
| * wtf/gobject/GRefPtr.h: |
| (WTF::GRefPtr::GRefPtr): Deleted. |
| (WTF::GRefPtr::~GRefPtr): Deleted. |
| (WTF::GRefPtr::clear): Deleted. |
| (WTF::GRefPtr::outPtr): Deleted. |
| (WTF::GRefPtr::isHashTableDeletedValue): Deleted. |
| (WTF::GRefPtr::get): Deleted. |
| (WTF::GRefPtr::operator*): Deleted. |
| (WTF::GRefPtr::operator->): Deleted. |
| (WTF::GRefPtr::operator!): Deleted. |
| (WTF::GRefPtr::operator UnspecifiedBoolType): Deleted. |
| (WTF::GRefPtr::hashTableDeletedValue): Deleted. |
| (WTF::=): Deleted. |
| (WTF::GRefPtr<T>::swap): Deleted. |
| (WTF::swap): Deleted. |
| (WTF::operator==): Deleted. |
| (WTF::operator!=): Deleted. |
| (WTF::static_pointer_cast): Deleted. |
| (WTF::const_pointer_cast): Deleted. |
| (WTF::adoptGRef): Deleted. |
| (WTF::refGPtr): Deleted. |
| (WTF::derefGPtr): Deleted. |
| * wtf/gobject/GThreadSafeMainLoopSource.cpp: |
| (WTF::GThreadSafeMainLoopSource::GThreadSafeMainLoopSource): Deleted. |
| (WTF::GThreadSafeMainLoopSource::~GThreadSafeMainLoopSource): Deleted. |
| (WTF::GThreadSafeMainLoopSource::cancel): Deleted. |
| (WTF::GThreadSafeMainLoopSource::schedule): Deleted. |
| (WTF::GThreadSafeMainLoopSource::scheduleAfterDelay): Deleted. |
| (WTF::GThreadSafeMainLoopSource::prepareVoidCallback): Deleted. |
| (WTF::GThreadSafeMainLoopSource::finishVoidCallback): Deleted. |
| (WTF::GThreadSafeMainLoopSource::voidCallback): Deleted. |
| (WTF::GThreadSafeMainLoopSource::prepareBoolCallback): Deleted. |
| (WTF::GThreadSafeMainLoopSource::finishBoolCallback): Deleted. |
| (WTF::GThreadSafeMainLoopSource::boolCallback): Deleted. |
| * wtf/gobject/GUniquePtr.h: |
| (WTF::GPtrDeleter::operator()): Deleted. |
| (WTF::GUniqueOutPtr::GUniqueOutPtr): Deleted. |
| (WTF::GUniqueOutPtr::~GUniqueOutPtr): Deleted. |
| (WTF::GUniqueOutPtr::outPtr): Deleted. |
| (WTF::GUniqueOutPtr::release): Deleted. |
| (WTF::GUniqueOutPtr::operator*): Deleted. |
| (WTF::GUniqueOutPtr::operator->): Deleted. |
| (WTF::GUniqueOutPtr::get): Deleted. |
| (WTF::GUniqueOutPtr::operator!): Deleted. |
| (WTF::GUniqueOutPtr::operator UnspecifiedBoolType): Deleted. |
| (WTF::GUniqueOutPtr::reset): Deleted. |
| * wtf/gobject/GlibUtilities.cpp: |
| (getCurrentExecutablePath): Deleted. |
| |
| 2015-06-10 Basile Clement <basile_clement@apple.com> |
| |
| Unreviewed, fix an typo in unused template code. |
| |
| * wtf/TinyPtrSet.h: |
| (WTF::TinyPtrSet::iterator::operator*): s/at(index)/at(m_index)/ |
| |
| 2015-06-09 Csaba Osztrogonác <ossy@webkit.org> |
| |
| [cmake] Fix the style issues in cmake project files |
| https://bugs.webkit.org/show_bug.cgi?id=145755 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/CMakeLists.txt: |
| |
| 2015-06-08 Alexey Proskuryakov <ap@apple.com> |
| |
| Build fix. |
| |
| * wtf/TinyPtrSet.h: (WTF::TinyPtrSet::isEmpty): s/poointer/pointer/ |
| |
| 2015-06-07 Filip Pizlo <fpizlo@apple.com> |
| |
| The tiny set magic in StructureSet should be available in WTF |
| https://bugs.webkit.org/show_bug.cgi?id=145722 |
| |
| Reviewed by Geoffrey Garen. |
| |
| As the management of structure sets evolved in JSC, the StructureSet data structure grew |
| increasingly smart. It's got some smart stuff for managing small sets of pointers. I |
| wanted to take the generic logic out of JSC and put it into a reusable templatized class |
| in WTF. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/TinyPtrSet.h: Added. |
| (WTF::TinyPtrSet::TinyPtrSet): |
| (WTF::TinyPtrSet::operator=): |
| (WTF::TinyPtrSet::~TinyPtrSet): |
| (WTF::TinyPtrSet::clear): |
| (WTF::TinyPtrSet::onlyEntry): |
| (WTF::TinyPtrSet::isEmpty): |
| (WTF::TinyPtrSet::add): |
| (WTF::TinyPtrSet::remove): |
| (WTF::TinyPtrSet::contains): |
| (WTF::TinyPtrSet::merge): |
| (WTF::TinyPtrSet::forEach): |
| (WTF::TinyPtrSet::genericFilter): |
| (WTF::TinyPtrSet::filter): |
| (WTF::TinyPtrSet::exclude): |
| (WTF::TinyPtrSet::isSubsetOf): |
| (WTF::TinyPtrSet::isSupersetOf): |
| (WTF::TinyPtrSet::overlaps): |
| (WTF::TinyPtrSet::size): |
| (WTF::TinyPtrSet::at): |
| (WTF::TinyPtrSet::operator[]): |
| (WTF::TinyPtrSet::last): |
| (WTF::TinyPtrSet::iterator::iterator): |
| (WTF::TinyPtrSet::iterator::operator*): |
| (WTF::TinyPtrSet::iterator::operator++): |
| (WTF::TinyPtrSet::iterator::operator==): |
| (WTF::TinyPtrSet::iterator::operator!=): |
| (WTF::TinyPtrSet::begin): |
| (WTF::TinyPtrSet::end): |
| (WTF::TinyPtrSet::operator==): |
| (WTF::TinyPtrSet::addOutOfLine): |
| (WTF::TinyPtrSet::containsOutOfLine): |
| (WTF::TinyPtrSet::copyFrom): |
| (WTF::TinyPtrSet::copyFromOutOfLine): |
| (WTF::TinyPtrSet::OutOfLineList::create): |
| (WTF::TinyPtrSet::OutOfLineList::destroy): |
| (WTF::TinyPtrSet::OutOfLineList::list): |
| (WTF::TinyPtrSet::OutOfLineList::OutOfLineList): |
| (WTF::TinyPtrSet::deleteListIfNecessary): |
| (WTF::TinyPtrSet::isThin): |
| (WTF::TinyPtrSet::pointer): |
| (WTF::TinyPtrSet::singleEntry): |
| (WTF::TinyPtrSet::list): |
| (WTF::TinyPtrSet::set): |
| (WTF::TinyPtrSet::setEmpty): |
| (WTF::TinyPtrSet::getReservedFlag): |
| (WTF::TinyPtrSet::setReservedFlag): |
| |
| 2015-06-05 Chris Dumez <cdumez@apple.com> |
| |
| [WK2][iOS] Limit the number of vnodes used by the WebContent processes |
| https://bugs.webkit.org/show_bug.cgi?id=145672 |
| <rdar://problem/21126637> |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/RefCounter.h: |
| (WTF::RefCounter::value): |
| |
| Expose the actual refcount instead of a boolean value. |
| |
| 2015-06-05 Alex Christensen <achristensen@webkit.org> |
| |
| [Web Timing] Use new SPI to enable data collection. |
| https://bugs.webkit.org/show_bug.cgi?id=145650 |
| rdar://problem/21203358 |
| |
| Reviewed by Chris Dumez. |
| |
| * wtf/Platform.h: |
| Added HAVE_TIMINGDATAOPTIONS for platform and version dependent feature. |
| |
| 2015-06-05 Xabier Rodriguez Calvar <calvaris@igalia.com> and Youenn Fablet <youenn.fablet@crf.canon.fr> |
| |
| [Streams API] ReadableStream should store callbacks as a Deque |
| https://bugs.webkit.org/show_bug.cgi?id=145641 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Deque.h: |
| (WTF::Deque::append): Adding not templated append method, forwarding to templated append method. |
| |
| 2015-06-02 Xabier Rodriguez Calvar <calvaris@igalia.com> and Youenn Fablet <youenn.fablet@crf.canon.fr> |
| |
| [Streams API] Delegate ReadableStreamReader reference counting to ReadableStream |
| https://bugs.webkit.org/show_bug.cgi?id=144907 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Vector.h: |
| (WTF::Vector::append): Adding not templated append method, forwarding to ValueType templated append method. |
| |
| 2015-06-02 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Heap-use-after-free read of size 4 in JavaScriptCore: WTF::StringImpl::isSymbol() (StringImpl.h:496) |
| https://bugs.webkit.org/show_bug.cgi?id=145532 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Return `RefPtr<AtomicStringImpl>` instead of `AtomicStringImpl*`. |
| |
| * wtf/text/AtomicStringImpl.cpp: |
| (WTF::AtomicStringImpl::lookUpSlowCase): |
| (WTF::AtomicStringImpl::lookUpInternal): |
| * wtf/text/AtomicStringImpl.h: |
| (WTF::AtomicStringImpl::lookUp): |
| |
| 2015-06-01 Anders Carlsson <andersca@apple.com> |
| |
| Use xpc_connection_set_oneshot_instance where possible |
| https://bugs.webkit.org/show_bug.cgi?id=145535 |
| rdar://problem/21109994 |
| |
| Reviewed by Sam Weinig. |
| |
| Add SPI declaration. |
| |
| * wtf/spi/darwin/XPCSPI.h: |
| |
| 2015-05-29 Anders Carlsson <andersca@apple.com> |
| |
| Missing #import of Platform.h in several WTF headers |
| https://bugs.webkit.org/show_bug.cgi?id=145475 |
| rdar://problem/21161818 |
| |
| Reviewed by Darin Adler. |
| |
| Add Platform.h #includes. |
| |
| * wtf/Assertions.h: |
| * wtf/RetainPtr.h: |
| |
| 2015-05-29 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r184949. |
| https://bugs.webkit.org/show_bug.cgi?id=145458 |
| |
| Ends up generating worse code for HashTable move constructors |
| (Requested by zdobersek on #webkit). |
| |
| Reverted changeset: |
| |
| "Clean up HashTable constructors" |
| https://bugs.webkit.org/show_bug.cgi?id=145369 |
| http://trac.webkit.org/changeset/184949 |
| |
| 2015-05-28 Gyuyoung Kim <gyuyoung.kim@webkit.org> |
| |
| Purge PassRefPtr in StringConcatenate.h |
| https://bugs.webkit.org/show_bug.cgi?id=145376 |
| |
| Reviewed by Darin Adler. |
| |
| Replace PassRefPtr with RefPtr. Additionally use nullptr instead of 0. |
| |
| * wtf/text/StringConcatenate.h: |
| (WTF::tryMakeString): |
| (WTF::makeString): |
| |
| 2015-05-28 Zan Dobersek <zdobersek@igalia.com> |
| |
| Clean up HashTable constructors |
| https://bugs.webkit.org/show_bug.cgi?id=145369 |
| |
| Reviewed by Andreas Kling. |
| |
| Use nullptr to initialize pointer member variables in the HashTable |
| default constructor. Copy and move constructors can use constructor |
| delegation instead of replicating all member initializations. Move |
| constructor should simply call HashTable::swap() instead of replicating |
| all the swap operations. |
| |
| * wtf/HashTable.h: |
| (WTF::KeyTraits>::HashTable): |
| |
| 2015-05-27 Alexey Proskuryakov <ap@apple.com> |
| |
| [Mac] Fix clang static analyzer build |
| https://bugs.webkit.org/show_bug.cgi?id=145426 |
| rdar://problem/20947408 |
| |
| Reviewed by Dan Bernstein. |
| |
| * wtf/spi/darwin/XPCSPI.h: Correct declarations of xpc_retain and xpc_release. |
| |
| 2015-05-27 Dean Jackson <dino@apple.com> |
| |
| img.currentSrc problem in strict mode with old picturefill |
| https://bugs.webkit.org/show_bug.cgi?id=144095 |
| <rdar://problem/21087013> |
| |
| Reviewed by Simon Fraser. |
| |
| Add a PICTURE_SIZES flag. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-05-26 Andreas Kling <akling@apple.com> |
| |
| StringView should have find(StringView, start). |
| <https://webkit.org/b/145351> |
| |
| Reviewed by Darin Adler. |
| |
| Move the class agnostic guts of StringImpl's find() implementation from StringImpl |
| to StringCommon.h and templatize the code into a findCommon() helper. |
| |
| StringImpl::find() and StringView::find() now both call findCommon(). |
| |
| * wtf/text/StringCommon.h: |
| (WTF::findInner): |
| (WTF::find): |
| (WTF::findCommon): |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::find): |
| (WTF::findInner): Deleted. |
| * wtf/text/StringImpl.h: |
| (WTF::find): Deleted. |
| * wtf/text/StringView.cpp: |
| (WTF::StringView::find): |
| * wtf/text/StringView.h: |
| |
| |
| 2015-05-26 Dan Bernstein <mitz@apple.com> |
| |
| <rdar://problem/21104551> Update build settings |
| |
| Reviewed by Anders Carlsson. |
| |
| * Configurations/DebugRelease.xcconfig: |
| |
| 2015-05-23 Dan Bernstein <mitz@apple.com> |
| |
| Remove unused definitions of WEBKIT_VERSION_MIN_REQUIRED |
| https://bugs.webkit.org/show_bug.cgi?id=145345 |
| |
| Reviewed by Sam Weinig. |
| |
| * Configurations/Base.xcconfig: Also changed to use $(inherited). |
| |
| 2015-05-23 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Introduce UniquedStringImpl and SymbolImpl to separate symbolic strings from AtomicStringImpl |
| https://bugs.webkit.org/show_bug.cgi?id=144848 |
| |
| Reviewed by Darin Adler. |
| |
| he current AtomicStringImpl accidentally means the symbol OR atomic StringImpl. |
| t's not correct to its name and it's error prone. |
| |
| In this patch, we'll introduce/changes classes into WTF. |
| |
| 1. UniquedStringImpl |
| It's derived class from StringImpl. And it represents symbol || atomic StringImpl. |
| |
| 2. SymbolImpl |
| It's derived class from UniquedStringImpl. Only symbol strings can become this. |
| It ensures the given StringImpl is symbol in compile time. |
| |
| 3. AtomicStringImpl |
| It's derived class from UniquedStringImpl. Only atomic (non-normal && non-symbol) strings can become this. |
| It ensures the given StringImpl is atomic in compile time. |
| |
| And, in this time, I just accept UniqueStringImpl in AtomicString. As the result, |
| 1. Now AtomicStringImpl issue is fixed. Its SymbolImpl is separated and UniquedStringImpl is introduced. |
| 2. But AtomicString still have both symbol and atomic strings. |
| This should be solved in the separated patch. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/PrintStream.cpp: |
| * wtf/PrintStream.h: |
| (WTF::printInternal): |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::AtomicString): |
| * wtf/text/AtomicStringImpl.h: |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::~StringImpl): |
| (WTF::StringImpl::createSymbol): |
| (WTF::StringImpl::createSymbolEmpty): |
| * wtf/text/StringImpl.h: |
| * wtf/text/SymbolImpl.h: Copied from Source/JavaScriptCore/runtime/PrivateName.h. |
| * wtf/text/SymbolRegistry.cpp: |
| (WTF::SymbolRegistry::symbolForKey): |
| (WTF::SymbolRegistry::keyForSymbol): |
| (WTF::SymbolRegistry::remove): |
| * wtf/text/SymbolRegistry.h: |
| * wtf/text/UniquedStringImpl.h: Copied from Source/JavaScriptCore/runtime/PrivateName.h. |
| |
| 2015-05-20 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GTK] Move MainThreadGtk, RunLoopGtk, WorkQueueGtk under Source/WTF/wtf/glib/ |
| https://bugs.webkit.org/show_bug.cgi?id=145117 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| Move the MainThreadGtk, RunLoopGtk and WorkQueueGtk implementation files from |
| Source/WTF/wtf/gtk/ to Source/WTF/wtf/glib/. These implementations are not |
| GTK-specific and only depend on GLib, so they are renamed as well. |
| |
| There are other such implementations under Source/WTF/wtf/gobject/ (GObject |
| is just a subset of GLib) that will be moved under the new directory in |
| future patches. |
| |
| * wtf/PlatformGTK.cmake: |
| * wtf/glib/MainThreadGLib.cpp: Renamed from Source/WTF/wtf/gtk/MainThreadGtk.cpp. |
| (WTF::initializeMainThreadPlatform): |
| (WTF::scheduleDispatchFunctionsOnMainThread): |
| * wtf/glib/RunLoopGLib.cpp: Renamed from Source/WTF/wtf/gtk/RunLoopGtk.cpp. |
| (WTF::RunLoop::RunLoop): |
| (WTF::RunLoop::~RunLoop): |
| (WTF::RunLoop::run): |
| (WTF::RunLoop::stop): |
| (WTF::RunLoop::wakeUp): |
| (WTF::RunLoop::TimerBase::TimerBase): |
| (WTF::RunLoop::TimerBase::~TimerBase): |
| (WTF::RunLoop::TimerBase::start): |
| (WTF::RunLoop::TimerBase::stop): |
| (WTF::RunLoop::TimerBase::isActive): |
| * wtf/glib/WorkQueueGLib.cpp: Renamed from Source/WTF/wtf/gtk/WorkQueueGtk.cpp. |
| (WTF::WorkQueue::platformInitialize): |
| (WTF::WorkQueue::platformInvalidate): |
| (WTF::WorkQueue::registerSocketEventHandler): |
| (WTF::WorkQueue::unregisterSocketEventHandler): |
| (WTF::WorkQueue::dispatch): |
| (WTF::WorkQueue::dispatchAfter): |
| |
| 2015-05-19 Andreas Kling <akling@apple.com> |
| |
| Give StringView a utf8() API. |
| <https://webkit.org/b/145201> |
| |
| Reviewed by Anders Carlsson |
| |
| Added an LChar version of StringImpl::utf8ForCharacters() and use that to give |
| StringView a utf8() API just like String has. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::utf8ForCharacters): |
| * wtf/text/StringImpl.h: |
| * wtf/text/StringView.cpp: |
| (WTF::StringView::utf8): |
| * wtf/text/StringView.h: |
| |
| 2015-05-19 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Move AtomicStringImpl table related operations from AtomicString to AtomicStringImpl |
| https://bugs.webkit.org/show_bug.cgi?id=145109 |
| |
| Reviewed by Darin Adler. |
| |
| Now AtomicStringImpl table operations are located in AtomicString. |
| But they should be under AtomicStringImpl. |
| This patch simply moves these operations to AtomicStringImpl. |
| |
| And this patch renames static AtomicString::find to static AtomicStringImpl::lookUp |
| because it conflicts with AtomicStringImpl's member function name. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.vcxproj/copy-files.cmd: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/PlatformMac.cmake: |
| * wtf/PlatformWin.cmake: |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::lower): |
| (WTF::AtomicString::convertToASCIILowercase): |
| (WTF::AtomicString::fromUTF8Internal): |
| (WTF::AtomicStringTableLocker::AtomicStringTableLocker): Deleted. |
| (WTF::stringTable): Deleted. |
| (WTF::addToStringTable): Deleted. |
| (WTF::CStringTranslator::hash): Deleted. |
| (WTF::CStringTranslator::equal): Deleted. |
| (WTF::CStringTranslator::translate): Deleted. |
| (WTF::AtomicString::add): Deleted. |
| (WTF::UCharBufferTranslator::hash): Deleted. |
| (WTF::UCharBufferTranslator::equal): Deleted. |
| (WTF::UCharBufferTranslator::translate): Deleted. |
| (WTF::HashAndCharactersTranslator::hash): Deleted. |
| (WTF::HashAndCharactersTranslator::equal): Deleted. |
| (WTF::HashAndCharactersTranslator::translate): Deleted. |
| (WTF::HashAndUTF8CharactersTranslator::hash): Deleted. |
| (WTF::HashAndUTF8CharactersTranslator::equal): Deleted. |
| (WTF::HashAndUTF8CharactersTranslator::translate): Deleted. |
| (WTF::SubstringTranslator::translate): Deleted. |
| (WTF::SubstringTranslator8::hash): Deleted. |
| (WTF::SubstringTranslator8::equal): Deleted. |
| (WTF::SubstringTranslator16::hash): Deleted. |
| (WTF::SubstringTranslator16::equal): Deleted. |
| (WTF::LCharBufferTranslator::hash): Deleted. |
| (WTF::LCharBufferTranslator::equal): Deleted. |
| (WTF::LCharBufferTranslator::translate): Deleted. |
| (WTF::CharBufferFromLiteralDataTranslator::hash): Deleted. |
| (WTF::CharBufferFromLiteralDataTranslator::equal): Deleted. |
| (WTF::CharBufferFromLiteralDataTranslator::translate): Deleted. |
| (WTF::AtomicString::addFromLiteralData): Deleted. |
| (WTF::AtomicString::addSlowCase): Deleted. |
| (WTF::AtomicString::remove): Deleted. |
| (WTF::AtomicString::findSlowCase): Deleted. |
| (WTF::AtomicString::findInternal): Deleted. |
| (WTF::AtomicString::isInAtomicStringTable): Deleted. |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::AtomicString): |
| (WTF::AtomicString::fromUTF8): |
| (WTF::AtomicString::find): Deleted. |
| (WTF::AtomicString::add): Deleted. |
| (WTF::AtomicString::addWithStringTableProvider): Deleted. |
| * wtf/text/AtomicStringImpl.cpp: Copied from Source/WTF/wtf/text/AtomicString.cpp. |
| (WTF::AtomicStringTableLocker::AtomicStringTableLocker): |
| (WTF::stringTable): |
| (WTF::addToStringTable): |
| (WTF::CStringTranslator::hash): |
| (WTF::CStringTranslator::equal): |
| (WTF::CStringTranslator::translate): |
| (WTF::AtomicStringImpl::add): |
| (WTF::UCharBufferTranslator::hash): |
| (WTF::UCharBufferTranslator::equal): |
| (WTF::UCharBufferTranslator::translate): |
| (WTF::HashAndCharactersTranslator::hash): |
| (WTF::HashAndCharactersTranslator::equal): |
| (WTF::HashAndCharactersTranslator::translate): |
| (WTF::HashAndUTF8CharactersTranslator::hash): |
| (WTF::HashAndUTF8CharactersTranslator::equal): |
| (WTF::HashAndUTF8CharactersTranslator::translate): |
| (WTF::SubstringTranslator::translate): |
| (WTF::SubstringTranslator8::hash): |
| (WTF::SubstringTranslator8::equal): |
| (WTF::SubstringTranslator16::hash): |
| (WTF::SubstringTranslator16::equal): |
| (WTF::LCharBufferTranslator::hash): |
| (WTF::LCharBufferTranslator::equal): |
| (WTF::LCharBufferTranslator::translate): |
| (WTF::CharBufferFromLiteralDataTranslator::hash): |
| (WTF::CharBufferFromLiteralDataTranslator::equal): |
| (WTF::CharBufferFromLiteralDataTranslator::translate): |
| (WTF::AtomicStringImpl::addLiteral): |
| (WTF::AtomicStringImpl::addSlowCase): |
| (WTF::AtomicStringImpl::remove): |
| (WTF::AtomicStringImpl::lookUpSlowCase): |
| (WTF::AtomicStringImpl::addUTF8): |
| (WTF::AtomicStringImpl::lookUpInternal): |
| (WTF::AtomicStringImpl::isInAtomicStringTable): |
| * wtf/text/AtomicStringImpl.h: |
| (WTF::AtomicStringImpl::lookUp): |
| (WTF::AtomicStringImpl::add): |
| (WTF::AtomicStringImpl::addWithStringTableProvider): |
| (WTF::AtomicStringImpl::AtomicStringImpl): Deleted. |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::~StringImpl): |
| * wtf/text/StringImpl.h: |
| * wtf/text/WTFString.h: |
| (WTF::String::String): |
| * wtf/text/cf/AtomicStringCF.cpp: |
| (WTF::AtomicString::add): Deleted. |
| * wtf/text/cf/AtomicStringImplCF.cpp: Renamed from Source/WTF/wtf/text/cf/AtomicStringCF.cpp. |
| (WTF::AtomicStringImpl::add): |
| |
| 2015-05-19 Ting-Wei Lan <lantw44@gmail.com> |
| |
| [SOUP] Use st_birthtime to get creation time of files on systems support it |
| https://bugs.webkit.org/show_bug.cgi?id=144989 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Define HAVE(STAT_BIRTHTIME) as 1 on operating systems supporting |
| getting creation time of files using st_birthtime in stat. |
| |
| * wtf/Platform.h: |
| |
| 2015-05-19 Chris Dumez <cdumez@apple.com> |
| |
| Mark static variables as const when possible |
| https://bugs.webkit.org/show_bug.cgi?id=145161 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/dtoa.cpp: |
| (WTF::pow5mult): |
| |
| 2015-05-19 Gyuyoung Kim <gyuyoung.kim@webkit.org> |
| |
| [EFL] Remove unnecessary PLATFORM(EFL) macro in EFL specific files |
| https://bugs.webkit.org/show_bug.cgi?id=145160 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/efl/EflTypedefs.h: Remove PLATFORM(EFL). |
| * wtf/efl/UniquePtrEfl.h: ditto. |
| |
| 2015-05-18 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| [CMake] Ignore warnings in system headers |
| https://bugs.webkit.org/show_bug.cgi?id=144747 |
| |
| Reviewed by Darin Adler. |
| |
| Separate include directories into WebKit project includes and system includes. Suppress all |
| warnings from headers in system include directories using the SYSTEM argument to |
| the include_directories command. |
| |
| * wtf/CMakeLists.txt: |
| * wtf/PlatformEfl.cmake: |
| * wtf/PlatformGTK.cmake: |
| |
| 2015-05-18 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Addressing post-review comments on r184353 |
| https://bugs.webkit.org/show_bug.cgi?id=145146 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Create an overload for equalIgnoringASCIICase() for AtomicString and string literals. |
| |
| * wtf/text/AtomicString.h: |
| (WTF::equalIgnoringASCIICase): |
| |
| 2015-05-18 Skachkov Alexandr <gskachkov@gmail.com> |
| |
| [ES6] Arrow function syntax. Feature flag for arrow function |
| https://bugs.webkit.org/show_bug.cgi?id=145108 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Added feature flag ENABLE_ES6_ARROWFUNCTION_SYNTAX for arrow function |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-05-17 Benjamin Poulain <benjamin@webkit.org> |
| |
| Do not use fastMallocGoodSize anywhere |
| https://bugs.webkit.org/show_bug.cgi?id=145103 |
| |
| Reviewed by Michael Saboff. |
| |
| It is silly we see fastMallocGoodSize in profiles, it does absolutely nothing. |
| |
| This patch keeps fastMallocGoodSize() around for older code linking |
| with newer WebKit, but remove any use of it inside WebKit. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::fastMallocGoodSize): |
| * wtf/FastMalloc.h: |
| * wtf/Vector.h: |
| (WTF::VectorBufferBase::allocateBuffer): |
| (WTF::VectorBufferBase::tryAllocateBuffer): |
| (WTF::VectorBufferBase::reallocateBuffer): |
| |
| 2015-05-15 Dan Bernstein <mitz@apple.com> |
| |
| Build fix for some versions of clang. |
| |
| * wtf/SaturatedArithmetic.h: |
| (signedAddOverflows): |
| (signedSubtractOverflows): |
| |
| 2015-05-14 Dan Bernstein <mitz@apple.com> |
| |
| Reverted r177753, now that <rdar://problem/19347133> is fixed. |
| |
| Rubber-stamped by Benjamin Poulain. |
| |
| * wtf/SaturatedArithmetic.h: |
| (signedAddOverflows): |
| (signedSubtractOverflows): |
| |
| 2015-05-14 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Add String literal overloads to equalIgnoringASCIICase() |
| https://bugs.webkit.org/show_bug.cgi?id=145008 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Create an overload for equalIgnoringASCIICase for string literals. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::equalIgnoringASCIICase): Use a non-templated helper function. |
| * wtf/text/StringImpl.cpp: |
| (WTF::equalIgnoringASCIICase): Implement it. |
| * wtf/text/StringView.h: |
| (WTF::equalIgnoringASCIICase): Use a non-templated helper function. |
| * wtf/text/StringView.cpp: |
| (WTF::equalIgnoringASCIICase): Implement it. |
| * wtf/text/WTFString.h: |
| (WTF::equalIgnoringASCIICase): Delegate to StringImpl's implementation. |
| |
| 2015-05-14 Žan Doberšek <zdobersek@igalia.com> |
| |
| [GTK] RunLoop constructor should properly retrieve or establish the thread-default GMainContext |
| https://bugs.webkit.org/show_bug.cgi?id=144732 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| RunLoop constructor in the GTK implementation should use the |
| existing thread-default context, create a new one if not on |
| the main thread, or use the global-default one if on the main |
| thread. |
| |
| In RunLoop::run(), the GMainContext should then be pushed as |
| the thread-default before calling g_main_loop_run(), and popped |
| off when the main loop stops. |
| |
| * wtf/gtk/RunLoopGtk.cpp: |
| (WTF::RunLoop::RunLoop): |
| (WTF::RunLoop::run): |
| |
| 2015-05-13 Oliver Hunt <oliver@apple.com> |
| Ensure that all the smart pointer types in WTF clear their pointer before deref |
| https://bugs.webkit.org/show_bug.cgi?id=143789 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| In order to prevent use after free bugs caused by destructors |
| that end up trying to access the smart pointer itself, we should |
| make sure we always clear the m_ptr field before calling deref. |
| |
| Essentially the UaF path is: |
| struct Foo : RefCounted<Foo> { |
| Wibble* m_wibble; |
| void doSomething(); |
| ~Foo() { m_wibble->doSomethingLikeCleanup(); } |
| }; |
| |
| struct Wibble { |
| void doSomethingLikeCleanup() |
| { |
| if (m_foo) { |
| /* if this branch is not here we get a null deref */ |
| m_foo->doSomething(); |
| } |
| } |
| void replaceFoo(Foo* foo) { m_foo = foo; } |
| RefPtr<Foo> m_foo; |
| }; |
| |
| Wibble* someWibble = /* a Wibble with m_foo->m_refCount == 1 */; |
| /* and m_foo points to someWibble */; |
| |
| someWibble->replaceFoo(someOtherFoo); |
| + someWibble->m_foo->m_ptr->deref(); |
| + someWibble->m_foo->m_ptr->~Foo() |
| + someWibble->m_foo->m_ptr->m_wibble->doSomethingLikeCleanup() |
| + someWibble->m_foo->m_ptr->m_wibble /* someWibble */ ->m_foo->m_ptr /*logically dead*/ ->doSomething() |
| |
| By clearing m_ptr first we either force a null pointer deref or |
| we force our code down a path that does not use the dead smart |
| pointer. |
| |
| * wtf/PassRefPtr.h: |
| (WTF::PassRefPtr::~PassRefPtr): |
| * wtf/Ref.h: |
| (WTF::Ref::~Ref): |
| (WTF::Ref::operator=): |
| * wtf/RefPtr.h: |
| (WTF::RefPtr::~RefPtr): |
| * wtf/RetainPtr.h: |
| (WTF::RetainPtr::~RetainPtr): |
| (WTF::RetainPtr<T>::clear): |
| |
| 2015-05-12 Michael Saboff <msaboff@apple.com> |
| |
| If JSC cannot get executable memory, it shouldn't call madvise |
| https://bugs.webkit.org/show_bug.cgi?id=144931 |
| |
| Reviewed by Mark Lam. |
| |
| Made calling madvise conditional on really getting mmapped memory. |
| |
| * wtf/OSAllocatorPosix.cpp: |
| (WTF::OSAllocator::reserveUncommitted): |
| |
| 2015-05-11 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Move Windows build target to Windows 7 (or newer) |
| https://bugs.webkit.org/show_bug.cgi?id=144890 |
| <rdar://problem/20707307> |
| |
| Reviewed by Anders Carlsson. |
| |
| Update linked SDK and minimal Windows level to be compatible with |
| Windows 7 or newer. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTFGenerated.vcxproj: |
| * config.h: |
| |
| 2015-05-11 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] WorkQueue objects are not released |
| https://bugs.webkit.org/show_bug.cgi?id=144824 |
| |
| Reviewed by Žan Doberšek. |
| |
| Do not keep a reference of the WorkQueue for the entire life of |
| its worker thread, since every task scheduled on the WorkQueue |
| already takes a reference. Instead, take a reference of the main |
| loop to make sure that when the worker thread starts, the main |
| loop hasn't been released to avoid runtime warnings (see |
| webkit.org/b/140998). Also removed the g_main_context_pop_thread_default() |
| from the thread body, since the thread-specific context queue will |
| be freed anyway when the thread exits. |
| If the WorkQueue is released early, before the thread has started, |
| schedule a main loop quit in the context, to make sure it will |
| be the first thing run by the main loop and the thread will exit. |
| |
| * wtf/WorkQueue.h: Remove unused event loop mutex. |
| * wtf/gtk/WorkQueueGtk.cpp: |
| (WTF::WorkQueue::platformInitialize): |
| (WTF::WorkQueue::platformInvalidate): |
| |
| 2015-05-09 Yoav Weiss <yoav@yoav.ws> |
| |
| Remove the PICTURE_SIZES build flag |
| https://bugs.webkit.org/show_bug.cgi?id=144679 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Removed the PICTURE_SIZES build time flag. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-05-08 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Remove convenience constructors for TextRun |
| https://bugs.webkit.org/show_bug.cgi?id=144752 |
| |
| Reviewed by Anders Carlsson. |
| |
| No reason why StringView shouldn't have a StringImpl* constructor. |
| |
| Test: StringView8Bit in TestWebKitAPI |
| |
| * wtf/text/StringView.h: Add the constructor. |
| |
| 2015-05-08 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r183996. |
| https://bugs.webkit.org/show_bug.cgi?id=144806 |
| |
| ASan detected use-after free (Requested by ap on #webkit). |
| |
| Reverted changeset: |
| |
| "Remove convenience constructors for TextRun" |
| https://bugs.webkit.org/show_bug.cgi?id=144752 |
| http://trac.webkit.org/changeset/183996 |
| |
| 2015-05-08 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Remove convenience constructors for TextRun |
| https://bugs.webkit.org/show_bug.cgi?id=144752 |
| |
| Reviewed by Anders Carlsson. |
| |
| No reason why StringView shouldn't have a StringImpl* constructor. |
| |
| Test: StringView8Bit in TestWebKitAPI |
| |
| * wtf/text/StringView.h: Add the constructor. |
| |
| 2015-05-08 Andreas Kling <akling@apple.com> |
| |
| Optimize serialization of quoted JSON strings. |
| <https://webkit.org/b/144754> |
| |
| Reviewed by Darin Adler. |
| |
| Add a StringBuilder API for appending a quoted JSON string. This is used by |
| JSON.stringify() to implement efficient appending of strings while escaping |
| quotes, control characters and \uNNNN-style characters. |
| |
| The main benefit comes from only doing a single buffer expansion up front, |
| instead of doing it every time we append something. The fudge factor is pretty |
| large, since the maximum number of output characters per input character is 6. |
| |
| The first landing of this patch had two bugs in it: |
| |
| - Made \uNNNN escapes uppercase hexadecimal instead of lowercase. |
| - Didn't preallocate enough space for 8-bit input strings. |
| |
| Both were caught by existing tests on our bots, and both were due to last-minute |
| changes before landing. :/ |
| |
| * wtf/text/StringBuilder.cpp: |
| (WTF::appendQuotedJSONStringInternal): |
| (WTF::StringBuilder::appendQuotedJSONString): |
| * wtf/text/StringBuilder.h: |
| |
| 2015-05-07 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r183961. |
| https://bugs.webkit.org/show_bug.cgi?id=144784 |
| |
| Broke js/dom/JSON-stringify.html (Requested by kling on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Optimize serialization of quoted JSON strings." |
| https://bugs.webkit.org/show_bug.cgi?id=144754 |
| http://trac.webkit.org/changeset/183961 |
| |
| 2015-05-07 Andreas Kling <akling@apple.com> |
| |
| Optimize serialization of quoted JSON strings. |
| <https://webkit.org/b/144754> |
| |
| Reviewed by Darin Adler. |
| |
| Add a StringBuilder API for appending a quoted JSON string. This is used by |
| JSON.stringify() to implement efficient appending of strings while escaping |
| quotes, control characters and \uNNNN-style characters. |
| |
| The main benefit comes from only doing a single buffer expansion up front, |
| instead of doing it every time we append something. The fudge factor is pretty |
| large for 16-bit strings, since the maximum number of output characters per |
| input character is 6. |
| |
| * wtf/text/StringBuilder.cpp: |
| (WTF::appendQuotedJSONStringInternal): |
| (WTF::StringBuilder::appendQuotedJSONString): |
| * wtf/text/StringBuilder.h: |
| |
| 2015-05-07 Martin Robinson <mrobinson@igalia.com> |
| |
| [GTK] All spell checking layout tests fail |
| https://bugs.webkit.org/show_bug.cgi?id=144648 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * wtf/Platform.h: Activate UNIFIED_TEXT_CHECKING for GTK+. |
| |
| 2015-05-07 Dan Bernstein <mitz@apple.com> |
| |
| <rdar://problem/19317140> [Xcode] Remove usage of AspenFamily.xcconfig in Source/ |
| https://bugs.webkit.org/show_bug.cgi?id=144727 |
| |
| Reviewed by Darin Adler. |
| |
| * Configurations/Base.xcconfig: Don’t include AspenFamily.xcconfig, and define |
| INSTALL_PATH_PREFIX and LD_DYLIB_INSTALL_NAME for the iOS 8.x Simulator. |
| |
| 2015-05-07 Žan Doberšek <zdobersek@igalia.com> |
| |
| [GTK] Clean up RunLoop implementation |
| https://bugs.webkit.org/show_bug.cgi?id=144729 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Clean up the RunLoop implementation for the GTK port, |
| removing unnecessary methods and using simpler variable names. |
| |
| Nested GMainLoops in RunLoop::run() are now created for the |
| RunLoop's GMainContext, and not for the default context (enforced |
| through the null argument to g_main_loop_new()). |
| |
| * wtf/RunLoop.h: |
| * wtf/gtk/RunLoopGtk.cpp: |
| (WTF::RunLoop::RunLoop): |
| (WTF::RunLoop::~RunLoop): |
| (WTF::RunLoop::run): |
| (WTF::RunLoop::stop): |
| (WTF::RunLoop::wakeUp): |
| (WTF::RunLoop::TimerBase::start): |
| (WTF::RunLoop::innermostLoop): Deleted. |
| (WTF::RunLoop::pushNestedMainLoop): Deleted. |
| (WTF::RunLoop::popNestedMainLoop): Deleted. |
| |
| 2015-05-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Async operations running in the WorkQueue thread should schedule their sources to the WorkQueue main lopp |
| https://bugs.webkit.org/show_bug.cgi?id=144541 |
| |
| Reviewed by Žan Doberšek. |
| |
| They are currently sent to the main thread run loop, because we |
| are not setting the WorkQueue main context as the default one in |
| the worker thread. |
| |
| * wtf/gtk/WorkQueueGtk.cpp: |
| (WTF::WorkQueue::platformInitialize): Call |
| g_main_context_push_thread_default() to set the WorkQueue main |
| context as the default of the thread before running the main loop, |
| and g_main_context_pop_thread_default() when the main loop quits. |
| |
| 2015-05-04 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r183661. |
| https://bugs.webkit.org/show_bug.cgi?id=144594 |
| |
| Caused ~3.5MB regression on membuster(!) (Requested by kling_ |
| on #webkit). |
| |
| Reverted changeset: |
| |
| "Decrease minimum Vector size." |
| https://bugs.webkit.org/show_bug.cgi?id=144453 |
| http://trac.webkit.org/changeset/183661 |
| |
| 2015-05-04 Zan Dobersek <zdobersek@igalia.com> |
| |
| [WTF] Remove Functional.h inclusions |
| https://bugs.webkit.org/show_bug.cgi?id=144400 |
| |
| Reviewed by Darin Adler. |
| |
| Remove most of the Functional.h header inclusions. The header is preserved |
| since it's still used by older versions of Safari, and for the callOnMainThread() |
| stub in DeprecatedSymbolsUsedBySafari.mm. |
| |
| * wtf/MainThread.cpp: |
| * wtf/RunLoop.h: |
| * wtf/WorkQueue.cpp: |
| * wtf/WorkQueue.h: |
| * wtf/efl/DispatchQueueEfl.h: |
| * wtf/efl/DispatchQueueWorkItemEfl.h: |
| |
| 2015-05-02 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r183722. |
| https://bugs.webkit.org/show_bug.cgi?id=144534 |
| |
| Made all the tests assert (Requested by ap on #webkit). |
| |
| Reverted changeset: |
| |
| "Generated static StringImpls should have static flag set." |
| https://bugs.webkit.org/show_bug.cgi?id=144516 |
| http://trac.webkit.org/changeset/183722 |
| |
| 2015-05-02 Andreas Kling <akling@apple.com> |
| |
| Generated static StringImpls should have static flag set. |
| <https://webkit.org/b/144516> |
| |
| Reviewed by Darin Adler. |
| |
| Discovered this while tracking down a string ref leak. Turns out that the strings |
| generated by StaticString.pm were not getting the static flag set on them. |
| |
| The only practical difference from this AFAICT is that now the garbage collector |
| will correctly see that these strings have no extra memory cost to worry about. |
| |
| * wtf/text/StringImpl.h: |
| |
| 2015-05-01 Martin Robinson <mrobinson@igalia.com> |
| |
| USE(...) macro should expect unprefixed variables |
| https://bugs.webkit.org/show_bug.cgi?id=144454 |
| |
| Reviewed by Daniel Bates. |
| |
| * wtf/Assertions.cpp: Replace all occurrences WTF_USE with USE. |
| * wtf/Platform.h: Replace all occurrences WTF_USE with USE. Modify the USE |
| macro to look for unprefixed variables. |
| * wtf/WTFThreadData.h: Replace all occurrences WTF_USE with USE. |
| |
| 2015-05-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Enable ENABLE_ES6_TEMPLATE_LITERAL_SYNTAX by default on all ports (Windows was missed) |
| https://bugs.webkit.org/show_bug.cgi?id=144495 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/FeatureDefines.h: |
| This covers all ports that haven't defined the flag otherwise. |
| |
| 2015-04-30 Alex Christensen <achristensen@webkit.org> |
| |
| Decrease minimum Vector size. |
| https://bugs.webkit.org/show_bug.cgi?id=144453 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Vector.h: |
| Make the default min size 4 to save memory on small Vectors. |
| |
| 2015-04-30 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Use the default hash value for Symbolized StringImpl |
| https://bugs.webkit.org/show_bug.cgi?id=144347 |
| |
| Reviewed by Darin Adler. |
| |
| Use a default hash value calculation for symbolized StringImpl. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::createSymbol): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| (WTF::StringImpl::symbolAwareHash): |
| (WTF::StringImpl::existingSymbolAwareHash): |
| (WTF::StringImpl::hashForSymbol): |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::nextHashForSymbol): |
| (WTF::StringImpl::hashAndFlagsForSymbol): Deleted. |
| |
| 2015-04-29 Alexey Proskuryakov <ap@apple.com> |
| |
| LazyNeverDestroyed is not thread safe in debug builds, causing assertions |
| https://bugs.webkit.org/show_bug.cgi?id=144378 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/NeverDestroyed.h: |
| |
| 2015-04-28 Geoffrey Garen <ggaren@apple.com> |
| |
| It shouldn't take 1846 lines of code and 5 FIXMEs to sort an array. |
| https://bugs.webkit.org/show_bug.cgi?id=144013 |
| |
| Reviewed by Mark Lam. |
| |
| Remove this custom tree implementation because it is unused. (It was |
| previously used to achieve a stable array sort in certain cases.) |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/AVLTree.h: Removed. |
| * wtf/CMakeLists.txt: |
| |
| 2015-04-29 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| [OS X] Use CTFontCreateForCSS instead of doing font search ourselves |
| https://bugs.webkit.org/show_bug.cgi?id=132159 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Platform.h: |
| |
| Opt-in using ENABLE(PLATFORM_FONT_LOOKUP) |
| |
| 2015-04-29 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| REGRESSION (r183373): ASSERT failed in wtf/SHA1.h |
| https://bugs.webkit.org/show_bug.cgi?id=144257 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/SHA1.h: |
| (WTF::SHA1::addBytes): |
| |
| 2015-04-29 Martin Robinson <mrobinson@igalia.com> |
| |
| [CMake] [GTK] Organize and clean up unused CMake variables |
| https://bugs.webkit.org/show_bug.cgi?id=144364 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| * wtf/PlatformGTK.cmake: Add variables specific to this project. |
| |
| 2015-04-28 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT |
| https://bugs.webkit.org/show_bug.cgi?id=144304 |
| |
| Reviewed by Geoffrey Garen. |
| |
| No longer check ENABLE_LLINT_C_LOOP to determine the value of ENABLE_JIT. |
| |
| * wtf/Platform.h: |
| |
| 2015-04-28 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r183514. |
| https://bugs.webkit.org/show_bug.cgi?id=144359 |
| |
| It broke cloop test bots (Requested by mcatanzaro on #webkit). |
| |
| Reverted changeset: |
| |
| "Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT" |
| https://bugs.webkit.org/show_bug.cgi?id=144304 |
| http://trac.webkit.org/changeset/183514 |
| |
| 2015-04-28 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Fully replace ENABLE_LLINT_C_LOOP with ENABLE_JIT |
| https://bugs.webkit.org/show_bug.cgi?id=144304 |
| |
| Reviewed by Geoffrey Garen. |
| |
| No longer check ENABLE_LLINT_C_LOOP to determine the value of ENABLE_JIT. |
| |
| * wtf/Platform.h: |
| |
| 2015-04-28 Alex Christensen <achristensen@webkit.org> |
| |
| Properly reset deleted count when clearing HashTables. |
| https://bugs.webkit.org/show_bug.cgi?id=144343 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/HashTable.h: |
| (WTF::KeyTraits>::clear): |
| Reset m_deletedCount, which appears to have been forgotten. |
| |
| 2015-04-28 Alex Christensen <achristensen@webkit.org> |
| |
| [Content Extensions] Use less memory for CombinedURLFilters. |
| https://bugs.webkit.org/show_bug.cgi?id=144290 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Forward.h: |
| * wtf/Vector.h: |
| Added a minCapacity template parameter to allow changing the minimum size of an |
| allocated buffer. The default minCapacity is kept at 16 unless otherwise specified |
| to have no change on existing code, but this could be changed later. A smaller |
| default minCapacity would use less memory with small Vectors but spend more time |
| copying when expanding to large Vectors. |
| |
| 2015-04-27 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Deactivate WebGL until Windows tests work properly |
| https://bugs.webkit.org/show_bug.cgi?id=144291 |
| <rdar://problem/20707307> |
| |
| Reviewed by Zalan Bujtas. |
| |
| * wtf/FeatureDefines.h: Force WebGL off for Windows builds. |
| |
| 2015-04-27 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Rename WTF_USE_3D_GRAPHICS to ENABLE_GRAPHICS_CONTEXT_3D |
| https://bugs.webkit.org/show_bug.cgi?id=144193 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FeatureDefines.h: |
| * wtf/Platform.h: |
| |
| 2015-04-22 Martin Robinson <mrobinson@igalia.com> |
| |
| [CMake] Autogenerate cmakeconfig.h.cmake |
| https://bugs.webkit.org/show_bug.cgi?id=143997 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/Platform.h: Move a GTK-specific setting from cmakeconfig.h to here. |
| |
| 2015-04-25 Martin Robinson <mrobinson@igalia.com> |
| |
| Rename ENABLE_3D_RENDERING to ENABLE_3D_TRANSFORMS |
| https://bugs.webkit.org/show_bug.cgi?id=144182 |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/FeatureDefines.h: Replace all instances of 3D_RENDERING with 3D_TRANSFORMS. |
| |
| 2015-04-24 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r183288. |
| https://bugs.webkit.org/show_bug.cgi?id=144189 |
| |
| Made js/sort-with-side-effecting-comparisons.html time out in |
| debug builds (Requested by ap on #webkit). |
| |
| Reverted changeset: |
| |
| "It shouldn't take 1846 lines of code and 5 FIXMEs to sort an |
| array." |
| https://bugs.webkit.org/show_bug.cgi?id=144013 |
| http://trac.webkit.org/changeset/183288 |
| |
| 2015-04-21 Geoffrey Garen <ggaren@apple.com> |
| |
| It shouldn't take 1846 lines of code and 5 FIXMEs to sort an array. |
| https://bugs.webkit.org/show_bug.cgi?id=144013 |
| |
| Reviewed by Mark Lam. |
| |
| Remove this custom tree implementation because it is unused. (It was |
| previously used to achieve a stable array sort in certain cases.) |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/AVLTree.h: Removed. |
| * wtf/CMakeLists.txt: |
| |
| 2015-04-24 Darin Adler <darin@apple.com> |
| |
| Convert OwnPtr and PassOwnPtr uses to std::unique_ptr |
| https://bugs.webkit.org/show_bug.cgi?id=128007 |
| |
| Reviewed by Anders Carlsson. |
| |
| * WTF.vcxproj/WTF.vcxproj: Removed OwnPtr source files. |
| * WTF.vcxproj/WTF.vcxproj.filters: Ditto. |
| * WTF.xcodeproj/project.pbxproj: Ditto. |
| * wtf/CMakeLists.txt: Ditto. |
| |
| * wtf/Forward.h: Removed OwnPtr and PassOwnPtr. |
| * wtf/HashTraits.h: Ditto. |
| |
| * wtf/OwnPtr.h: Removed. |
| * wtf/OwnPtrCommon.h: Removed. |
| * wtf/PassOwnPtr.h: Removed. |
| |
| * wtf/SizeLimits.cpp: Removed OwnPtr. |
| * wtf/VectorTraits.h: Removed OwnPtr specialization. |
| |
| 2015-04-23 Jer Noble <jer.noble@apple.com> |
| |
| Disable HAVE_AVKIT on AppleTV |
| https://bugs.webkit.org/show_bug.cgi?id=144142 |
| |
| Reviewed by Dan Bernstein. |
| |
| * wtf/Platform.h: |
| |
| 2015-04-23 Alexey Proskuryakov <ap@apple.com> |
| |
| [iOS] WebKit services should inherit environment variables for home |
| https://bugs.webkit.org/show_bug.cgi?id=144078 |
| rdar://problem/20571678 |
| |
| Reviewed by Dan Bernstein. |
| |
| * wtf/spi/darwin/XPCSPI.h: Added xpc_copy_bootstrap and xpc_dictionary_apply. |
| |
| 2015-04-23 Alexey Proskuryakov <ap@apple.com> |
| |
| Undo the WTF part of the previous build fix, we don't use private headers in WTF. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| |
| 2015-04-23 Alexey Proskuryakov <ap@apple.com> |
| |
| Build fix. |
| |
| * WTF.xcodeproj/project.pbxproj: Make RAMSize.h a private header, now that it's used |
| from outside WTF. |
| |
| 2015-04-23 Andreas Kling <akling@apple.com> |
| |
| There should only be one way to get the system memory size. |
| <https://webkit.org/b/144081> |
| |
| Reviewed by Antti Koivisto. |
| |
| Merge all the logic from other RAM size fetcher helpers into WTF's. |
| |
| Darwin ports now use host_info() instead of sysctl(), since that was the more common way |
| of doing this. |
| |
| Also bumped the fallback answer from 128 MB to 512 MB to bring it closer to today's hardware. |
| |
| Finally, the number is rounded up to the next multiple of 128 MB, to avoid misunderstandings |
| on some systems where the number returned by the kernel is slightly lower than the marketing |
| number. Removed the "fudging" that was used in some places, since this fixes that cleanly. |
| |
| * wtf/RAMSize.cpp: |
| (WTF::computeRAMSize): |
| |
| 2015-04-22 Darin Adler <darin@apple.com> |
| |
| Eliminate remaining uses of OwnPtr and PassOwnPtr in WebCore outside the editing and platform directories |
| https://bugs.webkit.org/show_bug.cgi?id=143949 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/MathExtras.h: |
| (wtf_ceil): Deleted. This was a workaround for a bug that was introduced in Leopard and |
| fixed in Snow Leopard <rdar://problem/6286405>, so we don't need the workaround any more. |
| |
| 2015-04-22 Alexey Proskuryakov <ap@apple.com> |
| |
| [Mac] In nightlies and local builds, WebKit services can get terminated under memory pressure |
| https://bugs.webkit.org/show_bug.cgi?id=144052 |
| rdar://problem/19754404 |
| |
| Build fix. Landing a forward declaration that should have been part of the original patch. |
| |
| * wtf/spi/darwin/XPCSPI.h: |
| |
| 2015-04-21 Chris Dumez <cdumez@apple.com> |
| |
| Make Vector(const Vector<T, otherCapacity, otherOverflowBehaviour>&) constructor explicit |
| https://bugs.webkit.org/show_bug.cgi?id=143970 |
| |
| Reviewed by Darin Adler. |
| |
| Make Vector(const Vector<T, otherCapacity, otherOverflowBehaviour>&) |
| constructor explicit as it copies the vector and it is easy to call it |
| by mistake. |
| |
| * wtf/RefCountedArray.h: |
| (WTF::RefCountedArray::RefCountedArray): |
| * wtf/Vector.h: |
| |
| 2015-04-21 Darin Adler <darin@apple.com> |
| |
| Remove some stray uses of OwnPtr and PassOwnPtr in WTF (outside of the template definitions and traits) |
| https://bugs.webkit.org/show_bug.cgi?id=143944 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/FilePrintStream.h: Removed unneeded include. |
| * wtf/HashTable.h: Fixed class template name in comment. |
| * wtf/HashTraits.h: Removed unneeded forward declaration. |
| * wtf/ListHashSet.h: Removed unneeded includes. |
| * wtf/ThreadingWin.cpp: Removed unneeded includes. |
| (WTF::wtfThreadEntryPoint): Changed code to use unique_ptr. |
| (WTF::createThreadInternal): Changed code to use make_unique and release. |
| * wtf/efl/RunLoopEfl.cpp: Removed unneeded includes. |
| |
| 2015-04-19 Darin Adler <darin@apple.com> |
| |
| Update RefPtr documentation and deprecation |
| https://bugs.webkit.org/show_bug.cgi?id=143936 |
| |
| Reviewed by Andreas Kling. |
| |
| * WTF.vcxproj/WTF.vcxproj: Removed PassRef.h |
| * WTF.vcxproj/WTF.vcxproj.filters: Ditto. |
| * WTF.xcodeproj/project.pbxproj: Ditto. |
| * wtf/CMakeLists.txt: Ditto. |
| |
| 2015-04-17 Alexey Proskuryakov <ap@apple.com> |
| |
| Use ASan poisoning to taint moved-out-of Refs |
| https://bugs.webkit.org/show_bug.cgi?id=143894 |
| rdar://problem/19443723 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Ref.h: (WTF::Ref::~Ref): |
| |
| 2015-04-17 Alexey Proskuryakov <ap@apple.com> |
| |
| Remove unused BoundsCheckedPointer |
| https://bugs.webkit.org/show_bug.cgi?id=143896 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/BoundsCheckedPointer.h: Removed. |
| * wtf/CMakeLists.txt: |
| |
| 2015-04-16 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| [ES6] Implement Symbol.for and Symbol.keyFor |
| https://bugs.webkit.org/show_bug.cgi?id=143404 |
| |
| Reviewed by Geoffrey Garen. |
| |
| When we register symbolized StringImpl* into SymbolRegistry, symbolized StringImpl* is aware of that. |
| And when destructing it, it removes its reference from SymbolRegistry as if atomic StringImpl do so with AtomicStringTable. |
| While AtomicStringTable (in WebCore case) exists in thread local storage, |
| SymbolRegistry exists per VM and StringImpl* has a reference to the registered SymbolRegistry. |
| |
| Since StringImpl has isSymbol etc. members, it's class is aware of Symbol use cases. |
| So introduce SymbolRegistry in WTF layers as if AtomicStringTable. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::addSlowCase): |
| (WTF::AtomicString::findSlowCase): |
| (WTF::AtomicString::findInternal): |
| (WTF::AtomicString::find): Deleted. |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::find): |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::~StringImpl): |
| (WTF::StringImpl::createSymbol): |
| (WTF::StringImpl::createSymbolEmpty): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| (WTF::StringImpl::extractFoldedStringInSymbol): |
| (WTF::StringImpl::symbolRegistry): |
| (WTF::StringImpl::createSymbolEmpty): Deleted. |
| * wtf/text/SymbolRegistry.cpp: Copied from Source/JavaScriptCore/runtime/SymbolConstructor.h. |
| (WTF::SymbolRegistry::~SymbolRegistry): |
| (WTF::SymbolRegistry::symbolForKey): |
| (WTF::SymbolRegistry::keyForSymbol): |
| (WTF::SymbolRegistry::remove): |
| * wtf/text/SymbolRegistry.h: Added. |
| (WTF::SymbolRegistryKey::hash): |
| (WTF::SymbolRegistryKey::impl): |
| (WTF::SymbolRegistryKey::isHashTableDeletedValue): |
| (WTF::SymbolRegistryKey::hashTableDeletedValue): |
| (WTF::DefaultHash<SymbolRegistryKey>::Hash::hash): |
| (WTF::DefaultHash<SymbolRegistryKey>::Hash::equal): |
| (WTF::HashTraits<SymbolRegistryKey>::isEmptyValue): |
| (WTF::SymbolRegistryKey::SymbolRegistryKey): |
| |
| 2015-04-16 Antti Koivisto <antti@apple.com> |
| |
| Use CommonCrypto for SHA1 and MD5 |
| https://bugs.webkit.org/show_bug.cgi?id=143826 |
| |
| Reviewed by Anders Carlsson. |
| |
| CommonCrypto SHA1 implementation is ~4x faster than the naive WTF one. Use it when available. |
| |
| These are covered by existing API tests. |
| |
| * wtf/MD5.cpp: |
| (WTF::MD5::MD5): |
| (WTF::MD5::addBytes): |
| (WTF::MD5::checksum): |
| * wtf/MD5.h: |
| * wtf/SHA1.cpp: |
| (WTF::SHA1::SHA1): |
| (WTF::SHA1::addBytes): |
| (WTF::SHA1::computeHash): |
| |
| Remove the side effect where computeHash resets the state. No one relies on it. |
| |
| (WTF::SHA1::hexDigest): |
| (WTF::SHA1::computeHexDigest): |
| * wtf/SHA1.h: |
| |
| 2015-04-16 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Remove the unnecessary WTF_CHANGES define |
| https://bugs.webkit.org/show_bug.cgi?id=143825 |
| |
| Reviewed by Andreas Kling. |
| |
| * config.h: |
| |
| 2015-04-15 Руслан Ижбулатов <lrn1986@gmail.com> |
| |
| Harmonize binary semaphore ifdefs |
| |
| They should be either OS(WINDOWS) (in which case we'd need |
| BinarySemaphoreWin.cpp, which is not shipped by WebKitGTK) |
| or PLATFORM(WIN) (in which case Mutex/ThreadCondition-based |
| implementation is used). |
| |
| This fixes errors like: |
| CXX Source/WTF/wtf/threads/libWTF_la-BinarySemaphore.lo |
| ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp: In constructor 'WTF::BinarySemaphore::BinarySemaphore()': |
| ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:34:7: error: class 'WTF::BinarySemaphore' does not have any field named 'm_isSet' |
| : m_isSet(false) |
| ^ |
| ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp: In member function 'void WTF::BinarySemaphore::signal()': |
| ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:44:24: error: 'm_mutex' was not declared in this scope |
| MutexLocker locker(m_mutex); |
| ^ |
| ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:46:5: error: 'm_isSet' was not declared in this scope |
| m_isSet = true; |
| ^ |
| ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:47:5: error: 'm_condition' was not declared in this scope |
| m_condition.signal(); |
| ^ |
| ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp: In member function 'bool WTF::BinarySemaphore::wait(double)': |
| ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:52:24: error: 'm_mutex' was not declared in this scope |
| MutexLocker locker(m_mutex); |
| ^ |
| ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:55:13: error: 'm_isSet' was not declared in this scope |
| while (!m_isSet) { |
| ^ |
| ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:56:21: error: 'm_condition' was not declared in this scope |
| timedOut = !m_condition.timedWait(m_mutex, absoluteTime); |
| ^ |
| ../webkitgtk-2.4.8/Source/WTF/wtf/threads/BinarySemaphore.cpp:62:5: error: 'm_isSet' was not declared in this scope |
| m_isSet = false; |
| ^ |
| GNUmakefile:52762: recipe for target 'Source/WTF/wtf/threads/libWTF_la-BinarySemaphore.lo' failed |
| |
| [W32] Inconsistent ifdefs in BinarySemaphore.h and BinarySemaphore.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=143756 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/threads/BinarySemaphore.h: |
| |
| 2015-04-12 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| Fix -Wparentheses warning with GCC 5 in SaturatedArithmetic.h |
| https://bugs.webkit.org/show_bug.cgi?id=143457 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Tested by WTF.SaturatedArithmeticAddition and WTF.SaturatedArithmeticSubtraction. |
| |
| * wtf/SaturatedArithmetic.h: |
| (signedAddOverflows): Use && instead of & to avoid triggering -Wparentheses in newer |
| versions of GCC and Clang, and to improve the clarity of the function. |
| (signedSubtractOverflows): Changed correspondingly, although there was no warning here. |
| |
| 2015-04-08 Sam Weinig <sam@webkit.org> |
| |
| Allow LaunchServices to handle URLs on link navigations |
| <rdar://problem/19446826> |
| https://bugs.webkit.org/show_bug.cgi?id=143544 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Platform.h: |
| Add HAVE macro for this functionality. |
| |
| 2015-04-09 Andy Estes <aestes@apple.com> |
| |
| [Cocoa] Add a HAVE(AVKIT) and use it |
| https://bugs.webkit.org/show_bug.cgi?id=143593 |
| |
| Reviewed by David Kilzer. |
| |
| * wtf/Platform.h: Defined HAVE(AVKIT) to be true on all Cocoa platforms except Watch OS. |
| |
| 2015-04-09 Andy Estes <aestes@apple.com> |
| |
| [Content Filtering] Add a HAVE(PARENTAL_CONTROLS) and use it |
| https://bugs.webkit.org/show_bug.cgi?id=143559 |
| |
| Reviewed by David Kilzer. |
| |
| Added PLATFORM(WATCHOS). Used PLATFORM() since Watch OS is just a variant of OS(IOS). |
| Defined HAVE(PARENTAL_CONTROLS) to be true on all Cocoa platforms except Watch OS. |
| |
| * wtf/Platform.h: |
| |
| 2015-04-08 Alex Christensen <achristensen@webkit.org> and Patrick Gansterer <paroga@webkit.org> |
| |
| Add CMake build system for WinCairo port. |
| https://bugs.webkit.org/show_bug.cgi?id=115944 |
| |
| Reviewed by Chris Dumez. |
| |
| * wtf/FeatureDefines.h: |
| * wtf/PlatformWin.cmake: |
| |
| 2015-04-05 Antti Koivisto <antti@apple.com> |
| |
| Bloom filter should support longer hashes |
| https://bugs.webkit.org/show_bug.cgi?id=143419 |
| |
| Reviewed by Dan Bernstein. |
| |
| It currently supports 'unsigned' hash only which is inconvenient and doesn't have enough independent bits for larger filters. |
| |
| Support arbitrarily sized hashes of type std::array<uint8_t, hashSize> (like SHA1::Digest and MD5::Digest). |
| |
| * wtf/BloomFilter.h: |
| (WTF::BloomFilter<keyBits>::keysFromHash): |
| (WTF::BloomFilter<keyBits>::mayContain): |
| (WTF::BloomFilter<keyBits>::add): |
| |
| 2015-04-03 Antti Koivisto <antti@apple.com> |
| |
| Add non-counting Bloom filter implementation |
| https://bugs.webkit.org/show_bug.cgi?id=143366 |
| |
| Reviewed by Sam Weinig. |
| |
| Add a traditional single-bit-per-bucket Bloom filter in addition to the existing counting implementation. |
| |
| - rename BloomFilter -> CountingBloomFilter. |
| - add a new basic BloomFilter type. |
| - update some terminology to match http://en.wikipedia.org/wiki/Bloom_filter and modernize the code a bit. |
| - add API tests. |
| |
| * wtf/BloomFilter.h: |
| (WTF::BloomFilter::BloomFilter): |
| (WTF::BloomFilter::add): |
| |
| Also support merging. |
| |
| (WTF::BloomFilter::mayContain): |
| (WTF::BloomFilter::arrayIndex): |
| (WTF::BloomFilter::bitMask): |
| (WTF::BloomFilter<keyBits>::mayContain): |
| (WTF::BloomFilter<keyBits>::add): |
| (WTF::BloomFilter<keyBits>::isBitSet): |
| (WTF::BloomFilter<keyBits>::setBit): |
| (WTF::BloomFilter<keyBits>::clear): |
| (WTF::CountingBloomFilter::CountingBloomFilter): |
| (WTF::CountingBloomFilter::mayContain): |
| (WTF::CountingBloomFilter::firstBucket): |
| (WTF::CountingBloomFilter::secondBucket): |
| (WTF::CountingBloomFilter<keyBits>::add): |
| (WTF::CountingBloomFilter<keyBits>::remove): |
| (WTF::CountingBloomFilter<keyBits>::clear): |
| (WTF::CountingBloomFilter<keyBits>::likelyEmpty): |
| (WTF::CountingBloomFilter<keyBits>::isClear): |
| (WTF::BloomFilter::maximumCount): Deleted. |
| (WTF::BloomFilter::firstSlot): Deleted. |
| (WTF::BloomFilter::secondSlot): Deleted. |
| (WTF::BloomFilter<keyBits>::remove): Deleted. |
| (WTF::BloomFilter<keyBits>::likelyEmpty): Deleted. |
| (WTF::BloomFilter<keyBits>::isClear): Deleted. |
| |
| 015-04-01 Antti Koivisto <antti@apple.com> |
| |
| Value assignment operator of Optional should be stricter |
| https://bugs.webkit.org/show_bug.cgi?id=143303 |
| |
| Reviewed by Andreas Kling. |
| |
| struct Foo { mutable Optional<std::chrono::seconds> s; }; |
| Foo foo, foo2; |
| foo = foo2; |
| |
| doesn't build because it tries to use wrong operator=. |
| |
| * wtf/Optional.h: |
| |
| Add enable_if test similar to std::experimental::optional. |
| |
| 2015-04-01 Alex Christensen <achristensen@webkit.org> |
| |
| Progress towards CMake on Windows and Mac. |
| https://bugs.webkit.org/show_bug.cgi?id=143293 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/CMakeLists.txt: |
| Don't use bmalloc on Windows yet. |
| * wtf/FeatureDefines.h: |
| Temporarily disabled WebGL on Windows CMake builds. |
| * wtf/PlatformMac.cmake: |
| Tell open source builders where to find unicode headers. |
| |
| 2015-03-31 Alexey Proskuryakov <ap@apple.com> |
| |
| Fix the build after <http://trac.webkit.org/changeset/182205>. |
| |
| * wtf/text/StringImpl.h: (WTF::StringImpl::extractFoldedStringInSymbol): |
| A function cannot be both exported and inline. |
| |
| 2015-03-31 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Clean up Identifier factories to clarify the meaning of StringImpl* |
| https://bugs.webkit.org/show_bug.cgi?id=143146 |
| |
| Reviewed by Filip Pizlo. |
| |
| Introduce StringKind into `StringImpl`. There's 3 kinds |
| 1. StringNormal (non-atomic, non-symbol) |
| 2. StringAtomic (atomic, non-symbol) |
| 3. StringSymbol (non-atomic, symbol) |
| They are mutually exclusive. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::addSlowCase): |
| (WTF::AtomicString::findSlowCase): |
| When registering a string into AtomicStringTable, |
| it should not be a symbol string |
| because symbol and atomic types are mutually exclusive. |
| When a symbol string comes, we extract an owner string |
| from a symbol string by using `StringImpl::extractFoldedStringInSymbol()`. |
| It always succeeds because a symbol (non empty) string |
| is always BufferSubstring and has an owner string. |
| Empty symbol string doesn't have an owner string. |
| This case is filtered by `!string.length()` guard. |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::add): |
| (WTF::AtomicString::addWithStringTableProvider): |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::~StringImpl): |
| (WTF::StringImpl::createSymbol): |
| (WTF::StringImpl::createUnique): Deleted. |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| (WTF::StringImpl::createSymbolEmpty): |
| (WTF::StringImpl::flagIsAtomic): |
| (WTF::StringImpl::flagIsSymbol): |
| (WTF::StringImpl::maskStringKind): |
| (WTF::StringImpl::stringKind): |
| (WTF::StringImpl::isSymbol): |
| (WTF::StringImpl::isAtomic): |
| (WTF::StringImpl::setIsAtomic): |
| (WTF::StringImpl::extractFoldedStringInSymbol): |
| (WTF::StringImpl::createUniqueEmpty): Deleted. |
| (WTF::StringImpl::flagIsUnique): Deleted. |
| (WTF::StringImpl::isUnique): Deleted. |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::hashAndFlagsForSymbol): |
| (WTF::StringImpl::hashAndFlagsForUnique): Deleted. |
| |
| 2015-03-30 Gyuyoung Kim <gyuyoung.kim@samsung.com> |
| |
| [CMake][EFL] Remove redundant library link and include path |
| https://bugs.webkit.org/show_bug.cgi?id=143221 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/PlatformEfl.cmake: Remove unnecessary library link and include path. |
| |
| 2015-03-27 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Support building WTF on Windows without Cygwin |
| https://bugs.webkit.org/show_bug.cgi?id=143084 |
| |
| Reviewed by Brent Fulgham. |
| |
| Windows doesn't have "touch". |
| |
| * WTF.vcxproj/WTFGenerated.make: |
| |
| 2015-03-26 Alex Christensen <achristensen@webkit.org> |
| |
| Progress towards CMake on Mac. |
| https://bugs.webkit.org/show_bug.cgi?id=143112 |
| |
| Reviewed by Chris Dumez. |
| |
| * wtf/PlatformMac.cmake: |
| |
| 2015-03-25 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, we have edited this file in 2015. |
| |
| * wtf/Platform.h: |
| |
| 2015-03-25 Filip Pizlo <fpizlo@apple.com> |
| |
| Heap variables shouldn't end up in the stack frame |
| https://bugs.webkit.org/show_bug.cgi?id=141174 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/FastBitVector.h: |
| (WTF::FastBitVector::resize): Small change: don't resize if you don't have to resize. |
| |
| 2015-03-25 Filip Pizlo <fpizlo@apple.com> |
| |
| Change Atomic methods from using the_wrong_naming_conventions to using theRightNamingConventions. Also make seq_cst the default. |
| |
| Rubber stamped by Geoffrey Garen. |
| |
| * wtf/Atomics.h: |
| (WTF::Atomic::load): |
| (WTF::Atomic::store): |
| (WTF::Atomic::compareExchangeWeak): |
| (WTF::Atomic::compareExchangeStrong): |
| (WTF::Atomic::compare_exchange_weak): Deleted. |
| (WTF::Atomic::compare_exchange_strong): Deleted. |
| * wtf/ByteSpinLock.h: |
| (WTF::ByteSpinLock::lock): |
| * wtf/SpinLock.h: |
| (WTF::SpinLockBase::lock): |
| |
| 2015-03-24 Beth Dakin <bdakin@apple.com> |
| |
| Add events related to force click gesture |
| https://bugs.webkit.org/show_bug.cgi?id=142836 |
| -and corresponding- |
| rdar://problem/20210239 |
| |
| Reviewed by Dean Jackson. |
| |
| New enable flag for the events. |
| * wtf/FeatureDefines.h: |
| |
| 2015-03-23 Filip Pizlo <fpizlo@apple.com> |
| |
| JSC should have a low-cost asynchronous disassembler |
| https://bugs.webkit.org/show_bug.cgi?id=142997 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/StringPrintStream.h: |
| |
| 2015-03-22 Benjamin Poulain <benjamin@webkit.org> |
| |
| CSS Selectors: fix attribute case-insensitive matching of Contain and List |
| https://bugs.webkit.org/show_bug.cgi?id=142932 |
| |
| Reviewed by Darin Adler. |
| |
| Add some utility functions to the string classes to find substrings |
| using ASCII case-insensitive comparisons. |
| |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::contains): |
| Add the light version that only lock one register. |
| |
| (WTF::AtomicString::containsIgnoringASCIICase): |
| (WTF::AtomicString::findIgnoringASCIICase): |
| |
| * wtf/text/StringCommon.h: |
| (WTF::findIgnoringASCIICase): |
| This is the common implementation used by StringView and StringImpl. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::findIgnoringASCIICase): |
| * wtf/text/StringImpl.h: |
| * wtf/text/StringView.cpp: |
| (WTF::StringView::containsIgnoringASCIICase): |
| (WTF::StringView::findIgnoringASCIICase): |
| * wtf/text/StringView.h: |
| * wtf/text/WTFString.h: |
| (WTF::String::findIgnoringASCIICase): |
| (WTF::String::contains): |
| (WTF::String::containsIgnoringASCIICase): |
| |
| 2015-03-19 Andreas Kling <akling@apple.com> |
| |
| DFGAllocator should use bmalloc's aligned allocator. |
| <https://webkit.org/b/142871> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Remove PageAllocationAligned since it has no more clients. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/PageAllocationAligned.cpp: Removed. |
| * wtf/PageAllocationAligned.h: Removed. |
| |
| 2015-03-18 Dhi Aurrahman <diorahman@rockybars.com> |
| |
| Fix StringView misplaced implementations after r181525 and r181558 |
| https://bugs.webkit.org/show_bug.cgi?id=142772 |
| |
| Reviewed by Darin Adler. |
| |
| Fix misplaced implementations in StringView::startsWithIgnoringASCIICase and |
| StringView::endsWith. |
| |
| Add some tests in [1] to cover the StringView::startsWith, |
| StringView::startsWithIgnoringASCIICase, StringView::endsWith and |
| StringView::endsWithIgnoringASCIICase implementations. |
| |
| [1] Tools/TestWebKitAPI/Tests/WTF/StringView.cpp. |
| |
| * wtf/text/StringView.cpp: |
| (WTF::StringView::startsWithIgnoringASCIICase): |
| (WTF::StringView::endsWith): |
| (WTF::StringView::endsWithIgnoringASCIICase): |
| |
| 2015-03-17 Michael Saboff <msaboff@apple.com> |
| |
| Windows X86-64 should use the fixed executable allocator |
| https://bugs.webkit.org/show_bug.cgi?id=142749 |
| |
| Reviewed by Filip Pizlo. |
| |
| Set ENABLE_EXECUTABLE_ALLOCATOR_FIXED for Windows. |
| Needed to export MetaAllocator::currentStatistics() for use in JavaScriptCore. |
| |
| * wtf/MetaAllocator.h: |
| * wtf/Platform.h: |
| |
| 2015-03-16 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Enable ES6 classes by default |
| https://bugs.webkit.org/show_bug.cgi?id=142774 |
| |
| Reviewed by Gavin Barraclough. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-03-16 Csaba Osztrogonác <ossy@webkit.org> |
| |
| [ARM] Enable generating idiv instructions if it is supported |
| https://bugs.webkit.org/show_bug.cgi?id=142725 |
| |
| Reviewed by Michael Saboff. |
| |
| * wtf/Platform.h: Set HAVE_ARM_IDIV_INSTRUCTIONS based on GCC macro too. |
| |
| 2015-03-16 Benjamin Poulain <benjamin@webkit.org> |
| |
| Fix StringView after r181525 |
| Unreviewed. |
| |
| Fix 2 silly mistakes I made in r181525. |
| |
| * wtf/text/StringView.cpp: |
| (WTF::StringView::startsWith): |
| (WTF::StringView::startsWithIgnoringASCIICase): |
| (WTF::StringView::endsWith): |
| (WTF::StringView::endsWithIgnoringASCIICase): |
| The implementation was inside the #ifdef. |
| |
| * wtf/text/StringView.h: |
| The symbols were not exported. |
| |
| 2015-03-16 Max Stepin <maxstepin@gmail.com> |
| |
| Add APNG support |
| https://bugs.webkit.org/show_bug.cgi?id=17022 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-03-15 Benjamin Poulain <benjamin@webkit.org> |
| |
| CSS: fix the case-insensitive matching of the attribute selectors Begin, End and Hyphen |
| https://bugs.webkit.org/show_bug.cgi?id=142715 |
| |
| Reviewed by Brent Fulgham. |
| |
| Add the necessary infrastructure to test startsWith() and endsWith() with |
| ASCII case-insentive comparisons. |
| |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::startsWith): |
| (WTF::AtomicString::startsWithIgnoringASCIICase): |
| (WTF::AtomicString::endsWith): |
| (WTF::AtomicString::endsWithIgnoringASCIICase): |
| |
| * wtf/text/StringCommon.h: |
| (WTF::loadUnaligned): |
| (WTF::equal): |
| I moved the low level equal() code from StringImpl to StringCommon |
| since it is used by both StringImpl and StringView. |
| |
| (WTF::equalCommon): |
| (WTF::equalIgnoringASCIICaseCommon): |
| Ideally we should drop the "Common" part of the name but StringView |
| wants this inline for some reason. I prefered keeping the current behavior |
| since I don't know how StringView's matching performance was evaluated. |
| |
| (WTF::startsWith): |
| (WTF::startsWithIgnoringASCIICase): |
| (WTF::endsWith): |
| (WTF::endsWithIgnoringASCIICase): |
| Make all that code shared between StringView and Stringimpl. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::startsWith): |
| (WTF::StringImpl::startsWithIgnoringASCIICase): |
| (WTF::StringImpl::endsWith): |
| (WTF::StringImpl::endsWithIgnoringASCIICase): |
| (WTF::equal): |
| (WTF::stringImplContentEqual): Deleted. |
| * wtf/text/StringImpl.h: |
| (WTF::loadUnaligned): Deleted. |
| (WTF::equal): Deleted. |
| |
| * wtf/text/StringView.cpp: |
| (WTF::StringView::startsWith): |
| (WTF::StringView::startsWithIgnoringASCIICase): |
| (WTF::StringView::endsWith): |
| (WTF::StringView::endsWithIgnoringASCIICase): |
| * wtf/text/StringView.h: |
| Since those are new, we can safely make them out-of-line and |
| evaluate the inlining impact as needed. |
| |
| * wtf/text/WTFString.h: |
| (WTF::String::startsWithIgnoringASCIICase): |
| (WTF::String::endsWith): |
| (WTF::String::endsWithIgnoringASCIICase): |
| |
| 2015-03-15 Benjamin Poulain <bpoulain@apple.com> |
| |
| Change the exact attribute matching to be ASCII case-insensitive |
| https://bugs.webkit.org/show_bug.cgi?id=142609 |
| |
| Reviewed by Darin Adler. |
| |
| Add support for ASCII case insensitive comparisons to all the string |
| classes. |
| |
| The new file StringCommon.h has the common algorithm to avoid repeating |
| the same code with different types. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * wtf/ASCIICType.h: |
| (WTF::toASCIILower): |
| * wtf/CMakeLists.txt: |
| * wtf/text/AtomicString.h: |
| (WTF::equalIgnoringASCIICase): |
| * wtf/text/StringCommon.h: Added. |
| (WTF::equalIgnoringASCIICase): |
| (WTF::equalIgnoringASCIICaseCommon): |
| * wtf/text/StringImpl.cpp: |
| (WTF::equalIgnoringASCIICase): |
| (WTF::equalIgnoringASCIICaseNonNull): |
| (WTF::StringImpl::utf8Impl): |
| (WTF::StringImpl::defaultWritingDirection): Deleted. |
| (WTF::StringImpl::adopt): Deleted. |
| (WTF::StringImpl::sizeInBytes): Deleted. |
| (WTF::putUTF8Triple): Deleted. |
| (WTF::StringImpl::utf8): Deleted. |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::isSubString): Deleted. |
| (WTF::find): Deleted. |
| |
| 2015-03-14 Michael Saboff <msaboff@apple.com> |
| |
| Disable Yarr JIT for ARMv7k |
| https://bugs.webkit.org/show_bug.cgi?id=142645 |
| |
| Rubber stamped by Geoffrey Garen. |
| |
| Changed the setting of ENABLE_YARR_JIT to be predicated on ENABLED_JIT. |
| |
| * wtf/Platform.h: |
| |
| 2015-03-14 Michael Saboff <msaboff@apple.com> |
| |
| ES6: Add binary and octal literal support |
| https://bugs.webkit.org/show_bug.cgi?id=142681 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * wtf/ASCIICType.h: |
| (WTF::isASCIIBinaryDigit): New support function. |
| (WTF::isASCIIOctalDigit): Updated to use logical and (&&) instead of binary and (&). |
| |
| 2015-03-13 Mark Lam <mark.lam@apple.com> |
| |
| Replace TCSpinLock with a new WTF::SpinLock based on WTF::Atomic. |
| <https://webkit.org/b/142674> |
| |
| Reviewed by Filip Pizlo. |
| |
| We no longer use TCMalloc in our code, and we now have C++11. This replaces the |
| TCMalloc_SpinLock with a new WTF::SpinLock based on WTF::Atomic (which is a |
| wrapper around std::atomic). |
| |
| Note that there is a StaticSpinLock and a SpinLock: |
| |
| 1. StaticSpinLock is an alias for SpinLockBase, and its initialization relies on |
| static / global std:atomic being automatically initialized to 0 at compile time. |
| Hence, StaticSpinLock should only be used for statics / globals (including |
| static members of classes / structs). |
| |
| 2. SpinLock is derived from SpinLockBase, and adds a default constructor to |
| initialize its internal atomic value to 0. Because SpinLock has a constructor, |
| it cannot be used for statics / globals. Objects that want to embed a spin |
| lock as an instance field should use SpinLock so that it is initialized properly. |
| std::atomic will not automatically initialize instance fields to 0. Hence, |
| StaticSpinLock will not work correctly as instance fields of a class / struct. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/MetaAllocator.cpp: |
| (WTF::MetaAllocator::~MetaAllocator): |
| (WTF::MetaAllocator::MetaAllocator): |
| * wtf/MetaAllocator.h: |
| * wtf/SpinLock.h: Added. |
| (WTF::SpinLockBase::lock): |
| (WTF::SpinLockBase::unlock): |
| (WTF::SpinLockBase::isLocked): |
| (WTF::SpinLockBase::slowLock): |
| (WTF::SpinLock::SpinLock): |
| * wtf/TCSpinLock.h: Removed. |
| * wtf/text/AtomicString.cpp: |
| |
| 2015-03-13 Mark Lam <mark.lam@apple.com> |
| |
| Introduce WTF::Atomic to wrap std::atomic for a friendlier CAS. |
| <https://webkit.org/b/142661> |
| |
| Reviewed by Filip Pizlo. |
| |
| The CAS functions provided by std::atomic takes a reference to the expected |
| value and modifies it if the CAS fails. However, in a lot of our CAS usage, |
| we don't want the expected value to change. The solution to this is to |
| provide a WTF::Atomic struct that wraps std::atomic, and provide CAS |
| methods that won't alter the expected value if the CAS fails. |
| |
| The method names in WTF::Atomic are chosen to be identical to those |
| in std::atomic so that WTF::Atomic can be a simple drop in replacement |
| for std::atomic. |
| |
| Also changed ByteSpinLock to use WTF::Atomic instead of std::atomic. |
| |
| * wtf/Atomics.h: |
| (WTF::Atomic::load): |
| (WTF::Atomic::store): |
| (WTF::Atomic::compare_exchange_weak): |
| (WTF::Atomic::compare_exchange_strong): |
| * wtf/ByteSpinLock.h: |
| (WTF::ByteSpinLock::ByteSpinLock): |
| (WTF::ByteSpinLock::lock): |
| |
| 2015-03-12 Filip Pizlo <fpizlo@apple.com> |
| |
| Bytecode liveness analysis should have more lambdas and fewer sets |
| https://bugs.webkit.org/show_bug.cgi?id=142647 |
| |
| Reviewed by Mark Lam. |
| |
| Add a method for iterating each set bit in a FastBitVector. Uses a functor as a callback since |
| this allows for a more efficient algorithm. |
| |
| * wtf/FastBitVector.h: |
| (WTF::FastBitVector::forEachSetBit): |
| |
| 2015-03-12 Michael Saboff <msaboff@apple.com> |
| |
| Disable Yarr JIT for ARMv7k |
| https://bugs.webkit.org/show_bug.cgi?id=142645 |
| |
| Reviewed by Oliver Hunt. |
| |
| Make the setting of ENABLE_YARR_JIT match ENABLE_JIT for ARMv7k. |
| |
| * wtf/Platform.h: |
| |
| 2015-03-12 Mark Lam <mark.lam@apple.com> |
| |
| Change WTF::ByteSpinLock to use std::atomic. |
| <https://webkit.org/b/142644> |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/ByteSpinLock.h: |
| (WTF::ByteSpinLock::ByteSpinLock): |
| (WTF::ByteSpinLock::lock): |
| (WTF::ByteSpinLock::unlock): |
| (WTF::ByteSpinLock::isHeld): |
| |
| 2015-03-12 Csaba Osztrogonác <ossy@webkit.org> |
| |
| [ARM][Linux] GC sometimes stuck in an infinite loop if parallel GC is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=141290 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * wtf/Platform.h: Enable parallel GC after r181319. |
| |
| 2015-03-11 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Use out-of-band messaging for RenderBox::firstLineBaseline() and RenderBox::inlineBlockBaseline() |
| https://bugs.webkit.org/show_bug.cgi?id=142569 |
| |
| Reviewed by David Hyatt. |
| |
| Provide a callback to Optional::valueOrCompute() which is evaluated only if necessary. |
| |
| * wtf/Optional.h: |
| (WTF::Optional::valueOrCompute): |
| |
| 2015-03-10 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] 17 different JSC tests started to fail in DST |
| https://bugs.webkit.org/show_bug.cgi?id=142531 |
| |
| Reviewed by Chris Dumez. |
| |
| The stock 'GetTimeZoneInformation' call does not always match the actual Daylight |
| Savings calendar. This results in a period of time when these tests fail. |
| |
| If available, we should take advantage of the new 'GetTimeZoneInformationForYear', |
| which accesses a dynamic calendar of DST dates, which is presumbably updated by |
| Microsoft from year-to-year. |
| |
| * wtf/DateMath.cpp: |
| (WTF::timeZoneInformationForYearFunction): New function to conditionally access |
| some Vista (and newer) functionality. |
| (WTF::calculateUTCOffset): Call new function (if available) to calculate proper UTC |
| time offset. |
| |
| 2015-03-10 Alex Christensen <achristensen@webkit.org> |
| |
| Use unsigned for HashSet size. |
| https://bugs.webkit.org/show_bug.cgi?id=142518 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/HashCountedSet.h: |
| (WTF::Traits>::size): |
| (WTF::Traits>::capacity): |
| * wtf/HashMap.h: |
| (WTF::X>::size): |
| (WTF::X>::capacity): |
| * wtf/HashSet.h: |
| (WTF::V>::size): |
| (WTF::V>::capacity): |
| * wtf/HashTable.h: |
| (WTF::HashTable::Stats::recordCollisionAtCount): |
| (WTF::HashTable::Stats::dumpStats): |
| (WTF::HashTable::size): |
| (WTF::HashTable::capacity): |
| (WTF::KeyTraits>::deallocateTable): |
| (WTF::KeyTraits>::checkTableConsistencyExceptSize): |
| * wtf/HashTraits.h: |
| * wtf/ListHashSet.h: |
| (WTF::U>::size): |
| (WTF::U>::capacity): |
| |
| 2015-03-10 Said Abou-Hallawa <sabouhallawa@apple.com> |
| |
| Remove PassRefPtr from svg/properties classes. |
| https://bugs.webkit.org/show_bug.cgi?id=142063. |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Ref.h: |
| (WTF::static_reference_cast): Add a stat_cast function to Ref<>. |
| |
| 2015-03-10 Mark Lam <mark.lam@apple.com> |
| |
| [Win] JSC Build Warnings Need to be Resolved. |
| <https://webkit.org/b/142366> |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/Compiler.h: |
| - MSVC also does not have the CONSIDERS_UNREACHABLE_CODE quirk. |
| |
| 2015-03-10 Geoffrey Garen <ggaren@apple.com> |
| |
| bmalloc: tryFastMalloc shouldn't crash |
| https://bugs.webkit.org/show_bug.cgi?id=142443 |
| |
| Reviewed by Sam Weinig. |
| |
| Rolling back in r181307 with a check for whether bmalloc is enabled, to |
| avoid crashes when running with ASan and GuardMalloc. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::fastMalloc): |
| (WTF::fastRealloc): |
| (WTF::fastAlignedMalloc): |
| (WTF::tryFastMalloc): |
| (WTF::tryFastRealloc): Deleted. |
| * wtf/FastMalloc.h: |
| |
| 2015-03-10 Michael Catanzaro <mcatanzaro@igalia.com> |
| |
| GCC: CRASH() should be annotated with NORETURN |
| https://bugs.webkit.org/show_bug.cgi?id=142524 |
| |
| Reviewed by Anders Carlsson. |
| |
| Add COMPILER(GCC) to #ifdefs that already exist for Clang. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| |
| 2015-03-09 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r181307. |
| https://bugs.webkit.org/show_bug.cgi?id=142525 |
| |
| Broke ASan tests (Requested by ap on #webkit). |
| |
| Reverted changeset: |
| |
| "bmalloc: tryFastMalloc shouldn't crash" |
| https://bugs.webkit.org/show_bug.cgi?id=142443 |
| http://trac.webkit.org/changeset/181307 |
| |
| 2015-03-09 Geoffrey Garen <ggaren@apple.com> |
| |
| bmalloc: tryFastMalloc shouldn't crash |
| https://bugs.webkit.org/show_bug.cgi?id=142443 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::fastMalloc): |
| (WTF::fastRealloc): |
| (WTF::fastAlignedMalloc): Don't check for null. bmalloc automatically |
| crashes on allocation failure, and we'd rather not pay for an extra check. |
| |
| (WTF::tryFastMalloc): Added an opt-out API to return null rather than |
| crashing, since some clients need this. |
| |
| (WTF::tryFastRealloc): Deleted. Unused. |
| |
| * wtf/FastMalloc.h: |
| |
| 2015-03-09 Mark Lam <mark.lam@apple.com> |
| |
| 8-bit version of weakCompareAndSwap() can cause an infinite loop. |
| https://webkit.org/b/142513> |
| |
| Reviewed by Filip Pizlo. |
| |
| Presently, Bitmap::concurrentTestAndSet() uses the 8-bit version of |
| weakCompareAndSwap() (which compares and swaps an uint8_t value). |
| Bitmap::concurrentTestAndSet() has a loop that checks if a bit in the |
| byte of interest has been set. If not, it will call the 8-bit CAS |
| function to set the bit. |
| |
| Under the covers, for ARM, the 8-bit CAS function actually works with a |
| 32-bit CAS. The 8-bit CAS will first fetch the 32-bit value in memory |
| that should contain the 8-bit value, and check if it contains the |
| expected byte. If the value in memory doesn't have the expected byte, |
| it will return early to its caller. The expectation is that the caller |
| will reload the byte from memory and call the 8-bit CAS again. |
| |
| Unfortunately, this code path that returns early does not have a |
| compiler fence. Without a compiler fence, the C++ compiler can |
| optimize away the reloading of the expected byte value, leaving it |
| unchanged. As a result, we'll have a infinite loop here that checks a |
| value that will never change, and the loop will not terminate until the |
| value changes. |
| |
| The fix is to eliminate the early return check in the 8-bit CAS, and |
| have it always call down to the 32-bit CAS. The 32-bit CAS has a |
| compiler fence which will prevent this issue. |
| |
| * wtf/Atomics.h: |
| (WTF::weakCompareAndSwap): |
| |
| 2015-03-09 Martin Robinson <mrobinson@igalia.com> |
| |
| [EFL] Move DispatchQueue to WTF |
| https://bugs.webkit.org/show_bug.cgi?id=142493 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/PlatformEfl.cmake: Add DispatchQueue to the source list. |
| * wtf/efl/DispatchQueueEfl.cpp: Renamed from Source/WebKit2/Platform/efl/DispatchQueueEfl.cpp. |
| * wtf/efl/DispatchQueueEfl.h: Renamed from Source/WebKit2/Platform/efl/DispatchQueueEfl.h. |
| * wtf/efl/DispatchQueueWorkItemEfl.h: Renamed from Source/WebKit2/Platform/efl/DispatchQueueWorkItemEfl.h. |
| |
| 2015-03-08 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] WTF::WorkQueue does not balance ref/deref properly |
| https://bugs.webkit.org/show_bug.cgi?id=142471 |
| |
| Reviewed by Antti Koivisto. |
| |
| Make sure we deref the count when we execute a function in the |
| WorkQueue. |
| |
| * wtf/win/WorkQueueWin.cpp: |
| (WTF::WorkQueue::performWorkOnRegisteredWorkThread): |
| |
| 2015-03-07 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Revive WTF::WorkQueue on Windows |
| https://bugs.webkit.org/show_bug.cgi?id=142432 |
| |
| Reviewed by Darin Adler. |
| |
| Revive the Windows implementation of WTF::WorkQueue. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * wtf/WorkQueue.h: |
| * wtf/win/WorkItemWin.cpp: Added. |
| * wtf/win/WorkItemWin.h: Added. |
| * wtf/win/WorkQueueWin.cpp: Added. |
| |
| 2015-03-06 Geoffrey Garen <ggaren@apple.com> |
| |
| Fix crashes seen on the the Windows buildbots after my last patch. |
| |
| Unreviewed. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::fastAlignedMalloc): Let's pass these arguments in the right order. |
| |
| 2015-03-06 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Crash in -[WebCascadeList objectAtIndex:] + 195 |
| https://bugs.webkit.org/show_bug.cgi?id=141274 |
| |
| Reviewed by David Kilzer. |
| |
| * wtf/WeakPtr.h: |
| (WTF::WeakPtrFactory::createWeakPtr): WebCascadeList uses a const FontCascade, |
| and it calls createWeakPtr() on it. Therefore, createWeakPtr has to be marked |
| const. |
| (WTF::WeakPtrFactory::operator=): Removed because it was broken and had no |
| callers |
| |
| 2015-03-06 Simon Fraser <simon.fraser@apple.com> |
| |
| Allow tree dumping functions to be used in release builds by switching a flag |
| https://bugs.webkit.org/show_bug.cgi?id=142379 |
| |
| Reviewed by Zalan Bujtas. |
| |
| There are various tree dumping functions that are useful for debugging, and sometimes |
| you want to be able to use them in release builds. Currently they are surrounded by |
| #ifndef NDEBUG. Change this to #if ENABLE(TREE_DEBUGGING), which is defined to 0 or 1 |
| in wtf/Platform.h |
| |
| * wtf/Platform.h: |
| |
| 2015-03-05 Chris Dumez <cdumez@apple.com> |
| |
| Regression(r173761): ASSERTION FAILED: !is8Bit() in StringImpl::characters16() |
| https://bugs.webkit.org/show_bug.cgi?id=142350 |
| |
| Reviewed by Michael Saboff and Benjamin Poulain. |
| |
| Fix ASSERTION FAILED: !is8Bit() in StringImpl::characters16() from |
| WTF::equalInner() after r173761. The code was incorrectly assuming that |
| if stringImpl is 16-bit, then matchString is 16-bit too, which is not |
| correct. |
| |
| Also rename WTFString::startsWith() / endsWith() taking an offset to |
| hasInfixStartingAt() / hasInfixEndingAt() for clarity. It seems odd |
| to call it startsWith even though it won't technically *start* with |
| the pattern if the input offset is greater than zero. |
| |
| Also drop the caseSensitive argument as it is never used (always true |
| at call sites. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::equalInner): |
| (WTF::StringImpl::hasInfixStartingAt): |
| (WTF::StringImpl::hasInfixEndingAt): |
| (WTF::StringImpl::startsWith): Deleted. |
| (WTF::StringImpl::endsWith): Deleted. |
| * wtf/text/StringImpl.h: |
| * wtf/text/WTFString.h: |
| (WTF::String::hasInfixStartingAt): |
| (WTF::String::hasInfixEndingAt): |
| (WTF::String::startsWith): Deleted. |
| (WTF::String::endsWith): Deleted. |
| |
| 2015-03-05 Chris Dumez <cdumez@apple.com> |
| |
| NetworkCache efficacy logging is using too much CPU |
| https://bugs.webkit.org/show_bug.cgi?id=142186 |
| <rdar://problem/19632080> |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/HashMap.h: |
| (WTF::copyToVector): |
| Add copyToVector() utility function for HashMap that uses an std::pair<key, value> |
| as element type. |
| |
| * wtf/text/WTFString.h: |
| (WTF::StringCapture::StringCapture): |
| (WTF::StringCapture::operator=): |
| Add default constructor and assignment operator to StringCapture so that |
| it can be used in a Vector. |
| |
| 2015-03-05 Antti Koivisto <antti@apple.com> |
| |
| Support WorkQueue QOS classes on Mavericks |
| https://bugs.webkit.org/show_bug.cgi?id=142328 |
| |
| Reviewed by Anders Carlsson. |
| |
| "The priority of a dispatch queue is inherited from its target queue. In order to |
| change the priority of a queue created with dispatch_queue_create(), use the |
| dispatch_get_global_queue() function to obtain a target queue of the desired prior- |
| ity." |
| |
| * wtf/cocoa/WorkQueueCocoa.cpp: |
| (WTF::targetQueueForQOSClass): |
| (WTF::WorkQueue::platformInitialize): |
| |
| 2015-03-03 Anders Carlsson <andersca@apple.com> |
| |
| Remove unused compression code |
| https://bugs.webkit.org/show_bug.cgi?id=142237 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/Compression.cpp: Removed. |
| * wtf/Compression.h: Removed. |
| |
| 2015-03-02 Gyuyoung Kim <gyuyoung.kim@samsung.com> |
| |
| [WK2] Remove unnecessary create() factory functions. |
| https://bugs.webkit.org/show_bug.cgi?id=142161 |
| |
| Reviewed by Chris Dumez. |
| |
| We can replace some create() factory functions with std::make_unique(). Because |
| it just returns new instance. Even some of those functions have used std::unique_ptr<> |
| instead of std::make_unique<>. Fixed all. |
| |
| * wtf/efl/WorkQueueEfl.cpp: |
| (WorkQueue::dispatch): |
| |
| 2015-03-02 Filip Pizlo <fpizlo@apple.com> |
| |
| DFG compile time measurements should really report milliseconds |
| https://bugs.webkit.org/show_bug.cgi?id=142209 |
| |
| Reviewed by Benjamin Poulain. |
| |
| This bug was introduced because currentTimeMS() calls were converted to |
| monotonicallyIncreasingTime() calls. Perhaps this bug would be less likely if there was a |
| monotonicallyIncreasingTimeMS() function available, so this patch adds it. |
| |
| * wtf/CurrentTime.h: |
| (WTF::monotonicallyIncreasingTimeMS): |
| |
| 2015-02-27 Darin Adler <darin@apple.com> |
| |
| Remove unused PossiblyNull |
| https://bugs.webkit.org/show_bug.cgi?id=142124 |
| |
| Reviewed by Andreas Kling. |
| |
| * WTF.vcxproj/WTF.vcxproj: Removed the file. |
| * WTF.vcxproj/WTF.vcxproj.filters: Ditto. |
| * WTF.xcodeproj/project.pbxproj: Ditto. |
| * wtf/CMakeLists.txt: Ditto. |
| * wtf/PossiblyNull.h: Removed. |
| |
| * wtf/FastMalloc.h: Moved everything to the left. |
| Moved member functions out of the TryMallocReturnValue class definition. |
| (WTF::TryMallocReturnValue::operator PossiblyNull<T>): Deleted. |
| (WTF::TryMallocReturnValue::getValue): Marked inline, changed to work |
| only with pointer types, not arbitrary non-pointer types. |
| |
| 2015-02-26 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Make build logs more legible by reducing noise |
| https://bugs.webkit.org/show_bug.cgi?id=142034 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Modify batch files, makefiles, and DOS commands to remove |
| uninteresting/unhelpful output. |
| |
| * WTF.vcxproj/WTFGenerated.make: |
| * WTF.vcxproj/WTFPreBuild.cmd: |
| * WTF.vcxproj/copy-files.cmd: |
| |
| 2015-02-26 Landry Breuil <landry@openbsd.org> |
| |
| Revert bug 19975, now that gcc 4.7 is required. |
| https://bugs.webkit.org/show_bug.cgi?id=129927 |
| |
| Reviewed by Andreas Kling. |
| |
| isfinite() and signbit() are provided by gcc's cmath header. |
| |
| * wtf/MathExtras.h: |
| |
| 2015-02-26 Csaba Osztrogonác <ossy@webkit.org> |
| |
| UNREACHABLE_FOR_PLATFORM() should be release assert |
| https://bugs.webkit.org/show_bug.cgi?id=141904 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Assertions.h: |
| (UNREACHABLE_FOR_PLATFORM): |
| |
| 2015-02-25 Filip Pizlo <fpizlo@apple.com> |
| |
| Enable concurrent JIT on GTK |
| https://bugs.webkit.org/show_bug.cgi?id=142007 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Seems weird that GTK keeps it off. No good reason for that as far as I can tell. |
| |
| * wtf/Platform.h: |
| |
| 2015-02-23 Brent Fulgham <bfulgham@apple.com> |
| |
| WTF::WeakPtr should rename 'forgot' to 'clear' and support nullptr assignment |
| https://bugs.webkit.org/show_bug.cgi?id=141935 |
| |
| Reviewed by Myles C. Maxfield. |
| |
| * wtf/WeakPtr.h: |
| (WTF::WeakPtr::operator=): Added 'nullptr_t' overload. |
| (WTF::WeakPtr::clear): Renamed from 'forget' |
| (WTF::WeakPtr::forget): Deleted. |
| |
| 2015-02-23 Brent Fulgham <bfulgham@apple.com> |
| |
| WTF::WeakPtr should have a 'forget' method |
| https://bugs.webkit.org/show_bug.cgi?id=141923 |
| |
| Reviewed by Myles C. Maxfield. |
| |
| * wtf/WeakPtr.h: |
| (WTF::WeakPtr::forget): Added. |
| |
| 2015-02-20 Geoffrey Garen <ggaren@apple.com> |
| |
| Remove TCMalloc |
| https://bugs.webkit.org/show_bug.cgi?id=141844 |
| |
| Reviewed by Andreas Kling. |
| |
| It's unused. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/FastMalloc.cpp: |
| (WTF::EntropySource<4>::value): Deleted. |
| (WTF::EntropySource<8>::value): Deleted. |
| (WTF::internalEntropyValue): Deleted. |
| (WTF::freedObjectStartPoison): Deleted. |
| (WTF::freedObjectEndPoison): Deleted. |
| (WTF::ClassIndex): Deleted. |
| (WTF::HardenedSLL::create): Deleted. |
| (WTF::HardenedSLL::null): Deleted. |
| (WTF::HardenedSLL::setValue): Deleted. |
| (WTF::HardenedSLL::value): Deleted. |
| (WTF::HardenedSLL::operator!): Deleted. |
| (WTF::HardenedSLL::operator UnspecifiedBoolType): Deleted. |
| (WTF::HardenedSLL::operator!=): Deleted. |
| (WTF::HardenedSLL::operator==): Deleted. |
| (WTF::LgFloor): Deleted. |
| (WTF::SLL_Next): Deleted. |
| (WTF::SLL_SetNext): Deleted. |
| (WTF::SLL_Push): Deleted. |
| (WTF::SLL_Pop): Deleted. |
| (WTF::SLL_PopRange): Deleted. |
| (WTF::SLL_PushRange): Deleted. |
| (WTF::SizeClass): Deleted. |
| (WTF::ByteSizeForClass): Deleted. |
| (WTF::NumMoveSize): Deleted. |
| (WTF::InitSizeClasses): Deleted. |
| (WTF::MetaDataAlloc): Deleted. |
| (WTF::PageHeapAllocator::Init): Deleted. |
| (WTF::PageHeapAllocator::New): Deleted. |
| (WTF::PageHeapAllocator::Delete): Deleted. |
| (WTF::PageHeapAllocator::inuse): Deleted. |
| (WTF::pages): Deleted. |
| (WTF::AllocationSize): Deleted. |
| (WTF::spanInitializerCookie): Deleted. |
| (WTF::Span::next): Deleted. |
| (WTF::Span::remoteNext): Deleted. |
| (WTF::Span::prev): Deleted. |
| (WTF::Span::setNext): Deleted. |
| (WTF::Span::setPrev): Deleted. |
| (WTF::Span::initCookie): Deleted. |
| (WTF::Span::clearCookie): Deleted. |
| (WTF::Span::isValid): Deleted. |
| (WTF::Event): Deleted. |
| (WTF::NewSpan): Deleted. |
| (WTF::DeleteSpan): Deleted. |
| (WTF::DLL_Init): Deleted. |
| (WTF::DLL_Remove): Deleted. |
| (WTF::DLL_IsEmpty): Deleted. |
| (WTF::DLL_Length): Deleted. |
| (WTF::DLL_Print): Deleted. |
| (WTF::DLL_Prepend): Deleted. |
| (WTF::TCMalloc_Central_FreeList::length): Deleted. |
| (WTF::TCMalloc_Central_FreeList::tc_length): Deleted. |
| (WTF::TCMalloc_Central_FreeList::enumerateFreeObjects): Deleted. |
| (WTF::TCMalloc_Central_FreeList::entropy): Deleted. |
| (WTF::FastMallocZone::goodSize): Deleted. |
| (WTF::FastMallocZone::check): Deleted. |
| (WTF::FastMallocZone::print): Deleted. |
| (WTF::FastMallocZone::log): Deleted. |
| (WTF::FastMallocZone::forceLock): Deleted. |
| (WTF::FastMallocZone::forceUnlock): Deleted. |
| (WTF::FastMallocZone::statistics): Deleted. |
| (WTF::FastMallocZone::zoneValloc): Deleted. |
| (WTF::FastMallocZone::zoneDestroy): Deleted. |
| (WTF::MallocHook::record): Deleted. |
| (WTF::MallocHook::recordAllocation): Deleted. |
| (WTF::MallocHook::recordDeallocation): Deleted. |
| (WTF::MallocHook::init): Deleted. |
| (WTF::MallocHook::InvokeNewHook): Deleted. |
| (WTF::MallocHook::InvokeDeleteHook): Deleted. |
| (WTF::KernelSupportsTLS): Deleted. |
| (WTF::CheckIfKernelSupportsTLS): Deleted. |
| (WTF::TCMalloc_PageHeap::GetDescriptor): Deleted. |
| (WTF::TCMalloc_PageHeap::GetDescriptorEnsureSafe): Deleted. |
| (WTF::TCMalloc_PageHeap::SystemBytes): Deleted. |
| (WTF::TCMalloc_PageHeap::FreeBytes): Deleted. |
| (WTF::TCMalloc_PageHeap::GetSizeClassIfCached): Deleted. |
| (WTF::TCMalloc_PageHeap::CacheSizeClass): Deleted. |
| (WTF::TCMalloc_PageHeap::RecordSpan): Deleted. |
| (WTF::TCMalloc_PageHeap::init): Deleted. |
| (WTF::TCMalloc_PageHeap::initializeScavenger): Deleted. |
| (WTF::TCMalloc_PageHeap::isScavengerSuspended): Deleted. |
| (WTF::TCMalloc_PageHeap::scheduleScavenger): Deleted. |
| (WTF::TCMalloc_PageHeap::rescheduleScavenger): Deleted. |
| (WTF::TCMalloc_PageHeap::suspendScavenger): Deleted. |
| (WTF::TCMalloc_PageHeap::scavengerTimerFired): Deleted. |
| (WTF::TCMalloc_PageHeap::runScavengerThread): Deleted. |
| (WTF::TCMalloc_PageHeap::signalScavenger): Deleted. |
| (WTF::TCMalloc_PageHeap::scavenge): Deleted. |
| (WTF::TCMalloc_PageHeap::shouldScavenge): Deleted. |
| (WTF::TCMalloc_PageHeap::New): Deleted. |
| (WTF::TCMalloc_PageHeap::AllocLarge): Deleted. |
| (WTF::TCMalloc_PageHeap::Split): Deleted. |
| (WTF::TCMalloc_PageHeap::Carve): Deleted. |
| (WTF::mergeDecommittedStates): Deleted. |
| (WTF::TCMalloc_PageHeap::Delete): Deleted. |
| (WTF::TCMalloc_PageHeap::IncrementalScavenge): Deleted. |
| (WTF::TCMalloc_PageHeap::RegisterSizeClass): Deleted. |
| (WTF::TCMalloc_PageHeap::ReturnedBytes): Deleted. |
| (WTF::PagesToMB): Deleted. |
| (WTF::TCMalloc_PageHeap::Dump): Deleted. |
| (WTF::TCMalloc_PageHeap::GrowHeap): Deleted. |
| (WTF::TCMalloc_PageHeap::Check): Deleted. |
| (WTF::TCMalloc_PageHeap::CheckList): Deleted. |
| (WTF::TCMalloc_PageHeap::ReleaseFreeList): Deleted. |
| (WTF::TCMalloc_PageHeap::ReleaseFreePages): Deleted. |
| (WTF::TCMalloc_ThreadCache_FreeList::Init): Deleted. |
| (WTF::TCMalloc_ThreadCache_FreeList::length): Deleted. |
| (WTF::TCMalloc_ThreadCache_FreeList::empty): Deleted. |
| (WTF::TCMalloc_ThreadCache_FreeList::lowwatermark): Deleted. |
| (WTF::TCMalloc_ThreadCache_FreeList::clear_lowwatermark): Deleted. |
| (WTF::TCMalloc_ThreadCache_FreeList::Push): Deleted. |
| (WTF::TCMalloc_ThreadCache_FreeList::PushRange): Deleted. |
| (WTF::TCMalloc_ThreadCache_FreeList::PopRange): Deleted. |
| (WTF::TCMalloc_ThreadCache_FreeList::Pop): Deleted. |
| (WTF::TCMalloc_ThreadCache_FreeList::Validate): Deleted. |
| (WTF::TCMalloc_ThreadCache_FreeList::enumerateFreeObjects): Deleted. |
| (WTF::TCMalloc_ThreadCache::freelist_length): Deleted. |
| (WTF::TCMalloc_ThreadCache::Size): Deleted. |
| (WTF::TCMalloc_ThreadCache::enumerateFreeObjects): Deleted. |
| (WTF::getPageHeap): Deleted. |
| (WTF::fastMallocGoodSize): Deleted. |
| (WTF::TCMalloc_PageHeap::periodicScavenge): Deleted. |
| (WTF::TCMalloc_PageHeap::scavengerThread): Deleted. |
| (WTF::setThreadHeap): Deleted. |
| (WTF::TCMalloc_Central_FreeList::Init): Deleted. |
| (WTF::TCMalloc_Central_FreeList::ReleaseListToSpans): Deleted. |
| (WTF::TCMalloc_Central_FreeList::ReleaseToSpans): Deleted. |
| (WTF::TCMalloc_Central_FreeList::EvictRandomSizeClass): Deleted. |
| (WTF::TCMalloc_Central_FreeList::MakeCacheSpace): Deleted. |
| (WTF::TCMalloc_Central_FreeList::ShrinkCache): Deleted. |
| (WTF::TCMalloc_Central_FreeList::InsertRange): Deleted. |
| (WTF::TCMalloc_Central_FreeList::RemoveRange): Deleted. |
| (WTF::TCMalloc_Central_FreeList::FetchFromSpansSafe): Deleted. |
| (WTF::TCMalloc_Central_FreeList::FetchFromSpans): Deleted. |
| (WTF::TCMalloc_Central_FreeList::Populate): Deleted. |
| (WTF::TCMalloc_ThreadCache::SampleAllocation): Deleted. |
| (WTF::TCMalloc_ThreadCache::Init): Deleted. |
| (WTF::TCMalloc_ThreadCache::Cleanup): Deleted. |
| (WTF::TCMalloc_ThreadCache::Allocate): Deleted. |
| (WTF::TCMalloc_ThreadCache::Deallocate): Deleted. |
| (WTF::TCMalloc_ThreadCache::FetchFromCentralCache): Deleted. |
| (WTF::TCMalloc_ThreadCache::ReleaseToCentralCache): Deleted. |
| (WTF::TCMalloc_ThreadCache::Scavenge): Deleted. |
| (WTF::TCMalloc_ThreadCache::PickNextSample): Deleted. |
| (WTF::TCMalloc_ThreadCache::InitModule): Deleted. |
| (WTF::TCMalloc_ThreadCache::NewHeap): Deleted. |
| (WTF::TCMalloc_ThreadCache::GetThreadHeap): Deleted. |
| (WTF::TCMalloc_ThreadCache::GetCache): Deleted. |
| (WTF::TCMalloc_ThreadCache::GetCacheIfPresent): Deleted. |
| (WTF::TCMalloc_ThreadCache::InitTSD): Deleted. |
| (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary): Deleted. |
| * wtf/TCPackedCache.h: Removed. |
| * wtf/TCPageMap.h: Removed. |
| * wtf/TCSystemAlloc.cpp: Removed. |
| * wtf/TCSystemAlloc.h: Removed. |
| |
| 2015-02-20 Alexey Proskuryakov <ap@apple.com> |
| |
| Remove svn:keywords property. |
| |
| As far as I can tell, the property had no effect on any of these files, but also, |
| when it has effect it's likely harmful. |
| |
| * wtf/DecimalNumber.cpp: Removed property svn:keywords. |
| * wtf/spi/darwin/XPCSPI.h: Removed property svn:keywords. |
| |
| 2015-02-20 Csaba Osztrogonác <ossy@webkit.org> |
| |
| EFL URTBF |
| |
| * wtf/PlatformEfl.cmake: |
| |
| 2015-02-20 Simon Fraser <simon.fraser@apple.com> |
| |
| RunLoop::dispatch() should drop the mutex before calling wakeUp(). |
| https://bugs.webkit.org/show_bug.cgi?id=141820 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| RunLoop::wakeUp() calls into CoreFoundation which could take time, |
| so scope the mutex just to protect m_functionQueue. |
| |
| * wtf/RunLoop.cpp: |
| (WTF::RunLoop::dispatch): |
| |
| 2015-02-20 Gyuyoung Kim <gyuyoung.kim@samsung.com> |
| |
| Unreviewed, EFL build fix since r180410. |
| |
| * wtf/PlatformEfl.cmake: Add WEBKIT2/Platform/efl path in order to include DispatchQueueEfl.h. |
| |
| 2015-02-20 Antti Koivisto <antti@apple.com> |
| |
| Move WorkQueue from WK2 to WTF |
| https://bugs.webkit.org/show_bug.cgi?id=141797 |
| |
| Reviewed by Anders Carlsson. |
| |
| It may be useful in WebCore. |
| |
| Windows implementation is still missing. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/PlatformGTK.cmake: |
| * wtf/WorkQueue.cpp: Copied from Source/WebKit2/Platform/WorkQueue.cpp. |
| * wtf/WorkQueue.h: Copied from Source/WebKit2/Platform/WorkQueue.h. |
| * wtf/cocoa: Added. |
| * wtf/cocoa/WorkQueueCocoa.cpp: Copied from Source/WebKit2/Platform/mac/WorkQueueMac.cpp. |
| * wtf/efl/WorkQueueEfl.cpp: Copied from Source/WebKit2/Platform/efl/WorkQueueEfl.cpp. |
| * wtf/gtk/WorkQueueGtk.cpp: Copied from Source/WebKit2/Platform/gtk/WorkQueueGtk.cpp. |
| |
| 2015-02-13 Gyuyoung Kim <gyuyoung.kim@samsung.com> |
| |
| [EFL] Enable bmalloc for EFL port |
| https://bugs.webkit.org/show_bug.cgi?id=141459 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/CMakeLists.txt: Remove TCSystemAlloc.cpp/h. |
| * wtf/FastMalloc.cpp: Enable BMALLOC for EFL port. |
| |
| 2015-02-13 Anders Carlsson <andersca@apple.com> |
| |
| Add a move constructor and move assignment operator to Deque |
| https://bugs.webkit.org/show_bug.cgi?id=141571 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Deque.h: |
| (WTF::inlineCapacity>::Deque): |
| (WTF::=): Deleted. |
| |
| 2015-02-13 Anders Carlsson <andersca@apple.com> |
| |
| Add an initializer list constructor to Deque |
| https://bugs.webkit.org/show_bug.cgi?id=141565 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Deque.h: |
| (WTF::inlineCapacity>::Deque): |
| |
| 2015-02-13 Anders Carlsson <andersca@apple.com> |
| |
| Re-indent Deque.h |
| |
| Rubber-stamped by Antti Koivisto. |
| |
| * wtf/Deque.h: |
| |
| 2015-02-11 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] [64-bit] Work around MSVC2013 Runtime Bug |
| https://bugs.webkit.org/show_bug.cgi?id=141498 |
| <rdar://problem/19803642> |
| |
| Reviewed by Anders Carlsson. |
| |
| Disable FMA3 instruction use in the MSVC math library to |
| work around a VS2013 runtime crash. We can remove this |
| workaround when we switch to VS2015. |
| |
| * WTF.vcxproj/WTF.vcxproj: Add new files. |
| * WTF.vcxproj/WTF.vcxproj.filters: Ditto. |
| * wtf/win/WTFDLL.cpp: Added. |
| |
| 2015-02-11 Gyuyoung Kim <gyuyoung.kim@samsung.com> |
| |
| [EFL][GTK] Use bmalloc instead of tcmalloc |
| https://bugs.webkit.org/show_bug.cgi?id=140162 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * wtf/CMakeLists.txt: |
| * wtf/FastMalloc.cpp: |
| Enable bmalloc on GTK ports, but EFL port will enable it when bmalloc supports |
| memory statistics. |
| |
| 2015-02-10 Darin Adler <darin@apple.com> |
| |
| Add the crash-on-failure behavior to bmalloc-based fastMalloc |
| https://bugs.webkit.org/show_bug.cgi?id=141434 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * wtf/FastMalloc.cpp: Removed unneeded includes. |
| (WTF::fastMalloc): Added null check and CRASH. |
| (WTF::fastCalloc): Added overflow checking, null check, and CRASH. |
| (WTF::fastRealloc): Added null check and CRASH. |
| (WTF::fastMallocSize): Added FIXME comment. |
| (WTF::fastMallocGoodSize): Added FIXME comment. |
| (WTF::fastAlignedMalloc): Added null check and CRASH. |
| (WTF::tryFastMalloc): Changed to call bmalloc directly instead of |
| calling fastMalloc, since fastMalloc will now crash on failure. |
| (WTF::tryFastRealloc): Changed to call bmalloc directly instead of |
| calling fastRealloc, since fastRealloc will now crash on failure. |
| (WTF::tryFastCalloc): Added overflow checking. |
| (WTF::fastMallocStatistics): Added FIXME comment. |
| |
| 2015-02-10 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] GMutexLocker build issue |
| https://bugs.webkit.org/show_bug.cgi?id=141381 |
| |
| Reviewed by Žan Doberšek. |
| |
| Remove using WTF::GMutexLocker from the header, since newer glib |
| versions have a GMutexLocker in the public API. |
| |
| * wtf/gobject/GMutexLocker.h: |
| |
| 2015-02-09 Alexey Proskuryakov <ap@apple.com> |
| |
| REGRESSION: tryFastCalloc is no longer "try" |
| https://bugs.webkit.org/show_bug.cgi?id=141406 |
| |
| Reviewed by Darin Adler. |
| |
| This causes crashes on some WebKit regression test bots. |
| |
| * wtf/FastMalloc.cpp: (WTF::tryFastCalloc): Fix what looks like a copy/paste mistake. |
| |
| 2015-02-07 Csaba Osztrogonác <ossy@webkit.org> |
| |
| [ARM] GC sometimes stuck in an infinite loop if parallel GC is enabled |
| https://bugs.webkit.org/show_bug.cgi?id=141290 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Platform.h: |
| |
| 2015-02-07 Chris Dumez <cdumez@apple.com> |
| |
| Add Vector::removeFirstMatching() / removeAllMatching() methods taking lambda functions |
| https://bugs.webkit.org/show_bug.cgi?id=141321 |
| |
| Reviewed by Darin Adler. |
| |
| Add Vector::removeFirstMatching() / removeAllMatching() methods taking |
| lambda functions to match the element(s) to remove. This simplifies the |
| code a bit. Vector::removeAllMatching() is also more efficient than the |
| manual removal alternative. |
| |
| * wtf/Vector.h: |
| |
| 2015-02-06 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r179743. |
| https://bugs.webkit.org/show_bug.cgi?id=141335 |
| |
| caused missing symbols in non-WebKit clients of WTF::Vector |
| (Requested by kling on #webkit). |
| |
| Reverted changeset: |
| |
| "Remove WTF::fastMallocGoodSize()." |
| https://bugs.webkit.org/show_bug.cgi?id=141020 |
| http://trac.webkit.org/changeset/179743 |
| |
| 2015-02-06 Andreas Kling <akling@apple.com> |
| |
| Remove WTF::fastMallocGoodSize(). |
| <https://webkit.org/b/141020> |
| |
| Reviewed by Anders Carlsson. |
| |
| bmalloc's good-size API just returns exactly whatever you pass it, |
| so it's of no utility to us anymore. |
| |
| This gets rid of a bunch of pointless out-of-line calls in Vector |
| construction and growth. |
| |
| * wtf/Compression.cpp: |
| (WTF::GenericCompressedData::create): |
| * wtf/FastMalloc.cpp: |
| (WTF::fastMallocGoodSize): Deleted. |
| * wtf/FastMalloc.h: |
| * wtf/Vector.h: |
| (WTF::VectorBufferBase::allocateBuffer): |
| (WTF::VectorBufferBase::tryAllocateBuffer): |
| (WTF::VectorBufferBase::reallocateBuffer): |
| |
| 2015-02-05 Youenn Fablet <youenn.fablet@crf.canon.fr> and Xabier Rodriguez Calvar <calvaris@igalia.com> |
| |
| [Streams API] Implement a barebone ReadableStream interface |
| https://bugs.webkit.org/show_bug.cgi?id=141045 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-02-04 Alexey Proskuryakov <ap@apple.com> |
| |
| Optimized equal() functions in StringImpl.h are not ASan compatible |
| https://bugs.webkit.org/show_bug.cgi?id=141258 |
| |
| Reviewed by Daniel Bates. |
| |
| * wtf/text/StringImpl.h: (WTF::equal): Add custom implementations for ASan. |
| |
| 2015-02-04 Chris Dumez <cdumez@apple.com> |
| |
| Add removeFirst(value) / removeAll(value) methods to WTF::Vector |
| https://bugs.webkit.org/show_bug.cgi?id=141192 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Add removeFirst(value) / removeAll(value) convenience methods to |
| WTF::Vector to reduce complexity a bit at call sites. |
| |
| I am planning to add overloads for these taking a lambda function for |
| matching in a follow-up patch as well. I have seen quite a few |
| Vector::remove(index) call sites that would benefit from it. |
| |
| * wtf/Vector.h: |
| (WTF::OverflowHandler>::removeFirst): |
| (WTF::OverflowHandler>::removeAll): |
| |
| 2015-02-02 Dhi Aurrahman <diorahman@rockybars.com> |
| |
| Optimize matchesLangPseudoClass() of :lang() |
| https://bugs.webkit.org/show_bug.cgi?id=140873 |
| |
| Reviewed by Darin Adler. |
| |
| Add some basic equality comparison operators. |
| |
| * wtf/text/StringView.h: |
| (WTF::operator==): |
| (WTF::operator!=): |
| (WTF::equal): |
| (WTF::equalIgnoringASCIICase): |
| |
| 2015-02-02 Geoffrey Garen <ggaren@apple.com> |
| |
| Use FastMalloc (bmalloc) instead of BlockAllocator for GC pages |
| https://bugs.webkit.org/show_bug.cgi?id=140900 |
| |
| Reviewed by Mark Hahnenberg. |
| |
| Re-landing just the HandleBlock piece of this patch. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::fastAlignedMalloc): |
| (WTF::fastAlignedFree): |
| (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary): |
| * wtf/FastMalloc.h: |
| |
| 2015-02-02 Daniel Bates <dabates@apple.com> |
| |
| [iOS] ASSERTION FAILED: m_scriptExecutionContext->isContextThread() in ContextDestructionObserver::observeContext |
| https://bugs.webkit.org/show_bug.cgi?id=141057 |
| <rdar://problem/19068790> |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * wtf/MainThread.h: |
| * wtf/mac/MainThreadMac.mm: |
| (WTF::callOnWebThreadOrDispatchAsyncOnMainThread): Added. |
| |
| 2015-01-31 Sam Weinig <sam@webkit.org> |
| |
| Remove even more Mountain Lion support |
| https://bugs.webkit.org/show_bug.cgi?id=141124 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| * wtf/Assertions.cpp: |
| * wtf/FeatureDefines.h: |
| * wtf/Platform.h: |
| |
| 2015-01-31 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r179426. |
| https://bugs.webkit.org/show_bug.cgi?id=141119 |
| |
| "caused a memory use regression" (Requested by Guest45 on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Use FastMalloc (bmalloc) instead of BlockAllocator for GC |
| pages" |
| https://bugs.webkit.org/show_bug.cgi?id=140900 |
| http://trac.webkit.org/changeset/179426 |
| |
| 2015-01-31 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r179408. |
| https://bugs.webkit.org/show_bug.cgi?id=141117 |
| |
| This didn't fully fix the issue (Requested by anttik on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "OSObjectPtr does not work with dispatch_data_t on Maverics" |
| https://bugs.webkit.org/show_bug.cgi?id=141081 |
| http://trac.webkit.org/changeset/179408 |
| |
| 2015-01-30 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| Implement ES6 Symbol |
| https://bugs.webkit.org/show_bug.cgi?id=140435 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Introduce new unique string mechanizm into StringImpl. |
| It is used for implementing Symbol which holds a [[Description]] value. |
| |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::add): |
| (WTF::AtomicString::addWithStringTableProvider): |
| |
| Previously, we checked `isAtomic()` or `!length()`. This guard can filter out EmptyUnique. |
| But now, we introduced new unique StringImpl. Since it has an actual string value, we need to check `isUnique()`. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::~StringImpl): |
| (WTF::StringImpl::createUnique): |
| |
| In createUnique, we leverage Substring mechanizm to produce a new unique |
| string from an existing string. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| (WTF::StringImpl::createUniqueEmpty): |
| (WTF::StringImpl::flagIsUnique): |
| (WTF::StringImpl::isUnique): |
| (WTF::StringImpl::setIsAtomic): |
| (WTF::StringImpl::createEmptyUnique): Deleted. |
| (WTF::StringImpl::isEmptyUnique): Deleted. |
| |
| Instead of EmptyUnique, we introduced new flag to StringImpl, `isUnique`. |
| While EmptyUnique cannot hold any string values except for empty string, |
| the unique StringImpl can hold any String values. |
| We fold the Symbol's descriptiveString value here. |
| |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::hashAndFlagsForUnique): |
| (WTF::StringImpl::hashAndFlagsForEmptyUnique): Deleted. |
| |
| 2015-01-30 Geoffrey Garen <ggaren@apple.com> |
| |
| Use FastMalloc (bmalloc) instead of BlockAllocator for GC pages |
| https://bugs.webkit.org/show_bug.cgi?id=140900 |
| |
| Reviewed by Mark Hahnenberg. |
| |
| Re-landing just the HandleBlock piece of this patch. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::fastAlignedMalloc): |
| (WTF::fastAlignedFree): |
| (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary): |
| * wtf/FastMalloc.h: |
| |
| 2015-01-30 Namhoon Kim <yanhkim@gmail.com> |
| |
| Call vsnprintf instead of _vsnprintf in vprintf_stderr_common |
| https://bugs.webkit.org/show_bug.cgi?id=141078 |
| |
| In windows _vsnprintf api does not place null character |
| automatically. Simply replace it with vsnprintf. Which is |
| polyfill to call wtf_vsnprintf in windows. |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/Assertions.cpp: |
| |
| 2015-01-30 Brian J. Burg <burg@cs.washington.edu> |
| |
| Web Inspector: ASSERT in InspectorTimelineAgent::internalStop |
| https://bugs.webkit.org/show_bug.cgi?id=141039 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Add messages to Stopwatch assertions, and clean up constructor. |
| |
| * wtf/Stopwatch.h: |
| (WTF::Stopwatch::Stopwatch): |
| (WTF::Stopwatch::start): |
| (WTF::Stopwatch::stop): |
| |
| 2015-01-30 Chris Dumez <cdumez@apple.com> |
| |
| Add match_constness<Reference, T> helper struct |
| https://bugs.webkit.org/show_bug.cgi?id=140905 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Add match_constness<Reference, T> helper struct to simplify downcast<>() |
| a bit. The purpose of this helper is to update T's constness to match |
| Reference's. |
| |
| * wtf/TypeCasts.h: |
| (WTF::downcast): |
| |
| 2015-01-30 Chris Dumez <cdumez@apple.com> |
| |
| Add assertion in RefPtr's operator*() to make sure we don't dereference nullptr |
| https://bugs.webkit.org/show_bug.cgi?id=141092 |
| |
| Reviewed by Anders Carlsson. |
| |
| Add assertion in RefPtr's operator*() to make sure we don't dereference |
| nullptr. |
| |
| * wtf/RefPtr.h: |
| (WTF::RefPtr::operator*): |
| |
| 2015-01-30 Geoffrey Garen <ggaren@apple.com> |
| |
| GC marking threads should clear malloc caches |
| https://bugs.webkit.org/show_bug.cgi?id=141097 |
| |
| Reviewed by Andreas Kling. |
| |
| Split the scavenging API into per-thread vs global, so that you can |
| request to scavenge your own thread without scavenging the whole heap. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::releaseFastMallocFreeMemoryForThisThread): |
| (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary): |
| * wtf/FastMalloc.h: |
| |
| 2015-01-30 Antti Koivisto <antti@apple.com> |
| |
| OSObjectPtr does not work with dispatch_data_t on Maverics |
| https://bugs.webkit.org/show_bug.cgi?id=141081 |
| |
| Reviewed by Pratik Solanki. |
| |
| Trying to use OSObjectPtr<dispatch_data_t> throws |
| |
| -[OS_dispatch_data _xref_dispose]: unrecognized selector sent to instance 0 |
| |
| * wtf/OSObjectPtr.h: |
| (WTF::retainOSObject<dispatch_data_t>): |
| (WTF::releaseOSObject<dispatch_data_t>): |
| |
| Add specialization for dispatch_data_t on Maverics. |
| |
| 2015-01-29 Santosh Mahto <santoshbit2007@gmail.com> |
| |
| Refactor String::format to handle unreached va_end. |
| https://bugs.webkit.org/show_bug.cgi?id=140938 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Now va_end is called for all platform after getting length |
| of formatted string and again va_start/va_end is called to write |
| formatted string in buffer. This way it ensure va_end is always |
| reached for each va_start. |
| |
| * wtf/text/WTFString.cpp: |
| |
| 2015-01-29 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Move HAVE_DTRACE definition back to Platform.h |
| https://bugs.webkit.org/show_bug.cgi?id=141033 |
| |
| Reviewed by Dan Bernstein. |
| |
| * wtf/Platform.h: |
| |
| 2015-01-28 Namhoon Kim <namkim@ea.com> |
| |
| Windows return -1 when calling vsnprintf with arguments that exceed target buffer size |
| https://bugs.webkit.org/show_bug.cgi?id=140917 |
| |
| Reviewed by Brent Fulgham. |
| |
| Fix return value of vsnprintf when windows API return -1 to denote |
| requested buffer exceeded. Replace return value by calling vscprintf. |
| |
| * wtf/StringExtras.h: |
| (snprintf): Fix return value by calling vscprintf when buffer exceeded. |
| (wtf_vsnprintf): Ditto. |
| |
| 2015-01-28 Geoffrey Garen <ggaren@apple.com> |
| |
| Removed fastMallocForbid / fastMallocAllow |
| https://bugs.webkit.org/show_bug.cgi?id=141012 |
| |
| Reviewed by Mark Hahnenberg. |
| |
| Removed the forbid / allow API because it is no longer used. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::tryFastMalloc): |
| (WTF::fastMalloc): |
| (WTF::tryFastCalloc): |
| (WTF::fastCalloc): |
| (WTF::fastFree): |
| (WTF::tryFastRealloc): |
| (WTF::fastRealloc): |
| (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary): |
| (WTF::isForbidden): Deleted. |
| (WTF::fastMallocForbid): Deleted. |
| (WTF::fastMallocAllow): Deleted. |
| (WTF::initializeIsForbiddenKey): Deleted. |
| * wtf/FastMalloc.h: |
| |
| 2015-01-28 Dana Burkart <dburkart@apple.com> |
| |
| Move ASan flag settings from DebugRelease.xcconfig to Base.xcconfig |
| https://bugs.webkit.org/show_bug.cgi?id=136765 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| |
| 2015-01-28 Darin Adler <darin@apple.com> |
| |
| Fix small leak in Collator |
| https://bugs.webkit.org/show_bug.cgi?id=140990 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/unicode/icu/CollatorICU.cpp: |
| (WTF::Collator::Collator): Use fastStrDup instead of strdup. |
| (WTF::Collator::~Collator): Use fastFree on the collator locale that we |
| are abandoning. The old code instead just called free on a null pointer. |
| |
| 2015-01-27 Geoffrey Garen <ggaren@apple.com> |
| |
| Removed WTF_MALLOC_VALIDATION |
| https://bugs.webkit.org/show_bug.cgi?id=140958 |
| |
| Reviewed by Anders Carlsson. |
| |
| I don't think anyone has been using this, and the #ifdefs were driving |
| me crazy. |
| |
| We have other options for validation -- like MallocGuardEdges, |
| MallocCheckHeapEach, MallocScribble, and GuardMalloc. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::tryFastMalloc): |
| (WTF::fastMalloc): |
| (WTF::tryFastCalloc): |
| (WTF::fastCalloc): |
| (WTF::fastFree): |
| (WTF::tryFastRealloc): |
| (WTF::fastRealloc): |
| (WTF::fastMallocSize): |
| (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary): |
| (WTF::Internal::fastMallocMatchFailed): Deleted. |
| * wtf/FastMalloc.h: |
| (WTF::Internal::fastMallocValidationHeader): Deleted. |
| (WTF::Internal::fastMallocValidationSuffix): Deleted. |
| (WTF::Internal::fastMallocMatchValidationType): Deleted. |
| (WTF::Internal::setFastMallocMatchValidationType): Deleted. |
| (WTF::fastMallocMatchValidateMalloc): Deleted. |
| (WTF::fastMallocMatchValidateFree): Deleted. |
| (WTF::fastMallocValidate): Deleted. |
| |
| 2015-01-27 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r179192. |
| https://bugs.webkit.org/show_bug.cgi?id=140953 |
| |
| Caused numerous layout test failures (Requested by mattbaker_ |
| on #webkit). |
| |
| Reverted changeset: |
| |
| "Use FastMalloc (bmalloc) instead of BlockAllocator for GC |
| pages" |
| https://bugs.webkit.org/show_bug.cgi?id=140900 |
| http://trac.webkit.org/changeset/179192 |
| |
| 2015-01-26 Geoffrey Garen <ggaren@apple.com> |
| |
| Use FastMalloc (bmalloc) instead of BlockAllocator for GC pages |
| https://bugs.webkit.org/show_bug.cgi?id=140900 |
| |
| Reviewed by Mark Hahnenberg. |
| |
| New interface for aligned allocation: fastAlignedMalloc / fastAlignedFree. |
| We require a special function call on free because Windows. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::fastAlignedMalloc): |
| (WTF::fastAlignedFree): Do it. |
| |
| (WTF::do_memalign): Un-ifdef this, since we use it now. |
| |
| * wtf/FastMalloc.h: Make our new function names visible like the rest |
| of fastMalloc. |
| |
| 2015-01-26 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] ASSERTION FAILED !m_ptr under AccessibilityController::winAddNotificationListener |
| https://bugs.webkit.org/show_bug.cgi?id=87426 |
| <rdar://problem/11527899> |
| |
| Reviewed by Darin Adler. |
| |
| Revise internal containers to use std::addressof in preference to |
| to using the '&' operator. |
| |
| * wtf/Deque.h: |
| (WTF::inlineCapacity>::append): |
| (WTF::inlineCapacity>::prepend): |
| (WTF::inlineCapacity>::removeFirst): |
| (WTF::inlineCapacity>::removeLast): |
| (WTF::inlineCapacity>::remove): |
| (WTF::inlineCapacity>::after): |
| (WTF::inlineCapacity>::before): |
| * wtf/GetPtr.h: |
| * wtf/HashTable.h: |
| (WTF::HashTableBucketInitializer<false>::initialize): |
| * wtf/HashTraits.h: |
| (WTF::SimpleClassHashTraits::constructDeletedValue): |
| (WTF::CustomHashTraits::constructDeletedValue): |
| * wtf/ListHashSet.h: |
| (WTF::ListHashSetConstIterator::get): |
| * wtf/Vector.h: |
| (WTF::Vector::swap): |
| (WTF::OverflowHandler>::append): |
| (WTF::OverflowHandler>::tryAppend): |
| (WTF::OverflowHandler>::insert): |
| |
| 2015-01-24 Chris Dumez <cdumez@apple.com> |
| |
| Provide implementation for WTF::DefaultHash<bool> |
| https://bugs.webkit.org/show_bug.cgi?id=140848 |
| |
| Reviewed by Anders Carlsson. |
| |
| Provide implementation for WTF::DefaultHash<bool> so that we can use |
| HashMap<std::pair<XXX, bool>> in the code base. Right now, we need to |
| use some integer type to work around the issue. |
| |
| * wtf/HashFunctions.h: |
| |
| 2015-01-23 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Add missing null check in some derefGPtr implementations |
| https://bugs.webkit.org/show_bug.cgi?id=140822 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| It's missing in GHashTable and GVariant implementations. |
| |
| * wtf/gobject/GRefPtr.cpp: |
| (WTF::derefGPtr): |
| |
| 2015-01-23 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Add initial database process support |
| https://bugs.webkit.org/show_bug.cgi?id=139491 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| Add support for using GRefPtr with GVariantBuilder. |
| |
| * wtf/gobject/GRefPtr.cpp: |
| (WTF::refGPtr): |
| (WTF::derefGPtr): |
| * wtf/gobject/GRefPtr.h: |
| * wtf/gobject/GTypedefs.h: |
| |
| 2015-01-22 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Add a build flag for ES6 class syntax |
| https://bugs.webkit.org/show_bug.cgi?id=140760 |
| |
| Reviewed by Michael Saboff. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-01-21 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Remove ENABLE(INSPECTOR) ifdef guards |
| https://bugs.webkit.org/show_bug.cgi?id=140668 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-01-20 YunQiang Su <wzssyqa@gmail.com> |
| |
| Fix failed to build for Linux/MIPS64EL |
| https://bugs.webkit.org/show_bug.cgi?id=124370 |
| |
| Reviewed by Darin Adler. |
| |
| Add MIPS64EL support. |
| |
| * wtf/Platform.h: |
| * wtf/dtoa/utils.h: |
| |
| 2015-01-19 Alexey Proskuryakov <ap@apple.com> |
| |
| Make ASan do bounds checks for WTF::Vector |
| https://bugs.webkit.org/show_bug.cgi?id=140631 |
| rdar://problem/19437718 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/SizeLimits.cpp: Disable Vector object size checks for ASan enabled builds. |
| |
| * wtf/Vector.h: |
| (WTF::VectorBuffer::endOfBuffer): |
| (WTF::Vector::Vector): |
| (WTF::Vector::~Vector): |
| (WTF::Vector::swap): |
| (WTF::OverflowHandler>::Vector): |
| (WTF::=): |
| (WTF::OverflowHandler>::fill): |
| (WTF::OverflowHandler>::resize): |
| (WTF::OverflowHandler>::shrink): |
| (WTF::OverflowHandler>::grow): |
| (WTF::OverflowHandler>::asanSetInitialBufferSizeTo): |
| (WTF::OverflowHandler>::asanSetBufferSizeToFullCapacity): |
| (WTF::OverflowHandler>::asanBufferSizeWillChangeTo): |
| (WTF::OverflowHandler>::reserveCapacity): |
| (WTF::OverflowHandler>::tryReserveCapacity): |
| (WTF::OverflowHandler>::shrinkCapacity): |
| (WTF::OverflowHandler>::append): |
| (WTF::OverflowHandler>::tryAppend): |
| (WTF::OverflowHandler>::appendSlowCase): |
| (WTF::OverflowHandler>::uncheckedAppend): |
| (WTF::OverflowHandler>::insert): |
| (WTF::OverflowHandler>::remove): |
| (WTF::OverflowHandler>::releaseBuffer): |
| |
| * wtf/Compiler.h: Changed ASAN_ENABLED macro fallback value from false to 0, |
| MSVC was not happy with false. |
| |
| 2015-01-20 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Remove non-Windows cruft from WebKit/win/Plugins |
| https://bugs.webkit.org/show_bug.cgi?id=140675 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-01-16 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| WeakPtr functions crash when created with default constructor |
| https://bugs.webkit.org/show_bug.cgi?id=140479 |
| |
| Reviewed by Andreas Kling. |
| |
| This patch rearranges how WeakPtr works, and has the following ideas behind it: |
| |
| 1. WeakPtr should use Ref internally. This solves the crash by always having a |
| valid WeakReference. |
| 2. Clients should not be able to construct WeakReferences directly. Instead, |
| only WeakPtrFactory (and WeakPtr's default constructor) should be able to |
| construct them. They are considered an implementation detail of WeakPtr. |
| 3. Except for the default constructor, clients should not be able to construct |
| WeakPtrs directly. Instead, the WeakPtrFactory must construct them. This |
| guarantees that the WeakPtrs all reference the same WeakReference. |
| 4. Clients can construct a WeakPtr using its default constructor, and then |
| use the assignment operator to make it non-null. (Or they could use |
| WeakPtrFactory to make it non-null at creation-time.) |
| 5. No one was using WeakReference::bindTo(), and it doesn't seem useful, so I |
| removed it. |
| |
| Tests: WTF_WeakPtr API tests |
| |
| * wtf/Ref.h: |
| (WTF::Ref::Ref): Added extra ASSERT()s, and explicitly deleted copy |
| constructors with a comment. |
| (WTF::Ref::operator=): Added extra ASSERT()s, and explicitly deleted copy |
| assignment operators with a comment. |
| * wtf/WeakPtr.h: |
| (WTF::WeakReference::clear): Used nullptr. |
| (WTF::WeakReference::create): Moved to private: |
| (WTF::WeakPtr::WeakPtr): For the default constructor, initialized the Ref with |
| a new WeakReference. For the other constructor, moved it to private:. Also added |
| copy constructors and copy assignment operators (since Ref doesn't have them but |
| RefPtr does). These constructors/operators are relied upon in various places |
| throughout WebCore. |
| (WTF::WeakPtr::operator bool): Made non-explicit. |
| (WTF::WeakReference::createUnbound): Deleted. |
| (WTF::WeakReference::bindTo): Deleted. |
| (WTF::WeakReference::WeakReference): Deleted. |
| (WTF::WeakPtrFactory::WeakPtrFactory): Deleted. |
| |
| 2015-01-16 Yusuke Suzuki <utatane.tea@gmail.com> |
| |
| std::all_of requires complete C++ iterators in GCC 4.8 |
| https://bugs.webkit.org/show_bug.cgi?id=140530 |
| |
| Reviewed by Darin Adler. |
| |
| In the WebKit2/UIProcess/WebProcessLifetimeObserver.cpp, std::all_of |
| is used for HashIterators. However, std::all_of requires the complete |
| C++ iterator interface including iterator_category typedef member and |
| it raises compile error in GCC 4.8 (and libstdc++) environment. |
| |
| This patch inherits std::iterator with appropriate type parameters. |
| It automatically defines required typedefs including iterator_category. |
| |
| * wtf/HashIterators.h: |
| |
| 2015-01-15 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Remove ENABLE(SQL_DATABASE) guards |
| https://bugs.webkit.org/show_bug.cgi?id=140434 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-01-14 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Unreviewed fix after r163330. |
| |
| * wtf/Platform.h: Use C style comment. |
| |
| 2015-01-14 Marc Juul <juul@sudomesh.org> |
| |
| C++ style comment was preventing compile if CPU(ARM_NEON) |
| https://bugs.webkit.org/show_bug.cgi?id=133827 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/Platform.h: |
| |
| 2015-01-13 Chris Dumez <cdumez@apple.com> |
| |
| Make WTF::Optional work with msvc 2013 |
| https://bugs.webkit.org/show_bug.cgi?id=140401 |
| |
| Reviewed by Anders Carlsson. |
| |
| Update the WTF::Optional implementation to use std::aligned_memory and |
| placement new instead of an unrestricted union because msvc 2013 still |
| doesn't support unrestricted unions. |
| |
| This change is a pre-requirement to fix Bug 140347 as this change uses |
| WTF::Optional with types that have non-trivial copy constructors. |
| |
| This change is covered by the existing Optional WTF test. |
| |
| * wtf/Optional.h: |
| |
| 2015-01-11 Sam Weinig <sam@webkit.org> |
| |
| Remove support for SharedWorkers |
| https://bugs.webkit.org/show_bug.cgi?id=140344 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-01-12 Darin Adler <darin@apple.com> |
| |
| Modernize and streamline HTMLTokenizer |
| https://bugs.webkit.org/show_bug.cgi?id=140166 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/Forward.h: Removed PassRef, added OrdinalNumber and TextPosition. |
| |
| 2015-01-09 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r178154, r178163, and r178164. |
| https://bugs.webkit.org/show_bug.cgi?id=140292 |
| |
| Still multiple assertion failures on tests (Requested by ap on |
| #webkit). |
| |
| Reverted changesets: |
| |
| "Modernize and streamline HTMLTokenizer" |
| https://bugs.webkit.org/show_bug.cgi?id=140166 |
| http://trac.webkit.org/changeset/178154 |
| |
| "Unreviewed speculative buildfix after r178154." |
| http://trac.webkit.org/changeset/178163 |
| |
| "One more unreviewed speculative buildfix after r178154." |
| http://trac.webkit.org/changeset/178164 |
| |
| 2015-01-08 Darin Adler <darin@apple.com> |
| |
| Modernize and streamline HTMLTokenizer |
| https://bugs.webkit.org/show_bug.cgi?id=140166 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/Forward.h: Removed PassRef, added OrdinalNumber and TextPosition. |
| |
| 2015-01-08 Benjamin Poulain <benjamin@webkit.org> |
| |
| [WK2] Start a prototype for declarative site specific extensions |
| https://bugs.webkit.org/show_bug.cgi?id=140160 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2015-01-07 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Make WebKit2 build with public iOS SDK and more build fixes for DRT |
| https://bugs.webkit.org/show_bug.cgi?id=137371 |
| |
| As pointed out by Tim Horton, use C-style comment instead of C++-style comment as |
| wtf/Compiler.h is included in the sandbox profile and the sandbox profile compiler |
| doesn't understand C++-style comments. |
| |
| * wtf/Compiler.h: |
| |
| 2015-01-07 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Make WebKit2 build with public iOS SDK and more build fixes for DRT |
| https://bugs.webkit.org/show_bug.cgi?id=137371 |
| |
| Reviewed by David Kilzer. |
| |
| Move EXTERN_C_BEGIN and EXTERN_C_END macros from file WebKit2/config.h to here and |
| rename them to WTF_EXTERN_C_BEGIN and WTF_EXTERN_C_END, respectively, so that we |
| can make use of these macros in SPI wrapper headers (e.g. UIKitSPI.h). |
| |
| I'll look to transition existing code to WTF_EXTERN_C_BEGIN/WTF_EXTERN_C_END and |
| remove EXTERN_C in a subsequent commit(s). |
| |
| * wtf/Compiler.h: |
| |
| 2015-01-07 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r178068. |
| https://bugs.webkit.org/show_bug.cgi?id=140235 |
| |
| Breaks the iOS build (Requested by enrica on #webkit). |
| |
| Reverted changeset: |
| |
| "[iOS] Make WebKit2 build with public iOS SDK and more build |
| fixes for DRT" |
| https://bugs.webkit.org/show_bug.cgi?id=137371 |
| http://trac.webkit.org/changeset/178068 |
| |
| 2015-01-07 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Make WebKit2 build with public iOS SDK and more build fixes for DRT |
| https://bugs.webkit.org/show_bug.cgi?id=137371 |
| |
| Reviewed by David Kilzer. |
| |
| Move EXTERN_C_BEGIN and EXTERN_C_END macros from file WebKit2/config.h to here and |
| rename them to WTF_EXTERN_C_BEGIN and WTF_EXTERN_C_END, respectively, so that we |
| can make use of these macros in SPI wrapper headers (e.g. UIKitSPI.h). |
| |
| I'll look to transition existing code to WTF_EXTERN_C_BEGIN/WTF_EXTERN_C_END and |
| remove EXTERN_C in a subsequent commit(s). |
| |
| * wtf/Compiler.h: |
| |
| 2015-01-07 Brian J. Burg <burg@cs.washington.edu> |
| |
| Web Inspector: purge PassRefPtr from Inspector code and use Ref for typed and untyped protocol objects |
| https://bugs.webkit.org/show_bug.cgi?id=140053 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Stopwatch.h: |
| (WTF::Stopwatch::create): Return a Ref. |
| |
| 2015-01-07 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r178039. |
| https://bugs.webkit.org/show_bug.cgi?id=140187 |
| |
| Breaks ObjC Inspector Protocol (Requested by JoePeck on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Web Inspector: purge PassRefPtr from Inspector code and use |
| Ref for typed and untyped protocol objects" |
| https://bugs.webkit.org/show_bug.cgi?id=140053 |
| http://trac.webkit.org/changeset/178039 |
| |
| 2015-01-06 Brian J. Burg <burg@cs.washington.edu> |
| |
| Web Inspector: purge PassRefPtr from Inspector code and use Ref for typed and untyped protocol objects |
| https://bugs.webkit.org/show_bug.cgi?id=140053 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Stopwatch.h: |
| (WTF::Stopwatch::create): Return a Ref. |
| |
| 2015-01-06 Alexey Proskuryakov <ap@apple.com> |
| |
| ADDRESS_SANITIZER macro is overloaded |
| https://bugs.webkit.org/show_bug.cgi?id=140130 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Compiler.h: Added an ASAN_ENABLED macro. The abbreviation should become well |
| known - we already use it in tools. |
| |
| * wtf/Assertions.h: |
| * wtf/RefCounted.h: |
| * wtf/SizeLimits.cpp: |
| Change the conditional to ENABLE(SECURITY_ASSERTIONS). These checks will be used |
| in debug builds, and also when one explicitly passes -DENABLE_SECURITY_ASSERTIONS. |
| |
| 2015-01-05 Andreas Kling <akling@apple.com> |
| |
| Purge PassRefPtr from Page. |
| <https://webkit.org/b/140089> |
| |
| Reviewed by Anders Carlsson. |
| |
| Make SchedulePair::create() return Ref since it never fails. |
| |
| * wtf/SchedulePair.h: |
| (WTF::SchedulePair::create): |
| |
| 2015-01-01 Darin Adler <darin@apple.com> |
| |
| Rework code that hides characters in password fields to streamline a little |
| https://bugs.webkit.org/show_bug.cgi?id=140035 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::fill): Deleted. |
| * wtf/text/StringImpl.h: Deleted StringImpl::fill. |
| * wtf/text/WTFString.h: |
| (WTF::String::fill): Deleted. |
| |
| 2014-12-26 Dan Bernstein <mitz@apple.com> |
| |
| Build fix. |
| |
| Removed use of __builtin_s{add,sub}_overflow introduced in r177729 that was causing a compiler used at Apple to crash because of <rdar://problem/19347133>. |
| |
| * wtf/SaturatedArithmetic.h: |
| (signedAddOverflows): |
| (signedSubtractOverflows): |
| |
| 2014-12-26 Dan Bernstein <mitz@apple.com> |
| |
| <rdar://problem/19348208> REGRESSION (r177027): iOS builds use the wrong toolchain |
| https://bugs.webkit.org/show_bug.cgi?id=139950 |
| |
| Reviewed by David Kilzer. |
| |
| * Configurations/Base.xcconfig: Only define TOOLCHAINS when building for OS X, doing so |
| in a manner that works with Xcode 5.1.1. |
| |
| 2014-12-25 Dan Bernstein <mitz@apple.com> |
| |
| Try to fix the Windows build after r177733. |
| |
| * wtf/Ref.h: |
| |
| 2014-12-25 Alexey Proskuryakov <ap@apple.com> |
| |
| Simplify saturated integer add/sub |
| https://bugs.webkit.org/show_bug.cgi?id=139854 |
| |
| Address Darin's post-commit feedback to fix API tests. |
| |
| * wtf/SaturatedArithmetic.h: (saturatedSubtraction): |
| |
| 2014-12-24 Benjamin Poulain <benjamin@webkit.org> |
| |
| Simplify saturated integer add/sub |
| https://bugs.webkit.org/show_bug.cgi?id=139854 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Compiler.h: |
| Make a wrapper for __has_builtin for compilers that do not support it. |
| |
| * wtf/SaturatedArithmetic.h: |
| (saturatedAddition): |
| (saturatedSubtraction): |
| Use the builtins when possible instead of reinventing the wheel. |
| On ARMv7, use the saturated math instructions. |
| |
| 2014-12-23 Anders Carlsson <andersca@apple.com> |
| |
| Move dynamic_objc_cast to RetainPtr.h |
| https://bugs.webkit.org/show_bug.cgi?id=139915 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/RetainPtr.h: |
| (WTF::dynamic_objc_cast): |
| |
| 2014-12-23 Anders Carlsson <andersca@apple.com> |
| |
| Re-indent RefPtr.h and RetainPtr.h. |
| |
| Rubber-stamped by Sam Weinig. |
| |
| * wtf/RefPtr.h: |
| * wtf/RetainPtr.h: |
| |
| 2014-12-20 Eric Carlson <eric.carlson@apple.com> |
| |
| [iOS] add optimized fullscreen API |
| https://bugs.webkit.org/show_bug.cgi?id=139833 |
| <rdar://problem/18844486> |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/Platform.h: Define ENABLE_VIDEO_PRESENTATION_MODE. |
| |
| 2014-12-18 Gyuyoung Kim <gyuyoung.kim@samsung.com> |
| |
| Fix build break on EFL and GTK since r177523 |
| https://bugs.webkit.org/show_bug.cgi?id=139805 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/Ref.h: Include <wtf/StdLibExtras.h> to use std::exchange(). |
| |
| 2014-12-18 Gavin Barraclough <barraclough@apple.com> |
| |
| Add strong typing to RefCounter interface, return value as a bool. |
| https://bugs.webkit.org/show_bug.cgi?id=139776 |
| |
| Unreviewed style fixes. |
| |
| * wtf/RefCounter.h: |
| (WTF::=): |
| |
| 2014-12-18 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Build correction after r177541. |
| |
| * wtf/RefCounter.h: |
| (WTF::RefCounter::Token<T>::Token): Revise constructor inlines to correct |
| syntax error. |
| |
| 2014-12-18 Gavin Barraclough <barraclough@apple.com> |
| |
| Add strong typing to RefCounter interface, return value as a bool. |
| https://bugs.webkit.org/show_bug.cgi?id=139776 |
| |
| Reviewed by Geoff Garen. |
| |
| Currently all token vended by a RefCounter have the same type - Ref<RefCounter::Count>. |
| This means there is no compile time type checking to prevent mistakes. Update the count() |
| method to token<>(), templated on type used to identify the token being returned. |
| Calls to token<T>() will return a result of type RefCounter::Token<T>. |
| |
| There are a few problems with the fact the counter will return you an exact count of the |
| number of outstanding tokens: |
| - It is desirable to only fire the callback on zero-edge changes; it is more consistent |
| to do so if the value is only readable as a boolean. |
| - It is desirable to provide the value as an argument to the callback, however to make |
| this useful for integer values it is also necessary to indicate the direction of change |
| (0->1 is often interesting where 2->1 is not). |
| - There is a mismatch between the precision of returning a count, and the inherent |
| imprecision of a token based mechanism, where it may be difficult to guarantee |
| absolutely no unnecessary refcount churn, and thus unintentional counter values. |
| |
| * wtf/RefCounter.cpp: |
| (WTF::RefCounter::Count::ref): |
| (WTF::RefCounter::Count::deref): |
| - only call the callback on zero-edge changes; provide the value. |
| (WTF::RefCounter::RefCounter): |
| - callback now takes a bool argument. |
| * wtf/RefCounter.h: |
| (WTF::RefCounter::Token::Token): |
| - New opaque type to reference the RefCounter::Count. |
| (WTF::RefCounter::Token::operator!): |
| - ! operator checks for null / anasigned Tokens. |
| (WTF::RefCounter::RefCounter): |
| - callback now takes a bool argument. |
| (WTF::RefCounter::token): |
| - renamed from count(), templated on type of token returned. |
| (WTF::RefCounter::value): |
| - now returns a bool. |
| (WTF::RefCounter::Token<T>::Token): |
| (WTF::=): |
| - Tokens can be copied & assigned. |
| (WTF::RefCounter::count): Deleted. |
| - renamed to token<>(). |
| |
| 2014-12-18 Anders Carlsson <andersca@apple.com> |
| |
| Simplify smart pointer classes by using std::exchange |
| https://bugs.webkit.org/show_bug.cgi?id=139790 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/MallocPtr.h: |
| * wtf/OSObjectPtr.h: |
| * wtf/OwnPtr.h: |
| (WTF::OwnPtr<T>::clear): |
| (WTF::OwnPtr<T>::release): |
| (WTF::OwnPtr<T>::leakPtr): |
| (WTF::=): |
| * wtf/PassOwnPtr.h: |
| (WTF::PassOwnPtr<T>::leakPtr): |
| * wtf/PassRefPtr.h: |
| (WTF::PassRefPtr<T>::leakRef): |
| * wtf/Ref.h: |
| * wtf/RefPtr.h: |
| (WTF::RefPtr<T>::clear): |
| (WTF::RefPtr<T>::leakRef): |
| * wtf/RetainPtr.h: |
| (WTF::RetainPtr<T>::leakRef): |
| |
| 2014-12-18 Anders Carlsson <andersca@apple.com> |
| |
| Clean up MachSendRight and add a copySendRight member function |
| https://bugs.webkit.org/show_bug.cgi?id=139788 |
| |
| Reviewed by Tim Horton. |
| |
| * wtf/StdLibExtras.h: |
| (std::exchange): |
| Add an implementation of std::exchange. |
| |
| 2014-12-17 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Make it possible to toggle FeatureCounter support at runtime |
| https://bugs.webkit.org/show_bug.cgi?id=139688 |
| <rdar://problem/19266254> |
| |
| Reviewed by Andreas Kling. |
| |
| Remove FeatureCounter API from WTF and move it to WebCore/platform |
| instead so that it can log conditionally based on a WebCore setting. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| |
| 2014-12-17 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Correct DebugSuffix builds under MSBuild |
| https://bugs.webkit.org/show_bug.cgi?id=139733 |
| <rdar://problem/19276880> |
| |
| Reviewed by Simon Fraser. |
| |
| * WTF.vcxproj/WTF.proj: Make sure to use the '_debug' suffix |
| when building the DebugSuffix target. |
| |
| 2014-12-17 Anders Carlsson <andersca@apple.com> |
| |
| Make Ref::copyRef const and ref-qualified |
| https://bugs.webkit.org/show_bug.cgi?id=139730 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Ref.h: |
| |
| 2014-12-16 Daniel Bates <dabates@apple.com> |
| |
| [iOS] WTF fails to build with public SDK due to missing header CPAggregateDictionary.h |
| https://bugs.webkit.org/show_bug.cgi?id=139695 |
| |
| Reviewed by Chris Dumez. |
| |
| Add USE(APPLE_INTERNAL_SDK)-guard around iOS-specific feature counter implementation |
| as we are only interested in counting features in builds of iOS WebKit that were built |
| with the Apple Internal SDK. |
| |
| * wtf/FeatureCounter.cpp: |
| * wtf/ios/FeatureCounter.mm: |
| |
| 2014-12-16 Geoffrey Garen <ggaren@apple.com> |
| |
| Enable FastMalloc in debug builds |
| https://bugs.webkit.org/show_bug.cgi?id=139692 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| This will give debug builds greater fidelity to the real thing. |
| |
| FastMalloc now transparently supports all the malloc debugging APIs I |
| know of by disabling itself at runtime -- and it should be easy to add |
| support for any APIs I missed -- so there's no need to turn it off in |
| debug builds. |
| |
| * wtf/FastMalloc.cpp: |
| |
| 2014-12-16 Anders Carlsson <andersca@apple.com> |
| |
| RefPtr::copyRef should be const |
| https://bugs.webkit.org/show_bug.cgi?id=139689 |
| |
| Reviewed by Andreas Kling. |
| |
| copyRef() doesn't modify the original object so it should be const. |
| Also, add a && qualified overload and mark it deleted so that calls to copyRef() where |
| the object is an rvalue will fail to compile. |
| |
| * wtf/RefPtr.h: |
| |
| 2014-12-15 Chris Dumez <cdumez@apple.com> |
| |
| [iOS] Add feature counting support |
| https://bugs.webkit.org/show_bug.cgi?id=139652 |
| <rdar://problem/19255690> |
| |
| Reviewed by Gavin Barraclough. |
| |
| Add a FeatureCounter API for to log / count when a feature |
| is used. For now, this is only implementated on iOS. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/FeatureCounter.cpp: Added. |
| (WTF::incrementFeatureCounterKey): |
| (WTF::setFeatureCounterKey): |
| * wtf/FeatureCounter.h: Added. |
| * wtf/ios/FeatureCounter.mm: Added. |
| (WTF::incrementFeatureCounterKey): |
| (WTF::setFeatureCounterKey): |
| |
| 2014-12-12 Anders Carlsson <andersca@apple.com> |
| |
| Get rid of the DONT_FINALIZE_ON_MAIN_THREAD #define |
| https://bugs.webkit.org/show_bug.cgi?id=139613 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/Platform.h: |
| Remove the #define. |
| |
| 2014-12-15 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r177284. |
| https://bugs.webkit.org/show_bug.cgi?id=139658 |
| |
| "Breaks API tests and LayoutTests on Yosemite Debug" |
| (Requested by msaboff on #webkit). |
| |
| Reverted changeset: |
| |
| "Make sure range based iteration of Vector<> still receives |
| bounds checking" |
| https://bugs.webkit.org/show_bug.cgi?id=138821 |
| http://trac.webkit.org/changeset/177284 |
| |
| 2014-12-15 Andreas Kling <akling@apple.com> |
| |
| Purge PassRefPtr from FocusEvent code. |
| <https://webkit.org/b/139647> |
| |
| Reviewed by Anders Carlsson. |
| |
| Add a RefPtr::copyRef() to use when passing a RefPtr to a RefPtr&& without |
| transferring the ownership. |
| |
| * wtf/RefPtr.h: |
| |
| 2014-12-15 Oliver Hunt <oliver@apple.com> |
| |
| Make sure range based iteration of Vector<> still receives bounds checking |
| https://bugs.webkit.org/show_bug.cgi?id=138821 |
| |
| Reviewed by Mark Lam. |
| |
| Add a new IndexedIterator struct to WTF that wraps a |
| Vector type and index to provide pointer like semantics |
| while still performing runtime bounds checking, even in |
| release builds. We store a simple index into the vector |
| which means that this iterator allows vector resizing |
| during iteration. If the vector is resized such that the |
| iterator is out of bounds, then any attempt to dereference |
| the iterator will crash safely. |
| |
| For the purpose of retaining semantically equivalent |
| behaviour, the iterator can be moved to m_index == size() |
| as that is the standard "end" terminator for these types. |
| Attempting to dereference at that point will still crash |
| rather than perform an unsafe memory operation. |
| |
| By necessity there are many overrides for operator + and - as |
| we otherwise hit many different type promotion ambiguities when |
| performing arithmetic with iterators. These ambiguities are also |
| different for 32- vs. 64-bit, so duplicating the functions |
| and then forwarding to the core implementations that performed |
| the bounds checking and mutation seemed like the right call. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/IndexedIterator.h: Added. |
| (WTF::IndexedIterator::IndexedIterator): |
| (WTF::IndexedIterator::operator->): |
| (WTF::IndexedIterator::operator*): |
| (WTF::IndexedIterator::get): |
| (WTF::IndexedIterator::operator++): |
| (WTF::IndexedIterator::operator--): |
| (WTF::IndexedIterator::operator UnspecifiedBoolType): |
| (WTF::IndexedIterator::operator-): |
| (WTF::IndexedIterator::operator=): |
| (WTF::IndexedIterator::operator==): |
| (WTF::IndexedIterator::operator!=): |
| (WTF::IndexedIterator::operator<): |
| (WTF::IndexedIterator::operator<=): |
| (WTF::IndexedIterator::operator>): |
| (WTF::IndexedIterator::operator>=): |
| (WTF::IndexedIterator::operator const_iterator): |
| (WTF::IndexedIterator::unsafeGet): |
| (WTF::getPtr): |
| (WTF::operator-): |
| (WTF::operator==): |
| (WTF::operator!=): |
| (WTF::operator<=): |
| (WTF::operator>=): |
| (WTF::operator<): |
| (WTF::operator>): |
| (WTF::IndexedIteratorSelector::makeIterator): |
| (WTF::IndexedIteratorSelector::makeConstIterator): |
| * wtf/RefCountedArray.h: |
| (WTF::RefCountedArray::RefCountedArray): |
| * wtf/Vector.h: |
| (WTF::Vector::Vector): |
| (WTF::Vector::begin): |
| (WTF::Vector::end): |
| (WTF::OverflowHandler>::Vector): |
| (WTF::=): |
| (WTF::OverflowHandler>::fill): |
| (WTF::OverflowHandler>::expandCapacity): |
| (WTF::OverflowHandler>::tryExpandCapacity): |
| (WTF::OverflowHandler>::resize): |
| (WTF::OverflowHandler>::shrink): |
| (WTF::OverflowHandler>::grow): |
| (WTF::OverflowHandler>::reserveCapacity): |
| (WTF::OverflowHandler>::tryReserveCapacity): |
| (WTF::OverflowHandler>::shrinkCapacity): |
| (WTF::OverflowHandler>::append): |
| (WTF::OverflowHandler>::tryAppend): |
| (WTF::OverflowHandler>::appendSlowCase): |
| (WTF::OverflowHandler>::uncheckedAppend): |
| (WTF::OverflowHandler>::appendVector): |
| (WTF::OverflowHandler>::insert): |
| (WTF::OverflowHandler>::insertVector): |
| (WTF::OverflowHandler>::remove): |
| |
| 2014-12-14 Andreas Kling <akling@apple.com> |
| |
| Minor follow-up tweaks suggested by Darin on bug 139587. |
| |
| * wtf/text/WTFString.h: |
| (WTF::String::String): |
| |
| 2014-12-14 Andreas Kling <akling@apple.com> |
| |
| Replace PassRef with Ref/Ref&& across the board. |
| <https://webkit.org/b/139587> |
| |
| Reviewed by Darin Adler. |
| |
| Kill the PassRef class and replace it by Ref/Ref&&. |
| Usage is simple: |
| |
| - For locals and members, keep using Ref<T>. |
| - For return types, use Ref<T>. |
| - For (ownership-transferring) arguments, use Ref<T>&&. |
| |
| When passing to a Ref&&, use WTF::move() to mobilize the value |
| at the call site, e.g: |
| |
| void myFunction(Ref<Foo>&&); |
| |
| Ref<Foo> myFoo(Foo::create()); |
| myFunction(WTF::move(myFoo)); |
| // 'myFoo' is invalid from this point forward. |
| |
| As you can see, it works a lot like PassRefPtr, but unlike PassRefPtr |
| it won't surprise you by becoming null *unless* you WTF::move it. |
| |
| I've also added a Ref::copyRef() for instances where you want to |
| return a Ref *without* transferring ownership, e.g code like: |
| |
| Ref<Foo> foo() { return m_foo; } |
| |
| ... now becomes ... |
| |
| Ref<Foo> foo() { return m_foo.copyRef(); } |
| |
| This makes it explicit that a refcount bump will occur. |
| |
| Finally, do note that unlike last year's PassRef, Ref&& does not |
| require you to move it to avoid leaking; it will clean itself up. |
| |
| * wtf/PassRef.h: |
| (WTF::adopted): Deleted. |
| (WTF::PassRef<T>::PassRef): Deleted. |
| (WTF::PassRef<T>::~PassRef): Deleted. |
| (WTF::PassRef<T>::get): Deleted. |
| (WTF::PassRef<T>::ptr): Deleted. |
| (WTF::PassRef<T>::leakRef): Deleted. |
| (WTF::adoptRef): Deleted. |
| (WTF::createRefCounted): Deleted. |
| * wtf/PassRefPtr.h: |
| (WTF::PassRefPtr::PassRefPtr): |
| * wtf/Ref.h: |
| (WTF::adopted): |
| (WTF::Ref::~Ref): |
| (WTF::Ref::Ref): |
| (WTF::Ref::operator=): |
| (WTF::Ref::operator->): |
| (WTF::Ref::ptr): |
| (WTF::Ref::get): |
| (WTF::Ref::operator T&): |
| (WTF::Ref::operator const T&): |
| (WTF::Ref<T>::replace): |
| (WTF::adoptRef): |
| * wtf/RefCounter.h: |
| (WTF::RefCounter::count): |
| * wtf/RefPtr.h: |
| (WTF::RefPtr::releaseNonNull): |
| (WTF::RefPtr<T>::RefPtr): |
| (WTF::=): |
| * wtf/text/AtomicString.cpp: |
| (WTF::addToStringTable): |
| (WTF::AtomicString::add): |
| (WTF::AtomicString::addFromLiteralData): |
| (WTF::AtomicString::addSlowCase): |
| * wtf/text/AtomicString.h: |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::createFromLiteral): |
| (WTF::StringImpl::createWithoutCopying): |
| (WTF::StringImpl::createUninitializedInternal): |
| (WTF::StringImpl::createUninitializedInternalNonEmpty): |
| (WTF::StringImpl::createUninitialized): |
| (WTF::StringImpl::reallocateInternal): |
| (WTF::StringImpl::reallocate): |
| (WTF::StringImpl::createInternal): |
| (WTF::StringImpl::create): |
| (WTF::StringImpl::create8BitIfPossible): |
| (WTF::StringImpl::substring): |
| (WTF::StringImpl::lower): |
| (WTF::StringImpl::upper): |
| (WTF::StringImpl::fill): |
| (WTF::StringImpl::foldCase): |
| (WTF::StringImpl::convertToASCIILowercase): |
| (WTF::StringImpl::stripMatchedCharacters): |
| (WTF::StringImpl::stripWhiteSpace): |
| (WTF::StringImpl::removeCharacters): |
| (WTF::StringImpl::simplifyMatchedCharactersToSpace): |
| (WTF::StringImpl::simplifyWhiteSpace): |
| (WTF::StringImpl::replace): |
| (WTF::StringImpl::adopt): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::create8BitIfPossible): |
| (WTF::StringImpl::create): |
| (WTF::StringImpl::createSubstringSharingImpl8): |
| (WTF::StringImpl::createSubstringSharingImpl): |
| (WTF::StringImpl::createFromLiteral): |
| (WTF::StringImpl::createEmptyUnique): |
| (WTF::StringImpl::adopt): |
| (WTF::StringImpl::replace): |
| (WTF::StringImpl::constructInternal<LChar>): |
| (WTF::StringImpl::constructInternal<UChar>): |
| (WTF::StringImpl::isolatedCopy): |
| * wtf/text/WTFString.h: |
| (WTF::String::String): |
| |
| 2014-12-10 Geoffrey Garen <ggaren@apple.com> |
| |
| Please disable the webkitFirstVersionWithInitConstructorSupport check on Apple TV |
| https://bugs.webkit.org/show_bug.cgi?id=139501 |
| |
| Reviewed by Gavin Barraclough. |
| |
| Added a platform definition for APPLETV. |
| |
| (It's not an OS because it's not mutually exclusive with other OS definitions.) |
| |
| * wtf/Platform.h: |
| |
| 2014-12-10 Martin Robinson <mrobinson@igalia.com> |
| |
| [GTK] Add support for text-decoration-skip |
| https://bugs.webkit.org/show_bug.cgi?id=131540 |
| |
| Reviewed by Gustavo Noronha Silva. |
| |
| * wtf/Platform.h: Enable text decoration skip by default. |
| |
| 2014-12-09 David Kilzer <ddkilzer@apple.com> |
| |
| Switch from using PLATFORM_NAME to SDK selectors in ANGLE, bmalloc, gtest, JavaScriptCore, WTF |
| <http://webkit.org/b/139212> |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * Configurations/Base.xcconfig: |
| - Only set GCC_ENABLE_OBJC_GC, GCC_MODEL_TUNING and TOOLCHAINS |
| on OS X. |
| * Configurations/DebugRelease.xcconfig: |
| - Only set MACOSX_DEPLOYMENT_TARGET and SDKROOT on OS X. |
| |
| 2014-12-09 Dean Jackson <dino@apple.com> |
| |
| [Apple] Use Accelerate framework to speed-up FEGaussianBlur |
| https://bugs.webkit.org/show_bug.cgi?id=139310 |
| |
| Unreviewed followup, after comments by Andreas Kling. |
| |
| It was pointed out that we already have a USE(ACCELERATE), so |
| we don't need a HAVE(ACCELERATE) :) |
| |
| * wtf/Platform.h: |
| |
| 2014-12-09 Alberto Garcia <berto@igalia.com> |
| |
| Undefined Symbol build error "_objc_registerThreadWithCollector" when building WebKit GTK Mac OS X on Snow Leopard |
| https://bugs.webkit.org/show_bug.cgi?id=58737 |
| |
| Reviewed by Darin Adler. |
| |
| Replace OS(MAC_OS_X) with PLATFORM(MAC) to prevent using |
| osx-specific code in WebKitGTK+ builds. |
| |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::initializeCurrentThreadInternal): |
| |
| 2014-12-08 Dean Jackson <dino@apple.com> |
| |
| [Apple] Use Accelerate framework to speed-up FEGaussianBlur |
| https://bugs.webkit.org/show_bug.cgi?id=139310 |
| <rdar://problem/18434594> |
| |
| Reviewed by Simon Fraser. |
| |
| Add a HAVE_ACCELERATE flag, true on Apple platforms. |
| |
| * wtf/Platform.h: |
| |
| 2014-12-08 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Fix iOS build after r176971. |
| |
| I had previously modified the WTF forwarding header instead of modifying the real source. |
| |
| * wtf/unicode/CharacterNames.h: |
| |
| 2014-12-08 Anders Carlsson <andersca@apple.com> |
| |
| Change WTF::currentCPUTime to return std::chrono::microseconds and get rid of currentCPUTimeMS |
| https://bugs.webkit.org/show_bug.cgi?id=139410 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/CurrentTime.cpp: |
| (WTF::currentCPUTime): |
| (WTF::currentCPUTimeMS): Deleted. |
| * wtf/CurrentTime.h: |
| |
| 2014-12-08 Chris Dumez <cdumez@apple.com> |
| |
| Revert r176293 & r176275 |
| |
| Unreviewed, revert r176293 & r176275 changing the Vector API to use unsigned type |
| instead of size_t. There is some disagreement regarding the long-term direction |
| of the API and we shouldn’t leave the API partly transitioned to unsigned type |
| while making a decision. |
| |
| * wtf/Forward.h: |
| * wtf/Vector.h: |
| (WTF::VectorTypeOperations::compare): |
| (WTF::VectorBufferBase::allocateBuffer): |
| (WTF::VectorBufferBase::tryAllocateBuffer): |
| (WTF::VectorBufferBase::shouldReallocateBuffer): |
| (WTF::VectorBufferBase::reallocateBuffer): |
| (WTF::VectorBufferBase::capacity): |
| (WTF::VectorBufferBase::VectorBufferBase): |
| (WTF::VectorBuffer::VectorBuffer): |
| (WTF::VectorBuffer::allocateBuffer): |
| (WTF::VectorBuffer::tryAllocateBuffer): |
| (WTF::VectorBuffer::shouldReallocateBuffer): |
| (WTF::VectorBuffer::reallocateBuffer): |
| (WTF::VectorBuffer::swap): |
| (WTF::VectorBuffer::swapInlineBuffer): |
| (WTF::VectorBuffer::swapInlineBuffers): |
| (WTF::Vector::Vector): |
| (WTF::Vector::capacity): |
| (WTF::Vector::at): |
| (WTF::Vector::operator[]): |
| (WTF::OverflowHandler>::find): |
| (WTF::OverflowHandler>::reverseFind): |
| (WTF::OverflowHandler>::fill): |
| (WTF::OverflowHandler>::expandCapacity): |
| (WTF::OverflowHandler>::tryExpandCapacity): |
| (WTF::OverflowHandler>::resize): |
| (WTF::OverflowHandler>::resizeToFit): |
| (WTF::OverflowHandler>::shrink): |
| (WTF::OverflowHandler>::grow): |
| (WTF::OverflowHandler>::reserveCapacity): |
| (WTF::OverflowHandler>::tryReserveCapacity): |
| (WTF::OverflowHandler>::reserveInitialCapacity): |
| (WTF::OverflowHandler>::shrinkCapacity): |
| (WTF::OverflowHandler>::append): |
| (WTF::OverflowHandler>::tryAppend): |
| (WTF::OverflowHandler>::insert): |
| (WTF::OverflowHandler>::insertVector): |
| (WTF::OverflowHandler>::remove): |
| (WTF::OverflowHandler>::reverse): |
| (WTF::OverflowHandler>::checkConsistency): |
| * wtf/text/AtomicString.h: |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::adopt): |
| (WTF::equalIgnoringNullity): |
| * wtf/text/StringView.h: |
| (WTF::append): |
| * wtf/text/WTFString.h: |
| |
| 2014-12-07 Andreas Kling <akling@apple.com> |
| |
| Use more PassRef in AtomicString. |
| <https://webkit.org/b/139319> |
| |
| Reviewed by Antti Koivisto. |
| |
| Make a pass over AtomicString and convert functions that return PassRefPtr |
| into returning RefPtr (where it may be null) and PassRef otherwise. |
| This allows the compiler to skip null checks in many places. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::addToStringTable): |
| (WTF::AtomicString::add): |
| (WTF::AtomicString::addFromLiteralData): |
| (WTF::AtomicString::addSlowCase): |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::add): |
| (WTF::AtomicString::addWithStringTableProvider): |
| * wtf/text/cf/AtomicStringCF.cpp: |
| (WTF::AtomicString::add): |
| |
| 2014-12-05 Roger Fong <roger_fong@apple.com> |
| |
| [Win] proj files copying over too many resources.. |
| https://bugs.webkit.org/show_bug.cgi?id=139315. |
| <rdar://problem/19148278> |
| |
| Reviewed by Brent Fulgham. |
| |
| * WTF.vcxproj/WTF.proj: Only copy WTF.dll. |
| |
| 2014-12-05 Andreas Kling <akling@apple.com> |
| |
| PassRef should deref on destruction if pointee was not moved. |
| <https://webkit.org/b/139309> |
| |
| Reviewed by Antti Koivisto. |
| |
| Let PassRef become nullptr internally after having WTF::move()'d the pointee. |
| This means that PassRef is now essentially a PassRefPtr that can only be |
| constructed with a non-null pointee. |
| |
| This should make it possible for all ::create()-style construction helpers to |
| return PassRef, removing a branch in each case. |
| |
| * wtf/PassRef.h: |
| (WTF::PassRef<T>::PassRef): |
| (WTF::PassRef<T>::~PassRef): |
| (WTF::PassRef<T>::get): |
| (WTF::PassRef<T>::ptr): |
| (WTF::PassRef<T>::leakRef): |
| (WTF::PassRef<T>::dropRef): Deleted. |
| |
| 2014-12-05 Jer Noble <jer.noble@apple.com> |
| |
| [WTF] MediaTime should support round-tripping from and to doubles. |
| https://bugs.webkit.org/show_bug.cgi?id=139248 |
| |
| Reviewed by Eric Carlson. |
| |
| MediaTimes should be able to return precisely the same double value as was used |
| when the MediaTime was created, so long as that MediaTime was not modified in a |
| non-destructive way. This will allow API which accepts floating-point values to |
| return the exact same value when asked, but still be able to store that value |
| as a MediaTime. |
| |
| * wtf/MediaTime.cpp: |
| (WTF::MediaTime::createWithFloat): Added; store the floating-point value in a union. |
| (WTF::MediaTime::createWithDouble): Ditto. |
| (WTF::MediaTime::toFloat): If the value is a double, just return it. |
| (WTF::MediaTime::toDouble): Ditto. |
| (WTF::MediaTime::operator+): Special case when one or both sides are doubles. |
| (WTF::MediaTime::operator-): Ditto. |
| (WTF::MediaTime::operator*): Ditto. |
| (WTF::MediaTime::compare): Ditto. |
| (WTF::abs): Ditto. |
| (WTF::MediaTime::setTimeScale): Convert the MediaTime from a double. |
| |
| 2014-12-05 peavo@outlook.com <peavo@outlook.com> |
| |
| [WinCairo] WTF project is missing a GStreamer source file. |
| https://bugs.webkit.org/show_bug.cgi?id=139296 |
| |
| Reviewed by Philippe Normand. |
| |
| The WTF project file is missing a GStreamer source file, |
| causing a link error when compiling with GStreamer enabled. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| |
| 2014-12-04 David Kilzer <ddkilzer@apple.com> |
| |
| REGRESSION (r176683): RefCounter.h is installed outside SDKROOT |
| |
| * WTF.xcodeproj/project.pbxproj: Don't mark RefCounter.h as a |
| private header. WTF headers use a special build phase script to |
| be installed. |
| |
| 2014-12-04 Anders Carlsson <andersca@apple.com> |
| |
| Make API::String copy the underlying strings if needed, for thread safety |
| https://bugs.webkit.org/show_bug.cgi?id=139261 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/RefPtr.h: |
| (WTF::RefPtr<T>::leakRef): |
| Add a leakRef() to RefPtr so we don't have to go through PassRefPtr. |
| |
| * wtf/text/WTFString.cpp: |
| (WTF::String::isSafeToSendToAnotherThread): |
| Check if the string is empty before checking whether it's in an atomic string table. |
| It's safe to send empty strings to other threads even if they're in the atomic string table |
| since they will never be deallocated. |
| |
| 2014-12-04 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Fix cast-align warning in StringImpl.h |
| https://bugs.webkit.org/show_bug.cgi?id=139222 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::tailPointer): |
| |
| 2014-12-02 Mark Lam <mark.lam@apple.com> |
| |
| Rolling out r176592, r176603, r176616, and r176705 until build and perf issues are resolved. |
| https://bugs.webkit.org/show_bug.cgi?id=138821 |
| |
| Not reviewed. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/IndexedIterator.h: Removed. |
| * wtf/RefCountedArray.h: |
| (WTF::RefCountedArray::RefCountedArray): |
| * wtf/Vector.h: |
| (WTF::Vector::Vector): |
| (WTF::Vector::begin): |
| (WTF::Vector::end): |
| (WTF::OverflowHandler>::Vector): |
| (WTF::=): |
| (WTF::OverflowHandler>::fill): |
| (WTF::OverflowHandler>::expandCapacity): |
| (WTF::OverflowHandler>::tryExpandCapacity): |
| (WTF::OverflowHandler>::resize): |
| (WTF::OverflowHandler>::shrink): |
| (WTF::OverflowHandler>::grow): |
| (WTF::OverflowHandler>::reserveCapacity): |
| (WTF::OverflowHandler>::tryReserveCapacity): |
| (WTF::OverflowHandler>::shrinkCapacity): |
| (WTF::OverflowHandler>::append): |
| (WTF::OverflowHandler>::tryAppend): |
| (WTF::OverflowHandler>::appendSlowCase): |
| (WTF::OverflowHandler>::uncheckedAppend): |
| (WTF::OverflowHandler>::appendVector): |
| (WTF::OverflowHandler>::insert): |
| (WTF::OverflowHandler>::insertVector): |
| (WTF::OverflowHandler>::remove): |
| |
| 2014-12-02 Oliver Hunt <oliver@apple.com> |
| |
| Fix IOS builds. |
| |
| * wtf/IndexedIterator.h: |
| |
| 2014-12-02 Gavin Barraclough <barraclough@apple.com> |
| |
| Generalize PageActivityAssertionToken |
| https://bugs.webkit.org/show_bug.cgi?id=139106 |
| |
| Reviewed by Sam Weinig. |
| |
| PageActivityAssertionToken is a RAII mechanism implementing a counter, used by PageThrottler |
| to count user visible activity in progress on the page (currently page load and media playback). |
| Use of an RAII type is prevents a number of possible errors, including double counting a single |
| media element, or failing to decrement the count after a media element has been deallocated. |
| |
| The current implementation has a number of drawbacks that have been addressed by this refactoring: |
| - specific to single use in PageThrottler class - not reusable. |
| - incomplete encapsulation - the counter and WeakPtrFactory that comprise the current implementation |
| are not encapsulated (are in the client type, PageThrottler). |
| - tokens are not shared - PageActivityAssertionToken instances are managed by std::unique, every |
| increment requires an object allocation. |
| - redundancy - the current implementation uses a WeakPtr to safely reference the PageThrottler, this |
| is internally implemented using a reference counted type, resulting in two counters being |
| incremented (one in the PageActivityAssertionToken, one in the PageThrottler). |
| |
| In the reimplementation: |
| - a callback is provided via a lambda function, which allows for easy reuse without a lot of |
| boilerplate code. |
| - the counter, callback and ownership of the otherwise weakly-owned token is encapsulated within the |
| RefCounter type. |
| - a single count within RefCounter::Count stores the counter value, and also manage the lifetime |
| of this object. |
| - standard RefPtrs are used to manage references to the RefCounter::Count. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| - added RefCounter.cpp/.h |
| * wtf/RefCounter.cpp: Added. |
| (WTF::RefCounter::Count::ref): |
| - increment the counter. |
| (WTF::RefCounter::Count::deref): |
| - decrement the counter, and delete as necessary. |
| (WTF::RefCounter::RefCounter): |
| - create a RefCounter::Count. |
| (WTF::RefCounter::~RefCounter): |
| - eagerly delete the Counter if it has no references, otherwise let it be deleted on last deref. |
| * wtf/RefCounter.h: Added. |
| (WTF::RefCounter::Count::Count): |
| - initialize count to 0. |
| (WTF::RefCounter::RefCounter): |
| - takes a lambda to be called when the value changes. |
| (WTF::RefCounter::count): |
| - reference the counter (and in doing so increment the count). |
| (WTF::RefCounter::value): |
| - access the current value of the counter. |
| |
| 2014-12-01 Andreas Kling <akling@apple.com> |
| |
| Optimize constructing JSC::Identifier from AtomicString. |
| <https://webkit.org/b/139157> |
| |
| Reviewed by Michael Saboff. |
| |
| Make AtomicString::isInAtomicStringTable() public so it can be used |
| in some Identifier assertions. |
| |
| * wtf/text/AtomicString.h: |
| |
| 2014-12-01 Oliver Hunt <oliver@apple.com> |
| |
| Fix non-mac builds. |
| |
| * wtf/IndexedIterator.h: |
| |
| 2014-12-01 Oliver Hunt <oliver@apple.com> |
| |
| Fix 32-bit build. |
| |
| * wtf/IndexedIterator.h: |
| |
| 2014-11-17 Oliver Hunt <oliver@apple.com> |
| |
| Make sure range based iteration of Vector<> still receives bounds checking |
| https://bugs.webkit.org/show_bug.cgi?id=138821 |
| |
| Reviewed by Mark Lam. |
| |
| Add a new IndexedIterator struct to WTF that wraps a |
| Vector type and index to provide pointer like semantics |
| while still performing runtime bounds checking, even in |
| release builds. We store a simple index into the vector |
| which means that this iterator allows vector resizing |
| during iteration. If the vector is resized such that the |
| iterator is out of bounds, then any attempt to dereference |
| the iterator will crash safely. Any other errors, including |
| overflows, and over extending the iterator will likewise |
| crash. |
| |
| For the purpose of retaining semantically equivalent |
| behaviour, the iterator can be moved to m_index == size() |
| as that is the standard "end" terminator for these types. |
| Attempting to dereference at that point will still crash |
| rather than perform an unsafe memory operation. |
| |
| In order to maintain the validity of all the bounds checking, |
| we perform full integer range checking prior to any mutation |
| of the iterator location. If we detect an arithmetic overflow |
| we will crash rather than attempting to carry on. |
| |
| By necessity there are many overrides for operator + and - as |
| we otherwise hit many different type promotion ambiguities when |
| performing arithmetic with iterators. These ambiguities are also |
| different for 32- vs. 64-bit, so duplicating the functions |
| and then forwarding to the core implementations that performed |
| the bounds checking and mutation seemed like the right call. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/IndexedIterator.h: Added. |
| (WTF::IndexedIterator::IndexedIterator): |
| (WTF::IndexedIterator::operator->): |
| (WTF::IndexedIterator::operator*): |
| (WTF::IndexedIterator::get): |
| (WTF::IndexedIterator::operator++): |
| (WTF::IndexedIterator::operator--): |
| (WTF::IndexedIterator::operator UnspecifiedBoolType): |
| (WTF::IndexedIterator::operator+=): |
| (WTF::IndexedIterator::operator-=): |
| (WTF::IndexedIterator::operator+): |
| (WTF::IndexedIterator::operator-): |
| (WTF::IndexedIterator::operator=): |
| (WTF::IndexedIterator::operator==): |
| (WTF::IndexedIterator::operator!=): |
| (WTF::IndexedIterator::operator<): |
| (WTF::IndexedIterator::operator<=): |
| (WTF::IndexedIterator::operator>): |
| (WTF::IndexedIterator::operator>=): |
| (WTF::IndexedIterator::operator const_iterator): |
| (WTF::IndexedIterator::isSafeToCompare): |
| (WTF::IndexedIterator::unsafeGet): |
| (WTF::getPtr): |
| (WTF::operator-): |
| (WTF::operator==): |
| (WTF::operator!=): |
| (WTF::operator<=): |
| (WTF::operator>=): |
| (WTF::operator<): |
| (WTF::operator>): |
| (WTF::IndexedIteratorSelector::makeIterator): |
| (WTF::IndexedIteratorSelector::makeConstIterator): |
| * wtf/RefCountedArray.h: |
| (WTF::RefCountedArray::RefCountedArray): |
| * wtf/Vector.h: |
| (WTF::Vector::Vector): |
| (WTF::Vector::begin): |
| (WTF::Vector::end): |
| (WTF::OverflowHandler>::Vector): |
| (WTF::=): |
| (WTF::OverflowHandler>::fill): |
| (WTF::OverflowHandler>::expandCapacity): |
| (WTF::OverflowHandler>::tryExpandCapacity): |
| (WTF::OverflowHandler>::resize): |
| (WTF::OverflowHandler>::shrink): |
| (WTF::OverflowHandler>::grow): |
| (WTF::OverflowHandler>::reserveCapacity): |
| (WTF::OverflowHandler>::tryReserveCapacity): |
| (WTF::OverflowHandler>::shrinkCapacity): |
| (WTF::OverflowHandler>::append): |
| (WTF::OverflowHandler>::tryAppend): |
| (WTF::OverflowHandler>::appendSlowCase): |
| (WTF::OverflowHandler>::uncheckedAppend): |
| (WTF::OverflowHandler>::appendVector): |
| (WTF::OverflowHandler>::insert): |
| (WTF::OverflowHandler>::insertVector): |
| (WTF::OverflowHandler>::remove): |
| |
| 2014-11-30 Ryuan Choi <ryuan.choi@navercorp.com> |
| |
| [EFL] Drop support for the EFL 1.7 |
| https://bugs.webkit.org/show_bug.cgi?id=139114 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| * wtf/efl/EflTypedefs.h: Removed old definitions which EFL 1.7 used. |
| |
| 2014-11-21 Anders Carlsson <andersca@apple.com> |
| |
| Remove the Timer parameters from timer callbacks |
| https://bugs.webkit.org/show_bug.cgi?id=138974 |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/RunLoopTimer.h: |
| (WTF::RunLoopTimer::RunLoopTimer): |
| (WTF::RunLoopTimer::fired): |
| |
| 2014-11-18 Chris Dumez <cdumez@apple.com> |
| |
| Have Vector::capacity() return an unsigned instead of a size_t |
| https://bugs.webkit.org/show_bug.cgi?id=138842 |
| |
| Reviewed by Andreas Kling. |
| |
| Have Vector::capacity() return an unsigned instead of a size_t as |
| capacity is stored as an unsigned internally. |
| |
| * wtf/Vector.h: |
| (WTF::Vector::capacity): |
| (WTF::OverflowHandler>::expandCapacity): |
| (WTF::OverflowHandler>::tryExpandCapacity): |
| |
| 2014-11-18 Geoffrey Garen <ggaren@apple.com> |
| |
| Removed the custom allocator for ListHashSet nodes |
| https://bugs.webkit.org/show_bug.cgi?id=138841 |
| |
| Reviewed by Andreas Kling. |
| |
| bmalloc is fast, so we don't need a custom allocator. |
| |
| The MallocBench test for linked list node allocation (list_allocate) is |
| 4.09X faster in bmalloc than TCMalloc. Also, I wrote a stress test to |
| add/remove link elements, which modify a ListHashSet on insertion and |
| removal, and it was 1% faster / in the noise with bmalloc enabled. |
| |
| * wtf/ListHashSet.h: |
| (WTF::ListHashSetNode::ListHashSetNode): |
| (WTF::ListHashSetTranslator::translate): |
| (WTF::U>::ListHashSet): |
| (WTF::=): |
| (WTF::U>::swap): |
| (WTF::U>::~ListHashSet): |
| (WTF::U>::size): |
| (WTF::U>::capacity): |
| (WTF::U>::isEmpty): |
| (WTF::U>::first): |
| (WTF::U>::removeFirst): |
| (WTF::U>::takeFirst): |
| (WTF::U>::last): |
| (WTF::U>::removeLast): |
| (WTF::U>::takeLast): |
| (WTF::U>::contains): |
| (WTF::U>::remove): |
| (WTF::U>::clear): |
| (WTF::U>::unlink): |
| (WTF::U>::unlinkAndDelete): |
| (WTF::U>::appendNode): |
| (WTF::U>::prependNode): |
| (WTF::U>::insertNodeBefore): |
| (WTF::U>::deleteAllNodes): |
| (WTF::ListHashSetNodeAllocator::ListHashSetNodeAllocator): Deleted. |
| (WTF::ListHashSetNodeAllocator::allocate): Deleted. |
| (WTF::ListHashSetNodeAllocator::deallocate): Deleted. |
| (WTF::ListHashSetNodeAllocator::pool): Deleted. |
| (WTF::ListHashSetNodeAllocator::pastPool): Deleted. |
| (WTF::ListHashSetNodeAllocator::inPool): Deleted. |
| (WTF::ListHashSetNode::operator new): Deleted. |
| (WTF::ListHashSetNode::destroy): Deleted. |
| |
| 2014-11-18 Chris Dumez <cdumez@apple.com> |
| |
| Update the Vector API to deal with unsigned types instead of size_t |
| https://bugs.webkit.org/show_bug.cgi?id=138824 |
| |
| Reviewed by Andreas Kling. |
| |
| Update part of the Vector API to deal with unsigned types instead of |
| size_t. The Vector class is already using unsigned type for its |
| capacity and size data members. However, the Vector API was never |
| updated accordingly. |
| |
| The rest of the Vector API will be ported in follow-up patches to |
| make the change smaller and more easily reviewable. |
| |
| * wtf/Forward.h: |
| * wtf/Vector.h: |
| (WTF::VectorTypeOperations::compare): |
| (WTF::VectorBufferBase::allocateBuffer): |
| (WTF::VectorBufferBase::tryAllocateBuffer): |
| (WTF::VectorBufferBase::shouldReallocateBuffer): |
| (WTF::VectorBufferBase::reallocateBuffer): |
| (WTF::VectorBufferBase::capacity): |
| (WTF::VectorBufferBase::VectorBufferBase): |
| (WTF::VectorBuffer::VectorBuffer): |
| (WTF::VectorBuffer::allocateBuffer): |
| (WTF::VectorBuffer::tryAllocateBuffer): |
| (WTF::VectorBuffer::shouldReallocateBuffer): |
| (WTF::VectorBuffer::reallocateBuffer): |
| (WTF::VectorBuffer::swap): |
| (WTF::VectorBuffer::swapInlineBuffer): |
| (WTF::VectorBuffer::swapInlineBuffers): |
| (WTF::Vector::Vector): |
| (WTF::Vector::at): |
| (WTF::Vector::operator[]): |
| (WTF::OverflowHandler>::find): |
| (WTF::OverflowHandler>::reverseFind): |
| (WTF::OverflowHandler>::fill): |
| (WTF::OverflowHandler>::expandCapacity): |
| (WTF::OverflowHandler>::tryExpandCapacity): |
| (WTF::OverflowHandler>::resize): |
| (WTF::OverflowHandler>::resizeToFit): |
| (WTF::OverflowHandler>::shrink): |
| (WTF::OverflowHandler>::grow): |
| (WTF::OverflowHandler>::reserveCapacity): |
| (WTF::OverflowHandler>::tryReserveCapacity): |
| (WTF::OverflowHandler>::reserveInitialCapacity): |
| (WTF::OverflowHandler>::shrinkCapacity): |
| (WTF::OverflowHandler>::append): |
| (WTF::OverflowHandler>::tryAppend): |
| (WTF::OverflowHandler>::insert): |
| (WTF::OverflowHandler>::insertVector): |
| (WTF::OverflowHandler>::remove): |
| (WTF::OverflowHandler>::reverse): |
| (WTF::OverflowHandler>::checkConsistency): |
| * wtf/text/AtomicString.h: |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::adopt): |
| (WTF::equalIgnoringNullity): |
| * wtf/text/StringView.h: |
| (WTF::append): |
| * wtf/text/WTFString.h: |
| |
| 2014-11-18 peavo@outlook.com <peavo@outlook.com> |
| |
| [WinCairo] Compile errors when GStreamer is enabled. |
| https://bugs.webkit.org/show_bug.cgi?id=137000 |
| |
| Reviewed by Philippe Normand. |
| |
| MSVC does not allow the keyword default on move constructors and move assignment operators. |
| |
| * wtf/gobject/GMainLoopSource.cpp: |
| (WTF::GMainLoopSource::cancel): |
| (WTF::GMainLoopSource::socketCallback): |
| * wtf/gobject/GMainLoopSource.h: |
| (WTF::GMainLoopSource::Context::operator=): |
| |
| 2014-11-17 Anders Carlsson <andersca@apple.com> |
| |
| Fix WTF build with newer versions of clang. |
| <rdar://problem/18978705> |
| |
| * wtf/HashTable.h: |
| (WTF::removeIterator): |
| * wtf/dtoa/utils.h: |
| (WTF::double_conversion::BitCast): |
| |
| 2014-11-13 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Allow constructing a base PassRef with a derived Ref |
| https://bugs.webkit.org/show_bug.cgi?id=138701 |
| |
| Reviewed by Andreas Kling |
| |
| * wtf/PassRef.h: |
| (WTF::PassRef<T>::PassRef): |
| |
| 2014-11-12 Ryuan Choi <ryuan.choi@navercorp.com> |
| |
| [EFL] Fix the build with EFL 1.12 |
| https://bugs.webkit.org/show_bug.cgi?id=138245 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| * wtf/efl/UniquePtrEfl.h: |
| Removed Evas_GL.h from UniquePtrEfl.h, which is commonly included, because |
| it should not be included with official GL headers. |
| |
| 2014-11-12 Mark Lam <mark.lam@apple.com> |
| |
| Rename USE(MASM_PROBE) to ENABLE(MASM_PROBE). |
| <https://webkit.org/b/138661> |
| |
| Reviewed by Michael Saboff. |
| |
| Also move the switch for enabling the use of MASM_PROBE from JavaScriptCore's |
| config.h to WTF's Platform.h. This ensures that the setting is consistently |
| applied even when building WebCore parts as well. |
| |
| * wtf/Platform.h: |
| |
| 2014-11-09 Antti Koivisto <antti@apple.com> |
| |
| Remove BloomFilter size limit |
| https://bugs.webkit.org/show_bug.cgi?id=138549 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/BloomFilter.h: Remove the static_assert, the code works fine with somewhat larger sizes. |
| |
| 2014-11-09 Chris Dumez <cdumez@apple.com> |
| |
| Add a more correct way to compare floating point numbers and use it |
| https://bugs.webkit.org/show_bug.cgi?id=138527 |
| |
| Reviewed by Darin Adler. |
| |
| To compare floating point numbers in the code base, we would often rely |
| on the following check: |
| std::abs(a - b) <= std::numeric_limits<T>::epsilon() |
| |
| However, this is not correct for arbitrary floating point values, and |
| will fail for values that are not close to zero. |
| |
| This patch introduces a WTF::areEssentiallyEqual() templated function |
| that can only be called with floating point types and relies on the |
| following formula from [1][2] that defines u as being "essentially |
| equal" to v if: | u - v | / |u| <= e and | u - v | / |v| <= e |
| |
| [1] Knuth, D. E. "Accuracy of Floating Point Arithmetic." The Art of |
| Computer Programming. 3rd ed. Vol. 2. Boston: Addison-Wesley, 1998. |
| 229-45. |
| [2] http://www.boost.org/doc/libs/1_34_0/libs/test/doc/components/test_tools/floating_point_comparison.html |
| |
| * wtf/MathExtras.h: |
| (WTF::safeFPDivision): |
| (WTF::areEssentiallyEqual): |
| (WTF::withinEpsilon): Deleted. |
| |
| 2014-11-08 Darin Adler <darin@apple.com> |
| |
| Replace FileThread class with a single function |
| https://bugs.webkit.org/show_bug.cgi?id=138282 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * wtf/MessageQueue.h: Made queue work on any type and not require wrapping |
| everything in a unique_ptr. |
| |
| * wtf/Threading.cpp: |
| (WTF::threadEntryPoint): Changed to use a std::function instead of a function pointer. |
| (WTF::createThread): Add a version that takes a std::function. Reimplemented the |
| old version using lambdas. Removed the obsolete versions that were there just to support |
| binary compatibility with very old versions of Safari. |
| |
| * wtf/Threading.h: Removed an incorrect license header that covers code that was long ago |
| moved to a different file. Changed createThread to take a std::function instead of a function |
| pointer and data pointer. Moved internal functions after public functions. |
| |
| 2014-11-05 Chris Dumez <cdumez@apple.com> |
| |
| Assertion hit DOMTimer::updateTimerIntervalIfNecessary() |
| https://bugs.webkit.org/show_bug.cgi?id=138440 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Move the withinEpsilon() function to WTF to avoid code duplication. |
| |
| * wtf/MathExtras.h: |
| (WTF::withinEpsilon): |
| |
| 2014-11-05 Chris Dumez <cdumez@apple.com> |
| |
| Allow constructing a PassRef from a Ref |
| https://bugs.webkit.org/show_bug.cgi?id=138389 |
| |
| Reviewed by Andreas Kling. |
| |
| Allow constructing a PassRef from a Ref, similarly to PassRefPtr that |
| can be constructed from a RefPtr already. This avoids having to call |
| Ref::get() and simplifies the code a bit. |
| |
| * wtf/PassRef.h: |
| (WTF::PassRef<T>::PassRef): |
| |
| 2014-11-05 Dan Bernstein <mitz@apple.com> |
| |
| Remove the unused deletion UI feature |
| https://bugs.webkit.org/show_bug.cgi?id=138442 |
| |
| Rubber-stamped by Alexey Proskuryakov. |
| |
| * wtf/FeatureDefines.h: Removed definition of ENABLE_DELETION_UI. |
| |
| 2014-11-03 Dean Jackson <dino@apple.com> |
| |
| Add ENABLE_FILTERS_LEVEL_2 feature guard. |
| https://bugs.webkit.org/show_bug.cgi?id=138362 |
| |
| Reviewed by Tim Horton. |
| |
| Add a new feature define for Level 2 of CSS Filters. |
| http://dev.w3.org/fxtf/filters-2/ |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-11-05 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Enable ARMv7 disassembler for all platforms |
| https://bugs.webkit.org/show_bug.cgi?id=138415 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Platform.h: |
| |
| 2014-11-04 Chris Dumez <cdumez@apple.com> |
| |
| Add ptr() method to Ref class |
| https://bugs.webkit.org/show_bug.cgi?id=138361 |
| |
| Reviewed by Darin Adler. |
| |
| It is a very common pattern in our code base to get a pointer from a |
| Ref object. Previously, we have to call Ref.get() and take its address |
| which is not very nice. This patch adds a ptr() method to Ref class |
| to simplify the code a bit. |
| |
| * wtf/PassRef.h: |
| (WTF::PassRef<T>::ptr): |
| * wtf/Ref.h: |
| (WTF::Ref::ptr): |
| (WTF::GetPtrHelper<Ref<T>>::getPtr): |
| |
| 2014-11-04 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com> |
| |
| ATTR_USED incorrectly applying to Clang |
| https://bugs.webkit.org/show_bug.cgi?id=138313 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| ATTR_USED was only intended for GCC. Also limit it to ENABLE(FTL_NATIVE_CALL_INLINING) |
| since that's the only thing it's needed for. |
| |
| * wtf/Platform.h: |
| |
| 2014-11-03 Chris Dumez <cdumez@apple.com> |
| |
| Allow implicit conversion from Ref<T> to T& |
| https://bugs.webkit.org/show_bug.cgi?id=138331 |
| |
| Reviewed by Andreas Kling. |
| |
| Allow implicit conversion from Ref<T> to T& to reduce the amount of |
| Ref<>::get() calls in the code and increase readability. Unlike for |
| RefPtr, doing this for Ref should not be error prone. |
| |
| * wtf/Ref.h: |
| (WTF::Ref::operator T&): |
| (WTF::Ref::operator const T&): |
| * wtf/RunLoop.cpp: |
| (WTF::RunLoop::Holder::runLoop): |
| |
| 2014-10-31 Jeffrey Pfau <jpfau@apple.com> |
| |
| Unreviewed, fix ASan build after r175382 |
| |
| * wtf/SizeLimits.cpp: |
| |
| 2014-10-31 Geoffrey Garen <ggaren@apple.com> |
| |
| Rolled in r175389. |
| |
| WebKit was failing to build 32bit on some Apple internal systems because |
| those systems were configured to build bmalloc 64-bit-only. Those systems |
| have been updated to build bmalloc as a universal binary, so everything |
| should work fine now. |
| |
| The relevant setting is controlled by an environment variable on the |
| build system, and not by the project file in the source tree, so there's |
| no new code change here. |
| |
| Enable bmalloc in 32bit builds |
| https://bugs.webkit.org/show_bug.cgi?id=138232 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/FastMalloc.cpp: |
| |
| 2014-10-31 Lucas Forschler <lforschler@apple.com> |
| |
| Unreviewed rollout r175389. |
| |
| 2014-10-30 Dana Burkart <dburkart@apple.com> |
| |
| <rdar://problem/18821260> Prepare for the mysterious future |
| |
| Reviewed by Lucas Forschler. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| |
| 2014-10-30 Geoffrey Garen <ggaren@apple.com> |
| |
| Enable bmalloc in 32bit builds |
| https://bugs.webkit.org/show_bug.cgi?id=138232 |
| |
| Reviewed by Andreas Kling. |
| |
| Seems to work fine. |
| |
| * wtf/FastMalloc.cpp: |
| |
| 2014-10-30 Jeffrey Pfau <jpfau@apple.com> |
| |
| ASSERT(!m_deletionHasBegun) in RefCounted.h should be ASSERT_WITH_SECURITY_IMPLICATION |
| https://bugs.webkit.org/show_bug.cgi?id=138141 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * wtf/RefCounted.h: |
| (WTF::RefCountedBase::ref): |
| (WTF::RefCountedBase::relaxAdoptionRequirement): |
| (WTF::RefCountedBase::derefBase): |
| (WTF::adopted): |
| |
| 2014-10-28 Milan Crha <mcrha@redhat.com> |
| |
| Use constants from wtf/MathExtras.h |
| https://bugs.webkit.org/show_bug.cgi?id=137967 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/MathExtras.h: |
| |
| 2014-10-28 Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> |
| |
| [EFL] Remove unnecessary defines from OptionsEfl.cmake |
| https://bugs.webkit.org/show_bug.cgi?id=138132 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/Platform.h: |
| |
| 2014-10-27 Chris Dumez <cdumez@apple.com> |
| |
| Use separate HashMaps for common and uncommon headers in HTTPHeaderMap |
| https://bugs.webkit.org/show_bug.cgi?id=138079 |
| |
| Reviewed by Anders Carlsson. |
| |
| Add HashTraits for C++11 strong enum types. Using integer HashTraits for |
| strong enums would be inconvenient as it would require casting between |
| integer and strong enum types. |
| |
| * wtf/HashTraits.h: |
| (WTF::StrongEnumHashTraits::emptyValue): |
| (WTF::StrongEnumHashTraits::constructDeletedValue): |
| (WTF::StrongEnumHashTraits::isDeletedValue): |
| |
| 2014-10-25 Brian J. Burg <burg@cs.washington.edu> |
| |
| Web Inspector: timelines should not count time elapsed while paused in the debugger |
| https://bugs.webkit.org/show_bug.cgi?id=136351 |
| |
| Unreviewed, follow-up fix after r175203. The debugger agent should not assume |
| that the inspector environment's stopwatch has already been started. |
| |
| * wtf/Stopwatch.h: |
| (WTF::Stopwatch::isActive): Added. Allow peeking at the stopwatch state. |
| |
| 2014-10-18 Brian J. Burg <burg@cs.washington.edu> |
| |
| Web Inspector: timelines should not count time elapsed while paused in the debugger |
| https://bugs.webkit.org/show_bug.cgi?id=136351 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/Stopwatch.h: Added. This implements a refcounted monotonic stopwatch. |
| (WTF::Stopwatch::create): |
| (WTF::Stopwatch::Stopwatch): |
| (WTF::Stopwatch::reset): |
| (WTF::Stopwatch::start): |
| (WTF::Stopwatch::stop): |
| (WTF::Stopwatch::elapsedTime): |
| |
| 2014-10-23 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Provide a way to have alternate inspector agents |
| https://bugs.webkit.org/show_bug.cgi?id=137901 |
| |
| Reviewed by Brian Burg. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-10-23 Alberto Garcia <berto@igalia.com> |
| |
| [GTK] Fix build on Hurd |
| https://bugs.webkit.org/show_bug.cgi?id=138003 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * wtf/InlineASM.h: |
| * wtf/Platform.h: |
| |
| 2014-10-22 Byungseon Shin <sun.shin@lge.com> |
| |
| String(new Date(Mar 30 2014 01:00:00)) is wrong in CET |
| https://bugs.webkit.org/show_bug.cgi?id=130967 |
| |
| Reviewed by Mark Lam. |
| |
| By definition of calculateLocalTimeOffset, input time should be UTC time. |
| But there are many cases when input time is based on local time. |
| So, it gives erroneous results while calculating offset of DST boundary time. |
| By adding a argument to distinguish UTC and local time, we can get the correct offset. |
| |
| * wtf/DateMath.cpp: |
| (WTF::calculateLocalTimeOffset): |
| (WTF::parseDateFromNullTerminatedCharacters): |
| Compensate time offset depends on UTC time or local time. |
| * wtf/DateMath.h: |
| Add argument to differenciate UTC or local time. |
| |
| 2014-10-21 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com> |
| |
| Fix FTL Native Inlining for EFL |
| https://bugs.webkit.org/show_bug.cgi?id=137774 |
| |
| Reviewed by Michael Saboff. |
| |
| Updated guard definition for Native Inlining, and added an attribute define for marking functions |
| that should not be left out of the symbol table. |
| |
| * wtf/Platform.h: |
| |
| 2014-10-20 Chris Dumez <cdumez@apple.com> |
| |
| Use is<>() / downcast<>() for Accessibility objects |
| https://bugs.webkit.org/show_bug.cgi?id=137286 |
| |
| Reviewed by Darin Adler. |
| |
| Remove the legacy TYPE_CASTS_BASE() macro now that it is no longer |
| used. |
| |
| * wtf/Assertions.h: |
| |
| 2014-10-18 Dan Bernstein <mitz@apple.com> |
| |
| WorkQueue dispatches functions but isn’t a FunctionDispatcher |
| https://bugs.webkit.org/show_bug.cgi?id=137853 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/FunctionDispatcher.h: Added header guards. |
| |
| 2014-10-17 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GLIB] Add API to GMainLoopSource to schedule sources after a delay in microseconds |
| https://bugs.webkit.org/show_bug.cgi?id=137782 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| In some cases when we have a double with the time in seconds, the |
| conversion to milliseconds ends up truncating the value to 0, and |
| the source scheduled immediately. |
| |
| * wtf/gobject/GMainLoopSource.cpp: |
| (WTF::createMicrosecondsTimeoutSource): Use a custom timeout |
| source that handles the interval in microseconds instead of milliseconds. |
| (WTF::GMainLoopSource::scheduleAfterDelay): Use MicrosecondsTimeoutSource. |
| (WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy): Ditto. |
| * wtf/gobject/GMainLoopSource.h: |
| |
| 2014-10-17 Dan Bernstein <mitz@apple.com> |
| |
| Reverted incorrect build fix attempt. |
| |
| * wtf/Threading.cpp: |
| |
| 2014-10-17 Dan Bernstein <mitz@apple.com> |
| |
| Tried to fix the Yosemite build. |
| |
| * wtf/Threading.cpp: |
| |
| 2014-10-16 Dan Bernstein <mitz@apple.com> |
| |
| OSObjectPtr is missing leakRef() |
| https://bugs.webkit.org/show_bug.cgi?id=137798 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/OSObjectPtr.h: |
| |
| 2014-10-14 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Unreviewed gardening. Ignore Visual Studio *.sdf files. |
| |
| * WTF.vcxproj: Modified property svn:ignore. |
| |
| 2014-10-13 Antti Koivisto <antti@apple.com> |
| |
| Add StringCapture helper for thread-safe lambda capture |
| https://bugs.webkit.org/show_bug.cgi?id=137664 |
| |
| Reviewed by Anders Carlsson. |
| |
| There is currently no clean way to capture a String in a thread-safe manner. This will now work: |
| |
| StringCapture stringCapture(string); |
| auto lambdaThatRunsInAnotherThread = [stringCapture] { String string = stringCapture.string(); ... } |
| |
| This type won't be necessary with C++14 initialized lambda capture: [string = string.isolatedCopy()]. |
| |
| * wtf/text/WTFString.h: |
| (WTF::StringCapture::StringCapture): Create isolated copy in copy-constructor. |
| (WTF::StringCapture::string): |
| |
| 2014-10-11 KwangHyuk Kim <hyuki.kim@samsung.com> |
| |
| [EFL] Enable WebP support. |
| https://bugs.webkit.org/show_bug.cgi?id=136156 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| Enable WTF_USE_WEBP macro for WK2 Efl. |
| |
| * wtf/Platform.h: |
| |
| 2014-10-11 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GLIB] Split GMainLoopSource moving thread safe implementation to its own class GThreadSafeMainLoopSource |
| https://bugs.webkit.org/show_bug.cgi?id=137485 |
| |
| Reviewed by Sergio Villar Senin. |
| |
| We made GMainLoopSource thread safe, but in most of the cases we |
| know the sources are used by a single thread, which has an impact |
| in the performance (mutex, GCancellable, etc.). The new class |
| GThreadSafeMainLoopSource inherits from GMainLoopSource overriding |
| the new virtual methods and calling the parent for the common code. |
| GMutexLocker now supports recursive mutexes, it's a template that |
| can wrap a GMutex or a GRecMutex. GThreadSafeMainLoopSource uses a |
| recursive mutex using the new GMutexLocker API. |
| |
| * wtf/PlatformEfl.cmake: Add new file to compilation. |
| * wtf/PlatformGTK.cmake: Ditto. |
| * wtf/gobject/GMainLoopSource.cpp: |
| (WTF::GMainLoopSource::GMainLoopSource): |
| (WTF::GMainLoopSource::~GMainLoopSource): |
| (WTF::GMainLoopSource::cancel): |
| (WTF::GMainLoopSource::schedule): |
| (WTF::GMainLoopSource::scheduleAfterDelay): |
| (WTF::GMainLoopSource::prepareVoidCallback): |
| (WTF::GMainLoopSource::finishVoidCallback): |
| (WTF::GMainLoopSource::voidCallback): |
| (WTF::GMainLoopSource::prepareBoolCallback): |
| (WTF::GMainLoopSource::finishBoolCallback): |
| (WTF::GMainLoopSource::boolCallback): |
| (WTF::GMainLoopSource::socketCallback): |
| (WTF::GMainLoopSource::cancelWithoutLocking): Deleted. |
| * wtf/gobject/GMainLoopSource.h: |
| * wtf/gobject/GMutexLocker.h: |
| (WTF::MutexWrapper<GMutex>::lock): |
| (WTF::MutexWrapper<GMutex>::unlock): |
| (WTF::MutexWrapper<GRecMutex>::lock): |
| (WTF::MutexWrapper<GRecMutex>::unlock): |
| (WTF::GMutexLocker::GMutexLocker): |
| (WTF::GMutexLocker::lock): |
| (WTF::GMutexLocker::unlock): |
| * wtf/gobject/GThreadSafeMainLoopSource.cpp: Added. |
| (WTF::GThreadSafeMainLoopSource::GThreadSafeMainLoopSource): |
| (WTF::GThreadSafeMainLoopSource::~GThreadSafeMainLoopSource): |
| (WTF::GThreadSafeMainLoopSource::cancel): |
| (WTF::GThreadSafeMainLoopSource::schedule): |
| (WTF::GThreadSafeMainLoopSource::scheduleAfterDelay): |
| (WTF::GThreadSafeMainLoopSource::prepareVoidCallback): |
| (WTF::GThreadSafeMainLoopSource::finishVoidCallback): |
| (WTF::GThreadSafeMainLoopSource::voidCallback): |
| (WTF::GThreadSafeMainLoopSource::prepareBoolCallback): |
| (WTF::GThreadSafeMainLoopSource::finishBoolCallback): |
| (WTF::GThreadSafeMainLoopSource::boolCallback): |
| * wtf/gobject/GThreadSafeMainLoopSource.h: Added. |
| |
| 2014-10-09 Dean Jackson <dino@apple.com> |
| |
| Remove ENABLE_CSS3_CONDITIONAL_RULES |
| https://bugs.webkit.org/show_bug.cgi?id=137571 |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-10-09 Akos Kiss <akiss@inf.u-szeged.hu> |
| |
| Enable ARM64 disassembler for all platforms |
| https://bugs.webkit.org/show_bug.cgi?id=137560 |
| |
| Reviewed by Michael Saboff. |
| |
| Remove PLATFORM conditions from around WTF_USE_ARM64_DISASSEMBLER since |
| the ARM64 disassembler has no platform dependencies anymore. |
| |
| * wtf/Platform.h: |
| |
| 2014-10-08 peavo@outlook.com <peavo@outlook.com> |
| |
| [WinCairo] Enable JIT on 32-bit. |
| https://bugs.webkit.org/show_bug.cgi?id=137521 |
| |
| Reviewed by Mark Lam. |
| |
| Enable JIT on Windows 32-bit, but disable it at runtime if SSE2 is not present. |
| |
| * wtf/Platform.h: |
| |
| 2014-10-08 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Resolve warnings about missing __has_include macro under MSVC |
| https://bugs.webkit.org/show_bug.cgi?id=137524 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Compiler.h: Provide a dummy implementation of __has_include that |
| avoids the warning without changing compile behavior. |
| |
| 2014-10-07 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Resolve some MSVC static analyzer warnings |
| https://bugs.webkit.org/show_bug.cgi?id=137504 |
| |
| Reviewed by Dean Jackson. |
| |
| * wtf/GregorianDateTime.cpp: |
| (WTF::GregorianDateTime::setToCurrentLocalTime): Properly handle |
| possible timezone error case. |
| * wtf/OSAllocatorWin.cpp: |
| (WTF::OSAllocator::decommit): Silence a spurious warning about using |
| MEM_DECOMMIT instead of MEM_RELEASE. |
| * wtf/ThreadingWin.cpp: Silence a spurious warning about how the |
| tryLock method is implemented. |
| |
| 2014-10-07 Christophe Dumez <cdumez@apple.com> |
| |
| [WK2] Use is<>() / downcast<>() for DrawingAreaProxy subclasses |
| https://bugs.webkit.org/show_bug.cgi?id=137477 |
| |
| Reviewed by Andreas Kling. |
| |
| Rename wtf/cf/TypeCasts.h to wtf/cf/TypeCastsCF.h to avoid conflict |
| with wtf/TypeCasts.h. They were using the same #ifndef guard and it |
| was causing problems when both were included in the same context. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/cf/TypeCastsCF.h: Renamed from Source/WTF/wtf/cf/TypeCasts.h. |
| (WTF::dynamic_cf_cast): |
| (WTF::checked_cf_cast): |
| |
| 2014-10-07 Anders Carlsson <andersca@apple.com> |
| |
| Try to fix the Mountain Lion build. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::underlyingStringIsValid): |
| (WTF::StringView::setUnderlyingString): |
| (WTF::StringView::invalidate): |
| |
| 2014-10-07 Anders Carlsson <andersca@apple.com> |
| |
| Use "1", not "true". |
| |
| * wtf/text/StringView.h: |
| |
| 2014-10-07 Anders Carlsson <andersca@apple.com> |
| |
| Temporarily disable the StringView lifetime checking. |
| |
| * wtf/text/StringView.h: |
| |
| 2014-10-07 Anders Carlsson <andersca@apple.com> |
| |
| Another build fix attempt. |
| |
| * wtf/text/StringView.cpp: |
| (WTF::StringView::UnderlyingString::UnderlyingString): |
| |
| 2014-10-07 Anders Carlsson <andersca@apple.com> |
| |
| Try to fix the Windows build. |
| |
| * wtf/text/StringView.cpp: |
| (WTF::StringView::UnderlyingString::UnderlyingString): |
| |
| 2014-10-06 Darin Adler <darin@apple.com> |
| |
| Make StringView check the lifetime of the StringImpl it's created from |
| https://bugs.webkit.org/show_bug.cgi?id=137202 |
| |
| Reviewed by Anders Carlsson. |
| |
| * WTF.vcxproj/WTF.vcxproj: Added StringView.cpp. |
| * WTF.vcxproj/WTF.vcxproj.filters: Added StringView.cpp. |
| * WTF.xcodeproj/project.pbxproj: Added StringView.cpp. |
| * wtf/CMakeLists.txt: Added StringView.cpp. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::~StringImpl): Call StringView::invalidate. |
| |
| * wtf/text/StringView.cpp: Added. |
| (WTF::underlyingStrings): Returns map from StringImpl to the underlying |
| string object used by StringView to track validity. |
| (WTF::StringView::invalidate): Mark the underlying string object invalid, |
| and remove it from the map, so any future StringImpl will get a new one, |
| even if it has the same pointer. |
| (WTF::StringView::underlyingStringIsValid): Return true only if the |
| underlying string is still valid. |
| (WTF::StringView::setUnderlyingString): Create and manage reference counts |
| of underlying string objects as needed. |
| |
| * wtf/text/StringView.h: Moved function bodies out of the class definition, |
| so we can now read a clean class definition to see the class design and what |
| functions it offers. |
| (WTF::StringView::StringView): Added a comment to the default constructor. |
| Also added copy and move constructors so they can call setUnderlyingString |
| and assert the underlying string is valid as needed, replacing the |
| compiler-generated ones. |
| (WTF::StringView::~StringView): Added a call to setUnderlyingString. |
| (WTF::StringView::operator=): Added these assignment operators with the same |
| job as the constructors above. |
| (WTF::StringView::initialize): Added a comment. |
| (WTF::StringView::characters8): Added an assertion that the underlying |
| string is valid. |
| (WTF::StringView::characters16): Ditto. |
| (WTF::StringView::substring): Added code to propagate the underlying string |
| from the original string to the substring. |
| (WTF::StringView::invalidate): Inline empty version of this function for |
| non-debug builds. |
| (WTF::StringView::underlyingStringIsValid): Ditto. |
| (WTF::StringView::setUnderlyingString): Ditto. |
| |
| 2014-10-06 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] DateMath's calculateUTFOffset does not account for DST. |
| https://bugs.webkit.org/show_bug.cgi?id=137458 |
| <rdar://problem/18559172> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Check the return value of GetTimeZoneInformation and use the |
| proper bias against UTC (depending on whether we are in daylight |
| savings time, or standard time). |
| |
| Also, handle possible error cases in the FileTimeToSystemTime |
| and SystemTimeToTzSpecificLocalTime, rather than using potentially |
| uninitialized values. |
| |
| * wtf/DateMath.cpp: |
| (WTF::calculateUTCOffset): Use proper daylight-savings-time state. |
| (WTF::calculateDSTOffset): Avoid uninitialized data due to failing |
| API calls. |
| |
| 2014-10-06 Christophe Dumez <cdumez@apple.com> |
| |
| Add is<>() / downcast<>() support for RenderObject subclasses |
| https://bugs.webkit.org/show_bug.cgi?id=137424 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Handle correctly calling TypeCastTraits<ExpectedType, ArgType>::isOfType(ArgType&) |
| with ExpectedType being a base class of ArgType (or the same as ArgType). The |
| previous template specialization was only meant to support the case where |
| ExpectedType is the same as ArgType but even that wasn't working as the compiler |
| would complain about ambiguous partial specializations. Since this is needed by |
| RenderTraversal functions, this patch adds an extra isBaseType template parameter |
| to TypeCastTraits to resolve the ambiguity and relies on std::is_base_of for the |
| detection. |
| |
| * wtf/TypeCasts.h: |
| |
| 2014-10-06 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Project file gardening. |
| |
| * WTF.vcxproj/WTF.vcxproj.filters: Move HashMethod.h and |
| FastBitVector.cpp to proper places in hierarchy. |
| |
| 2014-10-04 Brian J. Burg <burg@cs.washington.edu> |
| |
| Unreviewed, rolling out r174319. |
| |
| Causes assertions in fast/profiler tests. Needs nontrivial |
| investigation, will take offline. |
| |
| Reverted changeset: |
| |
| "Web Inspector: timelines should not count time elapsed while |
| paused in the debugger" |
| https://bugs.webkit.org/show_bug.cgi?id=136351 |
| http://trac.webkit.org/changeset/174319 |
| |
| 2014-10-04 Brian J. Burg <burg@cs.washington.edu> |
| |
| Web Inspector: timelines should not count time elapsed while paused in the debugger |
| https://bugs.webkit.org/show_bug.cgi?id=136351 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/Stopwatch.h: Added. This implements a refcounted monotonic stopwatch. |
| (WTF::Stopwatch::reset): |
| (WTF::Stopwatch::start): |
| (WTF::Stopwatch::stop): |
| |
| 2014-10-04 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL should sink PutLocals |
| https://bugs.webkit.org/show_bug.cgi?id=137168 |
| |
| Reviewed by Oliver Hunt. |
| |
| Make the set bits of a BitVector iterable. |
| |
| * wtf/BitVector.h: |
| (WTF::BitVector::SetBitsIterable::SetBitsIterable): |
| (WTF::BitVector::SetBitsIterable::iterator::iterator): |
| (WTF::BitVector::SetBitsIterable::iterator::operator*): |
| (WTF::BitVector::SetBitsIterable::iterator::operator++): |
| (WTF::BitVector::SetBitsIterable::iterator::operator==): |
| (WTF::BitVector::SetBitsIterable::iterator::operator!=): |
| (WTF::BitVector::SetBitsIterable::begin): |
| (WTF::BitVector::SetBitsIterable::end): |
| (WTF::BitVector::setBits): |
| |
| 2014-10-03 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r174275. |
| https://bugs.webkit.org/show_bug.cgi?id=137408 |
| |
| Build failures on the internal bots. (Requested by dethbakin |
| on #webkit). |
| |
| Reverted changeset: |
| |
| "FTL should sink PutLocals" |
| https://bugs.webkit.org/show_bug.cgi?id=137168 |
| http://trac.webkit.org/changeset/174275 |
| |
| 2014-10-03 Christophe Dumez <cdumez@apple.com> |
| |
| Add TypeCasts.h to xcodeproject |
| https://bugs.webkit.org/show_bug.cgi?id=137403 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Add TypeCasts.h to xcodeproject. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| |
| 2014-09-28 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL should sink PutLocals |
| https://bugs.webkit.org/show_bug.cgi?id=137168 |
| |
| Reviewed by Oliver Hunt. |
| |
| Make the set bits of a BitVector iterable. |
| |
| * wtf/BitVector.h: |
| (WTF::BitVector::SetBitsIterable::SetBitsIterable): |
| (WTF::BitVector::SetBitsIterable::iterator::iterator): |
| (WTF::BitVector::SetBitsIterable::iterator::operator*): |
| (WTF::BitVector::SetBitsIterable::iterator::operator++): |
| (WTF::BitVector::SetBitsIterable::iterator::operator==): |
| (WTF::BitVector::SetBitsIterable::iterator::operator!=): |
| (WTF::BitVector::SetBitsIterable::begin): |
| (WTF::BitVector::SetBitsIterable::end): |
| (WTF::BitVector::setBits): |
| |
| 2014-10-03 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Support modern for loops over StringViews |
| https://bugs.webkit.org/show_bug.cgi?id=137165 |
| |
| Reviewed by Darin Adler. |
| |
| This patch adds two functions, codePoints() and codeUnits(), on StringView. |
| These two functions return small objects which have begin() and end() functions, |
| which means it can be used by the modern for loop style. This small class also |
| has an inner iterator class which can be incremented, dereferenced, and |
| compared. |
| |
| Using these new objects looks like this: |
| for (UChar codeunit : stringView.codeUnits()) { } and |
| for (UChar32 codepoint : stringView.codePoints()) { }. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::codepoints): |
| (WTF::StringView::codeunits): |
| (WTF::StringViewCodePointIterator::StringViewCodePointIterator): |
| (WTF::StringViewCodePointIterator::Iterator::Iterator): |
| (WTF::StringViewCodePointIterator::Iterator::operator*): |
| (WTF::StringViewCodePointIterator::Iterator::operator!=): |
| (WTF::StringViewCodeUnitIterator::StringViewCodeUnitIterator): |
| (WTF::StringViewCodeUnitIterator::Iterator::Iterator): |
| (WTF::StringViewCodeUnitIterator::Iterator::operator*): |
| (WTF::StringViewCodeUnitIterator::Iterator::operator!=): |
| |
| 2014-09-28 Sam Weinig <sam@webkit.org> |
| |
| Remove RefPtrHashMap |
| https://bugs.webkit.org/show_bug.cgi?id=137200 |
| |
| Reviewed by Darin Adler. |
| |
| HashMap now has all the features of the RefPtr specialization of HashMap |
| (which lived in RefPtrHashMap.h) and is in fact more efficient when moving |
| items into it. For instance: |
| |
| For HashMap<RefPtr<Foo>, Bar> map: |
| |
| RefPtr<Foo> foo = ...; |
| map.add(WTF::move(foo), Bar()); |
| |
| will now not cause a ref() / deref(), but will successfully move the item in |
| without churn. The same is true if foo.release() was used. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| Remove references to RefPtrHashMap.h. |
| |
| * wtf/RefPtrHashMap.h: Removed. |
| |
| * wtf/HashMap.h: |
| Remove #include of RefPtrHashMap.h and add inlineGet to match the interface |
| exposed by the RefPtrHashMap specialization. |
| |
| 2014-10-02 Anders Carlsson <andersca@apple.com> |
| |
| Add back debugging/testing code that I accidentally removed. |
| |
| * wtf/text/StringConcatenate.h: |
| (WTF::StringTypeAdapter<String>::writeTo): |
| |
| 2014-10-02 Anders Carlsson <andersca@apple.com> |
| |
| Simplify StringTypeAdapter templates |
| https://bugs.webkit.org/show_bug.cgi?id=137356 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/text/StringConcatenate.h: |
| Use StringView for copying characters. Use inheritance for char* vs const char* etc. Make all StringAdapter member functions const. |
| |
| * wtf/text/StringView.h: |
| Move enough functions out of line so we can include WTFString.h after the StringView class definition. |
| |
| 2014-10-01 Christophe Dumez <cdumez@apple.com> |
| |
| Have is<>(T*) function do a null check on the pointer argument |
| https://bugs.webkit.org/show_bug.cgi?id=137333 |
| |
| Reviewed by Gavin Barraclough. |
| |
| Have is<>(T*) function do a null check on the argument instead of a |
| simple assertion. This makes sense for 2 reasons: |
| 1. It is more consistent with downcast<>(T*), which will succeed even |
| if the argument is a nullptr. |
| 2. It simplifies the code a bit as it gets rid of a lot of explicit |
| null checks. |
| |
| * wtf/TypeCasts.h: |
| (WTF::is): |
| |
| 2014-10-02 Daniel Bates <dabates@apple.com> |
| |
| Clean up: Move XPC forward declarations in JavaScriptCore to WTF SPI wrapper header |
| https://bugs.webkit.org/show_bug.cgi?id=137277 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Towards centralizing the declarations of XPC functions used in JavaScriptCore |
| and WebKit2, add a header that wraps these function declarations called XPCSPI.h |
| and use it instead of including the corresponding XPC API/SPI headers/forward |
| declaring XPC functions. This will also aid in the effort to make WebKit2 build |
| for iOS with the public iOS SDK. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/spi/darwin/XPCSPI.h: Added. |
| |
| 2014-10-01 Christophe Dumez <cdumez@apple.com> |
| |
| Unreviewed build fix after r174193. |
| |
| Adding a return statement as that function is returning a boolean. |
| |
| * wtf/TypeCasts.h: |
| (WTF::TypeCastTraits::isOfType): |
| |
| 2014-10-01 Christophe Dumez <cdumez@apple.com> |
| |
| Fail better when is<>() / downcast<>() is used for an unsupported type |
| https://bugs.webkit.org/show_bug.cgi?id=137323 |
| |
| Reviewed by Benjamin Poulain. |
| |
| We should fail better when is<>() / downcast<>() is used for an |
| unsupported type (i.e. a type that doesn't have the needed |
| TypeCastTraits template specialization). Previously, we would get an |
| obscure linking error, which was sub-optimal. |
| |
| With this patch, you would now hit a static_assert() at build time if |
| you tried to use is<>() / downcast<>() for a type that did not have the |
| needed template specialization. There is also a helpful comment above |
| the assertion letting the developer know how to add the needed template |
| specialization. |
| |
| * wtf/TypeCasts.h: |
| (WTF::TypeCastTraits::isOfType): |
| |
| 2014-10-01 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r174180, r174183, and r174186. |
| https://bugs.webkit.org/show_bug.cgi?id=137320 |
| |
| Broke the Mac MountainLion build. Will investigate offline. |
| (Requested by dydz on #webkit). |
| |
| Reverted changesets: |
| |
| "Clean up: Move XPC forward declarations in JavaScriptCore to |
| WTF SPI wrapper header" |
| https://bugs.webkit.org/show_bug.cgi?id=137277 |
| http://trac.webkit.org/changeset/174180 |
| |
| "Attempt to fix the build after |
| <https://trac.webkit.org/changeset/174180>" |
| https://bugs.webkit.org/show_bug.cgi?id=137277 |
| http://trac.webkit.org/changeset/174183 |
| |
| "Another attempt to fix the Mac build after |
| <https://trac.webkit.org/changeset/174180>" |
| https://bugs.webkit.org/show_bug.cgi?id=137277 |
| http://trac.webkit.org/changeset/174186 |
| |
| 2014-10-01 Daniel Bates <dabates@apple.com> |
| |
| Another attempt to fix the Mac build after <https://trac.webkit.org/changeset/174180> |
| (https://bugs.webkit.org/show_bug.cgi?id=137277) |
| |
| Include header AvailabilityMacros.h instead of Availability.h, which actually defines the |
| macro __MAC_OS_X_VERSION_MIN_REQUIRED. |
| |
| * wtf/spi/darwin/XPCSPI.h: |
| |
| 2014-10-01 Daniel Bates <dabates@apple.com> |
| |
| Attempt to fix the build after <https://trac.webkit.org/changeset/174180> |
| (https://bugs.webkit.org/show_bug.cgi?id=137277) |
| |
| Include header <Availability.h> for the definition of __MAC_OS_X_VERSION_MIN_REQUIRED. |
| Also, we want to define CONST_ON_OR_AFTER_MAC_OS_X_VERSION_1090 to be const when building |
| on iOS. |
| |
| * wtf/spi/darwin/XPCSPI.h: |
| |
| 2014-10-01 Daniel Bates <dabates@apple.com> |
| |
| Clean up: Move XPC forward declarations in JavaScriptCore to WTF SPI wrapper header |
| https://bugs.webkit.org/show_bug.cgi?id=137277 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Towards centralizing the declarations of XPC functions used in JavaScriptCore |
| and WebKit2, add a header that wraps these function declarations called XPCSPI.h |
| and use it instead of including the corresponding XPC API/SPI headers/forward |
| declaring XPC functions. This will also aid in the effort to make WebKit2 build |
| for iOS with the public iOS SDK. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/spi/darwin/XPCSPI.h: Added. |
| |
| 2014-10-01 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] 32-bit JavaScriptCore should limit itself to the C loop |
| https://bugs.webkit.org/show_bug.cgi?id=137304 |
| <rdar://problem/18375370> |
| |
| Reviewed by Michael Saboff. |
| |
| * wtf/Platform.h: Force the C loop when building for 32-bit Windows. |
| |
| 2014-09-30 Christophe Dumez <cdumez@apple.com> |
| |
| Generalize is<>() / downcast<>() support to all types |
| https://bugs.webkit.org/show_bug.cgi?id=137243 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Generalize is<>() / downcast<>() support to all types, not just Nodes. |
| |
| * wtf/Assertions.h: |
| * wtf/TypeCasts.h: Added. |
| (WTF::is): |
| (WTF::downcast): |
| |
| 2014-09-30 Anders Carlsson <andersca@apple.com> |
| |
| Get the STRING_STATS codepath compiling again, and add calls to ref/deref |
| https://bugs.webkit.org/show_bug.cgi?id=137259 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringStats::removeString): |
| (WTF::StringStats::printStats): |
| (WTF::StringImpl::~StringImpl): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| (WTF::StringImpl::isSubString): |
| (WTF::StringImpl::ref): |
| (WTF::StringImpl::deref): |
| (WTF::StringStats::addUpconvertedString): Deleted. |
| |
| 2014-09-30 Daniel Bates <dabates@apple.com> |
| |
| REGRESSION (r172532): JSBase.h declares NSMapTable functions that are SPI |
| https://bugs.webkit.org/show_bug.cgi?id=137170 |
| <rdar://problem/18477384> |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add SPI wrapper header, NSMapTableSPI.h. |
| |
| Additionally, define convenience macro EXTERN_C that can be used to specify the C linkage |
| convention for a declaration. For example, the declaration "EXTERN_C const int x;" will |
| expand to: |
| |
| extern const int x; |
| |
| and |
| |
| extern "C" const int x; |
| |
| when used in a C and C++ file, respectively. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/Compiler.h: |
| * wtf/spi/cocoa/NSMapTableSPI.h: Added. |
| |
| 2014-09-29 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r174045. |
| https://bugs.webkit.org/show_bug.cgi?id=137231 |
| |
| Introduced a crash during page loading tests on Mac (Requested |
| by rniwa on #webkit). |
| |
| Reverted changeset: |
| |
| "Replace OSObjectPtr with RetainPtr/adoptOS" |
| https://bugs.webkit.org/show_bug.cgi?id=137158 |
| http://trac.webkit.org/changeset/174045 |
| |
| 2014-09-26 Sam Weinig <sam@webkit.org> |
| |
| Replace OSObjectPtr with RetainPtr/adoptOS |
| https://bugs.webkit.org/show_bug.cgi?id=137158 |
| |
| Reviewed by Dan Bernstein. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/OSObjectPtr.h: Removed. |
| * wtf/RetainPtr.h: |
| (WTF::adoptOS): |
| Added. This adopt function is slightly different than both adoptCF and adoptNS, |
| in that unlike adoptCF(), it can be passed an Objective-C type (since OS objects |
| are sometimes Objective-C objects, but not always), and unlike adoptNS() it doesn't |
| require us to jump through hoops to appease GC (since OS objects are not Objective-C |
| objects if GC is enabled). |
| |
| 2014-09-24 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL should sink object allocations |
| https://bugs.webkit.org/show_bug.cgi?id=136330 |
| |
| Reviewed by Oliver Hunt. |
| |
| Make it possible to reset a Bag. |
| |
| * wtf/Bag.h: |
| (WTF::Bag::Bag): |
| (WTF::Bag::~Bag): |
| (WTF::Bag::clear): |
| |
| 2014-09-25 Roger Fong <roger_fong@apple.com> |
| |
| [Windows] Unreviewed build fix. Ensure that python2.7 is used for Windows builds. |
| |
| * WTF.vcxproj/WTFGenerated.make: |
| |
| 2014-09-25 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Remove WinCE port from trunk |
| https://bugs.webkit.org/show_bug.cgi?id=136951 |
| |
| Reviewed by Alex Christensen. |
| |
| * config.h: |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| * wtf/Atomics.h: |
| (WTF::weakCompareAndSwap): |
| * wtf/CurrentTime.cpp: |
| (WTF::lowResUTCTime): |
| * wtf/DataLog.cpp: |
| * wtf/DateMath.cpp: |
| (WTF::getLocalTime): |
| (WTF::calculateDSTOffset): |
| * wtf/FastMalloc.cpp: |
| * wtf/FeatureDefines.h: |
| * wtf/OSAllocator.h: |
| (WTF::OSAllocator::decommitAndRelease): |
| * wtf/Platform.h: |
| * wtf/PlatformWin.cmake: |
| * wtf/RAMSize.cpp: |
| (WTF::computeRAMSize): |
| * wtf/RandomNumberSeed.h: |
| (WTF::initializeRandomNumberGenerator): |
| * wtf/StackBounds.cpp: |
| (WTF::StackBounds::initialize): |
| * wtf/StackBounds.h: |
| (WTF::StackBounds::isGrowingDownward): |
| * wtf/StdLibExtras.h: |
| (wtf_bsearch): Deleted. |
| * wtf/StringExtras.h: |
| (strnicmp): Deleted. |
| (stricmp): Deleted. |
| (strdup): Deleted. |
| * wtf/ThreadSpecific.h: |
| * wtf/ThreadingWin.cpp: |
| (WTF::createThreadInternal): |
| * wtf/WindowsExtras.h: |
| (WTF::getRegistryValue): |
| (WTF::getWindowPointer): |
| (WTF::setWindowPointer): |
| * wtf/dtoa/utils.h: |
| * wtf/text/WTFString.cpp: |
| (WTF::String::format): |
| |
| 2014-09-24 Geoffrey Garen <ggaren@apple.com> |
| |
| Do the bmalloc. |
| https://bugs.webkit.org/show_bug.cgi?id=132629 |
| |
| Reviewed by Gavin Barraclough. |
| |
| 64-bit only for now, just to try it out. |
| |
| * wtf/FastMalloc.cpp: |
| |
| 2014-09-23 Geoffrey Garen <ggaren@apple.com> |
| |
| Rolled out r173346. |
| |
| bmalloc should honor the FastMalloc statistics API |
| https://bugs.webkit.org/show_bug.cgi?id=136592 |
| |
| This didn't really work. Because we allow ranges with and without |
| physical pages to merge, and we allow double-committing and |
| double-decommitting, we can't rely on commit actions to track memory |
| footprint. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::fastMallocStatistics): |
| |
| 2014-09-23 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed |
| https://bugs.webkit.org/show_bug.cgi?id=136893 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Currently automatic inspection only happens in processes that have a |
| debugger attached. That condition may change in the future, but this |
| function can stand on its own in WTF. It may be useful in the future |
| to perhaps continue though ASSERTs if you have a debugger attached. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| |
| 2014-09-22 Sam Weinig <sam@webkit.org> |
| |
| Eliminate redundant PtrHash specializations |
| https://bugs.webkit.org/show_bug.cgi?id=136990 |
| |
| Reviewed by Darin Adler. |
| |
| Now that we have IsSmartPtr, we can eliminate all the specializations |
| of PtrHash that we had (for RefPtr, OwnPtr, RetainPtr, and std::unique_ptr) |
| and instead just have one that uses GetPtrHelper. |
| |
| No changes of behavior intended. |
| |
| * wtf/GetPtr.h: |
| Remove unnecessary const_cast that Darin noticed. |
| |
| * wtf/HashFunctions.h: |
| (WTF::PtrHash::hash): Deleted. |
| (WTF::PtrHash::equal): Deleted. |
| (WTF::PtrHash<RefPtr<P>>::hash): Deleted. |
| (WTF::PtrHash<RefPtr<P>>::equal): Deleted. |
| Specialize PtrHash based on whether the type is a smart pointer, and use GetPtrHelper |
| to implement the smart pointer specialized variant. |
| |
| * wtf/HashMap.h: |
| Remove include of GetPtr.h that is now included by HashFunctions.h |
| |
| * wtf/OwnPtr.h: |
| (WTF::PtrHash<OwnPtr<P>>::hash): Deleted. |
| (WTF::PtrHash<OwnPtr<P>>::equal): Deleted. |
| Remove unnecessary specialization of PtrHash. |
| |
| * wtf/RetainPtr.h: |
| (WTF::PtrHash<RetainPtr<P>>::hash): Deleted. |
| (WTF::PtrHash<RetainPtr<P>>::equal): Deleted. |
| Specialize IsSmartPointer for RetainPtr and remove the then unnecessary specialization of PtrHash. |
| (This is already tested in the API test WTF/cf/RetainPtrHashing). |
| |
| 2014-09-20 Sam Weinig <sam@webkit.org> |
| |
| Make possible HashSet<std::unique_ptr<>> |
| https://bugs.webkit.org/show_bug.cgi?id=136166 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/GetPtr.h: |
| (WTF::getPtr): |
| (WTF::GetPtrHelper<std::unique_ptr<T>>::getPtr): |
| Make specializing GetPtrHelper a bit cleaner (you don't have to put |
| IsSmartPtr<T>::value everywhere any more) and add specializations for |
| std::unique_ptr. |
| |
| * wtf/HashFunctions.h: |
| (WTF::PtrHash<std::unique_ptr<P>>): |
| Add specialization for PtrHash for std::unique_ptr and set it as the DefaultHash |
| for it as well. |
| |
| * wtf/HashMap.h: |
| * wtf/HashSet.h: |
| Add overloads of find(), contains(), remove(), take() (and get() for HashMap) for "smart pointers" that |
| take the raw pointer type as the parameter. These use SFINAE to make themselves only available |
| when the IsSmartPtr<KeyType>::value is true. |
| |
| * wtf/HashTraits.h: |
| Override constructDeletedValue() and isDeletedValue() in the std::unique_ptr specialization |
| since the default implementation depends on the type having a constructor that takes a HashTableDeletedValue |
| and function named isHashTableDeletedValue(). |
| |
| * wtf/OwnPtr.h: |
| (WTF::OwnPtr::OwnPtr): |
| (WTF::OwnPtr::isHashTableDeletedValue): |
| (WTF::OwnPtr::hashTableDeletedValue): |
| Add HashTableDeletedValue constructor/functions to allow the constructDeletedValue() and isDeletedValue() |
| hash traits to work. |
| |
| (WTF::PtrHash<OwnPtr<P>>::hash): |
| (WTF::PtrHash<OwnPtr<P>>::equal): |
| Add specialization for PtrHash for OwnPtr and set it as the DefaultHash |
| for it as well. |
| |
| * wtf/Ref.h: |
| Update for the less verbose GetPtrHelper specialization. |
| |
| 2014-09-19 Chris Dumez <cdumez@apple.com> |
| |
| Allow DOM methods to return references instead of pointers |
| https://bugs.webkit.org/show_bug.cgi?id=136931 |
| |
| Add support for having WTF::getPtr() transform reference arguments |
| into raw pointers so that DOM methods can now return references when |
| appropriate and so that the generated bindings code can handle this |
| via WTF::getPtr(). |
| |
| This patch had to alter the way getPtr() was overloaded for smart |
| pointer types so that we don't call &p on smart pointers but p.get(). |
| This was needed because the new WTF::getPtr(T&) was being called for |
| RefPtr<T> arguments instead of the getPtr(const RefPtr<T>&) overload. |
| This was addressed using traits and template specialization to |
| distinguish WTF smart pointers from other types. |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/GetPtr.h: |
| (WTF::getPtr): |
| * wtf/OwnPtr.h: |
| (WTF::getPtr): Deleted. |
| * wtf/PassOwnPtr.h: |
| (WTF::getPtr): Deleted. |
| * wtf/PassRefPtr.h: |
| (WTF::getPtr): Deleted. |
| * wtf/Ref.h: |
| * wtf/RefPtr.h: |
| (WTF::getPtr): Deleted. |
| * wtf/gobject/GRefPtr.h: |
| (WTF::getPtr): Deleted. |
| |
| 2014-09-19 Daniel Bates <dabates@apple.com> |
| |
| Always assume internal SDK when building configuration Production |
| https://bugs.webkit.org/show_bug.cgi?id=136925 |
| <rdar://problem/18362399> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2014-09-19 Diego Pino Garcia <dpino@igalia.com> |
| |
| Simple ES6 feature:String prototype additions |
| https://bugs.webkit.org/show_bug.cgi?id=131704 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::find): |
| (WTF::equalInner): Added. |
| (WTF::StringImpl::startsWith): Add implementation that supports |
| 'startOffset' parameter. |
| (WTF::StringImpl::endsWith): Add implementation that supports |
| 'endOffset' parameter. |
| * wtf/text/StringImpl.h: |
| * wtf/text/WTFString.h: |
| (WTF::String::contains): Modify current implementation to allow |
| setting a startOffset, 0 by default. |
| (WTF::String::startsWith): |
| (WTF::String::endsWith): |
| |
| 2014-09-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Dot not allow to create delete-on-destroy GMainLoopSources |
| https://bugs.webkit.org/show_bug.cgi?id=136923 |
| |
| Reviewed by Gustavo Noronha Silva. |
| |
| We have several asserts to ensure that delete-on-destroy sources |
| are not misused, like not scheduling socket sources on a |
| delete-on-destroy GMainLoopSource or not allowing to cancel them |
| before they have been dispatched. It's better to ensure all those |
| things at compile time, using static methods to schedule sources |
| creating a delete-on-destroy GMainLoopSource that is not returned |
| to the user. |
| |
| * wtf/gobject/GMainLoopSource.cpp: |
| (WTF::GMainLoopSource::create): Private static method to create a |
| delete-on-destroy GMainLoopSource. |
| (WTF::GMainLoopSource::cancelWithoutLocking): Return early in case |
| of delete-on-destroy source, since they can't be cancelled. |
| (WTF::GMainLoopSource::schedule): Remove assertion to ensure |
| socket sources are not scheduled on a delete-on-destroy GMainLoopSource. |
| (WTF::GMainLoopSource::scheduleAndDeleteOnDestroy): |
| (WTF::GMainLoopSource::scheduleAfterDelayAndDeleteOnDestroy): |
| (WTF::GMainLoopSource::createAndDeleteOnDestroy): Deleted. |
| * wtf/gobject/GMainLoopSource.h: |
| * wtf/gtk/MainThreadGtk.cpp: |
| (WTF::scheduleDispatchFunctionsOnMainThread): Use GMainLoopSource::scheduleAndDeleteOnDestroy() |
| * wtf/gtk/RunLoopGtk.cpp: |
| (WTF::RunLoop::wakeUp): Ditto. |
| |
| 2014-09-18 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Unreviewed rollout r173731. Broke multiple builds. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| |
| 2014-09-18 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed |
| https://bugs.webkit.org/show_bug.cgi?id=136893 |
| |
| Reviewed by Timothy Hatcher. |
| |
| Currently automatic inspection only happens in processes that have a |
| debugger attached. That condition may change in the future, but this |
| function can stand on its own in WTF. It may be useful in the future |
| to perhaps continue though ASSERTs if you have a debugger attached. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| |
| 2014-09-18 Zan Dobersek <zdobersek@igalia.com> |
| |
| GMainLoopSource is exposed to race conditions |
| https://bugs.webkit.org/show_bug.cgi?id=135800 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| GMainLoopSource objects can be dispatching tasks on one thread |
| while having a new task scheduled on a different thread. This |
| can for instance occur in WebKitVideoSink, where the timeout |
| callback can be called on main thread while at the same time |
| it is being rescheduled on a different thread (created through |
| GStreamer). |
| |
| The initial solution is to use GMutex to prevent parallel data |
| access from different threads. In the future I plan to look at |
| the possibility of creating thread-specific GMainLoopSource |
| objects that wouldn't require the use of GMutex. |
| |
| GSource, GCancellable and std::function<> objects are now packed |
| into an internal Context structure. Using the C++11 move semantics |
| it's simple to, at the time of dispatch, move the current context |
| out of the GMainLoopSource object in case the dispatch causes a |
| rescheduling on that same object. |
| |
| Also added in the Context struct is a new GCancellable. The pointer |
| of that object is shared with the GMainLoopSource before the Context |
| is moved out for the callback dispatch. This makes it safe to cancel |
| or even delete the GMainLoopSource during the dispatch and prevents |
| use-after-delete on GMainLoopSource once the dispatch is done in |
| the GMainLoopSource::*Callback() methods. |
| |
| All the schedule*() methods and the cancelWithoutLocking() method |
| callers now lock the GMutex to ensure no one else is accessing the |
| data at that moment. Similar goes for the dispatch methods, but those |
| do the dispatch and possible destruction duties with the mutex unlocked. |
| The dispatch can cause rescheduling on the same GMainLoopSource object, |
| which must not be done with a locked mutex. |
| |
| * wtf/gobject/GMainLoopSource.cpp: |
| (WTF::GMainLoopSource::GMainLoopSource): |
| (WTF::GMainLoopSource::~GMainLoopSource): |
| (WTF::GMainLoopSource::cancel): |
| (WTF::GMainLoopSource::cancelWithoutLocking): |
| (WTF::GMainLoopSource::scheduleIdleSource): |
| (WTF::GMainLoopSource::schedule): |
| (WTF::GMainLoopSource::scheduleTimeoutSource): |
| (WTF::GMainLoopSource::scheduleAfterDelay): |
| (WTF::GMainLoopSource::voidCallback): |
| (WTF::GMainLoopSource::boolCallback): |
| (WTF::GMainLoopSource::socketCallback): |
| (WTF::GMainLoopSource::socketSourceCallback): |
| (WTF::GMainLoopSource::Context::destroySource): |
| (WTF::GMainLoopSource::reset): Deleted. |
| (WTF::GMainLoopSource::destroy): Deleted. |
| * wtf/gobject/GMainLoopSource.h: |
| |
| 2014-09-17 Daniel Bates <dabates@apple.com> |
| |
| Unreviewed, rolling out r173695. |
| |
| Broke building third-party Legacy WebKit apps; will |
| investigate offline |
| |
| Reverted changeset: |
| |
| "[iOS] Make WebCore build with public iOS SDK" |
| https://bugs.webkit.org/show_bug.cgi?id=136487 |
| http://trac.webkit.org/changeset/173695 |
| |
| 2014-09-17 Benjamin Poulain <bpoulain@apple.com> |
| |
| CSS value in whitespace-separated list attribute selector (~=) mishandles tab/newline/etc. |
| https://bugs.webkit.org/show_bug.cgi?id=136807 |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::find): |
| |
| 2014-09-17 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Make WebCore build with public iOS SDK |
| https://bugs.webkit.org/show_bug.cgi?id=136487 |
| |
| Reviewed by David Kilzer. |
| |
| Define convenience macro EXTERN_C that can be used to specify the C linkage convention |
| for a declaration. For example, the declaration "EXTERN_C const int x;" will expand to: |
| |
| extern const int x; |
| |
| and |
| |
| extern "C" const int x; |
| |
| when used in a C and C++ file, respectively. |
| |
| * wtf/Compiler.h: |
| |
| 2014-09-16 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, disable native inlining because it causes build failures. |
| |
| * wtf/Platform.h: |
| |
| 2014-09-15 Jer Noble <jer.noble@apple.com> |
| |
| [Mac] Support audioSourceProvider() in MediaPlayerPrivateAVFoundationObjC |
| https://bugs.webkit.org/show_bug.cgi?id=135042 |
| |
| Reviewed by Eric Carlson. |
| |
| * wtf/Platform.h: Add WTF_USE_MEDIATOOLBOX. |
| |
| 2014-09-15 peavo@outlook.com <peavo@outlook.com> |
| |
| [WinCairo] Make it easier to enable/disable GStreamer. |
| https://bugs.webkit.org/show_bug.cgi?id=135766 |
| |
| Reviewed by Brent Fulgham. |
| |
| Make it possible to enable/disable GStreamer by editing the new user macro ENABLE_GSTREAMER_WINCAIRO. |
| |
| * WTF.vcxproj/WTFDebugWinCairo.props: Import GStreamer property file. |
| * WTF.vcxproj/WTFReleaseWinCairo.props: Ditto. |
| * wtf/Platform.h: Enable GStreamer if ENABLE(GSTREAMER_WINCAIRO) is true, otherwise use Media Foundation. |
| |
| 2014-09-10 Jon Honeycutt <jhoneycutt@apple.com> |
| |
| Re-add the request autocomplete feature |
| |
| <https://bugs.webkit.org/show_bug.cgi?id=136730> |
| |
| This feature was rolled out in r148731 because it was only used by |
| Chromium. As we consider supporting this feature, roll it back in, but |
| leave it disabled. |
| |
| This rolls out r148731 (which removed the feature) with small changes |
| needed to make the code build in ToT, to make the tests run, and to |
| remove unused code. |
| |
| Reviewed by Andy Estes. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-09-12 Tim Horton <timothy_horton@apple.com> |
| |
| Swiping back from a Twitter image to Twitter flashes to the wrong position |
| https://bugs.webkit.org/show_bug.cgi?id=136798 |
| <rdar://problem/18324338> |
| |
| Reviewed by Darin Adler and Sam Weinig. |
| |
| * wtf/RunLoop.h: |
| (WTF::RunLoop::TimerBase::startRepeating): |
| Add a std::chrono veresion of RunLoop::TimerBase::startRepeating. |
| |
| 2014-09-12 Geoffrey Garen <ggaren@apple.com> |
| |
| Rolled out r173540. |
| |
| It broke the Membuster performance bot, and it's still slightly profligate |
| with memory. |
| |
| Do the bmalloc. |
| https://bugs.webkit.org/show_bug.cgi?id=132629 |
| |
| * wtf/FastMalloc.cpp: |
| |
| 2014-09-11 Geoffrey Garen <ggaren@apple.com> |
| |
| Do the bmalloc. |
| https://bugs.webkit.org/show_bug.cgi?id=132629 |
| |
| Reviewed by Michael Saboff. |
| |
| 64-bit only for now, just to try it out. |
| |
| * wtf/FastMalloc.cpp: |
| |
| 2014-09-09 Benjamin Poulain <bpoulain@apple.com> |
| |
| Disable the "unreachable-code" warning |
| https://bugs.webkit.org/show_bug.cgi?id=136677 |
| |
| Reviewed by Darin Adler. |
| |
| The warning causes various build errors depending on which Clang you are using. |
| |
| For example, with recent clangs, it breaks all the ARCHS dependent code like this: |
| if (sizeof(uintptr_t) == 4) |
| // Something for 32 bits. |
| else |
| // Somethign for 64 bits. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2014-09-07 Filip Pizlo <fpizlo@apple.com> |
| |
| DFG should have a reusable SSA builder |
| https://bugs.webkit.org/show_bug.cgi?id=136331 |
| |
| Reviewed by Oliver Hunt. |
| |
| Update the alloc() method to use variadic templates. This makes it more natural to use. |
| |
| * wtf/SegmentedVector.h: |
| (WTF::SegmentedVector::alloc): |
| |
| 2014-09-08 Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> |
| |
| Remove FILTERS flag |
| https://bugs.webkit.org/show_bug.cgi?id=136571 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-09-08 Dan Bernstein <mitz@apple.com> |
| |
| HAVE(VOUCHERS) is not available outside of WebKit2 |
| https://bugs.webkit.org/show_bug.cgi?id=136637 |
| |
| Reviewed by Tim Horton. |
| |
| * wtf/Platform.h: Moved the definition of HAVE_VOUCHERS from WebKit2’s config.h here. |
| |
| 2014-09-08 Tim Horton <timothy_horton@apple.com> |
| |
| Try to fix the build after r173383, part 2. |
| |
| * wtf/OSObjectPtr.h: |
| |
| 2014-09-08 Tim Horton <timothy_horton@apple.com> |
| |
| Try to fix the build after r173383. |
| |
| * wtf/OSObjectPtr.h: |
| |
| 2014-09-07 Sam Weinig <sam@webkit.org> |
| |
| Make OSObjectPtr a bit more like RefPtr |
| https://bugs.webkit.org/show_bug.cgi?id=136613 |
| |
| Reviewed by Darin Adler. |
| |
| Address some of Darin's feedback by: |
| - Making the adopting constructor private and friending adoptOSObject(). |
| - Implementing the assignment operator using swap. |
| - Adding a move assignment operator. |
| |
| * wtf/OSObjectPtr.h: |
| (WTF::OSObjectPtr::operator=): |
| (WTF::OSObjectPtr::swap): |
| (WTF::OSObjectPtr::OSObjectPtr): |
| |
| 2014-09-08 Jessie Berlin <jberlin@apple.com> |
| |
| More build fixes after r173374. |
| |
| * wtf/dtoa/strtod.cc: |
| |
| 2014-09-08 Jessie Berlin <jberlin@apple.com> |
| |
| Build fix after r173374. |
| |
| * wtf/dtoa/strtod.cc: |
| |
| 2014-09-08 Jessie Berlin <jberlin@apple.com> |
| |
| Speculative build fix after r173364. |
| |
| * wtf/dtoa/strtod.cc: |
| |
| 2014-09-07 Maciej Stachowiak <mjs@apple.com> |
| |
| Introduce COMPILER_QUIRK(CONSIDERS_UNREACHABLE_CODE) and use it |
| https://bugs.webkit.org/show_bug.cgi?id=136616 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Compiler.h: Define the quirk for all compilers but clang. |
| |
| 2014-09-06 Sam Weinig <sam@webkit.org> |
| |
| XPCPtr should be converted into an all purpose smart pointer for os_objects |
| https://bugs.webkit.org/show_bug.cgi?id=136602 |
| |
| Reviewed by Darin Adler. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/OSObjectPtr.h: Copied from Source/WebKit2/Platform/IPC/mac/XPCPtr.h. |
| (WTF::retainOSObject): |
| (WTF::releaseOSObject): |
| (WTF::OSObjectPtr::OSObjectPtr): |
| (WTF::OSObjectPtr::~OSObjectPtr): |
| (WTF::OSObjectPtr::operator=): |
| (WTF::adoptOSObject): |
| (IPC::XPCPtr::XPCPtr): Deleted. |
| (IPC::XPCPtr::~XPCPtr): Deleted. |
| (IPC::XPCPtr::operator=): Deleted. |
| (IPC::adoptXPC): Deleted. |
| Rename/move XPCPtr to OSObjectPtr and make it work with any os_object. |
| |
| 2014-09-06 Darin Adler <darin@apple.com> |
| |
| Make updates suggested by new version of Xcode |
| https://bugs.webkit.org/show_bug.cgi?id=136603 |
| |
| Reviewed by Mark Rowe. |
| |
| * Configurations/Base.xcconfig: Added CLANG_WARN_UNREACHABLE_CODE, |
| COMBINE_HIDPI_IMAGES, and ENABLE_STRICT_OBJC_MSGSEND as suggested by |
| Xcode upgrade check. |
| |
| * WTF.xcodeproj/project.pbxproj: Updated LastUpgradeCheck. |
| |
| 2014-09-05 Geoffrey Garen <ggaren@apple.com> |
| |
| bmalloc should honor the FastMalloc statistics API |
| https://bugs.webkit.org/show_bug.cgi?id=136592 |
| |
| Reviewed by Gavin Barraclough. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::fastMallocStatistics): |
| |
| 2014-09-05 Geoffrey Garen <ggaren@apple.com> |
| |
| bmalloc should honor the FastMalloc scavenging API |
| https://bugs.webkit.org/show_bug.cgi?id=136588 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::releaseFastMallocFreeMemory): |
| |
| 2014-09-05 Geoffrey Garen <ggaren@apple.com> |
| |
| Rolled out <http://trac.webkit.org/changeset/173313>. |
| |
| It seems to have broken the PLT bot. |
| |
| Do the bmalloc. |
| https://bugs.webkit.org/show_bug.cgi?id=132629 |
| |
| * wtf/FastMalloc.cpp: |
| |
| 2014-06-06 Jer Noble <jer.noble@apple.com> |
| |
| Refactoring: make MediaTime the primary time type for audiovisual times. |
| https://bugs.webkit.org/show_bug.cgi?id=133579 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a unary minus operator, and add unimplemented private casting operators, to make |
| unintentional double->MediaTime and MediaTime->double casts hard errors. |
| |
| * wtf/MediaTime.cpp: |
| (WTF::MediaTime::operator-): |
| * wtf/MediaTime.h: |
| |
| 2014-09-04 Geoffrey Garen <ggaren@apple.com> |
| |
| Do the bmalloc. |
| https://bugs.webkit.org/show_bug.cgi?id=132629 |
| |
| Reviewed by Michael Saboff. |
| |
| 64-bit only for now, just to try it out. |
| |
| * wtf/FastMalloc.cpp: |
| |
| 2014-09-05 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com> |
| |
| Enable GenGC on ARM Traditional |
| https://bugs.webkit.org/show_bug.cgi?id=136567 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/Platform.h: |
| |
| 2014-09-04 Filip Pizlo <fpizlo@apple.com> |
| |
| Beef up the DFG's CFG analyses to include iterated dominance frontiers and more user-friendly BlockSets |
| https://bugs.webkit.org/show_bug.cgi?id=136520 |
| |
| Fix bug found in Geoff's review but not landed in previous commit. |
| |
| * wtf/BitVector.cpp: |
| (WTF::BitVector::equalsSlowCaseFast): return true. |
| |
| 2014-09-03 Filip Pizlo <fpizlo@apple.com> |
| |
| Beef up the DFG's CFG analyses to include iterated dominance frontiers and more user-friendly BlockSets |
| https://bugs.webkit.org/show_bug.cgi?id=136520 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Give BitVector a way to quickly find the next set (or unset) bit. Make BitVector equality |
| faster. Fix a minor closure goof in Spectrum. |
| |
| * wtf/BitVector.cpp: |
| (WTF::BitVector::equalsSlowCase): |
| (WTF::BitVector::equalsSlowCaseFast): |
| (WTF::BitVector::equalsSlowCaseSimple): |
| * wtf/BitVector.h: |
| (WTF::BitVector::findBit): |
| (WTF::BitVector::findBitFast): |
| (WTF::BitVector::findBitSimple): |
| (WTF::BitVector::findBitInWord): |
| * wtf/Spectrum.h: |
| (WTF::Spectrum::removeIf): |
| |
| 2014-09-04 Anders Carlsson <andersca@apple.com> |
| |
| Make hash table classes final |
| https://bugs.webkit.org/show_bug.cgi?id=136540 |
| |
| Reviewed by Antti Koivisto. |
| |
| We don't want anybody inheriting from these classes, so make them final. |
| |
| * wtf/HashCountedSet.h: |
| * wtf/HashMap.h: |
| * wtf/HashSet.h: |
| |
| 2014-09-04 Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> |
| |
| Remove CSS_FILTERS flag |
| https://bugs.webkit.org/show_bug.cgi?id=136529 |
| |
| Reviewed by Dirk Schulze. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-09-04 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r173201. |
| https://bugs.webkit.org/show_bug.cgi?id=136538 |
| |
| Improves the situation but also introduces additional crashes. |
| (Requested by zdobersek on #webkit). |
| |
| Reverted changeset: |
| |
| "GMainLoopSource is exposed to race conditions" |
| https://bugs.webkit.org/show_bug.cgi?id=135800 |
| http://trac.webkit.org/changeset/173201 |
| |
| 2014-09-04 Pratik Solanki <psolanki@apple.com> |
| |
| Remove iOS specific disk image cache |
| https://bugs.webkit.org/show_bug.cgi?id=136517 |
| |
| Reviewed by Antti Koivisto. |
| |
| Disk image cache code unnecessarily complicates SharedBuffer implementation. We can remove |
| this now since we don't enable it in WebKit2 on iOS. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-09-03 Dan Bernstein <mitz@apple.com> |
| |
| Get rid of HIGH_DPI_CANVAS leftovers |
| https://bugs.webkit.org/show_bug.cgi?id=136491 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/FeatureDefines.h: Removed definition of ENABLE_HIGH_DPI_CANVAS. |
| |
| 2014-09-03 Zan Dobersek <zdobersek@igalia.com> |
| |
| GMainLoopSource is exposed to race conditions |
| https://bugs.webkit.org/show_bug.cgi?id=135800 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| GMainLoopSource objects can be dispatching tasks on one thread |
| while having a new task scheduled on a different thread. This |
| can for instance occur in WebKitVideoSink, where the timeout |
| callback can be called on main thread while at the same time |
| it is being rescheduled on a different thread (created through |
| GStreamer). |
| |
| The initial solution is to use GMutex to prevent parallel data |
| access from different threads. In the future I plan to add better |
| assertions, some meaningful comments and look at the possibility |
| of creating thread-specific GMainLoopSource objects that wouldn't |
| require the use of GMutex. |
| |
| GSource, GCancellable and std::function<> objects are now packed |
| into an internal Context structure. Using the C++11 move semantics |
| it's simple to, at the time of dispatch, move the current context |
| out of the GMainLoopSource object in case the dispatch causes a |
| rescheduling on that same object. |
| |
| All the schedule*() methods and the cancelInternal() method callers |
| now lock the GMutex to ensure no one else is accessing the data at |
| that moment. Similar goes for the dispatch methods, but those do |
| the dispatch and possible destruction duties with the mutex unlocked. |
| The dispatch can cause rescheduling on the same GMainLoopSource object, |
| which must not be done with a locked mutex. |
| |
| * wtf/gobject/GMainLoopSource.cpp: |
| (WTF::GMainLoopSource::GMainLoopSource): |
| (WTF::GMainLoopSource::~GMainLoopSource): |
| (WTF::GMainLoopSource::cancel): |
| (WTF::GMainLoopSource::cancelInternal): |
| (WTF::GMainLoopSource::scheduleIdleSource): |
| (WTF::GMainLoopSource::schedule): |
| (WTF::GMainLoopSource::scheduleTimeoutSource): |
| (WTF::GMainLoopSource::scheduleAfterDelay): |
| (WTF::GMainLoopSource::voidCallback): |
| (WTF::GMainLoopSource::boolCallback): |
| (WTF::GMainLoopSource::socketCallback): |
| (WTF::GMainLoopSource::destroy): |
| (WTF::GMainLoopSource::reset): Deleted. |
| * wtf/gobject/GMainLoopSource.h: |
| |
| 2014-09-02 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Support using Foundation networking code |
| https://bugs.webkit.org/show_bug.cgi?id=136467 |
| |
| Reviewed by Pratik Solanki. |
| |
| Disable USE(CFNETWORK) and use the Foundation networking code by default when building |
| iOS WebKit without the Apple Internal SDK. |
| |
| * wtf/Platform.h: |
| |
| 2014-08-26 Maciej Stachowiak <mjs@apple.com> |
| |
| Use RetainPtr::autorelease in some places where it seems appropriate |
| https://bugs.webkit.org/show_bug.cgi?id=136280 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/text/mac/StringImplMac.mm: |
| (WTF::StringImpl::operator NSString *): Use autorelease() instead of |
| CFBridgingRelease(leakRef()) |
| |
| 2014-08-29 Joseph Pecoraro <pecoraro@apple.com> |
| |
| JavaScriptCore: Use ASCIILiteral where possible |
| https://bugs.webkit.org/show_bug.cgi?id=136179 |
| |
| Reviewed by Michael Saboff. |
| |
| * wtf/text/WTFString.cpp: |
| (asciiDebug): |
| |
| 2014-08-27 Filip Pizlo <fpizlo@apple.com> |
| |
| DFG should compute immediate dominators using the O(n log n) form of Lengauer and Tarjan's "A Fast Algorithm for Finding Dominators in a Flowgraph" |
| https://bugs.webkit.org/show_bug.cgi?id=93361 |
| |
| Reviewed by Mark Hahnenberg. |
| |
| Make BitVector operations return the previous value of the bit you're changing. This is |
| useful for the kinds of set operations that are commonplace in compiler graph searches. |
| |
| * wtf/BitVector.h: |
| (WTF::BitVector::quickSet): |
| (WTF::BitVector::quickClear): |
| (WTF::BitVector::set): |
| (WTF::BitVector::ensureSizeAndSet): |
| (WTF::BitVector::clear): |
| |
| 2014-08-27 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL should be able to do polymorphic call inlining |
| https://bugs.webkit.org/show_bug.cgi?id=135145 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add some power that I need for call edge profiling. |
| |
| * wtf/OwnPtr.h: |
| (WTF::OwnPtr<T>::createTransactionally): |
| * wtf/Spectrum.h: |
| (WTF::Spectrum::add): |
| (WTF::Spectrum::addAll): |
| (WTF::Spectrum::get): |
| (WTF::Spectrum::size): |
| (WTF::Spectrum::KeyAndCount::KeyAndCount): |
| (WTF::Spectrum::clear): |
| (WTF::Spectrum::removeIf): |
| |
| 2014-08-27 Nico Weber <thakis@chromium.org> |
| |
| Delete a MSVS2010 workaround. |
| https://bugs.webkit.org/show_bug.cgi?id=136321 |
| |
| Reviewed by Benjamin Poulain. |
| |
| Ports https://codereview.chromium.org/512923004/ by the talented |
| Nico Weber from Blink. No intended behavior change. |
| |
| * wtf/Vector.h: |
| (WTF::=): |
| |
| 2014-08-27 Mark Rowe <mrowe@apple.com> |
| |
| JavaScriptCore is missing debug info for WTF because libWTF.a is stripped. |
| <https://webkit.org/b/136320> / <rdar://problem/18148776> |
| |
| Reviewed by Dan Bernstein. |
| |
| * Configurations/WTF.xcconfig: Set STRIP_INSTALLED_PRODUCT = NO for the target |
| that produces libWTF.a so that the debug symbols will be linked into JavaScriptCore |
| and end up in its dSYM file. |
| |
| 2014-08-26 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r172940. |
| https://bugs.webkit.org/show_bug.cgi?id=136256 |
| |
| Caused assertions on fast/storage/serialized-script- |
| value.html, and possibly flakiness on more tests (Requested by |
| ap on #webkit). |
| |
| Reverted changeset: |
| |
| "FTL should be able to do polymorphic call inlining" |
| https://bugs.webkit.org/show_bug.cgi?id=135145 |
| http://trac.webkit.org/changeset/172940 |
| |
| 2014-08-23 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL should be able to do polymorphic call inlining |
| https://bugs.webkit.org/show_bug.cgi?id=135145 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add some power that I need for call edge profiling. |
| |
| * wtf/OwnPtr.h: |
| (WTF::OwnPtr<T>::createTransactionally): |
| * wtf/Spectrum.h: |
| (WTF::Spectrum::add): |
| (WTF::Spectrum::addAll): |
| (WTF::Spectrum::get): |
| (WTF::Spectrum::size): |
| (WTF::Spectrum::KeyAndCount::KeyAndCount): |
| (WTF::Spectrum::clear): |
| (WTF::Spectrum::removeIf): |
| |
| 2014-08-25 Tomas Popela <tpopela@redhat.com> |
| |
| Add support for little-endian PowerPC64 |
| https://bugs.webkit.org/show_bug.cgi?id=135647 |
| |
| Reviewed by Oliver Hunt. |
| |
| * wtf/Platform.h: |
| * wtf/dtoa/utils.h: |
| |
| 2014-08-24 Zan Dobersek <zdobersek@igalia.com> |
| |
| GenericHashTraits::peek() is producing copies of passed-in temporary values |
| https://bugs.webkit.org/show_bug.cgi?id=131461 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/HashTraits.h: |
| (WTF::GenericHashTraits::peek): Make this method a template that passes through |
| the passed-in value without copying, achieved by using universal references and |
| std::forward<>(). |
| |
| 2014-08-22 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Disable ENABLE_IOS_{GESTURE, TOUCH}_EVENTS, and temporarily disable ENABLE_TOUCH_EVENTS |
| and ENABLE_XSLT when building with the iOS public SDK |
| https://bugs.webkit.org/show_bug.cgi?id=135945 |
| |
| Reviewed by Andy Estes. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-08-22 Akos Kiss <akiss@inf.u-szeged.hu> |
| |
| Enable fixed executable allocator for any ARM64 target. |
| https://bugs.webkit.org/show_bug.cgi?id=136162 |
| |
| Reviewed by Michael Saboff. |
| |
| The ARM64 macro assembler relies on near calls being implemented by BL |
| instructions, which have only 128MB offset range from PC. The |
| on-demand executable allocator cannot ensure that any two locations in |
| memory allocated for the JIT-compiled code are within this range. |
| However, the fixed executable allocator has a fixed 16MB memory pool for |
| ARM64. |
| |
| * wtf/Platform.h: |
| Define ENABLE_EXECUTABLE_ALLOCATOR_FIXED if CPU(ARM64), and update |
| attached comment. |
| |
| 2014-08-22 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r172844. |
| https://bugs.webkit.org/show_bug.cgi?id=136164 |
| |
| re-applying WEBCORE_EXPORTS patch (Requested by |
| alexchristensen on #webkit). |
| |
| Reverted changeset: |
| |
| "Revert r172831, it broke the Windows build." |
| http://trac.webkit.org/changeset/172844 |
| |
| 2014-08-22 Jon Lee <jonlee@apple.com> |
| |
| Fix iOS build due to r172832 and move RUBBER_BANDING out of FeatureDefines.h |
| https://bugs.webkit.org/show_bug.cgi?id=136157 |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/FeatureDefines.h: Remove ENABLE(RUBBER_BANDING) logic for Mac platform. |
| |
| 2014-08-21 Tim Horton <timothy_horton@apple.com> |
| |
| Revert r172831, it broke the Windows build. |
| |
| * wtf/ExportMacros.h: |
| |
| 2014-08-21 Zalan Bujtas <zalan@apple.com> |
| |
| Enable SATURATED_LAYOUT_ARITHMETIC. |
| https://bugs.webkit.org/show_bug.cgi?id=136106 |
| |
| Reviewed by Simon Fraser. |
| |
| SATURATED_LAYOUT_ARITHMETIC protects LayoutUnit against arithmetic overflow. |
| (No measurable performance regression on Mac.) |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-08-21 Alex Christensen <achristensen@webkit.org> |
| |
| More WEBCORE_EXPORT macros. |
| https://bugs.webkit.org/show_bug.cgi?id=136129 |
| |
| Reviewed by Tim Horton. |
| |
| * wtf/ExportMacros.h: |
| Removed WTF_TESTING which isn't used. |
| |
| 2014-08-20 Akos Kiss <akiss@inf.u-szeged.hu> |
| |
| Enable ARM64 disassembler on EFL |
| https://bugs.webkit.org/show_bug.cgi?id=136089 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/Platform.h: |
| Enable WTF_USE_ARM64_DISASSEMBLER for EFL as well. |
| |
| 2014-08-19 Pratik Solanki <psolanki@apple.com> |
| |
| Remove PurgeableBuffer since it is not very useful any more |
| https://bugs.webkit.org/show_bug.cgi?id=135939 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Platform.h: Remove ENABLE_PURGEABLE_MEMORY define. |
| * wtf/VMTags.h: Remove VM tags used by WebCore for cached resource purgeable memory. |
| |
| 2014-08-19 Magnus Granberg <zorry@gentoo.org> |
| |
| TEXTREL in libjavascriptcoregtk-1.0.so.0.11.0 on x86 (or i586) |
| https://bugs.webkit.org/show_bug.cgi?id=70610 |
| |
| Reviewed by Darin Adler. |
| |
| Add PLT if we're building with PIC. |
| |
| * wtf/InlineASM.h: |
| |
| 2014-08-19 Zalan Bujtas <zalan@apple.com> |
| |
| Remove ENABLE(SUBPIXEL_LAYOUT). |
| https://bugs.webkit.org/show_bug.cgi?id=136077 |
| |
| Reviewed by Simon Fraser. |
| |
| Remove compile time flag SUBPIXEL_LAYOUT. All ports have it enabled for a while now. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-08-18 Maciej Stachowiak <mjs@apple.com> |
| |
| Use NSURLFileTypeMappings directly instead of depending on WebKitSystemInterface wrappers for it |
| https://bugs.webkit.org/show_bug.cgi?id=136035 |
| |
| Reviewed by Dan Bernstein. |
| |
| * wtf/Platform.h: Define USE(APPLE_INTERNAL_SDK) by default on platforms that have it. |
| |
| 2014-08-18 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r172736. |
| https://bugs.webkit.org/show_bug.cgi?id=136060 |
| |
| Caused 14% PLT regressions (Requested by rniwa on #webkit). |
| |
| Reverted changeset: |
| |
| "Remove PurgeableBuffer since it is not very useful any more" |
| https://bugs.webkit.org/show_bug.cgi?id=135939 |
| http://trac.webkit.org/changeset/172736 |
| |
| 2014-08-18 Pratik Solanki <psolanki@apple.com> |
| |
| Remove PurgeableBuffer since it is not very useful any more |
| https://bugs.webkit.org/show_bug.cgi?id=135939 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Platform.h: Remove ENABLE_PURGEABLE_MEMORY define. |
| * wtf/VMTags.h: Remove VM tags used by WebCore for cached resource purgeable memory. |
| |
| 2014-08-14 Benjamin Poulain <benjamin@webkit.org> |
| |
| CSS JIT: compile the :empty pseudo class |
| https://bugs.webkit.org/show_bug.cgi?id=135958 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::lengthMemoryOffset): |
| |
| 2014-08-12 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Elements whose contents start with an astral Unicode symbol disappear when CSS `::first-letter` is applied to them |
| https://bugs.webkit.org/show_bug.cgi?id=135756 |
| |
| Reviewed by Darin Adler. |
| |
| Add a method to StringView which passes through contains() to find(). |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::contains): |
| |
| 2014-08-12 Pratik Solanki <psolanki@apple.com> |
| |
| Enable didReceiveDataArray callback on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=135554 |
| <rdar://problem/9170731> |
| |
| Reviewed by Andreas Kling. |
| |
| Enable WTF_USE_NETWORK_CFDATA_ARRAY_CALLBACK for all Cocoa platforms so that we use the same |
| code path for Mac and iOS. |
| |
| * wtf/Platform.h: |
| |
| 2014-08-12 Alex Christensen <achristensen@webkit.org> |
| |
| Generate header detection headers for CMake on Windows. |
| https://bugs.webkit.org/show_bug.cgi?id=135807 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/CMakeLists.txt: |
| * wtf/PlatformWin.cmake: |
| Generate and include a stub WTFHeaderDetection.h. |
| |
| 2014-08-11 Andy Estes <aestes@apple.com> |
| |
| [iOS] Get rid of iOS.xcconfig |
| https://bugs.webkit.org/show_bug.cgi?id=135809 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| All iOS.xcconfig did was include AspenFamily.xcconfig, so there's no need for the indirection. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/iOS.xcconfig: Removed. |
| * WTF.xcodeproj/project.pbxproj: |
| |
| 2014-08-12 Zan Dobersek <zdobersek@igalia.com> |
| |
| Clean up GMutexLocker |
| https://bugs.webkit.org/show_bug.cgi?id=135833 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Place the GMutexLocker into the WTF namespace. There's no need for this |
| class to use FastMalloc since it's always allocated on the stack. The |
| constructor and class now operate on a GMutex reference. There's little |
| need for an additional inline specifier for methods defined in the header. |
| The mutex() method is removed as it was not used. m_val is renamed to a |
| more descriptive m_locked and is made a boolean. |
| |
| * wtf/gobject/GMutexLocker.h: |
| (WTF::GMutexLocker::GMutexLocker): |
| (WTF::GMutexLocker::~GMutexLocker): |
| (WTF::GMutexLocker::lock): |
| (WTF::GMutexLocker::unlock): |
| (WebCore::GMutexLocker::GMutexLocker): Deleted. |
| (WebCore::GMutexLocker::~GMutexLocker): Deleted. |
| (WebCore::GMutexLocker::lock): Deleted. |
| (WebCore::GMutexLocker::unlock): Deleted. |
| (WebCore::GMutexLocker::mutex): Deleted. |
| |
| 2014-08-12 Zan Dobersek <zdobersek@igalia.com> |
| |
| Make GRefPtr move-able |
| https://bugs.webkit.org/show_bug.cgi?id=135801 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| Add move constructor and move assignment operator for GRefPtr. |
| |
| * wtf/gobject/GRefPtr.h: |
| (WTF::GRefPtr::GRefPtr): |
| (WTF::=): |
| |
| 2014-08-10 Benjamin Poulain <benjamin@webkit.org> |
| |
| Update HashTable's operator= after r172167 per review comments |
| |
| * wtf/HashTable.h: |
| Update the type as suggested by Darin. |
| |
| 2014-08-07 Benjamin Poulain <bpoulain@apple.com> |
| |
| Get rid of SCRIPTED_SPEECH |
| https://bugs.webkit.org/show_bug.cgi?id=135729 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-08-07 Benjamin Poulain <bpoulain@apple.com> |
| |
| Get rid of INPUT_SPEECH |
| https://bugs.webkit.org/show_bug.cgi?id=135672 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-08-06 Dean Jackson <dino@apple.com> |
| |
| ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED is not used anywhere. Remove it. |
| https://bugs.webkit.org/show_bug.cgi?id=135675 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-08-06 Benjamin Poulain <benjamin@webkit.org> |
| |
| HashTable based classes leak a lot |
| https://bugs.webkit.org/show_bug.cgi?id=135638 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/HashTable.h: |
| The operator= taking a rvalue reference was never freeing the memory allocated |
| for the table of the left hand side object. |
| |
| This patch fixes the leaks by doing an alloc+swap with a new object. |
| The object temp gets the reference to m_table, and destroys it in the regular destructor |
| when going out of scope. |
| |
| Kudos to Pratik Solanki for finding the leaks. |
| |
| 2014-08-06 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com> |
| |
| [JSC] Build fix for FTL on EFL after ftlopt merge |
| https://bugs.webkit.org/show_bug.cgi?id=135565 |
| |
| Reviewed by Mark Lam. |
| |
| Added ENABLE(FTL_NATIVE_CALL_INLINING). |
| |
| * wtf/Platform.h: |
| |
| 2014-08-04 Alex Christensen <achristensen@webkit.org> |
| |
| Progress towards CMake on Mac. |
| https://bugs.webkit.org/show_bug.cgi?id=135528 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| * wtf/CMakeLists.txt: |
| Include text directory. |
| * wtf/PlatformMac.cmake: Added. |
| |
| 2014-07-31 Alex Christensen <achristensen@webkit.org> |
| |
| Progress towards cmake on Windows. |
| https://bugs.webkit.org/show_bug.cgi?id=135484 |
| |
| Reviewed by Martin Robinson. |
| |
| * wtf/CMakeLists.txt: |
| Added WTF_LIBRARY_TYPE because Windows needs WTF to be a shared library. |
| |
| 2014-07-30 Andreas Kling <akling@apple.com> |
| |
| PropertyName's internal string is always atomic. |
| <https://webkit.org/b/135451> |
| |
| Remove AtomicString::findStringWithHash() since nobody uses it anymore. |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::findString): Deleted. |
| (WTF::AtomicString::findStringWithHash): Deleted. |
| * wtf/text/AtomicString.h: |
| |
| 2014-07-30 Andy Estes <aestes@apple.com> |
| |
| USE(CONTENT_FILTERING) should be ENABLE(CONTENT_FILTERING) |
| https://bugs.webkit.org/show_bug.cgi?id=135439 |
| |
| Reviewed by Tim Horton. |
| |
| We now support two different platform content filters, and will soon support a mock content filter (as part of |
| webkit.org/b/128858). This makes content filtering a feature of WebKit, not just an adoption of a third-party |
| library. ENABLE() is the correct macro to use for such a feature. |
| |
| * wtf/Platform.h: |
| |
| 2014-07-29 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Modify version numbering scheme to support 5-tuple versions |
| https://bugs.webkit.org/show_bug.cgi?id=135400 |
| <rdar://problem/17849033> |
| |
| Reviewed by David Kilzer. |
| |
| * WTF.vcxproj/WTFPostBuild.cmd: Use new version-stamp.pl script |
| to version WTF.dll. |
| * WTF.vcxproj/WTFPreBuild.cmd: Make sure we have created the |
| appropriate version resource during builds. |
| |
| 2014-07-29 Daniel Bates <dabates@apple.com> |
| |
| Use WTF::move() instead of std::move() to help ensure move semantics |
| https://bugs.webkit.org/show_bug.cgi?id=135351 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * wtf/HashTable.h: |
| (WTF::KeyTraits>::HashTable): |
| |
| 2014-07-28 Brian J. Burg <burg@cs.washington.edu> |
| |
| Should not export symbols for base64Encode inline adapter methods |
| https://bugs.webkit.org/show_bug.cgi?id=135355 |
| |
| Unreviewed build fix. |
| |
| Fixes the build break introduced by r171682, where a base64Encode |
| inline adapter method was used in another header, thus creating |
| multiple definitions of it (and problems with with weak symbols). |
| |
| * wtf/text/Base64.h: Remove WTF_EXPORT_PRIVATE for inlined methods. |
| |
| 2014-07-27 Filip Pizlo <fpizlo@apple.com> |
| |
| Merge r170090, r170092, r170129, r170141, r170161, r170215, r170275, r170375, r170376, r170382, r170383, r170399, r170436, r170489, r170490, r170556 from ftlopt. |
| |
| * wtf/text/WTFString.h: |
| |
| 2014-07-26 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, roll out r171641-r171644. It broke some tests; will investigate and |
| reland later. |
| |
| * wtf/text/WTFString.h: |
| |
| 2014-07-25 Filip Pizlo <fpizlo@apple.com> |
| |
| Attempt to fix Windows. |
| |
| * wtf/text/WTFString.h: |
| |
| 2014-07-25 Gavin Barraclough <baraclough@apple.com> |
| |
| Yosemite version number is 101000 |
| https://bugs.webkit.org/show_bug.cgi?id=135301 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/FeatureDefines.h: |
| * wtf/Platform.h: |
| |
| 2014-07-23 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Use NO_RETURN_DUE_TO_CRASH on Windows. |
| https://bugs.webkit.org/show_bug.cgi?id=13519 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/Assertions.h: Add MSVC to list of compilers supporting this macro. |
| * wtf/FastMalloc.cpp: Correct function declaration for NO_RETURN_DUE_TO_CRASH. |
| |
| 2014-07-22 Filip Pizlo <fpizlo@apple.com> |
| |
| Merge r169148, r169185, r169188, r169578, r169582, r169584, r169588, r169753 from ftlopt. |
| |
| 2014-06-04 Filip Pizlo <fpizlo@apple.com> |
| |
| [ftlopt] AI should be able track structure sets larger than 1 |
| https://bugs.webkit.org/show_bug.cgi?id=128073 |
| |
| Reviewed by Oliver Hunt. |
| |
| * wtf/Bag.h: |
| (WTF::Bag::Node::Node): |
| (WTF::Bag::add): |
| |
| 2014-07-22 Filip Pizlo <fpizlo@apple.com> |
| |
| Merge r168635, r168780, r169005, r169014, and r169143 from ftlopt. |
| |
| 2014-05-20 Filip Pizlo <fpizlo@apple.com> |
| |
| [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 |
| https://bugs.webkit.org/show_bug.cgi?id=133105 |
| |
| Reviewed by Michael Saboff. |
| |
| * wtf/Bag.h: |
| (WTF::Bag::iterator::operator!=): |
| |
| 2014-07-19 Zan Dobersek <zdobersek@igalia.com> |
| |
| [WTF] Add the move constructor, move assignment operator for HashTable |
| https://bugs.webkit.org/show_bug.cgi?id=130772 |
| |
| Reviewed by Darin Adler. |
| |
| HashTable has both copy constructor and copy assignment operator, meaning that the move constructor |
| and move assignment operator are implicitly deleted. This patch defines both to avoid unnecessary |
| copies when moves can be performed. |
| |
| * wtf/HashTable.h: |
| (WTF::KeyTraits>::HashTable): |
| |
| 2014-07-15 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r171107. |
| https://bugs.webkit.org/show_bug.cgi?id=134959 |
| |
| This was not the problem! (Requested by kling on #webkit). |
| |
| Reverted changeset: |
| |
| "Revert: Run the FastMalloc scavenger thread on iOS as well." |
| https://bugs.webkit.org/show_bug.cgi?id=134927 |
| http://trac.webkit.org/changeset/171107 |
| |
| 2014-07-15 Andreas Kling <akling@apple.com> |
| |
| Revert: Run the FastMalloc scavenger thread on iOS as well. |
| <https://webkit.org/b/134927> |
| <rdar://problem/17485079> |
| |
| This appears to be the cause of some elusive crashes, and since I don't |
| have a way to reproduce them, let's just go back to not running the |
| scavenger thread on iOS. |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/FastMalloc.cpp: |
| |
| 2014-07-13 Filip Pizlo <fpizlo@apple.com> |
| |
| HashMap should have removeIf() |
| https://bugs.webkit.org/show_bug.cgi?id=134870 |
| |
| Reviewed by Sam Weinig. |
| |
| Expose a new HashMap method, called removeIf(), which allows you to do an efficient |
| pass over the map and remove a bunch of things at once. This is used by DFG GCSE as |
| part of https://bugs.webkit.org/show_bug.cgi?id=134677. |
| |
| * wtf/HashMap.h: |
| (WTF::X>::removeIf): |
| * wtf/HashTable.h: |
| (WTF::KeyTraits>::removeIf): |
| |
| 2014-07-11 peavo@outlook.com <peavo@outlook.com> |
| |
| [Win] Enable DFG JIT. |
| https://bugs.webkit.org/show_bug.cgi?id=123615 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/Platform.h: |
| |
| 2014-07-11 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r170995. |
| https://bugs.webkit.org/show_bug.cgi?id=134831 |
| |
| Causing odd crashes in debug builds (Requested by zdobersek on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "[WTF] Add the move constructor, move assignment operator for |
| HashTable" |
| https://bugs.webkit.org/show_bug.cgi?id=130772 |
| http://trac.webkit.org/changeset/170995 |
| |
| 2014-07-09 Zan Dobersek <zdobersek@igalia.com> |
| |
| [WTF] Add the move constructor, move assignment operator for HashTable |
| https://bugs.webkit.org/show_bug.cgi?id=130772 |
| |
| Reviewed by Darin Adler. |
| |
| HashTable has both copy constructor and copy assignment operator, meaning that the move constructor |
| and move assignment operator are implicitly deleted. This patch defines both to avoid unnecessary |
| copies when moves can be performed. |
| |
| * wtf/HashTable.h: |
| (WTF::KeyTraits>::HashTable): |
| |
| 2014-07-10 Alex Christensen <achristensen@webkit.org> |
| |
| Enable same features on all Windows ports. |
| https://bugs.webkit.org/show_bug.cgi?id=134715 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/Platform.h: |
| Use REQUEST_ANIMATION_FRAME_TIMER on WinCairo. |
| |
| 2014-07-09 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Unreviewed build fix after r170930. |
| |
| * WTF.vcxproj/copy-files.cmd: Include cf files in |
| post-build copy operation. |
| |
| 2014-07-09 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Remove uses of 'bash' in build system |
| https://bugs.webkit.org/show_bug.cgi?id=134782 |
| <rdar://problem/17615533> |
| |
| Reviewed by Dean Jackson. |
| |
| Remove uses of 'bash' by replacing Windows-specific bash scripts |
| with Perl equivalents. |
| |
| * WTF.vcxproj/WTFGenerated.make: |
| * WTF.vcxproj/WTFGenerated.vcxproj: |
| * WTF.vcxproj/WTFGenerated.vcxproj.filters: |
| * WTF.vcxproj/WTFPreBuild.cmd: |
| * WTF.vcxproj/build-generated-files.pl: Copied from Source/WTF/WTF.vcxproj/build-generated-files.sh. |
| * WTF.vcxproj/build-generated-files.sh: Removed. |
| |
| 2014-07-09 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Remove use of 'grep' in build steps |
| https://bugs.webkit.org/show_bug.cgi?id=134770 |
| <rdar://problem/17608783> |
| |
| Reviewed by Tim Horton. |
| |
| Replace uses of the grep command in Windows builds with the equivalent |
| Perl program. |
| |
| * WTF.vcxproj/WTFPreBuild.cmd: |
| |
| 2014-07-07 Zan Dobersek <zdobersek@igalia.com> |
| |
| Enable ARMv7 disassembler for the GTK port |
| https://bugs.webkit.org/show_bug.cgi?id=134676 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/Platform.h: Enable the ARMv7 disassembler for the GTK port when |
| targeting the ARMv7 architecture. |
| |
| 2014-07-06 Yoav Weiss <yoav@yoav.ws> |
| |
| Turn on img@sizes compile flag |
| https://bugs.webkit.org/show_bug.cgi?id=134634 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/FeatureDefines.h: Added compile flag definition. |
| |
| 2014-07-03 Gyuyoung Kim <gyuyoung.kim@samsung.com> |
| |
| Unreivewed, fix build break on EFL and GTK since r170767. |
| |
| * wtf/CMakeLists.txt: Exclude Decoder.h and Encoder.h because those files were removed. |
| |
| 2014-07-03 Daniel Bates <dabates@apple.com> |
| |
| Add WTF::move() |
| https://bugs.webkit.org/show_bug.cgi?id=134500 |
| |
| Reviewed by Darin Adler. |
| |
| Substitution of WTF::move() for std::move() rubber-stamped by Anders Carlsson. |
| |
| Implement WTF::move(), a replacement for std::move(). WTF::move() is less error |
| prone than std::move() as it compile asserts that its argument is a non-const |
| lvalue reference before ultimately casting it to a rvalue reference (via std::move). |
| |
| * wtf/Deque.h: Substitute WTF::move() for std::move(). |
| * wtf/HashMap.h: Ditto. |
| * wtf/HashSet.h: Ditto. |
| * wtf/HashTable.h: Ditto. |
| * wtf/IteratorAdaptors.h: Ditto. |
| * wtf/IteratorRange.h: Ditto. |
| * wtf/ListHashSet.h: Ditto. |
| * wtf/MainThread.cpp: Ditto. |
| [...] |
| * wtf/StdLibExtras.h: |
| (WTF::move): Added. |
| [...] |
| |
| 2014-07-03 Anders Carlsson <andersca@apple.com> |
| |
| Get rid of Encoder.h and Decoder.h from WTF |
| https://bugs.webkit.org/show_bug.cgi?id=134600 |
| |
| Reviewed by Darin Adler. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/Decoder.h: Removed. |
| * wtf/Encoder.h: Removed. |
| |
| 2014-07-03 Ryuan Choi <ryuan.choi@samsung.com> |
| |
| Broken build with build-webkit --no-video |
| https://bugs.webkit.org/show_bug.cgi?id=134587 |
| |
| Reviewed by Darin Adler. |
| |
| MEDIA_CONTROLS_SCRIPT requires VIDEO enabled. |
| |
| * wtf/FeatureDefines.h: Added error message for dependency failure. |
| |
| 2014-07-02 Enrica Casucci <enrica@apple.com> |
| |
| iOS build fix after http://trac.webkit.org/changeset/170697. |
| |
| Unreviewed. |
| |
| * wtf/Deque.h: |
| |
| 2014-07-02 Dan Bernstein <mitz@apple.com> |
| |
| Remove some code only needed for versions of Safari that are no longer supported |
| https://bugs.webkit.org/show_bug.cgi?id=134537 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| |
| 2014-07-01 Alex Christensen <achristensen@webkit.org> |
| |
| Reduce dynamic memory allocation in css jit. |
| https://bugs.webkit.org/show_bug.cgi?id=134416 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/Deque.h: |
| Added inlineCapacity optional template parameter. |
| |
| 2014-06-30 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r170605. |
| https://bugs.webkit.org/show_bug.cgi?id=134484 |
| |
| The changes cause crashes on ARM64 (Requested by benjaminp on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Reduce dynamic memory allocation in css jit." |
| https://bugs.webkit.org/show_bug.cgi?id=134416 |
| http://trac.webkit.org/changeset/170605 |
| |
| 2014-06-30 Daniel Bates <dabates@apple.com> |
| |
| Make TransformIterator::TransformIterator() take rvalue references |
| https://bugs.webkit.org/show_bug.cgi?id=134468 |
| |
| Reviewed by Darin Adler. |
| |
| It's unnecessary to support TransformIterator::TransformIterator() taking const lvalue references |
| as we only call it with rvalues. As a side benefit, we can use move semantics to initialize the |
| members of TransformIterator. |
| |
| * wtf/IteratorAdaptors.h: |
| (WTF::TransformIterator::TransformIterator): Make constructor take arguments as rvalue references. |
| (WTF::makeTransformIterator): Substitute std::move() for std::forward(). |
| |
| 2014-06-30 Alex Christensen <achristensen@webkit.org> |
| |
| Reduce dynamic memory allocation in css jit. |
| https://bugs.webkit.org/show_bug.cgi?id=134416 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/Deque.h: |
| Added inlineCapacity optional template parameter. |
| |
| 2014-06-30 Anders Carlsson <andersca@apple.com> |
| |
| Add code for encoding legacy session history entries |
| https://bugs.webkit.org/show_bug.cgi?id=134452 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/MallocPtr.h: |
| (WTF::MallocPtr::malloc): |
| (WTF::MallocPtr::realloc): |
| |
| 2014-06-27 Andreas Kling <akling@apple.com> |
| |
| [ARMv7] Skip one particularly expensive fastFree() alignment check. |
| <https://webkit.org/b/134402> |
| |
| The size class alignment check in fastFree() was crazy expensive on ARMv7 |
| due to its use of modulo. Disabling it shaves 470ms off of PLT main thread |
| time in the web process. |
| |
| Note that this was very hard to identify in profiles due to TCO. |
| |
| Reviewed by Gavin Barraclough. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary): |
| |
| 2014-06-26 Andreas Kling <akling@apple.com> |
| |
| Bump FastMalloc thread cache max size to 1MB on iOS. |
| <https://webkit.org/b/134365> |
| |
| The previous limit (512kB) comes from the old days of very-low-memory |
| devices, and we can now afford to spend another 512kB here. |
| Note that we already have a mechanism to purge FastMalloc caches on |
| system memory pressure. |
| |
| Looks like a ~400ms progression on PLT. |
| |
| Reviewed by Geoff Garen. |
| |
| * wtf/FastMalloc.cpp: |
| |
| 2014-06-26 Laszlo Gombos <l.gombos@samsung.com> |
| |
| Define TARGET_OS_IPHONE to 0 for non-darwin ports |
| https://bugs.webkit.org/show_bug.cgi?id=134347 |
| |
| Reviewed by Darin Adler. |
| |
| A follow-up to r169880 to make it easier to reason about |
| the code. The purpose of this change to allow |
| "#if TARGET_OS_IPHONE" in public header files. |
| |
| * wtf/Platform.h: |
| |
| 2014-06-26 Chris Fleizach <cfleizach@apple.com> |
| |
| Add an undo group for each dictated utterance in WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=134086 |
| |
| Applied review comments from Sam Weinig. |
| |
| Move the associated USE #define into Platform.h. |
| |
| * wtf/Platform.h: |
| |
| 2014-06-25 Geoffrey Garen <ggaren@apple.com> |
| |
| Unreviewed, rolling out r166876. |
| |
| Caused some ECMA test262 failures |
| |
| Reverted changeset: |
| |
| "Date object needs to check for ES5 15.9.1.14 TimeClip limit." |
| https://bugs.webkit.org/show_bug.cgi?id=131248 |
| http://trac.webkit.org/changeset/166876 |
| |
| 2014-06-25 peavo@outlook.com <peavo@outlook.com> |
| |
| [Win64] ASM LLINT is not enabled. |
| https://bugs.webkit.org/show_bug.cgi?id=130638 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/Platform.h: Enable LLINT and JIT for Win64. |
| |
| 2014-06-25 Laszlo Gombos <l.gombos@samsung.com> |
| |
| Remove build guard for progress element |
| https://bugs.webkit.org/show_bug.cgi?id=134292 |
| |
| Reviewed by Benjamin Poulain. |
| |
| The build flag is no longer needed as it is always on. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-06-24 Andreas Kling <akling@apple.com> |
| |
| Run the FastMalloc scavenger thread on iOS as well. |
| <https://webkit.org/b/134287> |
| <rdar://problem/17446198> |
| |
| Reviewed by Gavin Barraclough. |
| |
| * wtf/FastMalloc.cpp: |
| |
| 2014-06-24 Anders Carlsson <andersca@apple.com> |
| |
| Add PageState to HistoryItem conversion code |
| https://bugs.webkit.org/show_bug.cgi?id=134259 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Optional.h: |
| (WTF::Optional::valueOr): |
| |
| 2014-06-24 László Langó <llango.u-szeged@partner.samsung.com> |
| |
| [JavaScriptCore] Enable concurrent JIT on EFL. |
| https://bugs.webkit.org/show_bug.cgi?id=134242 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/Platform.h: |
| |
| 2014-06-23 Ryuan Choi <ryuan.choi@samsung.com> |
| |
| [EFL] Replace RefPtr<Evas_Object> with UniquePtrEfl |
| https://bugs.webkit.org/show_bug.cgi?id=134236 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| Although there are ref/unref for Evas_Object, it's bit odd so we should call evas_object_del to destroy it. |
| So, this patch replaced RefPtr<Evas_Object> with UniquePtrEfl for the simplicity. |
| |
| * wtf/PlatformEfl.cmake: Removed RefPtrEfl.cpp from source list. |
| * wtf/efl/RefPtrEfl.cpp: Removed. |
| * wtf/efl/RefPtrEfl.h: Removed. |
| |
| 2014-06-21 Brady Eidson <beidson@apple.com> |
| |
| Gamepad API - Deprecate the existing implementation |
| https://bugs.webkit.org/show_bug.cgi?id=134108 |
| |
| Reviewed by Timothy Hatcher. |
| |
| -Add new "GAMEPAD_DEPRECATED" build flag, moving the existing implementation to use it |
| -Move some implementation files into a "deprecated" subdirectory. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-06-21 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r170244. |
| https://bugs.webkit.org/show_bug.cgi?id=134157 |
| |
| GTK/EFL bindings generator works differently, making this |
| patch not work there. Will fix entire patch after a rollout. |
| (Requested by bradee-oh on #webkit). |
| |
| Reverted changeset: |
| |
| "Gamepad API - Deprecate the existing implementation" |
| https://bugs.webkit.org/show_bug.cgi?id=134108 |
| http://trac.webkit.org/changeset/170244 |
| |
| 2014-06-21 Brady Eidson <beidson@apple.com> |
| |
| Gamepad API - Deprecate the existing implementation |
| https://bugs.webkit.org/show_bug.cgi?id=134108 |
| |
| Reviewed by Timothy Hatcher. |
| |
| -Add new "GAMEPAD_DEPRECATED" build flag, moving the existing implementation to use it |
| -Add the "Deprecated" suffix to some implementation files |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-06-21 Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> |
| |
| Removing PAGE_VISIBILITY_API compile guard. |
| https://bugs.webkit.org/show_bug.cgi?id=133844 |
| |
| Reviewed by Gavin Barraclough. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-06-20 Anders Carlsson <andersca@apple.com> |
| |
| Add encoding and decoding support for WTF::Optional |
| https://bugs.webkit.org/show_bug.cgi?id=134125 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Optional.h: |
| (WTF::Optional::operator=): |
| |
| 2014-06-20 Anders Carlsson <andersca@apple.com> |
| |
| Add copy/move constructors and assignment operators to WTF::Optional |
| https://bugs.webkit.org/show_bug.cgi?id=134119 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Optional.h: |
| (WTF::Optional::Optional): |
| (WTF::Optional::operator=): |
| |
| 2014-06-19 Anders Carlsson <andersca@apple.com> |
| |
| Add WTF::Optional class |
| https://bugs.webkit.org/show_bug.cgi?id=134083 |
| |
| Reviewed by Andreas Kling. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/Optional.h: Added. |
| (WTF::Optional::Optional): |
| (WTF::Optional::~Optional): |
| (WTF::Optional::operator bool): |
| (WTF::Optional::value): |
| |
| 2014-06-19 Dániel Bátyai <dbatyai.u-szeged@partner.samsung.com> |
| |
| Remove ENABLE(LLINT) and ENABLE(LLINT_C_LOOP) guards |
| https://bugs.webkit.org/show_bug.cgi?id=130389 |
| |
| Reviewed by Mark Lam. |
| |
| Removed ENABLE(LLINT) since we always build with it, and changed ENABLE(LLINT_C_LOOP) |
| into !ENABLE(JIT) since they are mutually exclusive. |
| |
| * wtf/OSAllocatorPosix.cpp: |
| (WTF::OSAllocator::reserveAndCommit): |
| * wtf/Platform.h: |
| |
| 2014-06-18 Anders Carlsson <andersca@apple.com> |
| |
| Add CF type cast function templates and use them in KeyedDecoder in WebKit2 |
| https://bugs.webkit.org/show_bug.cgi?id=134033 |
| |
| Reviewed by Sam Weinig. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/cf/TypeCasts.h: Added. |
| (WTF::dynamic_cf_cast): |
| Returns null if the given CFTypeRef object doesn't have the right type. |
| |
| (WTF::checked_cf_cast): |
| ASSERTs (with security implication) if the given CFTypeRef object is null or doesn't have the right type. |
| |
| 2014-06-17 Tamas Gergely <tgergely.u-szeged@partner.samsung.com> |
| |
| Misused PLATFORM(MIDDLE_ENDIAN) and PLATFORM(BIG_ENDIAN). |
| https://bugs.webkit.org/show_bug.cgi?id=128301 |
| |
| Reviewed by Daniel Bates. |
| |
| Endianness is a CPU attribute, not a PLATFORM. PLATFORM() macro is replaced to CPU(). |
| |
| * wtf/text/ASCIIFastPath.h: |
| (WTF::copyLCharsFromUCharSource): |
| |
| 2014-06-17 Andreas Kling <akling@apple.com> |
| |
| Web process main thread priority is lower than some network process threads. |
| <https://webkit.org/b/133987> |
| <rdar://problem/17330300> |
| |
| Bring all of our threads to the appropriate priority level by opting in to the |
| threading QoS APIs. By marking them "user initiated", they still yield to UI |
| interaction, but take priority over background tasks. |
| |
| Reviewed by Maciej Stachowiak. |
| |
| * wtf/Platform.h: |
| * wtf/Threading.cpp: |
| (WTF::setCurrentThreadIsUserInitiated): |
| * wtf/Threading.h: |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::createThreadInternal): |
| |
| 2014-06-17 Alex Christensen <achristensen@webkit.org> |
| |
| Enable css jit for armv7 on iOS. |
| https://bugs.webkit.org/show_bug.cgi?id=133961 |
| <rdar://problem/17310631> |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Platform.h: |
| Enable css jit for ARM thumb on iOS. |
| |
| 2014-06-17 Dan Bernstein <mitz@apple.com> |
| |
| String::isolatedCopy doesn’t return an isolated copy when used on an rvalue reference |
| https://bugs.webkit.org/show_bug.cgi?id=133968 |
| |
| Reviewed by Anders Carlsson. |
| |
| Made the rvalue reference overload of isolatedCopy() non-const, so that std::move(*this) is |
| an rvalue reference that can be moved, rather than copied, into the returned String. |
| |
| * wtf/text/WTFString.cpp: |
| (WTF::String::isolatedCopy): |
| * wtf/text/WTFString.h: |
| |
| 2014-06-15 Dan Bernstein <mitz@apple.com> |
| |
| iOS build fix after r169995. |
| |
| * wtf/RetainPtr.h: |
| |
| 2014-06-15 Anders Carlsson <andersca@apple.com> |
| |
| Add an autorelease() member function to RetainPtr |
| https://bugs.webkit.org/show_bug.cgi?id=133929 |
| |
| Reviewed by Dan Bernstein. |
| |
| * wtf/RetainPtr.h: |
| |
| 2014-06-13 Alex Christensen <achristensen@webkit.org> |
| |
| Unreviewed disabling css jit on armv7. It's not quite ready yet. |
| |
| * wtf/Platform.h: |
| Disable css jit on armv7. |
| |
| 2014-06-13 Alex Christensen <achristensen@webkit.org> |
| |
| Enable css jit for armv7 on iOS. |
| https://bugs.webkit.org/show_bug.cgi?id=133890 |
| <rdar://problem/17310631> |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Platform.h: |
| Enable css jit for ARM thumb on iOS. |
| |
| 2014-06-13 Mark Hahnenberg <mhahnenberg@apple.com> |
| |
| OSR exit should barrier the Executables for all InlineCallFrames, not just those on the stack at the time of exit |
| https://bugs.webkit.org/show_bug.cgi?id=133880 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/Bag.h: |
| (WTF::Bag::iterator::operator!=): Add != to the Bag iterator so we can use it in range-based iteration. |
| |
| 2014-06-12 Gavin Barraclough <barraclough@apple.com> |
| |
| Add support for thread/WorkQueue QoS |
| https://bugs.webkit.org/show_bug.cgi?id=130688 |
| |
| Reviewed by Anders Carlson & Simon Fraser. |
| |
| Add the ability to mark threads as UserInteractive. |
| |
| * wtf/Threading.cpp: |
| (WTF::setCurrentThreadIsUserInteractive): |
| - added method to set QoS of current thread to UserInteractive. |
| * wtf/Threading.h: |
| - added declaration. |
| |
| 2014-06-12 Alexey Proskuryakov <ap@apple.com> |
| |
| Fix Mac after r169880. |
| |
| This revision added a C++ comment to Platform.h, which breaks sandbox profile |
| preprocessing. |
| |
| Also, I do not believe that this comment was entirely accurate - we've always used |
| this technique with GCC, so there has to be more to it. So, I just removed the comment. |
| |
| * wtf/Platform.h: |
| |
| 2014-06-11 Csaba Osztrogonác <ossy@webkit.org> |
| |
| [EFL][GTK] Ultimate fix not to have build failures |
| in the future because of "#if TARGET_OS_IPHONE" guards. |
| |
| Unreviewed buildfix. |
| |
| * wtf/Platform.h: Define TARGET_OS_IPHONE to 0 on EFL and GTK. |
| |
| 2014-06-11 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Turning on DUMP_PROPERTYMAP_STATS causes a build failure |
| https://bugs.webkit.org/show_bug.cgi?id=133673 |
| |
| Reviewed by Andreas Kling. |
| |
| Added DEFINE_GLOBAL_FOR_LOGGING to allow running a destructor in logging code |
| that needs to be enabled in release builds (e.g. for JavaScriptCore). |
| |
| * wtf/StdLibExtras.h: |
| |
| 2014-06-09 Benjamin Poulain <bpoulain@apple.com> |
| |
| Improve CSSPrimitiveValue::customCSSText for ARMv7 |
| https://bugs.webkit.org/show_bug.cgi?id=133597 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/RefPtr.h: |
| (WTF::RefPtr<T>::RefPtr): |
| * wtf/text/WTFString.h: |
| (WTF::String::String): |
| |
| 2014-06-05 Yoav Weiss <yoav@yoav.ws> |
| |
| Align srcset parser with recent spec changes |
| https://bugs.webkit.org/show_bug.cgi?id=133504 |
| |
| Reviewed by Darin Adler. |
| |
| I've added toInt and toFloat methods to StringView, and exposed |
| charactersToInt so that they can be used by |
| HTMLSrcsetParser.cpp. |
| |
| * wtf/text/WTFString.h: |
| * wtf/text/StringView.h: |
| (WTF::StringView::toInt): |
| (WTF::StringView::toFloat): |
| |
| 2014-06-04 Alex Christensen <achristensen@webkit.org> |
| |
| Enable WebGL on Windows. |
| https://bugs.webkit.org/show_bug.cgi?id=133503 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/FeatureDefines.h: |
| Enable WebGL for AppleWin and WinCairo ports. |
| |
| 2014-06-01 Jer Noble <jer.noble@apple.com> |
| |
| [MSE] Appends of overlapping sample data do not clear existing samples properly. |
| https://bugs.webkit.org/show_bug.cgi?id=133435 |
| |
| Reviewed by Darin Adler. |
| |
| Add a dump method to MediaTime, so that MediaTimes can be easily converted to strings (for logging purposes). |
| |
| * wtf/MediaTime.cpp: |
| (WTF::MediaTime::dump): |
| * wtf/MediaTime.h: |
| |
| 2014-05-31 Anders Carlsson <andersca@apple.com> |
| |
| Add a LazyNeverDestroyed class template and use it |
| https://bugs.webkit.org/show_bug.cgi?id=133425 |
| |
| Reviewed by Darin Adler. |
| |
| LazyNeverDestroyed is similar to NeverDestroyed, except it's lazily constructed |
| by calling construct(). This makes it useful for using inside std::call_once functions. |
| |
| * wtf/Forward.h: |
| * wtf/NeverDestroyed.h: |
| (WTF::LazyNeverDestroyed::construct): |
| (WTF::LazyNeverDestroyed::operator T&): |
| (WTF::LazyNeverDestroyed::get): |
| (WTF::LazyNeverDestroyed::asPtr): |
| (WTF::LazyNeverDestroyed::MaybeRelax::MaybeRelax): |
| * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: |
| (WTF::atomicallyInitializedStaticMutex): |
| * wtf/unicode/icu/CollatorICU.cpp: |
| (WTF::cachedCollatorMutex): |
| |
| 2014-05-29 Alex Christensen <achristensen@webkit.org> |
| |
| Enable css jit by default on arm64. |
| https://bugs.webkit.org/show_bug.cgi?id=133246 |
| <rdar://problem/17073407> |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/Platform.h: |
| Added arm64 to list of supported architectures. |
| |
| 2014-05-28 Filip Pizlo <fpizlo@apple.com> |
| |
| DFG::DCEPhase inserts into an insertion set in reverse, causing hilarious basic block corruption if you kill a lot of NewArrays |
| https://bugs.webkit.org/show_bug.cgi?id=133368 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/Insertion.h: |
| (WTF::executeInsertions): This algorithm is only correct if insertions are added in the right order. Assert that the order is right. |
| |
| 2014-05-27 Jon Lee <jonlee@apple.com> |
| |
| Update ENABLE(MEDIA_SOURCE) on Mac |
| https://bugs.webkit.org/show_bug.cgi?id=133141 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FeatureDefines.h: #ifdef unneeded for Mac since it's covered in the .xcconfigs. |
| |
| 2014-05-27 Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> |
| |
| Remove BLOB guards |
| https://bugs.webkit.org/show_bug.cgi?id=132863 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-05-27 Gwang Yoon Hwang <yoon@igalia.com> |
| |
| [GLIB] RunLoop::dispatch always executes the function on the main thread instead of the target thread. |
| https://bugs.webkit.org/show_bug.cgi?id=133291 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| GMainLoopSource::schedule[AfterDelay] must be used with the appropriate |
| GMainContext. Because current implementations in RunLoopGtk passes nullptr |
| instead of its runLoopContext when using GMainLoopSource, all of dispatched |
| functions are executed on the main thread regardless of which runloops is used. |
| |
| This patch fixes the issue by passing the m_runLoopContext instead the default |
| parameter to the GMainLoopSource::schedule[AfterDelay]. |
| |
| * wtf/gtk/RunLoopGtk.cpp: |
| (WTF::RunLoop::wakeUp): |
| (WTF::RunLoop::TimerBase::start): |
| |
| 2014-05-26 Darin Adler <darin@apple.com> |
| |
| Class name matching should use ASCII case-insensitive matching, not Unicode case folding |
| https://bugs.webkit.org/show_bug.cgi?id=133292 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::addSlowCase): Change to take references instead of pointers since these |
| arguments can never be null. |
| (WTF::AtomicString::lower): Rearranged slightly to use PassRef in a more efficient but |
| slightly uglier way. |
| (WTF::AtomicString::convertToASCIILowercase): Added. |
| * wtf/text/AtomicString.h: Updated for above changes. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::convertToASCIILowercase): Added. |
| * wtf/text/StringImpl.h: Updated for above. |
| |
| * wtf/text/WTFString.cpp: |
| (WTF::String::convertToASCIILowercase): Added. |
| * wtf/text/WTFString.h: Updated for above. |
| |
| 2014-05-22 Zan Dobersek <zdobersek@igalia.com> |
| |
| Add the partial specialization for VectorTraits<std::unique_ptr<P>> |
| https://bugs.webkit.org/show_bug.cgi?id=133083 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/VectorTraits.h: Like for RefPtr<P>, OwnPtr<P> and Ref<P>, the partial |
| specialization for VectorTraits<std::unique_ptr<P>> should exist and should |
| inherit from SimpleClassVector. |
| |
| 2014-05-20 Geoffrey Garen <ggaren@apple.com> |
| |
| Rolled out <http://trac.webkit.org/changeset/166184> |
| https://bugs.webkit.org/show_bug.cgi?id=133144 |
| |
| Reviewed by Gavin Barraclough. |
| |
| It caused a performance regression. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::TCMalloc_PageHeap::runScavengerThread): |
| * wtf/Threading.h: |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::createThreadInternal): |
| (WTF::setCurrentThreadQOSUtility): Deleted. |
| * wtf/ThreadingWin.cpp: |
| (WTF::setCurrentThreadQOSUtility): Deleted. |
| |
| 2014-05-20 Jer Noble <jer.noble@apple.com> |
| |
| [Mac] AVAssets are never destroyed; lack of an autorelease pool when calling callOnMainThread. |
| https://bugs.webkit.org/show_bug.cgi?id=133130 |
| |
| Reviewed by Geoff Garen. |
| |
| Wrap the function to be called in an autorelease pool, so that autoreleased objects are cleaned |
| up immediately after the end of the function. |
| |
| * wtf/mac/MainThreadMac.mm: |
| (WTF::timerFired): |
| |
| 2014-05-18 Rik Cabanier <cabanier@adobe.com> |
| |
| support for navigator.hardwareConcurrency |
| https://bugs.webkit.org/show_bug.cgi?id=132588 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-05-14 Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> |
| |
| Remove CSS_STICKY_POSITION guards |
| https://bugs.webkit.org/show_bug.cgi?id=132676 |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-05-13 Simon Fraser <simon.fraser@apple.com> |
| |
| [iOS WK2] background-attachment:fixed behaves very poorly |
| https://bugs.webkit.org/show_bug.cgi?id=132881 |
| <rdar://problem/16789526> |
| |
| Reviewed by Beth Dakin. |
| |
| Remove ENABLE_FAST_MOBILE_SCROLLING. Ports can use the fixedBackgroundsPaintRelativeToDocument |
| setting now. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-05-08 Alexey Proskuryakov <ap@apple.com> |
| |
| Automatically zip document bundles used via File API |
| https://bugs.webkit.org/show_bug.cgi?id=132713 |
| <rdar://problem/13397892> |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/FeatureDefines.h: Added ENABLE_FILE_REPLACEMENT for Mac. |
| |
| 2014-05-07 Filip Pizlo <fpizlo@apple.com> |
| |
| UNREACHABLE_FOR_PLATFORM() is meant to be a release crash. |
| |
| Rubber stamped by Mark Hahnenberg.. |
| |
| * wtf/Assertions.h: |
| (UNREACHABLE_FOR_PLATFORM): |
| |
| 2014-05-06 Alberto Garcia <berto@igalia.com> |
| |
| There is no HW_AVAILCPU on FreeBSD, NetBSD, and OpenBSD |
| https://bugs.webkit.org/show_bug.cgi?id=132542 |
| |
| Reviewed by Michael Saboff. |
| |
| Use sysconf() to get the number of processor cores. |
| |
| * wtf/NumberOfCores.cpp: |
| (WTF::numberOfProcessorCores): |
| |
| 2014-05-04 Darin Adler <darin@apple.com> |
| |
| RetainPtr: Use adoptCF function instead of AdoptCF constructor argument |
| https://bugs.webkit.org/show_bug.cgi?id=80222 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| All the clients are gone, so we can now remove AdoptCF and AdoptNS. |
| |
| * wtf/RetainPtr.h: Removed the public constructors that let you specify AdoptCF |
| and AdoptNS. Instead, made the adoptCF and adoptNS functions be friends and use |
| a private constructor that takes an Adopt argument. |
| (WTF::adoptCF): Moved the Objective-C class check in here. |
| (WTF::adoptNS): Moved the code to deal with the CFRetain for garbage collection |
| in here; it used to be spread across the constructor and adoptNSReference. |
| |
| 2014-05-04 Andreas Kling <akling@apple.com> |
| |
| Optimize JSRopeString for resolving directly to AtomicString. |
| <https://webkit.org/b/132548> |
| |
| Add AtomicString::find([LU]Char*, unsigned length) helpers for finding |
| an existing AtomicString without a StringImpl on hand. |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/text/AtomicString.h: |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::find): |
| |
| 2014-05-01 Brent Fulgham <bfulgham@apple.com> |
| |
| Fix handling of attributes prior to compiling shader |
| https://bugs.webkit.org/show_bug.cgi?id=132430 |
| |
| Reviewed by Dean Jackson. |
| |
| WebGL programs that called bindAttribLocations prior to compiling shader sources |
| would perform the bind using the non-hashed symbol name, but would later create |
| the attributes as hashed names. Consequently, the program would refer to |
| attributes that were never actually part of any shader, resulting in some amazing |
| display artifacts. |
| |
| This patch adds a dictionary of hashed symbol names so that we can tell the WebGL |
| program the proper name that will be used when the shader is eventually compiled, |
| allowing the WebGL program to link against the proper symbol after compiling and |
| linking completes. |
| |
| * wtf/HexNumber.h: |
| (WTF::appendUnsigned64AsHex): Add uint64_t-compatible hex->string converter. |
| |
| 2014-04-30 Geoffrey Garen <ggaren@apple.com> |
| |
| Link against bmalloc in production builds |
| https://bugs.webkit.org/show_bug.cgi?id=132413 |
| |
| Reviewed by Sam Weinig. |
| |
| Production builders have been configured to handle this, so let's build |
| it. |
| |
| * Configurations/WTF.xcconfig: |
| |
| 2014-05-01 Ryuan Choi <ryuan.choi@samsung.com> |
| |
| [EFL] There are many warnings with software backend |
| https://bugs.webkit.org/show_bug.cgi?id=132422 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| * wtf/efl/EflTypedefs.h: Added Ecore_X_Window typedef |
| |
| 2014-04-30 Simon Fraser <simon.fraser@apple.com> |
| |
| Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO |
| https://bugs.webkit.org/show_bug.cgi?id=132396 |
| |
| Reviewed by Eric Carlson. |
| |
| Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-04-30 Víctor Manuel Jáquez Leal <vjaquez@igalia.com> |
| |
| [GTK][GStreamer] Remove unnecessary GLIB_CHECK_VERSION #ifdefs |
| https://bugs.webkit.org/show_bug.cgi?id=132390 |
| |
| Reviewed by Philippe Normand. |
| |
| Since EFL port use GLib 2.38 and GTK+, 2.33.2, I assume it is OK |
| remove, in GTK+ and GST, the existing glib version guards. |
| |
| This code was rollback from r149879 because Qt MIPS used it. But since |
| Qt is gone, it is safe to remove now. |
| |
| * wtf/gobject/GRefPtr.cpp: |
| (WTF::refGPtr): Deleted. |
| (WTF::derefGPtr): Deleted. |
| |
| 2014-04-29 Alex Christensen <achristensen@webkit.org> |
| |
| [WinCairo] Switch video from GStreamer to Media Foundation. |
| https://bugs.webkit.org/show_bug.cgi?id=132358 |
| |
| Reviewed by Brent Fulgham. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| Removed dependencies on GStreamer. |
| * wtf/Platform.h: |
| Use Media Foundation instead of GStreamer and GLib. |
| |
| 2014-04-29 Filip Pizlo <fpizlo@apple.com> |
| |
| Unreviewed, fix cloop build. |
| |
| * wtf/Platform.h: |
| |
| 2014-04-29 Michael Saboff <msaboff@apple.com> |
| |
| For DARWIN platforms, use system temporary directory for DataLog output |
| https://bugs.webkit.org/show_bug.cgi?id=132346 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Added code to call confstr() to access the process's temporary directory to use that |
| location instead of /tmp/. Put the code behind #ifdef DATA_LOG_TO_DARWIN_TEMP_DIR. |
| |
| * wtf/DataLog.cpp: |
| (WTF::initializeLogFileOnce): |
| |
| 2014-04-25 Filip Pizlo <fpizlo@apple.com> |
| |
| Figure out how many cores are available for realsies. |
| |
| Rubber stamped by Andreas Kling. |
| |
| HW_AVAILCPU is more canonical than HW_NCPU. For example if you use hacks to tell Darwin |
| to make it seem like there are fewer CPUs, HW_AVAILCPU will change but HW_NCPU won't. |
| HW_NCPU doesn't reflect how much actual paralellism you'll get; it's merely reporting |
| facts about the machine you're running on. HW_AVAILCPU is almost always what WebKit |
| wants since it uses this information to decide how many threads to launch for various |
| things. |
| |
| * wtf/NumberOfCores.cpp: |
| (WTF::numberOfProcessorCores): |
| |
| 2014-04-22 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Support Python 2.7 in Cygwin |
| https://bugs.webkit.org/show_bug.cgi?id=132023 |
| |
| Reviewed by Michael Saboff. |
| |
| * WTF.vcxproj/WTFGenerated.make: Use proper path to Python. |
| |
| 2014-04-21 Eric Carlson <eric.carlson@apple.com> |
| |
| [Mac] implement WebKitDataCue |
| https://bugs.webkit.org/show_bug.cgi?id=131799 |
| |
| Reviewed by Dean Jackson. |
| |
| * wtf/FeatureDefines.h: Define ENABLE_DATACUE_VALUE. |
| |
| 2014-04-21 Darin Adler <darin@apple.com> |
| |
| Add HashSet::takeAny |
| https://bugs.webkit.org/show_bug.cgi?id=131928 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/HashSet.h: Added an overload of take that takes an iterator, |
| and used it to implement both the existing take and new takeAny functions. |
| |
| 2014-04-20 Andreas Kling <akling@apple.com> |
| |
| Speed up jsStringWithCache() through WeakGCMap inlining. |
| <https://webkit.org/b/131923> |
| |
| Add HashMap::fastAdd(), which is the same as add() except we'll tell |
| the compiler to aggressively inline it. |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/HashMap.h: |
| * wtf/HashTable.h: |
| |
| 2014-04-19 Filip Pizlo <fpizlo@apple.com> |
| |
| Make it easier to check if an integer sum would overflow |
| https://bugs.webkit.org/show_bug.cgi?id=131900 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/CheckedArithmetic.h: |
| (WTF::checkedSum): |
| (WTF::sumOverflows): |
| |
| 2014-04-18 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r167527. |
| https://bugs.webkit.org/show_bug.cgi?id=131883 |
| |
| Broke 32-bit build (Requested by ap on #webkit). |
| |
| Reverted changeset: |
| |
| "[Mac] implement WebKitDataCue" |
| https://bugs.webkit.org/show_bug.cgi?id=131799 |
| http://trac.webkit.org/changeset/167527 |
| |
| 2014-04-18 Eric Carlson <eric.carlson@apple.com> |
| |
| [Mac] implement WebKitDataCue |
| https://bugs.webkit.org/show_bug.cgi?id=131799 |
| |
| Reviewed by Dean Jackson. |
| |
| * wtf/FeatureDefines.h: Define ENABLE_DATACUE_VALUE. |
| |
| 2014-04-18 Martin Robinson <mrobinson@igalia.com> |
| |
| Remove DynamicAnnotations.h? |
| https://bugs.webkit.org/show_bug.cgi?id=131754 |
| |
| Reviewed by Simon Fraser. |
| |
| This file, which helped support tools like Valgrind was unused. |
| |
| * WTF.vcxproj/WTF.vcxproj: Remove references to the files. |
| * WTF.vcxproj/WTF.vcxproj.filters: Remove references to the files. |
| * WTF.xcodeproj/project.pbxproj: Remove references to the files. |
| * wtf/CMakeLists.txt: Remove references to the files. |
| * wtf/DynamicAnnotations.cpp: Removed. |
| * wtf/DynamicAnnotations.h: Removed. |
| * wtf/ThreadSafeRefCounted.h: Remove references to the files. |
| * wtf/text/StringStatics.cpp: Remove references to the files. |
| |
| 2014-04-18 Philippe Normand <pnormand@igalia.com> |
| |
| Remove NETWORK_INFO support |
| https://bugs.webkit.org/show_bug.cgi?id=131841 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-04-17 Filip Pizlo <fpizlo@apple.com> |
| |
| Don't include CompilationThread.h from StringImpl.h |
| https://bugs.webkit.org/show_bug.cgi?id=131817 |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/CompilationThread.h: |
| * wtf/StdLibExtras.h: |
| * wtf/text/StringImpl.h: |
| |
| 2014-04-17 Darin Adler <darin@apple.com> |
| |
| Use HashMap<unique_ptr> and Vector<unique_ptr> instead of deprecatedDeleteAllValues |
| https://bugs.webkit.org/show_bug.cgi?id=73757 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/Vector.h: |
| (WTF::deprecatedDeleteAllValues): Deleted. |
| |
| 2014-04-17 Darin Adler <darin@apple.com> |
| |
| Add separate flag for IndexedDatabase in workers since the current implementation is not threadsafe |
| https://bugs.webkit.org/show_bug.cgi?id=131785 |
| rdar://problem/16003108 |
| |
| Reviewed by Brady Eidson. |
| |
| * wtf/FeatureDefines.h: Added INDEXED_DATABASE_IN_WORKERS. |
| |
| 2014-04-16 Simon Fraser <simon.fraser@apple.com> |
| |
| Don't include CryptographicallyRandomNumber.h in StringImpl.h |
| https://bugs.webkit.org/show_bug.cgi?id=131772 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/text/StringImpl.h: |
| |
| 2014-04-16 Gavin Barraclough <barraclough@apple.com> |
| |
| Update to pthread QoS SPI |
| https://bugs.webkit.org/show_bug.cgi?id=131753 |
| |
| Rubber stamped by Benjamin Poulain |
| |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::setCurrentThreadQOSUtility): |
| |
| 2014-04-14 Geoffrey Garen <ggaren@apple.com> |
| |
| WTF should have an optional mbmalloc target so we can benchmark FastMalloc |
| https://bugs.webkit.org/show_bug.cgi?id=131662 |
| |
| Reviewed by Darin Adler. |
| |
| * WTF.xcodeproj/project.pbxproj: Added the target. |
| * wtf/mbmalloc.cpp: Added. Implements the libmbmalloc.dylib API required |
| by MallocBench. |
| |
| 2014-04-16 Darin Adler <darin@apple.com> |
| |
| Make Vector::takeLast work with move-only types (and optimize for types where move is faster) |
| https://bugs.webkit.org/show_bug.cgi?id=131735 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * wtf/Vector.h: |
| (WTF::Vector::takeLast): Added a missing std::move. All the other take functions have it. |
| |
| 2014-04-14 Mark Lam <mark.lam@apple.com> |
| |
| monotonicallyIncreasingTime() should only initialize its static timebaseInfo once. |
| <https://webkit.org/b/131630> |
| |
| Reviewed by Filip Pizlo. |
| |
| The current initialization of the static field is not thread safe. |
| |
| * wtf/CurrentTime.cpp: |
| (WTF::monotonicallyIncreasingTime): |
| |
| 2014-04-14 Benjamin Poulain <benjamin@webkit.org> |
| |
| [JSC] Improve the call site of string comparison in some hot path |
| https://bugs.webkit.org/show_bug.cgi?id=131605 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::stringImplContentEqual): |
| Inline that function to reduce the call overhead for JSC. |
| This is only inlined twice, it is not catastrophic for our binary. |
| |
| 2014-04-13 Andy Estes <aestes@apple.com> |
| |
| Relax adoption requirements of RefCounted objects that are NeverDestroyed |
| https://bugs.webkit.org/show_bug.cgi?id=131593 |
| |
| Reviewed by Dan Bernstein. |
| |
| RefCounted objects that are created by NeverDestroyed<> won't have a |
| RefPtr adopting them, so call relaxAdoptionRequirements(). |
| |
| * wtf/NeverDestroyed.h: |
| (WTF::NeverDestroyed::NeverDestroyed): |
| (WTF::NeverDestroyed::MaybeRelax::MaybeRelax): |
| |
| 2014-04-10 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Clean up some 64-bit warnings from Visual Studio analyzer |
| https://bugs.webkit.org/show_bug.cgi?id=131514 |
| |
| Reviewed by Tim Horton. |
| |
| * WTF.vcxproj/WTF.vcxproj: Use correct platform settings for |
| 64-bit build. |
| * config.h: Ditto. |
| * wtf/CurrentTime.cpp: |
| (WTF::highResUpTime): Resolve warning about deprecated API. |
| * wtf/StackBounds.cpp: |
| (WTF::StackBounds::initialize): Silence warning about |
| an uninitialized variable. |
| |
| 2014-04-09 Geoffrey Garen <ggaren@apple.com> |
| |
| Rolled back in r166972. |
| |
| This time, we conditionally exclude linking against bmalloc in Production |
| builds. Production builds will not be able to link against bmalloc |
| until the Production build system has been updated to build bmalloc. |
| |
| WTF should link against bmalloc |
| https://bugs.webkit.org/show_bug.cgi?id=131403 |
| |
| Reviewed by Mark Rowe. |
| |
| * Configurations/WTF.xcconfig: |
| * WTF.xcodeproj/project.pbxproj: |
| |
| 2014-04-09 Geoffrey Garen <ggaren@apple.com> |
| |
| Put bmalloc headers in the right place |
| https://bugs.webkit.org/show_bug.cgi?id=131464 |
| |
| Reviewed by Mark Rowe. |
| |
| * wtf/FastMalloc.cpp: Use "<bmalloc/...>" syntax so we can find our |
| headers in <header-root>/usr/local/include/bmalloc/. |
| |
| 2014-04-09 Geoffrey Garen <ggaren@apple.com> |
| |
| Rolled back out r166972. |
| |
| The production buildbots are still broken because the build-root script |
| doesn't build bmalloc. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| |
| 2014-04-09 Geoffrey Garen <ggaren@apple.com> |
| |
| Rolled back in r166972. |
| |
| The iOS buildbot's scripts have been updated to build bmalloc, so the |
| build should now succeed on the bot. |
| |
| Also renamed "Frameworks" to "Libraries" as suggested in a review comment. |
| |
| WTF should link against bmalloc |
| https://bugs.webkit.org/show_bug.cgi?id=131403 |
| |
| Reviewed by Michael Saboff. |
| |
| This is required to build successfullly with bmalloc enabled. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| |
| 2014-04-08 Geoffrey Garen <ggaren@apple.com> |
| |
| Stop linking WTF against bmalloc. |
| |
| Reviewed by Enrica Casucci. |
| |
| This seems to have broken an iOS buildbot script. Disable it for now |
| until we can fix the script. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| |
| 2014-04-08 Geoffrey Garen <ggaren@apple.com> |
| |
| WTF should link against bmalloc |
| https://bugs.webkit.org/show_bug.cgi?id=131403 |
| |
| Reviewed by Michael Saboff. |
| |
| This is required to build successfullly with bmalloc enabled. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| |
| 2014-04-08 Geoffrey Garen <ggaren@apple.com> |
| |
| Added a bmalloc back-end for FastMalloc |
| https://bugs.webkit.org/show_bug.cgi?id=131387 |
| |
| Reviewed by Andreas Kling. |
| |
| We'll need to rethink some things if we adopt this back-end. For example, |
| fastMallocSize() and fastMallocGoodSize() are no longer real things. But, |
| this is enough to test for now. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::fastMalloc): |
| (WTF::fastCalloc): |
| (WTF::fastRealloc): |
| (WTF::fastFree): |
| (WTF::fastMallocSize): |
| (WTF::fastMallocGoodSize): |
| (WTF::tryFastMalloc): |
| (WTF::tryFastRealloc): |
| (WTF::tryFastCalloc): |
| (WTF::releaseFastMallocFreeMemory): |
| (WTF::fastMallocStatistics): |
| |
| 2014-04-08 Andres Gomez <agomez@igalia.com> |
| |
| [GTK] [EFL] Build fails with GCC < 4.8.x |
| https://bugs.webkit.org/show_bug.cgi?id=130585 |
| |
| Reviewed by Martin Robinson. |
| |
| The behavior in lower versions of GCC seem to be related to |
| http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#2132. |
| |
| Provided explicit casts for the failing ambiguous overloads. |
| |
| * wtf/gtk/MainThreadGtk.cpp: |
| (WTF::scheduleDispatchFunctionsOnMainThread): |
| * wtf/gtk/RunLoopGtk.cpp: |
| (WTF::RunLoop::wakeUp): Provided lambda with a RefPtr instead of |
| ref and de-referring. |
| |
| 2014-04-04 Mark Lam <mark.lam@apple.com> |
| |
| Date object needs to check for ES5 15.9.1.14 TimeClip limit. |
| <https://webkit.org/b/131248> |
| |
| Reviewed by Mark Hahnenberg. |
| |
| * wtf/DateMath.cpp: |
| - Moved the definition of maxECMAScriptTime to the .h file so that we |
| can use it in other files as well. |
| (WTF::msToYear): |
| - Removed a stale comment for parseDateFromNullTerminatedCharacters(). |
| * wtf/DateMath.h: |
| |
| 2014-04-04 Mark Hahnenberg <mhahnenberg@apple.com> |
| |
| Enhanced GC logging |
| https://bugs.webkit.org/show_bug.cgi?id=131246 |
| |
| Reviewed by Geoff Garen. |
| |
| Remove OBJECT_MARK_LOGGING |
| |
| * wtf/FeatureDefines.h: |
| * wtf/Platform.h: |
| |
| 2014-04-03 Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> |
| |
| [EFL] Enable CSS JIT again, it works fine after r166666. |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/Platform.h: |
| |
| 2014-04-03 Javier Fernandez <jfernandez@igalia.com> |
| |
| [GTK][Cmake] Enable CSS JIT |
| https://bugs.webkit.org/show_bug.cgi?id=131022 |
| |
| Reviewed by Martin Robinson. |
| |
| * wtf/Platform.h: Enable CSS JIT for GTK port. |
| |
| 2014-04-02 Frédéric Wang <fred.wang@free.fr> |
| |
| Operator stretching: read the Open Type MATH table |
| https://bugs.webkit.org/show_bug.cgi?id=130324 |
| |
| Reviewed by Chris Fleizach. |
| |
| * wtf/Platform.h: enable OPENTYPE_MATH on platforms that can read OpenType tables. |
| |
| 2014-04-02 Alex Christensen <achristensen@webkit.org> |
| |
| [WinCairo] Build fix with GMainLoopSource. |
| https://bugs.webkit.org/show_bug.cgi?id=131089 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * wtf/gobject/GMainLoopSource.cpp: |
| Only compile if glib is used, which fixes compile errors with video disabled in WinCairo. |
| * wtf/gobject/GMainLoopSource.h: |
| Export the GMainLoopSource functions to WTF.dll to link with where they are called in the GStreamer code. |
| Also removed spaces to appease style bot. |
| |
| 2014-04-01 Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> |
| |
| [EFL] REGRESSION(166569): It made DoYouEvenBench/Full.html, CSS/QuerySelector.html and Dromaeo performance tests crash |
| https://bugs.webkit.org/show_bug.cgi?id=131039 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/Platform.h: Disable CSS JIT on EFL until proper fix. |
| |
| 2014-04-01 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r166583. |
| https://bugs.webkit.org/show_bug.cgi?id=131040 |
| |
| It's causing frequent crashes when running Layout Tests |
| (Requested by svillar on #webkit). |
| |
| Reverted changeset: |
| |
| "[GTK][Cmake] Enable CSS JIT" |
| https://bugs.webkit.org/show_bug.cgi?id=131022 |
| http://trac.webkit.org/changeset/166583 |
| |
| 2014-04-01 Javier Fernandez <jfernandez@igalia.com> |
| |
| [GTK][Cmake] Enable CSS JIT |
| https://bugs.webkit.org/show_bug.cgi?id=131022 |
| |
| Reviewed by Martin Robinson. |
| |
| * wtf/Platform.h: Enable CSS JIT for GTK port. |
| |
| 2014-04-01 Gyuyoung Kim <gyuyoung.kim@samsung.com> |
| |
| [CMake][EFL] Enable CSS JIT |
| https://bugs.webkit.org/show_bug.cgi?id=131010 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/Platform.h: Enable CSS JIT for EFL port. |
| |
| 2014-03-31 Dean Jackson <dino@apple.com> |
| |
| Remove WEB_ANIMATIONS |
| https://bugs.webkit.org/show_bug.cgi?id=130989 |
| |
| Reviewed by Simon Fraser. |
| |
| Remove this feature flag until we plan to implement. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-03-31 Alex Christensen <achristensen@webkit.org> |
| |
| Preparation for using Soup on Windows. |
| https://bugs.webkit.org/show_bug.cgi?id=130615 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| Add all gobject source files in WinCairo build. |
| * wtf/gobject/GRefPtr.h: |
| Export refGPtr and derefGPtr overloads in WTF.dll to fix linker errors with WebKit.dll when using soup. |
| |
| 2014-03-31 Zan Dobersek <zdobersek@igalia.com> |
| |
| Use std::unique_ptr in WTF::CompressedVector, WTF::GenericCompressedData |
| https://bugs.webkit.org/show_bug.cgi?id=130737 |
| |
| Switch to using std::unique_ptr instead of OwnPtr and PassOwnPtr |
| for the CompressedVector and GenericCompressedData classes. |
| |
| * wtf/Compression.cpp: |
| (WTF::GenericCompressedData::create): |
| * wtf/Compression.h: |
| (WTF::CompressedVector::create): |
| (WTF::CompressibleVector::decompressIfNecessary): |
| |
| 2014-03-28 Alexey Proskuryakov <ap@apple.com> |
| |
| [Mac] Enable async text input implementation |
| https://bugs.webkit.org/show_bug.cgi?id=130856 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/Platform.h: Added a USE macro definition. |
| |
| 2014-03-28 peavo@outlook.com <peavo@outlook.com> |
| |
| Null pointer crash in String::append(UChar). |
| https://bugs.webkit.org/show_bug.cgi?id=130900 |
| |
| Reviewed by Michael Saboff. |
| |
| * wtf/text/WTFString.cpp: |
| (WTF::String::append): Check and initialize m_impl member first, to avoid null pointer crash. |
| |
| 2014-03-27 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r166360. |
| https://bugs.webkit.org/show_bug.cgi?id=130869 |
| |
| Seems to have broken PLT (Requested by ap on #webkit). |
| |
| Reverted changeset: |
| |
| "Connection::dispatchOneMessage() can be re-entered while |
| handling Cmd-key menu" |
| https://bugs.webkit.org/show_bug.cgi?id=130767 |
| http://trac.webkit.org/changeset/166360 |
| |
| 2014-03-27 Alexey Proskuryakov <ap@apple.com> |
| |
| Connection::dispatchOneMessage() can be re-entered while handling Cmd-key menu |
| equivalents, ASSERT(!_data->_keyDownEventBeingResent) |
| https://bugs.webkit.org/show_bug.cgi?id=130767 |
| <rdar://problem/16307487> |
| |
| Reviewed by Darin Adler. |
| |
| Changed RunLoop to wake up and fire timers only in default run loop mode by default, |
| and added an ability to add more modes (can't use AppKit symbols in WTF). |
| |
| In addition to this bug, the change also blocks modal alerts from appearing under |
| menus during menu tracking. |
| |
| * wtf/RunLoop.h: |
| * wtf/cf/RunLoopCF.cpp: |
| (WTF::RunLoop::RunLoop): |
| (WTF::RunLoop::addModeForWakeUpAndTimers): |
| (WTF::RunLoop::TimerBase::start): |
| |
| 2014-03-26 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed. Removing the remaining Automake cruft. |
| |
| * GNUmakefile.list.am: Removed. |
| |
| 2014-03-25 Martin Robinson <mrobinson@igalia.com> |
| |
| [GTK] Remove the autotools build |
| https://bugs.webkit.org/show_bug.cgi?id=130717 |
| |
| Reviewed by Anders Carlsson. |
| |
| * GNUmakefile.am: Removed. |
| * config.h: Removed references to the autotools configure file. |
| |
| 2014-03-25 Gabor Rapcsanyi <rgabor@webkit.org> |
| |
| [ARM64] GCC generates wrong code with -O2 flag in WTF::weakCompareAndSwap |
| https://bugs.webkit.org/show_bug.cgi?id=130500 |
| |
| Reviewed by Filip Pizlo. |
| |
| Set the first operand to the exact register in the inline assembly with GCC. |
| |
| * wtf/Atomics.h: |
| (WTF::weakCompareAndSwap): |
| |
| 2014-03-25 Gabor Rapcsanyi <rgabor@webkit.org> |
| |
| [EFL] Add ARM64 build support |
| https://bugs.webkit.org/show_bug.cgi?id=130506 |
| |
| Rubber stamped by Gyuyoung Kim. |
| |
| * wtf/Platform.h: Set WTF_CPU_ARM64 when __aarch64__ is defined. |
| |
| 2014-03-24 Andy Estes <aestes@apple.com> |
| |
| Fix the iOS build. |
| |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::createThreadInternal): |
| (WTF::setCurrentThreadQOSUtility): |
| |
| 2014-03-24 Gavin Barraclough <barraclough@apple.com> |
| |
| Add support for thread QoS |
| https://bugs.webkit.org/show_bug.cgi?id=130688 |
| |
| Speculative EFL build fix. |
| |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::setCurrentThreadQOSUtility): |
| |
| 2014-03-24 Gavin Barraclough <barraclough@apple.com> |
| |
| Add support for thread QoS |
| https://bugs.webkit.org/show_bug.cgi?id=130688 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::TCMalloc_PageHeap::runScavengerThread): |
| - block freeing is a utility activity. |
| * wtf/Threading.h: |
| - declaration. |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::createThreadInternal): |
| - default to interactive. |
| (WTF::setCurrentThreadQOSUtility): |
| - implementation. |
| * wtf/ThreadingWin.cpp: |
| (WTF::setCurrentThreadQOSUtility): |
| - no-op implementation. |
| |
| 2014-03-23 Hyowon Kim <hw1008.kim@samsung.com> |
| |
| Move all EFL typedefs into EflTypedefs.h. |
| https://bugs.webkit.org/show_bug.cgi?id=130511 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| * wtf/Platform.h: include EflTypedefs.h. |
| * wtf/efl/EflTypedefs.h: Added. |
| * wtf/efl/RefPtrEfl.h: Remove EFL typedefs. |
| |
| 2014-03-22 Darin Adler <darin@apple.com> |
| |
| Remove String::deprecatedCharacters |
| https://bugs.webkit.org/show_bug.cgi?id=126854 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/text/StringBuilder.cpp: |
| (WTF::StringBuilder::reifyString): Removed code to update 16-bit shadow. |
| |
| * wtf/text/StringBuilder.h: Removed deprecatedCharacters. |
| (WTF::StringBuilder::StringBuilder): Removed m_valid16BitShadowLength. |
| (WTF::StringBuilder::clear): Removed code to clear m_valid16BitShadowLength. |
| (WTF::StringBuilder::swap): Removed code to swap m_valid16BitShadowLength. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::~StringImpl): Removed code to free m_copyData16. |
| (WTF::StringImpl::upper): Use StringView::upconvertedCharacters for slow case. |
| (WTF::StringImpl::lower): Ditto. |
| (WTF::StringImpl::find): Use characters8/16 rather than deprecatedCharacters. |
| Added an 8-bit code path to one of the overloads. Might want to revisit later |
| to decide whether to use templates instead of copy/paste, or even use StringView |
| to cut down on duplicate code paths. |
| (WTF::StringImpl::findIgnoringCase): Ditto. |
| (WTF::StringImpl::sizeInBytes): Remove code to handle has16BitShadow case. |
| (WTF::equalIgnoringNullity): Added. To be called by the Vector template in the header. |
| |
| * wtf/text/StringImpl.h: Removed deprecatedCharacters, has16BitShadow, |
| upconvertCharacters, getData16SlowCase, s_hashFlagHas16BitShadow, and m_copyData16. |
| (WTF::equalIgnoringNullity): Changed the template function into an inline that calls |
| a non-inline helper function. The non-inline function handles both 8-bit and 16-bit |
| strings. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::StringView): Added an overload so we can make one of these directly |
| from a StringImpl without first wrapping it in a string. Added an adapter so we can |
| use StringView as part of string concatenation. Added an append function so we can |
| append to a Vector<UChar>. |
| |
| * wtf/text/WTFString.cpp: |
| (WTF::String::append): Use StringView::getCharactersWithUpconvert. Also changed |
| single-character append so it won't always turn an 8-bit string into a 16-bit one. |
| (WTF::String::insert): Removed one insert overload and changed the other to use |
| StringView::getCharactersWithUpconvert. |
| (WTF::String::truncate): Changed to use StringImpl::substring. |
| (WTF::String::percentage): Added characters8/16 paths instead of using |
| deprecatedCharacters. |
| |
| * wtf/text/WTFString.h: Removed deprecatedCharacters, getCharactersWithUpconvert, |
| insert(UChar*, unsigned, unsigned), and the append overload for Vector<UChar>. |
| |
| 2014-03-20 Darin Adler <darin@apple.com> |
| |
| Fix a header guard mistake (harmless but clearly wrong) |
| https://bugs.webkit.org/show_bug.cgi?id=130559 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/text/StringConcatenate.h: Correct the macro name in the header guard. |
| |
| 2014-03-20 Hyowon Kim <hw1008.kim@samsung.com> |
| |
| Move to using std::unique_ptr for EFL objects. |
| https://bugs.webkit.org/show_bug.cgi?id=129853 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| EflUniquePtr is a template alias of std::unique_ptr |
| with a custom deleter for each Efl Objects, which is motivated by GUniquePtr. |
| This patch replaces uses of OwnPtr and PassOwnPtr for Efl objects with EflUniquePtr. |
| |
| * wtf/OwnPtrCommon.h: |
| * wtf/PlatformEfl.cmake: |
| * wtf/RunLoop.h: |
| * wtf/efl/MainThreadEfl.cpp: |
| (WTF::pipeObject): |
| (WTF::initializeMainThreadPlatform): |
| * wtf/efl/OwnPtrEfl.cpp: Removed. |
| * wtf/efl/RunLoopEfl.cpp: |
| (WTF::RunLoop::RunLoop): |
| * wtf/efl/UniquePtrEfl.h: Added. |
| (WTF::EflPtrDeleter::operator()): |
| |
| 2014-03-20 Gavin Barraclough <barraclough@apple.com> |
| |
| Remove IdentifierTable typedef, isIdentifier() |
| https://bugs.webkit.org/show_bug.cgi?id=130533 |
| |
| Rubber stamped by Geoff Garen. |
| |
| Code should use AtomicStringTable, isAtomic() directly. |
| |
| * wtf/WTFThreadData.h: |
| (WTF::WTFThreadData::setCurrentAtomicStringTable): |
| (WTF::WTFThreadData::resetCurrentAtomicStringTable): |
| - removed IdentifierTypedef. |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::flagIsAtomic): |
| - renamed flagIsIdentfier -> flagIsAtomic. |
| |
| 2014-03-20 Gavin Barraclough <barraclough@apple.com> |
| |
| Merge AtomicString, Identifier |
| https://bugs.webkit.org/show_bug.cgi?id=128624 |
| |
| Reviewed by Geoff Garen. |
| |
| WTF::StringImpl currently supports two uniquing mechanism - AtomicString and |
| Identifer - that is one too many. |
| |
| Remove Identifier in favour of AtomicString. Identifier had two interesting |
| mechanisms that we preserve. |
| |
| (1) JSC API VMs each get their own string table, switch the string table on |
| API entry/exit. |
| (2) JSC caches a pointer to the string table on the VM to avoid a thread |
| specific access. Adds a new AtomicString::add method to support this. |
| |
| * wtf/WTFThreadData.cpp: |
| (WTF::WTFThreadData::WTFThreadData): |
| - remove allocation of IdentifierTable. |
| (WTF::WTFThreadData::~WTFThreadData): |
| - remove deletion of IdentifierTable. |
| * wtf/WTFThreadData.h: |
| (WTF::WTFThreadData::atomicStringTable): |
| - table is now switched by JSC API, return the current table. |
| (WTF::WTFThreadData::currentIdentifierTable): |
| - now returns the current AtomicStringTable. |
| (WTF::WTFThreadData::setCurrentIdentifierTable): |
| - now sets the current AtomicStringTable. |
| (WTF::WTFThreadData::resetCurrentIdentifierTable): |
| - now resets the AtomicStringTable. |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::addSlowCase): |
| - add without thread-specific access to access string table. |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::addWithStringTableProvider): |
| - add without thread-specific access (used by JSC, string table provided by VM or ExecState). |
| * wtf/text/AtomicStringTable.cpp: |
| (WTF::AtomicStringTable::create): |
| - renamed m_atomicStringTable -> m_defaultAtomicStringTable. |
| (WTF::AtomicStringTable::~AtomicStringTable): |
| (WTF::AtomicStringTable::destroy): |
| - clearing of table moved from AtomicStringTable::destroy to destructor. |
| * wtf/text/AtomicStringTable.h: |
| - added destructor. |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::~StringImpl): |
| - Identifers no longer exist; no need to remove them from IdentifierTable. |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| - removed s_hashFlagIsIdentifier. |
| (WTF::StringImpl::flagIsIdentifier): |
| - s_hashFlagIsIdentifier -> s_hashFlagIsAtomic. |
| (WTF::StringImpl::isIdentifier): |
| - now synonymous to isAtomic(). |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::hashAndFlagsForEmptyUnique): |
| - removed s_hashFlagIsIdentifier. |
| |
| 2014-03-20 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed Clang build fix for the GTK port after r165952. |
| |
| * wtf/gobject/GMainLoopSource.h: Include the <functional> header for the std::function<> objects. |
| |
| 2014-03-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GLIB] Add GMainLoopSource class to wrap idle and timeout sources |
| https://bugs.webkit.org/show_bug.cgi?id=130027 |
| |
| Reviewed by Martin Robinson. |
| |
| GLib main loop sources like idle and timeouts are sometimes |
| unconvenient to use and it's very common to forget canceling the |
| source when the object is destroyed or reset the source ID in the |
| callback when called. GMainLoopSource is a wrapper class to make it |
| easier to handle sources and also to avoid those typical mistakes. |
| It forces to create sources with a name and the user doesn't have |
| to deal with the source ID anymore. The source is cancelled when |
| the object is deleted or when a new source is scheduled. It uses |
| std::function for callbacks so that we no longer need to use the |
| "proxy" static callbacks either. We can use std::bind to use a |
| function pointer or a member or even lambda functions. It also handles |
| repeating sources automatically depending on whether the given |
| function returns a bool or not. |
| |
| * GNUmakefile.list.am: |
| * wtf/PlatformEfl.cmake: |
| * wtf/PlatformGTK.cmake: |
| * wtf/RunLoop.h: |
| * wtf/gobject/GMainLoopSource.cpp: Added. |
| (WTF::GMainLoopSource::createAndDeleteOnDestroy): |
| (WTF::GMainLoopSource::GMainLoopSource): |
| (WTF::GMainLoopSource::~GMainLoopSource): |
| (WTF::GMainLoopSource::cancel): |
| (WTF::GMainLoopSource::reset): |
| (WTF::GMainLoopSource::scheduleIdleSource): |
| (WTF::GMainLoopSource::schedule): |
| (WTF::GMainLoopSource::scheduleTimeoutSource): |
| (WTF::GMainLoopSource::scheduleAfterDelay): |
| (WTF::GMainLoopSource::voidCallback): |
| (WTF::GMainLoopSource::boolCallback): |
| (WTF::GMainLoopSource::socketCallback): |
| (WTF::GMainLoopSource::destroy): |
| (WTF::GMainLoopSource::voidSourceCallback): |
| (WTF::GMainLoopSource::boolSourceCallback): |
| (WTF::GMainLoopSource::socketSourceCallback): |
| * wtf/gobject/GMainLoopSource.h: Added. |
| (WTF::GMainLoopSource::isScheduled): |
| * wtf/gtk/MainThreadGtk.cpp: |
| (WTF::scheduleDispatchFunctionsOnMainThread): |
| * wtf/gtk/RunLoopGtk.cpp: |
| (WTF::RunLoop::wakeUp): |
| (WTF::RunLoop::TimerBase::TimerBase): |
| (WTF::RunLoop::TimerBase::start): |
| (WTF::RunLoop::TimerBase::stop): |
| (WTF::RunLoop::TimerBase::isActive): |
| |
| 2014-03-19 Gavin Barraclough <barraclough@apple.com> |
| |
| https://bugs.webkit.org/show_bug.cgi?id=130494 |
| EmptyUnique strings are Identifiers/Atomic |
| |
| Reviewed by Geoff Garen. |
| |
| EmptyUnique strings should set the Identifier/Atomic flag. |
| |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::add): |
| - Previously we assumed the only StringImpl that was validly allowed to claim to be |
| Atomic but not be in a table was the canonical empty string. Now that EmptyUniques |
| are also marked Atomic, all empty strings may pass this condition. |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::~StringImpl): |
| - EmptyUnique strings are not in the Atomic/Identfiier tabels, so don't need removing. |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| - Change EmptyUnique constructor to call hashAndFlagsForEmptyUnique. |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::hashAndFlagsForEmptyUnique): |
| - Allocate a sequential hash code (this should be just as good for distribution & better |
| for debugging than the random value) and set flags, now including Atomic & Identifier. |
| |
| 2014-03-19 Gavin Barraclough <barraclough@apple.com> |
| |
| Small cleanup of empty string |
| https://bugs.webkit.org/show_bug.cgi?id=130438 |
| |
| Reviewed by Anders Carlson. |
| |
| The empty string is weird becuase it is used as the impl for an AtomicString, but isAtomic() |
| returns false. |
| Also, we set a valid pointer for the characters pointer due to an old PCRE bug; remove this. |
| Also, we currently only create one 'static' string, the empty string. Adding more might break |
| assumtions, inhibit the constructor from being used to create other static strings for now. |
| |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::add): |
| - update assert. |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| - Merge ConstructStaticString constructors, only allow the empty static string to be constructed. |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::empty): |
| - ConstructStaticString -> ConstructEmptyString, remove arguments, DEPRECATED_DEFINE_STATIC_LOCAL -> NeverDestroyed. |
| |
| 2014-03-18 Darin Adler <darin@apple.com> |
| |
| Reduce use of deprecatedCharacters in WebCore |
| https://bugs.webkit.org/show_bug.cgi?id=130318 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/text/WTFString.h: Export another overload of charactersToFloat since it's used |
| in WebCore now. |
| |
| * wtf/text/cf/StringViewCF.cpp: Change so this can build on Windows. |
| |
| * WTF.vcxproj/WTF.vcxproj: Added StringViewCF.cpp. |
| * WTF.vcxproj/WTF.vcxproj.filters: Added StringViewCF.cpp. |
| |
| 2014-03-18 Filip Pizlo <fpizlo@apple.com> |
| |
| More FTL enabling. |
| |
| Rubber stamped by Dan Bernstein and Mark Hahnenberg. |
| |
| * wtf/Platform.h: |
| |
| 2014-03-17 Darin Adler <darin@apple.com> |
| |
| Remove most uses of deprecatedCharacter in WTF |
| https://bugs.webkit.org/show_bug.cgi?id=130317 |
| |
| Reviewed by Andreas Kling. |
| |
| Re-landing after fixing the "80 instead of 0x80" typo in equalLatin1WithUTF8. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::HashAndUTF8CharactersTranslator::equal): Add an 8-bit code path to the |
| non-ASCII path. |
| (WTF::SubstringTranslator8::hash): Added. |
| (WTF::SubstringTranslator8::equal): Added. |
| (WTF::SubstringTranslator16::hash): Renamed class. |
| (WTF::SubstringTranslator16::equal): Ditto. |
| (WTF::AtomicString::add): Added an 8-bit code path to the substring case. |
| |
| * wtf/text/Base64.cpp: |
| (WTF::base64Decode): Added an 8 bit code path. |
| (WTF::base64URLDecode): Ditto. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::find): Fixed a case that was incorrectly using characters16 |
| without first using is8Bit. Need to return later to remove use of deprecatedCharacters. |
| |
| * wtf/unicode/UTF8.cpp: |
| (WTF::Unicode::equalUTF16WithUTF8): Added a case for when the UTF-16 characters |
| are ASCII. Also removed the aEnd argument, since the caller only calls this when the |
| lengths are equal. |
| (WTF::Unicode::equalLatin1WithUTF8): Added. |
| * wtf/unicode/UTF8.h: Updated as described above. |
| |
| 2014-03-17 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r165721. |
| https://bugs.webkit.org/show_bug.cgi?id=130367 |
| |
| It makes the debug bots flaky (Requested by benjaminp on |
| #webkit). |
| |
| Reverted changeset: |
| |
| "Remove most uses of deprecatedCharacter in WTF" |
| https://bugs.webkit.org/show_bug.cgi?id=130317 |
| http://trac.webkit.org/changeset/165721 |
| |
| 2014-03-17 Zan Dobersek <zdobersek@igalia.com> |
| |
| Use RunLoop objects through references instead of pointers |
| https://bugs.webkit.org/show_bug.cgi?id=130313 |
| |
| Reviewed by Andreas Kling. |
| |
| Make RunLoop::current() and RunLoop::main() return a RunLoop reference instead |
| of a pointer. RunLoop::Holder now uses a Ref<RunLoop> member. Timer and TimerBase |
| constructors take in a RunLoop reference, with TimerBase now storing a RunLoop |
| reference member instead of a pointer. Platform-specific bits of the RunLoop |
| class are updated accordingly. |
| |
| * wtf/RunLoop.cpp: |
| (WTF::RunLoop::Holder::Holder): |
| (WTF::RunLoop::Holder::runLoop): |
| (WTF::RunLoop::initializeMainRunLoop): |
| (WTF::RunLoop::current): |
| (WTF::RunLoop::main): |
| (WTF::RunLoop::isMain): |
| * wtf/RunLoop.h: |
| (WTF::RunLoop::Timer::Timer): |
| * wtf/cf/RunLoopCF.cpp: |
| (WTF::RunLoop::run): |
| (WTF::RunLoop::TimerBase::TimerBase): |
| (WTF::RunLoop::TimerBase::start): |
| * wtf/efl/RunLoopEfl.cpp: |
| (WTF::RunLoop::TimerBase::TimerBase): |
| * wtf/gtk/RunLoopGtk.cpp: |
| (WTF::RunLoop::run): |
| (WTF::RunLoop::TimerBase::TimerBase): |
| (WTF::RunLoop::TimerBase::start): |
| * wtf/win/RunLoopWin.cpp: |
| (WTF::RunLoop::TimerBase::TimerBase): |
| (WTF::RunLoop::TimerBase::start): |
| (WTF::RunLoop::TimerBase::stop): |
| (WTF::RunLoop::TimerBase::isActive): |
| |
| 2014-03-17 Tamas Gergely <tgergely.u-szeged@partner.samsung.com> |
| |
| One more fix after r165725. |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/WTFThreadData.h: |
| |
| 2014-03-17 Tamas Gergely <tgergely.u-szeged@partner.samsung.com> |
| |
| Buildfix after r165725 for non Mac platforms. |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/WTFThreadData.h: |
| |
| 2014-03-17 Andreas Kling <akling@apple.com> |
| |
| [Mac] WTFThreadData should use _pthread_getspecific_direct(). |
| <https://webkit.org/b/130320> |
| |
| Hack WTFThreadData to use a direct key for TLS access when available. |
| This mechanism uses a dedicated segment register and is the same way |
| we implement the fast path in FastMalloc. |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FastMalloc.cpp: |
| * wtf/WTFThreadData.cpp: |
| (WTF::WTFThreadData::createAndRegisterForGetspecificDirect): |
| * wtf/WTFThreadData.h: |
| (WTF::wtfThreadData): |
| |
| 2014-03-16 Darin Adler <darin@apple.com> |
| |
| Remove most uses of deprecatedCharacter in WTF |
| https://bugs.webkit.org/show_bug.cgi?id=130317 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::HashAndUTF8CharactersTranslator::equal): Add an 8-bit code path to the |
| non-ASCII path. |
| (WTF::SubstringTranslator8::hash): Added. |
| (WTF::SubstringTranslator8::equal): Added. |
| (WTF::SubstringTranslator16::hash): Renamed class. |
| (WTF::SubstringTranslator16::equal): Ditto. |
| (WTF::AtomicString::add): Added an 8-bit code path to the substring case. |
| |
| * wtf/text/Base64.cpp: |
| (WTF::base64Decode): Added an 8 bit code path. |
| (WTF::base64URLDecode): Ditto. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::find): Fixed a case that was incorrectly using characters16 |
| without first using is8Bit. Need to return later to remove use of deprecatedCharacters. |
| |
| * wtf/unicode/UTF8.cpp: |
| (WTF::Unicode::equalUTF16WithUTF8): Added a case for when the UTF-16 characters |
| are ASCII. Also removed the aEnd argument, since the caller only calls this when the |
| lengths are equal. |
| (WTF::Unicode::equalLatin1WithUTF8): Added. |
| * wtf/unicode/UTF8.h: Updated as described above. |
| |
| 2014-03-16 David Kilzer <ddkilzer@apple.com> |
| |
| Follow-up: Fix undefined behavior in WTF::equal() in StringImpl.h for i386/x86_64 |
| <http://webkit.org/b/130283> |
| <rdar://problem/16281477> |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::loadUnaligned): Restore behavior prior to r165681 for |
| compilers other than clang. |
| |
| 2014-03-16 Darin Adler <darin@apple.com> |
| |
| Remove all uses of deprecatedCharacters from JavaScriptCore |
| https://bugs.webkit.org/show_bug.cgi?id=130304 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/dtoa.h: |
| (WTF::parseDouble): Added an overload that takes a StringView. |
| |
| 2014-03-15 Darin Adler <darin@apple.com> |
| |
| Remove all uses of deprecatedCharacters from WebKit2 |
| https://bugs.webkit.org/show_bug.cgi?id=130197 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/text/StringView.h: Added new getCharactersWithUpconvert and upconvertedCharacters |
| functions. These are useful for callers that need UTF-16. |
| |
| 2014-03-15 Darin Adler <darin@apple.com> |
| |
| Try to fix EFL build. |
| |
| * wtf/ThreadingPthreads.cpp: (WTF::changeThreadPriority): Code in this function |
| was setting the priority of the current thread instead of the passed-in thread. |
| That was triggering an unused variable warning in the compiler used to build for |
| EFL. Fixed by using the thread handle instead of pthread_self. |
| |
| 2014-03-15 Michael Saboff <msaboff@apple.com> |
| |
| It should be possible to adjust DFG and FTL compiler thread priorities |
| https://bugs.webkit.org/show_bug.cgi?id=130288 |
| |
| Reviewed by Filip Pizlo. |
| |
| Added ability to change thread priorities relative to its current priority. |
| Created options to adjust the priority of the DFG and FTL compilation work thread |
| pools. For two core systems, there might be three runnable threads, the main thread, |
| the DFG compilation thread and the FTL compilation thread. With the same priority, |
| the scheduler is free to schedule whatever thread it wants. By lowering the |
| compilation threads, the main thread can run. Further tests may suggest better values |
| for the new options, priorityDeltaOfDFGCompilerThreads and priorityDeltaOfFTLCompilerThreads. |
| |
| For a two-core device, this change has a net positive improvement of 1-3% across |
| SunSpider, Octane, Kraken and AsmBench. |
| |
| * wtf/Threading.h: |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::changeThreadPriority): |
| * wtf/ThreadingWin.cpp: |
| (WTF::changeThreadPriority): |
| |
| 2014-03-15 David Kilzer <ddkilzer@apple.com> |
| |
| Fix undefined behavior in WTF::equal() in StringImpl.h for i386/x86_64 |
| <http://webkit.org/b/130283> |
| <rdar://problem/16281477> |
| |
| Reviewed by Geoff Garen. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::loadUnaligned): Add template method. |
| (WTF::equal): Switch to using loadUnaligned<>(). |
| |
| 2014-03-14 Mark Rowe <mrowe@apple.com> |
| |
| Fix the production build. |
| |
| Don't rely on USE_INTERNAL_SDK being set for the Production configuration since UseInternalSDK.xcconfig won't |
| be at the expected relative path when working from installed source. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2014-03-14 Maciej Stachowiak <mjs@apple.com> |
| |
| Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers |
| https://bugs.webkit.org/show_bug.cgi?id=130276 |
| <rdar://problem/16266927> |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/ASCIICType.h: |
| * wtf/AVLTree.h: |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| * wtf/Atomics.cpp: |
| * wtf/Atomics.h: |
| * wtf/AutodrainedPool.h: |
| * wtf/AutodrainedPoolMac.mm: |
| * wtf/BoundsCheckedPointer.h: |
| * wtf/CryptographicUtilities.cpp: |
| * wtf/CryptographicallyRandomNumber.h: |
| * wtf/CurrentTime.h: |
| * wtf/Deque.h: |
| * wtf/DisallowCType.h: |
| * wtf/ExportMacros.h: |
| * wtf/FeatureDefines.h: |
| * wtf/GetPtr.h: |
| * wtf/HashIterators.h: |
| * wtf/Locker.h: |
| * wtf/MainThread.cpp: |
| * wtf/MainThread.h: |
| * wtf/MathExtras.h: |
| * wtf/MediaTime.cpp: |
| * wtf/MediaTime.h: |
| * wtf/MessageQueue.h: |
| * wtf/MetaAllocator.cpp: |
| * wtf/MetaAllocator.h: |
| * wtf/MetaAllocatorHandle.h: |
| * wtf/OSRandomSource.cpp: |
| * wtf/OSRandomSource.h: |
| * wtf/Platform.h: |
| * wtf/RandomNumber.cpp: |
| * wtf/RandomNumber.h: |
| * wtf/RandomNumberSeed.h: |
| * wtf/RedBlackTree.h: |
| * wtf/RunLoopTimer.h: |
| * wtf/RunLoopTimerCF.cpp: |
| * wtf/SchedulePair.h: |
| * wtf/SchedulePairCF.cpp: |
| * wtf/SchedulePairMac.mm: |
| * wtf/SegmentedVector.h: |
| * wtf/StackBounds.h: |
| * wtf/StaticConstructors.h: |
| * wtf/StringExtras.h: |
| * wtf/ThreadFunctionInvocation.h: |
| * wtf/ThreadSafeRefCounted.h: |
| * wtf/ThreadSpecific.h: |
| * wtf/Threading.h: |
| * wtf/ThreadingPrimitives.h: |
| * wtf/ThreadingPthreads.cpp: |
| * wtf/ThreadingWin.cpp: |
| * wtf/WTFThreadData.cpp: |
| * wtf/WTFThreadData.h: |
| * wtf/efl/OwnPtrEfl.cpp: |
| * wtf/mac/MainThreadMac.mm: |
| * wtf/text/AtomicStringHash.h: |
| * wtf/text/AtomicStringImpl.h: |
| * wtf/text/Base64.h: |
| * wtf/text/CString.cpp: |
| * wtf/text/CString.h: |
| * wtf/text/LChar.h: |
| * wtf/text/cf/StringCF.cpp: |
| * wtf/text/mac/StringMac.mm: |
| * wtf/unicode/CharacterNames.h: |
| * wtf/unicode/Collator.h: |
| * wtf/unicode/CollatorDefault.cpp: |
| * wtf/unicode/UTF8.cpp: |
| * wtf/unicode/UTF8.h: |
| * wtf/unicode/icu/CollatorICU.cpp: |
| * wtf/win/MainThreadWin.cpp: |
| |
| 2014-03-14 Byungseon Shin <sun.shin@lge.com> |
| |
| Incorrect Date returned between March 1, 2034 and February 28, 2100. |
| https://bugs.webkit.org/show_bug.cgi?id=130123 |
| |
| Reviewed by Mark Lam. |
| |
| Fix logic by using predefined Date APIs. |
| |
| * wtf/DateMath.cpp: |
| (WTF::ymdhmsToSeconds): |
| |
| 2014-03-12 Sergio Villar Senin <svillar@igalia.com> |
| |
| Rename DEFINE_STATIC_LOCAL to DEPRECATED_DEFINE_STATIC_LOCAL |
| https://bugs.webkit.org/show_bug.cgi?id=129612 |
| |
| Reviewed by Darin Adler. |
| |
| For new code use static NeverDestroyed<T> instead. |
| |
| * wtf/RunLoop.cpp: |
| (WTF::RunLoop::current): |
| * wtf/StdLibExtras.h: |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::threadMapMutex): |
| (WTF::threadMap): |
| * wtf/efl/MainThreadEfl.cpp: |
| (WTF::pipeObject): |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::empty): |
| |
| 2014-03-13 Radu Stavila <stavila@adobe.com> |
| |
| Webkit not building on XCode 5.1 due to garbage collection no longer being supported |
| https://bugs.webkit.org/show_bug.cgi?id=130087 |
| |
| Reviewed by Mark Rowe. |
| |
| Disable garbage collection on macosx when not using internal SDK. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2014-03-12 Ryuan Choi <ryuan.choi@samsung.com> |
| |
| [EFL] Enable Parallel GC |
| https://bugs.webkit.org/show_bug.cgi?id=130177 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Platform.h: Turn on ENABLE_PARALLEL_GC for the EFL build. |
| |
| 2014-03-12 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Disable REMOTE_INSPECTOR in earlier OS X releases |
| https://bugs.webkit.org/show_bug.cgi?id=130118 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-03-11 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Unreviewed gardening. |
| |
| * wtf/MathExtras.h: VS2013 provides an lrint implementation. No need to implement |
| our own. |
| |
| 2014-03-10 Jer Noble <jer.noble@apple.com> |
| |
| Improve WeakPtr operators. |
| https://bugs.webkit.org/show_bug.cgi?id=130053 |
| |
| Reviewed by Andreas Kling. |
| |
| Replace the "operator!()" with an explicit bool operator. Add an "operator->()". |
| |
| * wtf/WeakPtr.h: |
| (WTF::WeakPtr::operator bool): |
| (WTF::WeakPtr::operator->): |
| |
| 2014-03-10 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Pass environment to Pre-Build, Pre-Link, and Post-Build Stages. |
| https://bugs.webkit.org/show_bug.cgi?id=130023. |
| |
| Reviewed by Dean Jackson. |
| |
| * WTF.vcxproj/WTF.proj: Avoid putting trailing slashes in system paths to avoid |
| escaping during later string substitution. |
| * WTF.vcxproj/build-generated-files.sh: Accept environment values passed by VS. |
| |
| 2014-03-10 Mark Hahnenberg <mhahnenberg@apple.com> |
| |
| Turn on GenGC on other 64-bit platforms |
| https://bugs.webkit.org/show_bug.cgi?id=129258 |
| |
| Reviewed by Oliver Hunt. |
| |
| * wtf/Platform.h: |
| |
| 2014-03-07 peavo@outlook.com <peavo@outlook.com> |
| |
| [Win64] Compile error after r165128. |
| https://bugs.webkit.org/show_bug.cgi?id=129807 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/Platform.h: MSVC does not support computed goto. |
| Also enabled COMPUTED_GOTO_OPCODES when !ENABLE(LLINT_C_LOOP). This is needed because the ASM LLINT operates like COMPUTED_GOTO_OPCODES, |
| and relies on the related data structures being defined to support this. On Win32, the platform does not HAVE_COMPUTED_GOTO support, |
| but does want ENABLE_COMPUTED_GOTO_OPCODES because it uses the ASM LLINT. |
| |
| 2014-03-06 Michael Saboff <msaboff@apple.com> |
| |
| JSC should disable the JIT when building for ARMv7k |
| https://bugs.webkit.org/show_bug.cgi?id=129829 |
| |
| Reviewed by Oliver Hunt. |
| |
| Added WTF_CPU_APPLE_ARMV7K CPU define. Disabled the JITs when |
| that feature define is set. |
| |
| * wtf/Platform.h: |
| |
| 2014-03-06 Filip Pizlo <fpizlo@apple.com> |
| |
| Use the LLVM disassembler on ARM64 if we are enabling the FTL |
| https://bugs.webkit.org/show_bug.cgi?id=129785 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Platform.h: |
| |
| 2014-03-05 peavo@outlook.com <peavo@outlook.com> |
| |
| [Win32][LLINT] Crash when running JSC stress tests. |
| https://bugs.webkit.org/show_bug.cgi?id=129429 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Platform.h: Enable LLINT on Win32. |
| |
| 2014-03-04 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GTK] Build the Udis86 disassembler |
| https://bugs.webkit.org/show_bug.cgi?id=129679 |
| |
| Reviewed by Michael Saboff. |
| |
| * wtf/Platform.h: Also enable the Udis86 disassembler for the GTK port on Linux. |
| |
| 2014-03-02 Jaehun Lim <ljaehun.lim@samsung.com> |
| |
| [EFL] Remove m_initEfl from RunLoop. |
| https://bugs.webkit.org/show_bug.cgi?id=129568 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| We don't use m_initEfl except RunLoop constructor. |
| |
| * wtf/RunLoop.h: |
| * wtf/efl/RunLoopEfl.cpp: |
| (WTF::RunLoop::RunLoop): |
| |
| 2014-03-02 Darin Adler <darin@apple.com> |
| |
| Cut down use of OwnPtr within WTF itself |
| https://bugs.webkit.org/show_bug.cgi?id=129567 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/RefCounted.h: Removed OwnPtr includes. |
| |
| * wtf/StreamBuffer.h: Removed OwnPtr includes and switched to use |
| std::make_unique and std::unique_ptr instead. |
| |
| * wtf/Threading.cpp: Removed OwnPtr includes. |
| * wtf/ThreadingPthreads.cpp: Ditto. |
| * wtf/Vector.h: Ditto. |
| |
| 2014-02-26 Gavin Barraclough <barraclough@apple.com> |
| |
| FastMalloc should use vm_page_shift intead of PAGE_SHIFT. |
| https://bugs.webkit.org/show_bug.cgi?id=129370 |
| |
| Reviewed by Mark Rowe. |
| |
| "Doesn't this lead to the page map using fewer bits than it was before? |
| It seems like this will cause some page addresses to no longer be |
| representable in the map when using 4K pages. Am I missing something?" |
| |
| * wtf/FastMalloc.cpp: |
| - bdash raises a valid point. This should make the TCMalloc_PageMap |
| larger than absolutely necessary, rather than potentially too small. |
| |
| 2014-02-25 Gavin Barraclough <barraclough@apple.com> |
| |
| FastMalloc should use vm_page_shift intead of PAGE_SHIFT. |
| https://bugs.webkit.org/show_bug.cgi?id=129370 |
| |
| Reviewed by Geoff Garen. |
| |
| Previously we used PAGE_SHIFT to initialize kPageShift. |
| Since this was a constant, it could be used to calculate other |
| contants used in the code. Some of these values are used in the |
| definition of certain data structures (specifiying the length of |
| some array members). |
| |
| Make kPageShift & dependent properties variables setup during |
| initialization. Add upper bound values (K_PAGE_SHIFT_MAX, |
| K_NUM_CLASSES_MAX) for use in cases where we need a constant. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::InitSizeClasses): |
| - initialize kPageShift, kNumClasses, kPageSize, kMaxValidPages. |
| (WTF::pages): |
| - added ASSERT. |
| (WTF::AllocationSize): |
| - added ASSERT. |
| (WTF::TCMalloc_PageHeap::FreeBytes): |
| - added ASSERT. |
| (WTF::TCMalloc_PageHeap::init): |
| - COMPILE_ASSERT -> ASSERT |
| (WTF::TCMalloc_PageHeap::scavenge): |
| - added ASSERT. |
| (WTF::TCMalloc_PageHeap::Carve): |
| - added ASSERT. |
| (WTF::mergeDecommittedStates): |
| - added ASSERT. |
| (WTF::TCMalloc_PageHeap::IncrementalScavenge): |
| - added ASSERT. |
| (WTF::TCMalloc_PageHeap::ReturnedBytes): |
| - added ASSERT. |
| (WTF::PagesToMB): |
| - added ASSERT. |
| (WTF::TCMalloc_PageHeap::GrowHeap): |
| - added ASSERT. |
| (WTF::TCMalloc_PageHeap::ReleaseFreeList): |
| - kNumClasses -> K_NUM_CLASSES_MAX |
| (WTF::TCMalloc_ThreadCache::enumerateFreeObjects): |
| - added ASSERT. |
| (WTF::TCMalloc_Central_FreeList::Init): |
| - added ASSERT. |
| (WTF::TCMalloc_Central_FreeList::ReleaseToSpans): |
| - added ASSERT. |
| (WTF::TCMalloc_Central_FreeList::EvictRandomSizeClass): |
| - added ASSERT. |
| (WTF::TCMalloc_Central_FreeList::MakeCacheSpace): |
| - added ASSERT. |
| (WTF::TCMalloc_Central_FreeList::InsertRange): |
| - added ASSERT. |
| (WTF::TCMalloc_Central_FreeList::Populate): |
| - added ASSERT. |
| (WTF::TCMalloc_ThreadCache::Init): |
| - added ASSERT. |
| (WTF::TCMalloc_ThreadCache::Cleanup): |
| - added ASSERT. |
| (WTF::TCMalloc_ThreadCache::Scavenge): |
| - added ASSERT. |
| (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary): |
| - added ASSERT. |
| |
| 2014-02-24 Alex Christensen <achristensen@webkit.org> |
| |
| Disabled WebGL on WinCairo. |
| |
| Unreviewed. |
| |
| * wtf/FeatureDefines.h: |
| Removed ENABLE_WEBGL definition for WinCairo port. |
| WebGL has not worked on WinCairo since r163079 |
| and it was not compiling with a recent ANGLE update. |
| |
| 2014-02-24 Mark Hahnenberg <mhahnenberg@apple.com> |
| |
| Turn GenGC on for 32-bit systems |
| https://bugs.webkit.org/show_bug.cgi?id=128824 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Platform.h: |
| |
| 2014-02-21 Benjamin Poulain <benjamin@webkit.org> |
| |
| jsDocumentPrototypeFunctionGetElementById should not create an AtomicString for the function argument |
| https://bugs.webkit.org/show_bug.cgi?id=128893 |
| |
| Reviewed by Darin Adler. |
| |
| AtomicString::find() is a special case optimized for the JavaScript bindings. The method can only |
| be called under specific conditions. |
| The method is renamed to findStringWithHash(). |
| |
| The new AtomicString::find is generic and does not require any propery on the input. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::findStringWithHash): |
| (WTF::AtomicString::findSlowCase): |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::find): |
| |
| 2014-02-20 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Add StackStats sources to cmake and autotools build files |
| https://bugs.webkit.org/show_bug.cgi?id=129103 |
| |
| Reviewed by Anders Carlsson. |
| |
| * GNUmakefile.list.am: |
| * wtf/CMakeLists.txt: |
| |
| 2014-02-20 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Get rid of redundant Platform.h includes |
| https://bugs.webkit.org/show_bug.cgi?id=128817 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/Assertions.h: |
| * wtf/Atomics.h: |
| * wtf/ByteOrder.h: |
| * wtf/DataLog.h: |
| * wtf/DisallowCType.h: |
| * wtf/DynamicAnnotations.h: |
| * wtf/ExportMacros.h: |
| * wtf/FastMalloc.h: |
| * wtf/FlipBytes.h: |
| * wtf/InlineASM.h: |
| * wtf/PrintStream.h: |
| * wtf/ProcessID.h: |
| * wtf/Threading.h: |
| * wtf/ThreadingPrimitives.h: |
| |
| 2014-02-19 Jon Honeycutt <jhoneycutt@apple.com> |
| |
| Crash in WTF::StringBuilder::append() |
| |
| https://bugs.webkit.org/show_bug.cgi?id=125817 |
| <rdar://problem/15671883> |
| |
| Reviewed by Oliver Hunt. |
| |
| * wtf/text/StringBuilder.cpp: |
| (WTF::expandedCapacity): |
| Ensure that we return a new capacity of at least 'requiredLength' in |
| the case where requiredLength is large. Also, use unsigned rather than |
| size_t for the parameters and the return value, as callers pass |
| unsigned arguments and treat the result as an unsigned int. |
| |
| 2014-02-19 Anders Carlsson <andersca@apple.com> |
| |
| Add WTF_MAKE_FAST_ALLOCATED to more classes |
| https://bugs.webkit.org/show_bug.cgi?id=129064 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Bitmap.h: |
| |
| 2014-02-19 Zan Dobersek <zdobersek@igalia.com> |
| |
| Make PrintStream::print() a variadic template |
| https://bugs.webkit.org/show_bug.cgi?id=126388 |
| |
| Reviewed by Brent Fulgham. |
| |
| PrintStream::print() can be converted into a variadic template, printing the value |
| of the first parameter and recursively calling itself until the single parameter version |
| is used for printing the last value. |
| |
| * wtf/DataLog.h: |
| (WTF::dataLog): Convert the function to a variadic template as well. |
| * wtf/PrintStream.h: |
| (WTF::PrintStream::print): |
| * wtf/StringPrintStream.h: |
| (WTF::toCString): Ditto. |
| (WTF::toString): Ditto. |
| |
| 2014-02-19 Zan Dobersek <zdobersek@igalia.com> |
| |
| Use std::swap() in HashTable::swap() |
| https://bugs.webkit.org/show_bug.cgi?id=128995 |
| |
| Reviewed by Brent Fulgham. |
| |
| Use std::swap() to swap the member variable values of two HashTable objects in HashTable::swap(). |
| |
| * wtf/HashTable.h: |
| (WTF::KeyTraits>::swap): |
| |
| 2014-02-19 Zan Dobersek <zdobersek@igalia.com> |
| |
| SegmentedVector::append() should take in rvalue reference, forward it to Vector::uncheckedAppend() |
| https://bugs.webkit.org/show_bug.cgi?id=128996 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/SegmentedVector.h: |
| (WTF::SegmentedVector::append): Take in an rvalue reference of the object that's to be appended and |
| then forward it to Vector::uncheckedAppend(). This avoids unnecessary copies in the current situation |
| where a const lvalue is accepted and passed on. |
| |
| 2014-02-19 Dan Bernstein <mitz@apple.com> |
| |
| Simplify PLATFORM(MAC) && !PLATFORM(IOS) and similar expressions |
| https://bugs.webkit.org/show_bug.cgi?id=129029 |
| |
| Reviewed by Mark Rowe. |
| |
| * wtf/FeatureDefines.h: |
| * wtf/Platform.h: |
| * wtf/Threading.cpp: |
| * wtf/text/cf/StringImplCF.cpp: |
| (garbageCollectionEnabled): |
| |
| 2014-02-18 Dan Bernstein <mitz@apple.com> |
| |
| PLATFORM(MAC) is true when building for iOS |
| https://bugs.webkit.org/show_bug.cgi?id=129025 |
| |
| Reviewed by Mark Rowe. |
| |
| * wtf/Platform.h: Changed to define WTF_PLATFORM_MAC only on when building for OS X (but |
| still not when WTF_PLATFORM_GTK or WTF_PLATFORM_EFL are defined). |
| |
| 2014-02-18 Joseph Pecoraro <pecoraro@apple.com> |
| |
| [iOS] Web Inspector: JSContext inspection crashes in isMainThread, uninitialized WebCoreWebThreadIsLockedOrDisabled |
| https://bugs.webkit.org/show_bug.cgi?id=128959 |
| |
| Reviewed by David Kilzer. |
| |
| When JavaScriptCore is used without WebCore on iOS (e.g. JSContext) |
| the WebCoreWebThread* functions will not be initialized. Avoid |
| calling the function pointer if it is uninitialized. This was |
| happening with remote inspection via StringImpl::createCFString |
| for implicit NSString / WTFString conversion which uses isMainThread. |
| |
| * wtf/mac/MainThreadMac.mm: |
| (WTF::webThreadIsUninitializedOrLockedOrDisabled): |
| (WTF::isMainThread): |
| (WTF::canAccessThreadLocalDataForThread): |
| |
| 2014-02-17 Filip Pizlo <fpizlo@apple.com> |
| |
| More ARM FTL glue |
| https://bugs.webkit.org/show_bug.cgi?id=128948 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/Platform.h: |
| |
| 2014-02-17 Anders Carlsson <andersca@apple.com> |
| |
| Remove ENABLE_GLOBAL_FASTMALLOC_NEW |
| https://bugs.webkit.org/show_bug.cgi?id=127067 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Remove the global operator new/operator delete overrides. Having ALWAYS_INLINE operators |
| like we do is really undefined behavior according to the C++ standard and we've been lucky enough |
| to get away with it so far, but any code that calls operator new/operator delete inside from the C++ standard |
| library (not from headers that are included) will be mismatched and potentially crash. libc++ calls |
| delete in it's std::thread implementation for example. |
| |
| The only supported way to override operator new and operator delete globally is to not use inline |
| functions, but that would mean that any application using WebKit would not be able to provide custom |
| operator new/operator delete functions so we'll just reuse the already existing infrastructure consisting |
| of the WTF_MAKE_FAST_ALLOCATED macro. |
| |
| * wtf/FastMalloc.cpp: |
| (WTF::TCMalloc_ThreadCache::CreateCacheIfNecessary): |
| * wtf/FastMalloc.h: |
| * wtf/Platform.h: |
| |
| 2014-02-17 Ryan Lortie <desrt@desrt.ca> |
| |
| Enable DFG_JIT on FreeBSD |
| https://bugs.webkit.org/show_bug.cgi?id=128898 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/Platform.h: |
| |
| 2014-02-15 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL should inline polymorphic heap accesses |
| https://bugs.webkit.org/show_bug.cgi?id=128795 |
| |
| Reviewed by Oliver Hunt. |
| |
| * wtf/PrintStream.h: |
| (WTF::PointerDumpInContext::PointerDumpInContext): |
| (WTF::PointerDumpInContext::dump): |
| (WTF::pointerDumpInContext): |
| |
| 2014-02-16 Zan Dobersek <zdobersek@igalia.com> |
| |
| Reintroduce const qualifiers for return types of (Filter|Transform)Iterator::operator*() |
| https://bugs.webkit.org/show_bug.cgi?id=126875 |
| |
| The const qualifiers for the return types of FilterIterator::operator*() and TransformIterator::operator*() |
| were removed in r161797 and r161802 because of compilation failures when using GCC and having an Iterator |
| type that already had the const qualifier. std::remove_const is now used to appease GCC and enforce the const |
| qualifier on the return type, regardless of the Iterator type and its qualifiers. |
| |
| * wtf/IteratorAdaptors.h: |
| (WTF::FilterIterator::operator*): |
| (WTF::TransformIterator::operator*): |
| |
| 2014-02-15 Filip Pizlo <fpizlo@apple.com> |
| |
| Vector with inline capacity should work with non-PODs |
| https://bugs.webkit.org/show_bug.cgi?id=128864 |
| |
| Reviewed by Michael Saboff. |
| |
| Previously, we would copy the inline storage of a vector as if it was a bag of bits. |
| This presumed that the element type was relocatable. In general this is only true for |
| PODs. |
| |
| This patch changes this by introducing a swap operation over inline storage. This swap |
| operation requires being told about the size that is in use. |
| |
| Deques would have required some cleverness to make this work, because the swap |
| operation needs to know which subset of elements are in-use and assumes that a size is |
| sufficient for this. That's not true for deques. Instead of trying to do very clever |
| things, I just removed the inline capacity option from Deque. I believe that this is |
| fine since there are only two users of Deque with inline capacity, and both of them |
| appear to be allocated rarely enough that inline capacity probably doesn't help much. |
| |
| * wtf/Deque.h: |
| (WTF::DequeIterator::DequeIterator): |
| (WTF::DequeConstIterator::DequeConstIterator): |
| (WTF::Deque<T>::checkValidity): |
| (WTF::Deque<T>::checkIndexValidity): |
| (WTF::Deque<T>::invalidateIterators): |
| (WTF::Deque<T>::Deque): |
| (WTF::=): |
| (WTF::Deque<T>::destroyAll): |
| (WTF::Deque<T>::~Deque): |
| (WTF::Deque<T>::swap): |
| (WTF::Deque<T>::clear): |
| (WTF::Deque<T>::expandCapacityIfNeeded): |
| (WTF::Deque<T>::expandCapacity): |
| (WTF::Deque<T>::append): |
| (WTF::Deque<T>::prepend): |
| (WTF::Deque<T>::removeFirst): |
| (WTF::Deque<T>::removeLast): |
| (WTF::Deque<T>::remove): |
| (WTF::DequeIteratorBase<T>::checkValidity): |
| (WTF::DequeIteratorBase<T>::addToIteratorsList): |
| (WTF::DequeIteratorBase<T>::removeFromIteratorsList): |
| (WTF::DequeIteratorBase<T>::DequeIteratorBase): |
| (WTF::DequeIteratorBase<T>::~DequeIteratorBase): |
| (WTF::DequeIteratorBase<T>::isEqual): |
| (WTF::DequeIteratorBase<T>::increment): |
| (WTF::DequeIteratorBase<T>::decrement): |
| (WTF::DequeIteratorBase<T>::after): |
| (WTF::DequeIteratorBase<T>::before): |
| * wtf/Vector.h: |
| (WTF::VectorBuffer::swap): |
| (WTF::VectorBuffer::swapInlineBuffer): |
| (WTF::VectorBuffer::swapInlineBuffers): |
| (WTF::Vector::swap): |
| |
| 2014-02-15 Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> |
| |
| Remove 'static' specifier from free inline functions in StringImpl.h |
| https://bugs.webkit.org/show_bug.cgi?id=118554 |
| |
| Reviewed by Darin Adler. |
| |
| At first 'static' does not bring any use here, secondly static free |
| inline functions in headers is a bad practice in general as each instance |
| of function defined as inline is treated as a separate function and each |
| instance has its own copy of static locals and string literals. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::codePointCompare): |
| (WTF::codePointCompare8): |
| (WTF::codePointCompare16): |
| (WTF::codePointCompare8To16): |
| (WTF::isSpaceOrNewline): |
| |
| 2014-02-14 Benjamin Poulain <bpoulain@apple.com> |
| |
| Improve the performance on mobile of FTPDirectoryDocument |
| https://bugs.webkit.org/show_bug.cgi?id=128778 |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/text/WTFString.h: |
| (WTF::String::endsWith): add a missing overload. |
| |
| 2014-02-14 Wojciech Bielawski <w.bielawski@samsung.com> |
| |
| (try)append and insert operations don't need new operator for PODs |
| https://bugs.webkit.org/show_bug.cgi?id=128185 |
| |
| Reviewed by Darin Adler. |
| |
| Vector's methods use VectorCopier to copy data. |
| 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. |
| |
| * wtf/Vector.h: |
| (WTF::OverflowHandler>::append): use VectorCopier to copy data. |
| (WTF::OverflowHandler>::tryAppend): use VectorCopier to copy data. |
| (WTF::OverflowHandler>::insert): use VectorCopier to copy data. |
| |
| 2014-02-13 Daniel Bates <dabates@apple.com> |
| |
| Fix the iOS build after <http://trac.webkit.org/changeset/164064 |
| |
| * wtf/Platform.h: |
| |
| 2014-02-13 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Disable HAVE_ARM_NEON_INTRINSICS |
| |
| For now, disable HAVE_ARM_NEON_INTRINSICS when building for iOS. We want |
| to audit the applicable code before we enable this define. |
| |
| * wtf/Platform.h: |
| |
| 2014-02-11 Filip Pizlo <fpizlo@apple.com> |
| |
| Hoist and combine array bounds checks |
| https://bugs.webkit.org/show_bug.cgi?id=125433 |
| |
| Reviewed by Mark Hahnenberg. |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/HashMethod.h: Added. |
| (WTF::HashMethod::operator()): |
| |
| 2014-02-13 Tamas Gergely <tgergely.u-szeged@partner.samsung.com> |
| |
| Code cleanup: remove gcc<4.7 guards. |
| https://bugs.webkit.org/show_bug.cgi?id=128729 |
| |
| Reviewed by Anders Carlsson. |
| |
| Remove GCC_VERSION_AT_LEAST guards when it checks for pre-4.7 versions, |
| as WK does not compile with earlier gcc versions. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Platform.h: |
| |
| 2014-02-12 Mark Lam <mark.lam@apple.com> |
| |
| No need to save reservedZoneSize when dropping the JSLock. |
| <https://webkit.org/b/128719> |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/WTFThreadData.cpp: |
| (WTF::WTFThreadData::WTFThreadData): |
| * wtf/WTFThreadData.h: |
| - removed unnneeded m_savedReservedZoneSize. |
| |
| 2014-02-11 Mark Hahnenberg <mhahnenberg@apple.com> |
| |
| 32-bit LLInt writeBarrierOnGlobalObject is wrong |
| https://bugs.webkit.org/show_bug.cgi?id=128556 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Platform.h: Removed OBJECT_MARK_LOGGING from Platform.h since it already exists in FeatureDefines.h |
| |
| 2014-02-11 peavo@outlook.com <peavo@outlook.com> |
| |
| [WinCairo] Compile error, deleted file in WTF. |
| https://bugs.webkit.org/show_bug.cgi?id=128601 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * WTF.vcxproj/WTF.vcxproj: Removed reference to deleted file. |
| * WTF.vcxproj/WTF.vcxproj.filters: Ditto. |
| |
| 2014-02-10 Michael Saboff <msaboff@apple.com> |
| |
| Re-enable ARM Thumb2 disassembler |
| https://bugs.webkit.org/show_bug.cgi?id=128577 |
| |
| Reviewed by Filip Pizlo. |
| |
| Added definition of WTF_USE_ARMV7_DISASSEMBLER back to Platform.h |
| |
| * wtf/Platform.h: |
| |
| 2014-02-10 Benjamin Poulain <benjamin@webkit.org> |
| |
| Add the basic infrastructure to compile attributes matching in selectors |
| https://bugs.webkit.org/show_bug.cgi?id=128484 |
| |
| Reviewed by Gavin Barraclough. |
| |
| * wtf/Vector.h: |
| (WTF::VectorBufferBase::bufferMemoryOffset): |
| (WTF::Vector::sizeMemoryOffset): |
| (WTF::Vector::dataMemoryOffset): |
| Expose the memory offsets of Vector::size() and the memory buffer pointer for the JIT. |
| |
| 2014-02-10 Enrica Casucci <enrica@apple.com> |
| |
| copyShortASCIIString crashes on iOS after r163793. |
| https://bugs.webkit.org/show_bug.cgi?id=128548. |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Adding null check. |
| |
| * wtf/unicode/icu/CollatorICU.cpp: |
| (WTF::copyShortASCIIString): |
| |
| 2014-02-10 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GLIB] Add GUniqueOutPtr and use it instead of GOwnPtr |
| https://bugs.webkit.org/show_bug.cgi?id=127554 |
| |
| Reviewed by Gustavo Noronha Silva. |
| |
| GUniqueOutPtr is a simplified version of GOwnPtr for the cases |
| where we need the address of the contained pointer. GUniqueOutPtr |
| uses GUniquePtr to free the contained object and to release the |
| container pointer. The API is very simple to make sure this is |
| only used when outPtr() is needed. It can't be constructed with a |
| pointer, and there's not method to set a new pointer. Another |
| difference with the old GOwnPtr is that outPtr() can be used |
| multiple times, because it frees any pointer previously set. |
| |
| * GNUmakefile.list.am: |
| * wtf/PlatformEfl.cmake: |
| * wtf/PlatformGTK.cmake: |
| * wtf/gobject/GOwnPtr.cpp: Removed. |
| * wtf/gobject/GOwnPtr.h: Removed. |
| * wtf/gobject/GUniquePtr.h: |
| (WTF::GUniqueOutPtr::GUniqueOutPtr): |
| (WTF::GUniqueOutPtr::~GUniqueOutPtr): |
| (WTF::GUniqueOutPtr::outPtr): |
| (WTF::GUniqueOutPtr::reset): |
| (WTF::GUniqueOutPtr::release): |
| (WTF::GUniqueOutPtr::operator*): |
| (WTF::GUniqueOutPtr::operator->): |
| (WTF::GUniqueOutPtr::get): |
| (WTF::GUniqueOutPtr::operator!): |
| (WTF::GUniqueOutPtr::operator UnspecifiedBoolType): |
| |
| 2014-02-10 Darin Adler <darin@apple.com> |
| |
| Stop using String::deprecatedCharacters to call WTF::Collator |
| https://bugs.webkit.org/show_bug.cgi?id=128517 |
| |
| WTF passes ICU’s deprecated ULOC_REQUESTED_LOCALE to ucol_getLocaleByType() |
| rdar://problem/15183390 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| This patch fixes both bugs above by reworking WTF::Collator. |
| |
| * wtf/unicode/Collator.h: Fixed formatting. Got rid of the Collator::Result type, |
| since the collator uses the same return value scheme as strcmp and as ICU; an int |
| will do for the return type. Simplified the support for UCONFIG_NO_COLLATION by |
| using a separate copy of the class definition. (We should check if anyone needs |
| UCONFIG_NO_COLLATION support, and remove it if not.) Changed the lower-first flag |
| from a separate function to a constructor argument. Changed the arguments to |
| the collate function to StringView. Added a collate UTF8 function. Changed the |
| m_collate data member to no longer be mutable since we no longer allocate it lazily. |
| |
| * wtf/unicode/CollatorDefault.cpp: |
| (WTF::Collator::collate): Rewrote to be simpler. |
| (WTF::Collator::collateUTF8): Added. Converts from UTF-8 to a String and then calls |
| the collate function above. |
| |
| * wtf/unicode/icu/CollatorICU.cpp: Added a FIXME about the fact that this file |
| has the wrong name and location. Since we always use ICU, there's no need to mention |
| it in the file name. |
| (WTF::copyASCIIString): Added. |
| (WTF::copyDefaultLocale): Added. |
| (WTF::resolveDefaultLocale): Added. Maps null locale to a default on Mac and iOS, |
| since on those platforms ICU does not use the correct default locale when passed null. |
| (WTF::localesMatch): Added. |
| (WTF::Collator::Collator): Moved most of the code from createCollator here. |
| Simplified it by storing the collator configuration along with the collator in globals. |
| (WTF::Collator::~Collator): Moved most of the code from releaseCollator here. |
| (WTF::getIndexLatin1): Added. |
| (WTF::moveLatin1): Added. |
| (WTF::hasNextLatin1): Added. |
| (WTF::hasPreviousLatin1): Added. |
| (WTF::currentLatin1): Added. |
| (WTF::nextLatin1): Added. |
| (WTF::previousLatin1): Added. |
| (WTF::getStateLatin1): Added. |
| (WTF::setStateLatin1): Added. |
| (WTF::createLatin1Iterator): Added. Uses the functions above to make a UCharIterator |
| that works for a WTF::StringView-style Latin-1 string. |
| (WTF::createIterator): Added. Uses either createLatin1Iterator or uiter_setString to |
| make a UCharIterator that works for a WTF::StringView. |
| (WTF::Collator::collate): Changed to use ucol_strcollIter. |
| (WTF::createIteratorUTF8): Added. Uses uiter_setUTF8. |
| (WTF::Collator::collateUTF8): Added. Like collate, but for null-terminated UTF-8 strings. |
| |
| 2014-02-10 Tamas Gergely <tgergely.u-szeged@partner.samsung.com> |
| |
| Code cleanup: Remove BUILDING_ON / TARGETING definitions. |
| https://bugs.webkit.org/show_bug.cgi?id=128242 |
| |
| Reviewed by Brent Fulgham. |
| |
| The BUILDING_ON_* and TARGETING_* macros have not been used for a while. |
| According to the FIXME: they are removed. |
| |
| * wtf/Platform.h: |
| |
| 2014-02-09 Anders Carlsson <andersca@apple.com> |
| |
| Add WTF_MAKE_FAST_ALLOCATED to more classes |
| https://bugs.webkit.org/show_bug.cgi?id=128506 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Bag.h: |
| * wtf/ListHashSet.h: |
| |
| 2014-02-08 Anders Carlsson <andersca@apple.com> |
| |
| Stop using getCharactersWithUpconvert in JavaScriptCore |
| https://bugs.webkit.org/show_bug.cgi?id=128457 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/text/StringBuilder.h: |
| (WTF::StringBuilder::append): |
| Add a new overload that takes a StringView. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::find): |
| Add new find member function. |
| |
| 2014-02-08 Darin Adler <darin@apple.com> |
| |
| Change TextIterator to use StringView, preparing to wean it from deprecatedCharacters |
| https://bugs.webkit.org/show_bug.cgi?id=128233 |
| |
| Reviewed by Anders Carlsson. |
| |
| * WTF.xcodeproj/project.pbxproj: Added new source files. |
| |
| * wtf/text/StringView.h: Added operator[], createCFStringWithoutCopying, and |
| createNSStringWithoutCopying. |
| * wtf/text/cf/StringViewCF.cpp: |
| (WTF::StringView::createCFStringWithoutCopying): Added. |
| * wtf/text/mac/StringViewObjC.mm: |
| (WTF::StringView::createNSString): Added. |
| (WTF::StringView::createNSStringWithoutCopying): Added. |
| |
| 2014-02-06 Andreas Kling <akling@apple.com> |
| |
| Remove unused ENABLE(REPAINT_THROTTLING) flag. |
| <https://webkit.org/b/128329> |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-02-06 Filip Pizlo <fpizlo@apple.com> |
| |
| More FTL build scaffolding |
| https://bugs.webkit.org/show_bug.cgi?id=128330 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Platform.h: |
| |
| 2014-02-06 Anders Carlsson <andersca@apple.com> |
| |
| Use std::chrono functions in dispatchFunctionsFromMainThread() |
| https://bugs.webkit.org/show_bug.cgi?id=128308 |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/MainThread.cpp: |
| (WTF::dispatchFunctionsFromMainThread): |
| |
| 2014-02-05 Zan Dobersek <zdobersek@igalia.com> |
| |
| Remove the WTF_COMPILER_SUPPORTS_CXX_GENERALIZED_INITIALIZERS macro |
| https://bugs.webkit.org/show_bug.cgi?id=128267 |
| |
| Reviewed by Andreas Kling. |
| |
| Remove the WTF_COMPILER_SUPPORTS_CXX_GENERALIZED_INITIALIZERS macro that was manually defined for compilers |
| that support the C++11 initializer lists. The feature is well supported in Clang, MSVC and also GCC. It |
| was actually already used unguarded in HashSet. |
| |
| * wtf/Compiler.h: |
| * wtf/HashMap.h: |
| (WTF::HashMap::HashMap): |
| * wtf/Vector.h: |
| (WTF::Vector::Vector): |
| |
| 2014-02-05 Andreas Kling <akling@apple.com> |
| |
| Remove ENABLE(DIRECTORY_UPLOAD). |
| <https://webkit.org/b/128275> |
| |
| Rubber-stamped by Ryosuke Niwa. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-02-05 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| HashMap can't be used with std::unique_ptr as value when it has a custom deleter |
| https://bugs.webkit.org/show_bug.cgi?id=128250 |
| |
| Reviewed by Darin Adler. |
| |
| The problem is that the HashMap is using a unique_ptr with the |
| default deleter, so that when trying to move the unique_ptr the |
| deleters don't match. |
| |
| * wtf/HashTraits.h: Add the deleter also in the template |
| definitation of the parent class for the HashTraits<std::unique_ptr<T, Deleter>> |
| |
| 2014-02-05 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Remove ENABLE(SVG) guards |
| https://bugs.webkit.org/show_bug.cgi?id=127991 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-02-04 Mark Lam <mark.lam@apple.com> |
| |
| The stack limit computation does not work for Windows. |
| <https://webkit.org/b/128226> |
| |
| Reviewed by Geoffrey Garen. |
| |
| The current stack limit computation assumes that the stack is allocated |
| in high memory. On Windows, the stack seems to be allocated very near |
| address 0, and is smaller in size than our Options::maxPerThreadStackUsage(). |
| This combination triggers a bug where StackBounds::recursionLimit() |
| underflows and computes a limit address that is ridiculously high in memory. |
| The net effect is that the Windows port thinks its out of stack space all |
| the time. |
| |
| We now check for potential underflows in StackBounds and return an |
| appropriate limit address. |
| |
| * wtf/StackBounds.h: |
| (WTF::StackBounds::recursionLimit): |
| |
| 2014-02-04 Andreas Kling <akling@apple.com> |
| |
| Remove <iframe seamless> support. |
| <https://webkit.org/b/128213> |
| |
| Rubber-stamped by Antti Koivisto. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-02-04 Anders Carlsson <andersca@apple.com> |
| |
| Store StringImpl substring backpointers as tail data |
| https://bugs.webkit.org/show_bug.cgi?id=128220 |
| |
| Reviewed by Geoffrey Garen. |
| |
| This lets us get rid of m_substringBuffer from the union. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::~StringImpl): |
| (WTF::StringImpl::getData16SlowCase): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| (WTF::StringImpl::createSubstringSharingImpl8): |
| (WTF::StringImpl::createSubstringSharingImpl): |
| (WTF::StringImpl::cost): |
| (WTF::StringImpl::costDuringGC): |
| (WTF::StringImpl::substringBuffer): |
| |
| 2014-02-04 Anders Carlsson <andersca@apple.com> |
| |
| Rename the substring sharing StringImpl::create variants to better indicate what they do |
| https://bugs.webkit.org/show_bug.cgi?id=128214 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::SubstringTranslator::translate): |
| * wtf/text/StringBuilder.cpp: |
| (WTF::StringBuilder::reifyString): |
| (WTF::StringBuilder::resize): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::createSubstringSharingImpl8): |
| (WTF::StringImpl::createSubstringSharingImpl): |
| * wtf/text/WTFString.cpp: |
| (WTF::String::substringSharingImpl): |
| |
| 2014-02-04 Alexey Proskuryakov <ap@apple.com> |
| |
| WebCrypto HMAC verification uses a non-constant-time memcmp |
| https://bugs.webkit.org/show_bug.cgi?id=128198 |
| <rdar://problem/15976961> |
| |
| Reviewed by Oliver Hunt. |
| |
| Added a "constant time" memcmp that doesn't depend on data. The name is somewhat |
| strange, as the function is of course O(length) and not constant time at all, |
| but apparently this is how everyone calls such functions. |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/CryptographicUtilities.cpp: Added. (WTF::constantTimeMemcmp): |
| * wtf/CryptographicUtilities.h: Added. |
| |
| 2014-02-04 Anders Carlsson <andersca@apple.com> |
| |
| Rename StringImpl::getCharacters to StringImpl::characters |
| https://bugs.webkit.org/show_bug.cgi?id=128205 |
| |
| Reviewed by Antti Koivisto. |
| |
| This lets us use StringImpl::getCharacters for the upconverting version. |
| Also, change StringImpl::characters<UChar>() to call characters16() instead of deprecatedCharacters() |
| and audit all call sites to make sure we weren't relying on upconversion anywhere. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::findString): |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::simplifyMatchedCharactersToSpace): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::characters<LChar>): |
| (WTF::StringImpl::characters<UChar>): |
| |
| 2014-02-04 Anders Carlsson <andersca@apple.com> |
| |
| Rename equalNonNull to equal and make it take const StringImpl& instead |
| https://bugs.webkit.org/show_bug.cgi?id=128206 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/text/StringHash.h: |
| (WTF::StringHash::equal): |
| * wtf/text/StringImpl.cpp: |
| (WTF::stringImplContentEqual): |
| (WTF::equal): |
| * wtf/text/StringImpl.h: |
| |
| 2014-02-04 Anders Carlsson <andersca@apple.com> |
| |
| Get rid of StringImpl::m_buffer |
| https://bugs.webkit.org/show_bug.cgi?id=128200 |
| |
| Reviewed by Michael Saboff. |
| |
| Trade one lousy hack for another by changing the CreateEmptyUnique StringImpl |
| constructor to initialize its character buffer to point to m_length instead |
| since it will always be null. |
| |
| Also change it to be an 8-bit string because why not. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| |
| 2014-02-04 Anders Carlsson <andersca@apple.com> |
| |
| Rename String::getCharacters to String::characters |
| https://bugs.webkit.org/show_bug.cgi?id=128196 |
| |
| Reviewed by Andreas Kling. |
| |
| This means String::characters() will end up calling either characters8() or characters16() which |
| makes more logical sense. It also frees up the getCharacters name so we can use it for a new function |
| that will do upconversion. |
| |
| * wtf/text/StringBuilder.cpp: |
| (WTF::StringBuilder::appendUninitializedSlow): |
| * wtf/text/WTFString.h: |
| (WTF::String::characters<LChar>): |
| (WTF::String::characters<UChar>): |
| |
| 2014-02-03 Anders Carlsson <andersca@apple.com> |
| |
| Fix Windows build. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::tailOffset): |
| |
| 2014-02-03 Anders Carlsson <andersca@apple.com> |
| |
| StringImpl::tailOffset() should return the offset right after m_hashAndFlags |
| https://bugs.webkit.org/show_bug.cgi?id=128141 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::tailOffset): |
| |
| 2014-02-03 Anders Carlsson <andersca@apple.com> |
| |
| More tail pointer consolidation |
| https://bugs.webkit.org/show_bug.cgi?id=128139 |
| |
| Reviewed by Andreas Kling. |
| |
| Add a new tailOffset() function and reimplement allocationSize() and tailPointer() |
| in terms of it. Use tailPointer() instead of reinterpret_cast-ing this + 1. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::createUninitializedInternalNonEmpty): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| (WTF::StringImpl::requiresCopy): |
| (WTF::StringImpl::allocationSize): |
| (WTF::StringImpl::tailOffset): |
| (WTF::StringImpl::tailPointer): |
| |
| 2014-02-03 Gustavo Noronha Silva <gns@gnome.org> |
| |
| [GTK][CMake] Enable SUBPIXEL_LAYOUT in FeatureDefines.h like EFL does |
| https://bugs.webkit.org/show_bug.cgi?id=128136 |
| |
| Reviewed by Martin Robinson. |
| |
| * wtf/FeatureDefines.h: enable SUBPIXEL_LAYOUT if it's not set, for GTK+. |
| |
| 2014-02-03 Mark Hahnenberg <mhahnenberg@apple.com> |
| |
| Turn GenGC on |
| https://bugs.webkit.org/show_bug.cgi?id=128109 |
| |
| Reviewed by Oliver Hunt. |
| |
| * wtf/Platform.h: Initially it will only be enabled for X86-64. |
| |
| 2014-02-03 Anders Carlsson <andersca@apple.com> |
| |
| Consolidate StringImpl tail handling into two functions |
| https://bugs.webkit.org/show_bug.cgi?id=128122 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::createUninitializedInternalNonEmpty): |
| (WTF::StringImpl::reallocateInternal): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::tryCreateUninitialized): |
| (WTF::StringImpl::allocationSize): |
| (WTF::StringImpl::tailPointer): |
| |
| 2014-02-03 Darin Adler <darin@apple.com> |
| |
| Remove Unicode.h |
| https://bugs.webkit.org/show_bug.cgi?id=128106 |
| |
| Reviewed by Anders Carlsson. |
| |
| * GNUmakefile.list.am: Removed files. |
| * WTF.vcxproj/WTF.vcxproj: Ditto. |
| * WTF.vcxproj/WTF.vcxproj.filters: Ditto. |
| * WTF.xcodeproj/project.pbxproj: Ditto. |
| * wtf/CMakeLists.txt: Ditto. |
| |
| * wtf/unicode/ScriptCodesFromICU.h: Removed. |
| * wtf/unicode/Unicode.h: Removed. |
| * wtf/unicode/UnicodeMacrosFromICU.h: Removed. |
| * wtf/unicode/icu/UnicodeIcu.h: Removed. |
| * wtf/unicode/wchar/UnicodeWchar.cpp: Removed. |
| * wtf/unicode/wchar/UnicodeWchar.h: Removed. |
| |
| 2014-01-25 Darin Adler <darin@apple.com> |
| |
| Stop using Unicode.h |
| https://bugs.webkit.org/show_bug.cgi?id=127633 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/StringHasher.h: |
| * wtf/dtoa.h: |
| * wtf/text/ASCIIFastPath.h: |
| * wtf/text/LChar.h: |
| * wtf/text/StringBuffer.h: |
| * wtf/text/StringImpl.h: |
| * wtf/text/WTFString.cpp: |
| * wtf/unicode/CharacterNames.h: |
| * wtf/unicode/Collator.h: |
| * wtf/unicode/UTF8.h: |
| Removed includes of <wtf/unicode/Unicode.h>, adding includes of |
| ICU headers and <wtf/text/LChar.h> as needed to replace it. |
| |
| 2014-02-02 Darin Adler <darin@apple.com> |
| |
| Obey "delete this" comments, including deleting String::characters and friends |
| https://bugs.webkit.org/show_bug.cgi?id=126865 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/text/AtomicString.h: Deleted the characters function. |
| * wtf/text/StringBuilder.h: Deleted the characters function, leaving behind the |
| deprecatedCharacters function. |
| * wtf/text/StringImpl.h: Ditto. |
| * wtf/text/WTFString.h: Ditto. Also added a constructor that takes a StringImpl&, |
| helpful for later string refactoring. |
| |
| 2014-02-02 Dan Bernstein <mitz@apple.com> |
| |
| Stop using PLATFORM(MAC) in WTF except where it means “OS X but not iOS” |
| https://bugs.webkit.org/show_bug.cgi?id=128089 |
| |
| Reviewed by Darin Adler. |
| |
| Replaced all uses of PLATFORM(MAC) that weren’t accompanied by !PLATFORM(IOS) with |
| equivalent(*) tests that are more idiomatic and will not change once PLATFORM(MAC) changes to |
| be false when building for iOS. |
| |
| * - One exception noted below. |
| |
| * wtf/AutodrainedPool.h: Changed PLATFORM(MAC) to USE(FOUNDATION), because NSAutoreleasePool |
| is a Foundation class. |
| |
| * wtf/CurrentTime.cpp: |
| (WTF::monotonicallyIncreasingTime): Changed PLATFORM(MAC) to OS(DARWIN), because Mach is |
| part of the Darwin kernel, but reordered such that the EFL and GLIB implementations continue |
| to take precedence regardless of the OS. |
| |
| * wtf/MainThread.cpp: Changed PLATFORM(MAC) to OS(DARWIN) && !PLATFORM(EFL) && !PLATFORM(GTK). |
| * wtf/MainThread.h: Ditto. |
| |
| * wtf/Platform.h: Changed USE(CG) and USE(CA) to depend on COCOA, rather than MAC or IOS. |
| Ditto for USE(CFURLCACHE), HAVE(ACCESSIBILITY), USE(PROTECTION_SPACE_AUTH_CALLBACK), |
| USE(ACCESSIBILITY_CONTEXT_MENUS), USE(EXPORT_MACROS), USE(AVFOUNDATION), |
| USE(REQUEST_ANIMATION_FRAME_TIMER), USE(REQUEST_ANIMATION_FRAME_DISPLAY_MONITOR), |
| USE(CONTENT_FILTERING), USE(UNIFIED_TEXT_CHECKING), USE(MARKER_REMOVAL_UPON_EDITING), |
| USE(AUDIO_SESSION), USE(IOSURFACE), and ENABLE(CSS3_TEXT_DECORATION_SKIP_INK). Changed |
| PLATFORM(MAC) to OS(DARWIN) && !PLATFORM(EFL) && !PLATFORM(GTK) in controlling various |
| JavaScriptCore or JavaScriptCore-dependent behaviors. |
| |
| * wtf/RunLoop.h: Changed PLATFORM(MAC) to PLATFORM(COCOA). |
| * wtf/RunLoopTimerCF.cpp: Ditto. |
| |
| * wtf/SchedulePair.h: Changed PLATFORM(MAC) to USE(FOUNDATION), since it was used to guard |
| usage of Foundation API. |
| |
| * wtf/Threading.cpp: Added an explicit !PLATFORM(IOS) in a guard around something needed |
| only on OS X and Windows. |
| |
| 2014-01-31 Benjamin Poulain <bpoulain@apple.com> |
| |
| Remove LEGACY_VIEWPORT_ADAPTION |
| https://bugs.webkit.org/show_bug.cgi?id=128028 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-01-31 Tim Horton <timothy_horton@apple.com> |
| |
| [wk2] PlatformCALayerRemoteCustom doesn't work on iOS |
| https://bugs.webkit.org/show_bug.cgi?id=128025 |
| <rdar://problem/15950271> |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/Platform.h: |
| Rename HAVE_LAYER_HOSTING_IN_WINDOW_SERVER to HAVE_OUT_OF_PROCESS_LAYER_HOSTING |
| and make it true on iOS. |
| |
| 2014-01-31 Michael Saboff <msaboff@apple.com> |
| |
| REGRESSION: Crash in sanitizeStackForVMImpl when scrolling @ lifehacker.com.au |
| https://bugs.webkit.org/show_bug.cgi?id=128017 |
| |
| Reviewed by Filip Pizlo. |
| |
| Moved the setting and saving of VM::stackPointerAtVMEntry and the corresponding stack limit |
| to JSLock and JSLock::DropAllLocks. The saved data is now stored in per-thread in |
| WTFThreadData. |
| |
| * wtf/WTFThreadData.cpp: |
| (WTF::WTFThreadData::WTFThreadData): |
| * wtf/WTFThreadData.h: |
| (WTF::WTFThreadData::savedStackPointerAtVMEntry): |
| (WTF::WTFThreadData::setSavedStackPointerAtVMEntry): |
| (WTF::WTFThreadData::savedLastStackTop): |
| (WTF::WTFThreadData::setSavedLastStackTop): |
| (WTF::WTFThreadData::savedReservedZoneSize): |
| (WTF::WTFThreadData::setSavedReservedZoneSize): |
| |
| 2014-01-30 Andrei Bucur <abucur@adobe.com> |
| |
| Remove the ACCELERATED_COMPOSITING flag |
| https://bugs.webkit.org/show_bug.cgi?id=127833 |
| |
| Reviewed by Antti Koivisto. |
| |
| Remove the USE(ACCELERATED_COMPOSITING) conditionals from the code base and make AC |
| mandatory. |
| |
| * wtf/OwnPtrCommon.h: |
| * wtf/Platform.h: |
| * wtf/efl/OwnPtrEfl.cpp: |
| (WTF::deleteOwnedPtr): |
| |
| 2014-01-28 Michael Saboff <msaboff@apple.com> |
| |
| Merge the jsCStack branch |
| https://bugs.webkit.org/show_bug.cgi?id=127763 |
| |
| Reviewed by Mark Hahnenberg. |
| |
| Changes from http://svn.webkit.org/repository/webkit/branches/jsCStack |
| up to changeset 162958. |
| |
| 2014-01-29 Csaba Osztrogonác <ossy@webkit.org> |
| |
| Remove ENABLE(JAVASCRIPT_DEBUGGER) guards |
| https://bugs.webkit.org/show_bug.cgi?id=127840 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-01-28 Anders Carlsson <andersca@apple.com> |
| |
| Actually turn stack stats back off. |
| |
| * wtf/StackStats.cpp: |
| * wtf/StackStats.h: |
| |
| 2014-01-28 Anders Carlsson <andersca@apple.com> |
| |
| Turn stack stats back off. |
| |
| * wtf/StackStats.cpp: |
| |
| 2014-01-28 Anders Carlsson <andersca@apple.com> |
| |
| Use std::mutex instead of WTF::Mutex in WTF |
| https://bugs.webkit.org/show_bug.cgi?id=127783 |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/CryptographicallyRandomNumber.cpp: |
| * wtf/MainThread.cpp: |
| (WTF::mainThreadFunctionQueueMutex): |
| (WTF::functionQueue): |
| (WTF::dispatchFunctionsFromMainThread): |
| (WTF::callOnMainThread): |
| (WTF::cancelCallOnMainThread): |
| * wtf/StackStats.cpp: |
| (WTF::StackStats::initialize): |
| (WTF::StackStats::CheckPoint::CheckPoint): |
| (WTF::StackStats::CheckPoint::~CheckPoint): |
| (WTF::StackStats::probe): |
| (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint): |
| (WTF::StackStats::LayoutCheckPoint::~LayoutCheckPoint): |
| * wtf/StackStats.h: |
| |
| 2014-01-27 Joseph Pecoraro <pecoraro@apple.com> |
| |
| WebCore: Enable -Wimplicit-fallthrough and add FALLTHROUGH annotation where needed |
| https://bugs.webkit.org/show_bug.cgi?id=127671 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * wtf/text/WTFString.h: |
| (WTF::appendNumber): |
| |
| 2014-01-27 Jer Noble <jer.noble@apple.com> |
| |
| [WK2] callOnMainThread() from main thread sometimes results in ASSERTs. |
| https://bugs.webkit.org/show_bug.cgi?id=127370 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| When WEB_THREAD is enabled, and callOnMainThread() is called from the main |
| thread, if the web thread is locked, a timer is set and the passed-in function |
| is called on the next run-loop. However, by that time the web thread may have |
| been unlocked, and isMainThread() will no longer return true, resulting in |
| an assert. |
| |
| Instead, scheduleDispatchFunctionsOnMainThread() should check isWebThread(), |
| which is equivalent to isMainThread() when the WEB_THREAD is disabled, but |
| will do the correct thing when WEB_THREAD is enabled. |
| |
| * wtf/mac/MainThreadMac.mm: |
| (WTF::scheduleDispatchFunctionsOnMainThread): |
| |
| 2014-01-27 Dan Bernstein <mitz@apple.com> |
| |
| Build fix. |
| |
| * wtf/ThreadSafeRefCounted.h: Added a necessary #include. |
| |
| 2014-01-25 Sam Weinig <sam@webkit.org> |
| |
| Remove unused support for DRAGGABLE_REGION |
| https://bugs.webkit.org/show_bug.cgi?id=127642 |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-01-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Add FALLTHROUGH and -Wimplicit-fallthrough to warn about unannotated implicit fallthroughs in switches |
| https://bugs.webkit.org/show_bug.cgi?id=127637 |
| |
| Reviewed by Darin Adler. |
| |
| For information about [[clang::fallthrough]], see: |
| <http://clang.llvm.org/docs/LanguageExtensions.html#the-clang-fallthrough-attribute> |
| |
| * Configurations/Base.xcconfig: |
| Enable -Wimplicit-fallthrough warnings. |
| |
| * wtf/Compiler.h: |
| Define FALLTHROUGH on clang and fallback to outputing nothing when unsupported. |
| |
| * wtf/dtoa/fast-dtoa.cc: |
| * wtf/unicode/UTF8.cpp: |
| (WTF::Unicode::convertLatin1ToUTF8): |
| (WTF::Unicode::convertUTF16ToUTF8): |
| (WTF::Unicode::isLegalUTF8): |
| (WTF::Unicode::readUTF8Sequence): |
| Explicitly annotate implicit fallthroughs with FALLTHROUGH. |
| |
| 2014-01-25 Darin Adler <darin@apple.com> |
| |
| Call deprecatedCharacters instead of characters at more call sites |
| https://bugs.webkit.org/show_bug.cgi?id=127631 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::replace): |
| * wtf/text/WTFString.h: |
| (WTF::String::isAllSpecialCharacters): |
| Use the new name. |
| |
| 2014-01-25 Darin Adler <darin@apple.com> |
| |
| Add a new separate LChar.h header file, to be used after we remove Unicode.h |
| https://bugs.webkit.org/show_bug.cgi?id=127630 |
| |
| Reviewed by Sam Weinig. |
| |
| * GNUmakefile.list.am: Added the new file |
| * WTF.vcxproj/WTF.vcxproj: Ditto. |
| * WTF.vcxproj/WTF.vcxproj.filters: Ditto. |
| * WTF.xcodeproj/project.pbxproj: Ditto. |
| * wtf/CMakeLists.txt: Ditto. |
| * wtf/text/LChar.h: Added. |
| |
| 2014-01-25 Darin Adler <darin@apple.com> |
| |
| Get rid of ICU_UNICODE and WCHAR_UNICODE remnants |
| https://bugs.webkit.org/show_bug.cgi?id=127623 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/CMakeLists.txt: Removed WTF_USE_ICU_UNICODE and |
| WTF_USE_WCHAR_UNICODE since they are true and false respectively. |
| |
| * wtf/Platform.h: Removed code to set WTF_USE_ICU_UNICODE. |
| |
| * wtf/unicode/Collator.h: Removed ifdefs. |
| * wtf/unicode/CollatorDefault.cpp: Ditto. |
| * wtf/unicode/Unicode.h: Ditto. |
| * wtf/unicode/icu/CollatorICU.cpp: Ditto. |
| |
| 2014-01-25 Anders Carlsson <andersca@apple.com> |
| |
| Remove atomicIncrement/atomicDecrement |
| https://bugs.webkit.org/show_bug.cgi?id=127625 |
| |
| Reviewed by Andreas Kling. |
| |
| Replace atomicIncrement/atomicDecrement with std::atomic. |
| |
| * wtf/Atomics.h: |
| * wtf/RefCountedLeakCounter.cpp: |
| (WTF::RefCountedLeakCounter::~RefCountedLeakCounter): |
| (WTF::RefCountedLeakCounter::increment): |
| (WTF::RefCountedLeakCounter::decrement): |
| * wtf/RefCountedLeakCounter.h: |
| * wtf/ThreadSafeRefCounted.h: |
| (WTF::ThreadSafeRefCountedBase::ref): |
| (WTF::ThreadSafeRefCountedBase::refCount): |
| (WTF::ThreadSafeRefCountedBase::derefBase): |
| |
| 2014-01-25 Anders Carlsson <andersca@apple.com> |
| |
| Modernize HashTable threading code |
| https://bugs.webkit.org/show_bug.cgi?id=127621 |
| |
| Reviewed by Darin Adler. |
| |
| Use std::mutex and std::atomic instead of WTF threading primitives. |
| |
| * wtf/DynamicAnnotations.h: |
| Include Platform.h here since this file relies on USE macros. |
| |
| * wtf/HashTable.cpp: |
| (WTF::HashTableStats::recordCollisionAtCount): |
| Change this to take an unsigned. |
| |
| (WTF::HashTableStats::dumpStats): |
| * wtf/HashTable.h: |
| (WTF::KeyTraits>::HashTable): |
| (WTF::KeyTraits>::remove): |
| (WTF::KeyTraits>::invalidateIterators): |
| Use a single probe counter. |
| |
| (WTF::addIterator): |
| (WTF::removeIterator): |
| |
| 2014-01-25 Darin Adler <darin@apple.com> |
| |
| Restore alphabetical order in Compiler.h |
| https://bugs.webkit.org/show_bug.cgi?id=127620 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/Compiler.h: Resorted some things into alphabetical order |
| |
| 2014-01-24 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Convert some NMake files to MSBuild project files |
| https://bugs.webkit.org/show_bug.cgi?id=127579 |
| |
| Reviewed by Tim Horton. |
| |
| * WTF.vcxproj/WTF.make: Removed. |
| * WTF.vcxproj/WTF.proj: Added. |
| |
| 2014-01-24 Anders Carlsson <andersca@apple.com> |
| |
| Get rid of monotonicallyIncreasingTimeMS and start using std::chrono instead |
| https://bugs.webkit.org/show_bug.cgi?id=127571 |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/Compiler.h: |
| Add a CONSTEXPR define so we can still use constexpr on compilers that don't support them (MSVC). |
| |
| * wtf/CurrentTime.h: |
| Remove monotonicallyIncreasingTimeMS(). |
| |
| * wtf/StdLibExtras.h: |
| (std::literals::chrono_literals::operator _s): |
| (std::literals::chrono_literals::operator _ms): |
| Add _s and _ms literals. Once we switch over to C++14, we can drop them and just use the built-in ones. |
| |
| 2014-01-24 Anders Carlsson <andersca@apple.com> |
| |
| The CXX_EXPLICIT_CONVERSIONS COMPILER_SUPPORTS macro has been removed, and all |
| compilers support explicit conversions now so simply remove the #ifdef. |
| |
| * wtf/RetainPtr.h: |
| |
| 2014-01-24 Darin Adler <darin@apple.com> |
| |
| Simplify Compiler.h |
| https://bugs.webkit.org/show_bug.cgi?id=127491 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Assertions.h: Remove COMPILER_SUPPORTS(CXX_STATIC_ASSERT), since |
| we now have that for all compilers that can build WebKit. |
| |
| * wtf/Compiler.h: Removed always true feature flags, including: |
| COMPILER_SUPPORTS(CXX_VARIADIC_TEMPLATES), COMPILER_SUPPORTS(CXX_RVALUE_REFERENCES), |
| COMPILER_SUPPORTS(CXX_DELETED_FUNCTIONS), COMPILER_SUPPORTS(CXX_NULLPTR), |
| COMPILER_SUPPORTS(CXX_EXPLICIT_CONVERSIONS), COMPILER_SUPPORTS(CXX_STATIC_ASSERT), |
| COMPILER_SUPPORTS(CXX_OVERRIDE_CONTROL), COMPILER_SUPPORTS(CXX_STRONG_ENUMS), and |
| COMPILER_SUPPORTS(CXX_AUTO_TYPE). Sorted sections alphabetically. Separated out |
| nested #if and #else into separate checks for greater readability. Removed obsolete |
| check for COMPILER(RVCT). Removed unused COMPILER(GCCE) detection. |
| |
| * wtf/RefPtr.h: Remove COMPILER_SUPPORTS(CXX_NULLPTR), since we now have |
| that for all compilers that can build WebKit. |
| * wtf/RetainPtr.h: Ditto. |
| |
| 2014-01-23 Max Vujovic <mvujovic@adobe.com> |
| |
| Remove CSS Custom Filters code and tests |
| https://bugs.webkit.org/show_bug.cgi?id=127382 |
| |
| Reviewed by Simon Fraser. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-01-22 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Update project and solution files for 64-bit builds. |
| https://bugs.webkit.org/show_bug.cgi?id=127457 |
| |
| Reviewed by Eric Carlson. |
| |
| * WTF.vcxproj/WTF.submit.sln: Add x64 targets. |
| * WTF.vcxproj/WTF.vcxproj: Update for VS2013 |
| |
| 2014-01-22 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Remove CSS3_TEXT_DECORATION define |
| https://bugs.webkit.org/show_bug.cgi?id=127333 |
| |
| Reviewed by Simon Fraser. |
| |
| This is required for unprefixing the text-decoration-* CSS properties. |
| |
| * wtf/Platform.h: |
| |
| 2014-01-22 Jae Hyun Park <jae.park@company100.net> |
| |
| Remove unnecessary include in Noncopyable.h |
| https://bugs.webkit.org/show_bug.cgi?id=127406 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Noncopyable.h: We don't need Compiler.h as of r162198. |
| |
| 2014-01-22 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GTK] Add GUniquePtr |
| https://bugs.webkit.org/show_bug.cgi?id=127170 |
| |
| Reviewed by Gustavo Noronha Silva. |
| |
| The idea is to replace GOwnPtr with a template alias of |
| std:unique_ptr. Not everything can be replaced, though, because |
| GOwnPtr::outPtr() doesn't seem to be possible to implement with |
| unique_ptr. This smart pointer is more flexible than GOwnPtr and |
| allows to transfer the ownership of the pointer using |
| std::move(). |
| |
| * GNUmakefile.list.am: Add new file to compilation. |
| * wtf/gobject/GUniquePtr.h: Added. |
| (WTF::GPtrDeleter::operator()): |
| |
| 2014-01-20 Anders Carlsson <andersca@apple.com> |
| |
| Remove an unused member variable |
| https://bugs.webkit.org/show_bug.cgi?id=127295 |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/MainThread.cpp: |
| (WTF::FunctionWithContext::FunctionWithContext): |
| (WTF::FunctionWithContext::operator == ): |
| (WTF::dispatchFunctionsFromMainThread): |
| |
| 2014-01-20 Anders Carlsson <andersca@apple.com> |
| |
| Remove MutexTryLocker |
| https://bugs.webkit.org/show_bug.cgi?id=127294 |
| |
| Reviewed by Antti Koivisto. |
| |
| MutexTryLocker has been replaced with std::unique_lock with std::try_to_lock everywhere now. |
| |
| * wtf/ThreadingPrimitives.h: |
| |
| 2014-01-19 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GLIB] GVariant floating references are not correctly handled by GRefPtr |
| https://bugs.webkit.org/show_bug.cgi?id=127246 |
| |
| Reviewed by Martin Robinson. |
| |
| GRefPtr should always use g_variant_ref_sink to deal with GVariant |
| floating references. In case of full references, |
| g_variant_ref_sink calls g_variant_ref, so it's safe to use it always. |
| |
| * wtf/gobject/GRefPtr.cpp: |
| (WTF::refGPtr): Use g_variant_ref_sink(). |
| |
| 2014-01-18 Anders Carlsson <andersca@apple.com> |
| |
| Remove support for the viewsource attribute |
| https://bugs.webkit.org/show_bug.cgi?id=127232 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-01-18 Anders Carlsson <andersca@apple.com> |
| |
| Remove ENABLE_THREADED_HTML_PARSER defines everywhere |
| https://bugs.webkit.org/show_bug.cgi?id=127225 |
| |
| Reviewed by Andreas Kling. |
| |
| This concludes the removal of over 8.8 million lines of threaded parser code. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-01-17 Anders Carlsson <andersca@apple.com> |
| |
| Add a callOnMainThreadAndWait variant in SocketStreamHandle |
| https://bugs.webkit.org/show_bug.cgi?id=127180 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Remove callOnMainThreadAndWait from WTF. |
| |
| * wtf/MainThread.cpp: |
| * wtf/MainThread.h: |
| |
| 2014-01-17 Peter Molnar <pmolnar.u-szeged@partner.samsung.com> |
| |
| Remove workaround for compilers not supporting deleted functions |
| https://bugs.webkit.org/show_bug.cgi?id=127166 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Compiler.h: |
| * wtf/Noncopyable.h: |
| * wtf/PassRefPtr.h: |
| |
| 2014-01-16 Benjamin Poulain <bpoulain@apple.com> |
| |
| Remove Nix from WTF |
| https://bugs.webkit.org/show_bug.cgi?id=127150 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * wtf/DisallowCType.h: |
| * wtf/FeatureDefines.h: |
| * wtf/Platform.h: |
| * wtf/PlatformNix.cmake: Removed. |
| * wtf/nix: Removed. |
| |
| 2014-01-16 Anders Carlsson <andersca@apple.com> |
| |
| Remove FINAL macro |
| https://bugs.webkit.org/show_bug.cgi?id=127149 |
| |
| Reviewed by Tim Horton. |
| |
| * wtf/Compiler.h: |
| |
| 2014-01-16 Peter Molnar <pmolnar.u-szeged@partner.samsung.com> |
| |
| Remove workaround for compilers not supporting explicit override control |
| https://bugs.webkit.org/show_bug.cgi?id=127111 |
| |
| Reviewed by Anders Carlsson. |
| |
| Now all compilers support explicit override control, this workaround can be removed. |
| |
| * wtf/Compiler.h: |
| * wtf/FilePrintStream.h: |
| * wtf/RunLoop.h: |
| * wtf/StringPrintStream.h: |
| |
| 2014-01-16 Alberto Garcia <berto@igalia.com> |
| |
| Source/WTF/wtf/Atomics.h:300: Error: bad register name `%bpl' |
| https://bugs.webkit.org/show_bug.cgi?id=126985 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| Use the 'q' constraint to force using a register that allows |
| access to its lower byte. |
| |
| * wtf/Atomics.h: |
| (WTF::weakCompareAndSwap): |
| |
| 2014-01-16 Peter Molnar <pmolnar.u-szeged@partner.samsung.com> |
| |
| Fix unnecessary checks for Clang compiler if the compiler is MSVC. |
| https://bugs.webkit.org/show_bug.cgi?id=127037 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| Inside the #if defined(_MSC_VER) there's no need for checking whether the compiler is not Clang. |
| |
| * wtf/Compiler.h: |
| |
| 2014-01-16 Peter Molnar <pmolnar.u-szeged@partner.samsung.com> |
| |
| Require at least GCC version 4.7 |
| https://bugs.webkit.org/show_bug.cgi?id=127049 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| r161770 added a template alias, so the minimum GCC version is 4.7 now. |
| |
| Also fixed a typo in the error message about old MSVC version. |
| |
| * wtf/Compiler.h: |
| |
| 2014-01-15 Alberto Garcia <berto@igalia.com> |
| |
| [GTK] v2.3.3 fails to build in Debian / FreeBSD |
| https://bugs.webkit.org/show_bug.cgi?id=126502 |
| |
| Reviewed by Mark Lam. |
| |
| * wtf/Platform.h: Add LLINT support to FreeBSD. |
| |
| 2014-01-15 Anders Carlsson <andersca@apple.com> |
| |
| Get rid of RefCountedCustomAllocated |
| https://bugs.webkit.org/show_bug.cgi?id=127051 |
| |
| Reviewed by Antti Koivisto. |
| |
| It's not used anywhere anymore, get rid of it. |
| |
| * wtf/RefCounted.h: |
| * wtf/SizeLimits.cpp: |
| |
| 2014-01-14 Anders Carlsson <andersca@apple.com> |
| |
| And yet another build fix. |
| |
| * wtf/SizeLimits.cpp: |
| |
| 2014-01-14 Anders Carlsson <andersca@apple.com> |
| |
| Another build fix. |
| |
| * wtf/SizeLimits.cpp: |
| |
| 2014-01-14 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Enable WTF_USE_UIKIT_EDITING |
| |
| * wtf/Platform.h: |
| |
| 2014-01-14 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Enable QuickLook |
| https://bugs.webkit.org/show_bug.cgi?id=126954 |
| |
| Reviewed by David Kilzer. |
| |
| * wtf/Platform.h: |
| |
| 2014-01-14 Anders Carlsson <andersca@apple.com> |
| |
| Get rid of ThreadRestrictionVerifier |
| https://bugs.webkit.org/show_bug.cgi?id=127004 |
| |
| Reviewed by Sam Weinig. |
| |
| The ThreadRestrictionVerifier mechanism has been turned off for a while |
| since it doesn't really have a good solution for objects that are passed between threads. |
| Instead of having dead code in the tree, just get rid of it. |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/RefCounted.h: |
| (WTF::RefCountedBase::ref): |
| (WTF::RefCountedBase::hasOneRef): |
| (WTF::RefCountedBase::refCount): |
| (WTF::RefCountedBase::derefBase): |
| * wtf/ThreadRestrictionVerifier.h: Removed. |
| |
| 2014-01-14 Benjamin Poulain <benjamin@webkit.org> |
| |
| Enable the experimental selector code generator by default |
| https://bugs.webkit.org/show_bug.cgi?id=126953 |
| |
| Reviewed by Gavin Barraclough. |
| |
| * wtf/Platform.h: |
| Enable CSS_SELECTOR_JIT on OS X x86_64 by default. |
| The feature is not ready to ship but it is stable enough to enable |
| for the bots and nightly. |
| |
| 2014-01-14 Brian J. Burg <burg@cs.washington.edu> |
| |
| Add ENABLE(WEB_REPLAY) feature flag to the build system |
| https://bugs.webkit.org/show_bug.cgi?id=126949 |
| |
| Reviewed by Joseph Pecoraro. |
| |
| * wtf/FeatureDefines.h: for now, disable the flag by default. |
| |
| 2014-01-14 peavo@outlook.com <peavo@outlook.com> |
| |
| [Win] Application name in user agent string is truncated. |
| https://bugs.webkit.org/show_bug.cgi?id=126810 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/text/StringConcatenate.h: |
| (WTF::tryMakeString): Add missing 8 bit check for last argument. |
| |
| 2014-01-13 Anders Carlsson <andersca@apple.com> |
| |
| Move another deprecated symbol to DeprecatedSymbolsUsedBySafari.mm |
| https://bugs.webkit.org/show_bug.cgi?id=126909 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * wtf/MainThread.cpp: |
| * wtf/MainThread.h: |
| * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: |
| (WTF::callOnMainThread): |
| |
| 2014-01-13 Anders Carlsson <andersca@apple.com> |
| |
| Fix Windows build. |
| |
| * wtf/ThreadingWin.cpp: |
| (WTF::initializeThreading): |
| |
| 2014-01-13 Anders Carlsson <andersca@apple.com> |
| |
| Remove AtomicallyInitializedStatic |
| https://bugs.webkit.org/show_bug.cgi?id=126864 |
| |
| Reviewed by Andreas Kling. |
| |
| Remove the lockAtomicallyInitializedStaticMutex and unlockAtomicallyInitializedStaticMutex functions |
| everywhere except on Mac (where they unfortunately were used by Safari). |
| |
| On Mac, add them to a separate file which will hold functions and symbols that we would like |
| to remove but that are used by Safari. Reimplement them in terms of std::call_once and std::mutex. |
| |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/Threading.h: |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::initializeThreading): |
| * wtf/ThreadingWin.cpp: |
| (WTF::initializeThreading): |
| * wtf/mac/DeprecatedSymbolsUsedBySafari.mm: Added. |
| (WTF::atomicallyInitializedStaticMutex): |
| (WTF::lockAtomicallyInitializedStaticMutex): |
| (WTF::unlockAtomicallyInitializedStaticMutex): |
| |
| 2014-01-13 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r161855. |
| http://trac.webkit.org/changeset/161855 |
| https://bugs.webkit.org/show_bug.cgi?id=126880 |
| |
| Sister commit of r161852 (Requested by kling on #webkit). |
| |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::initializeThreading): |
| |
| 2014-01-13 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r161852. |
| http://trac.webkit.org/changeset/161852 |
| https://bugs.webkit.org/show_bug.cgi?id=126877 |
| |
| Broke ToT with system Safari (Requested by kling on #webkit). |
| |
| * wtf/Threading.h: |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::initializeThreading): |
| (WTF::lockAtomicallyInitializedStaticMutex): |
| (WTF::unlockAtomicallyInitializedStaticMutex): |
| * wtf/ThreadingWin.cpp: |
| (WTF::lockAtomicallyInitializedStaticMutex): |
| (WTF::unlockAtomicallyInitializedStaticMutex): |
| (WTF::initializeThreading): |
| |
| 2014-01-12 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r161840. |
| http://trac.webkit.org/changeset/161840 |
| https://bugs.webkit.org/show_bug.cgi?id=126870 |
| |
| Caused jsscore and layout test failures (Requested by smfr on |
| #webkit). |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::replace): |
| * wtf/text/WTFString.h: |
| (WTF::String::isAllSpecialCharacters): |
| |
| 2014-01-12 Dan Bernstein <mitz@apple.com> |
| |
| Fix an assertion failure in initializeDates() when launching Safari, which was introduced in r161852. |
| |
| Reviewed by Andy Estes. |
| |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::initializeThreading): Set isInitialized to true. |
| |
| 2014-01-12 Darin Adler <darin@apple.com> |
| |
| Add PLATFORM(COCOA) and USE(FOUNDATION) |
| https://bugs.webkit.org/show_bug.cgi?id=126859 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Platform.h: Added PLATFORM(COCOA), which for now is set at exactly the same |
| times that PLATFORM(MAC) is. Added USE(FOUNDATION), which is set at the same times |
| that PLATFORM(COCOA) is. Re-organize the PLATFORM(MAC) and PLATFORM(IOS) settings |
| in the header so they are a bit easier to read. Put HAVE_LANGINFO_H in with the |
| rest of the OS(UNIX) settings and put HAVE_READLINE in with the rest of the |
| OS(DARWIN) settings. Tweak formatting a bit. |
| |
| 2014-01-12 Anders Carlsson <andersca@apple.com> |
| |
| Remove AtomicallyInitializedStatic |
| https://bugs.webkit.org/show_bug.cgi?id=126864 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Threading.h: |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::initializeThreading): |
| * wtf/ThreadingWin.cpp: |
| (WTF::initializeThreading): |
| |
| 2014-01-12 Darin Adler <darin@apple.com> |
| |
| Add deprecatedCharacters as a synonym for characters and convert most call sites |
| https://bugs.webkit.org/show_bug.cgi?id=126858 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/text/AtomicString.cpp: |
| (WTF::HashAndUTF8CharactersTranslator::equal): |
| (WTF::SubstringTranslator::hash): |
| (WTF::SubstringTranslator::equal): |
| * wtf/text/AtomicString.h: |
| (WTF::AtomicString::characters): |
| * wtf/text/Base64.cpp: |
| (WTF::base64Decode): |
| (WTF::base64URLDecode): |
| * wtf/text/StringBuilder.h: |
| (WTF::StringBuilder::characters): |
| (WTF::StringBuilder::deprecatedCharacters): |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::getData16SlowCase): |
| (WTF::StringImpl::upper): |
| (WTF::StringImpl::lower): |
| (WTF::StringImpl::find): |
| (WTF::StringImpl::findIgnoringCase): |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::characters): |
| (WTF::StringImpl::deprecatedCharacters): |
| (WTF::StringImpl::getCharacters<UChar>): |
| (WTF::equalIgnoringNullity): |
| * wtf/text/WTFString.cpp: |
| (WTF::String::append): |
| (WTF::String::appendInternal): |
| (WTF::String::insert): |
| (WTF::String::truncate): |
| (WTF::String::percentage): |
| * wtf/text/WTFString.h: |
| (WTF::String::characters): |
| (WTF::String::deprecatedCharacters): |
| (WTF::String::getCharactersWithUpconvert<UChar>): |
| (WTF::append): |
| Use deprecatedCharacters instead of characters. |
| |
| 2014-01-12 Anders Carlsson <andersca@apple.com> |
| |
| Remove the last remaining uses of AtomicallyInitializedStatic |
| https://bugs.webkit.org/show_bug.cgi?id=126863 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/HashTable.cpp: |
| (WTF::hashTableStatsMutex): |
| (WTF::HashTableStats::recordCollisionAtCount): |
| (WTF::HashTableStats::dumpStats): |
| * wtf/unicode/icu/CollatorICU.cpp: |
| (WTF::cachedCollatorMutex): |
| (WTF::Collator::createCollator): |
| (WTF::Collator::releaseCollator): |
| |
| 2014-01-12 Darin Adler <darin@apple.com> |
| |
| Reduce use of String::characters |
| https://bugs.webkit.org/show_bug.cgi?id=126854 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::replace): Use characters16 here since is8Bit was already checked. |
| * wtf/text/WTFString.h: |
| (WTF::String::isAllSpecialCharacters): Use characters16 here since is8Bit was |
| already checked. Also renamed "len" to "length". |
| |
| 2014-01-12 Anders Carlsson <andersca@apple.com> |
| |
| Replace more uses of AtomicallyInitializedStatic with std::call_once |
| https://bugs.webkit.org/show_bug.cgi?id=126847 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/Forward.h: |
| Forward declare NeverDestroyed. |
| |
| 2014-01-11 Zan Dobersek <zdobersek@igalia.com> |
| |
| Unreviewed build fix for ports using GCC after r161770. |
| |
| * wtf/IteratorAdaptors.h: |
| (WTF::FilterIterator::operator*): Replicating r161797, the const qualifier for |
| FilterIterator::operator*() is removed since it clashes with some iterator types |
| that are also const, causing compilation failures with GCC. |
| |
| 2014-01-11 Anders Carlsson <andersca@apple.com> |
| |
| Use std::call_once instead of AtomicallyInitializedStatic when creating a HTTP header set |
| https://bugs.webkit.org/show_bug.cgi?id=126837 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/HashSet.h: |
| (WTF::HashSet::HashSet): |
| Add a HashSet constructor that takes an initializer list. |
| |
| 2014-01-11 Sam Weinig <sam@webkit.org> |
| |
| Fix the EFL build. |
| |
| * wtf/IteratorAdaptors.h: |
| (WTF::TransformIterator::operator*): |
| |
| 2014-01-11 Sam Weinig <sam@webkit.org> |
| |
| Add support for null StringViews |
| https://bugs.webkit.org/show_bug.cgi?id=126827 |
| |
| Reviewed by Anders Carlsson. |
| |
| - Do some style cleanup while in the neighborhood. |
| |
| * wtf/text/StringView.h: |
| (WTF::StringView::StringView): |
| Add default constructor to create a null StringView. |
| |
| (WTF::StringView::isNull): |
| Add isNull(), matching the semantics of String. |
| |
| (WTF::StringView::operator bool): |
| Add an explicit operator bool() to allow use in if-statements. |
| |
| 2014-01-11 Sam Weinig <sam@webkit.org> |
| |
| Clean up iterator filter / iterator range code |
| https://bugs.webkit.org/show_bug.cgi?id=126817 |
| |
| Reviewed by Anders Carlsson. |
| |
| - Renames IteratorPair to IteratorRange. |
| - Splits FilterIterator into FilterIterator (which now only filters) and |
| TransformIterator (which does the transform part of the old FilterIterator). |
| Move both of these to IteratorAdaptors.h |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/FilterIterator.h: Removed. |
| Add/remove files. |
| |
| * wtf/HashMap.h: |
| (WTF::HashMap::keys): |
| (WTF::HashMap::values): |
| * wtf/RefPtrHashMap.h: |
| Update for rename to IteratorRange. Simplify by using makeIteratorRange(). |
| |
| * wtf/IteratorAdaptors.h: Copied from wtf/FilterIterator.h. |
| (WTF::FilterIterator::FilterIterator): |
| (WTF::FilterIterator::operator*): |
| (WTF::makeFilterIterator): |
| (WTF::TransformIterator::TransformIterator): |
| (WTF::TransformIterator::operator++): |
| (WTF::TransformIterator::operator*): |
| (WTF::TransformIterator::operator==): |
| (WTF::TransformIterator::operator!=): |
| (WTF::makeTransformIterator): |
| Split up filtering and transforming. Add makeFilterIterator() and makeTransformIterator() |
| helpers. |
| |
| * wtf/IteratorPair.h: Removed. |
| * wtf/IteratorRange.h: Copied from wtf/IteratorPair.h. |
| (WTF::IteratorRange::IteratorRange): |
| (WTF::makeIteratorRange): |
| Renamed to IteratorRange and adds makeIteratorRange() helper. |
| |
| 2014-01-10 David Kilzer <ddkilzer@apple.com> |
| |
| Clean up architectures in xcconfig files |
| <http://webkit.org/b/126794> |
| |
| Reviewed by Andy Estes. |
| |
| * Configurations/Base.xcconfig: |
| - Add new arch. |
| |
| 2014-01-10 Tamas Gergely <tgergely.u-szeged@partner.samsung.com> |
| |
| [EFL][JSC] Enable udis86 disassembler on efl. |
| https://bugs.webkit.org/show_bug.cgi?id=125502 |
| |
| Reviewed by Michael Saboff. |
| |
| Enable udis86 disassembler on efl and fix build warnings. |
| |
| * wtf/Platform.h: |
| Enable udis86 disassembler on EFL. |
| |
| 2014-01-10 Hunseop Jeong <hs85.jeong@samsung.com> |
| |
| [EFL] Enable the DFG_JIT on ARMv7 |
| https://bugs.webkit.org/show_bug.cgi?id=126742 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| Turn on ENABLE_DFG_JIT on ARMv7 for EFL. |
| |
| * wtf/Platform.h: |
| |
| 2014-01-07 Mark Hahnenberg <mhahnenberg@apple.com> |
| |
| Marking should be generational |
| https://bugs.webkit.org/show_bug.cgi?id=126552 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Bitmap.h: |
| (WTF::WordType>::count): Added a cast that became necessary when Bitmap |
| is used with smaller types than int32_t. |
| |
| 2014-01-09 Simon Fraser <simon.fraser@apple.com> |
| |
| Enable async scrolling for iOS |
| https://bugs.webkit.org/show_bug.cgi?id=126730 |
| |
| Reviewed by Tim Horton. |
| |
| Turn on ENABLE_ASYNC_SCROLLING for iOS. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2014-01-09 Anders Carlsson <andersca@apple.com> |
| |
| Remove Blackberry and QNX bits from WTF |
| https://bugs.webkit.org/show_bug.cgi?id=126726 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Atomics.h: |
| * wtf/CurrentTime.cpp: |
| (WTF::currentCPUTime): |
| * wtf/DateMath.cpp: |
| * wtf/DisallowCType.h: |
| * wtf/FeatureDefines.h: |
| * wtf/InlineASM.h: |
| * wtf/MathExtras.h: |
| * wtf/NumberOfCores.cpp: |
| (WTF::numberOfProcessorCores): |
| * wtf/OSAllocatorPosix.cpp: |
| (WTF::OSAllocator::reserveUncommitted): |
| (WTF::OSAllocator::commit): |
| (WTF::OSAllocator::decommit): |
| * wtf/Platform.h: |
| * wtf/PlatformBlackBerry.cmake: Removed. |
| * wtf/RAMSize.cpp: |
| (WTF::computeRAMSize): |
| * wtf/StackBounds.cpp: |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::initializeThreading): |
| (WTF::initializeCurrentThreadInternal): |
| * wtf/blackberry/MainThreadBlackBerry.cpp: Removed. |
| * wtf/blackberry/RunLoopBlackBerry.cpp: Removed. |
| * wtf/text/AtomicString.h: |
| * wtf/text/StringImpl.h: |
| * wtf/text/WTFString.h: |
| |
| 2014-01-09 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Upstream WebCore/platform changes |
| https://bugs.webkit.org/show_bug.cgi?id=126654 |
| |
| Rubber-stamped by David Kilzer. |
| |
| * wtf/MainThread.cpp: |
| (WTF::canAccessThreadLocalDataForThread): |
| * wtf/MainThread.h: |
| |
| 2014-01-09 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r161540. |
| http://trac.webkit.org/changeset/161540 |
| https://bugs.webkit.org/show_bug.cgi?id=126704 |
| |
| Caused assertion failures on multiple tests (Requested by ap |
| on #webkit). |
| |
| * wtf/Bitmap.h: |
| (WTF::WordType>::count): |
| |
| 2014-01-07 Mark Hahnenberg <mhahnenberg@apple.com> |
| |
| Marking should be generational |
| https://bugs.webkit.org/show_bug.cgi?id=126552 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Bitmap.h: |
| (WTF::WordType>::count): Added a cast that became necessary when Bitmap |
| is used with smaller types than int32_t. |
| |
| 2014-01-08 Anders Carlsson <andersca@apple.com> |
| |
| Add WTF::StringView and use it for grammar checking |
| https://bugs.webkit.org/show_bug.cgi?id=126644 |
| |
| Reviewed by Antti Koivisto. |
| |
| Add a new StringView class which is an immutable reference to either an 8-bit or a 16-bit string. |
| |
| This makes it easier to pass substrings around without having to either copy string data |
| or upconvert and use UChar pointers. |
| |
| The StringView class is very loosely based on the std::string_view class which is proposed for a future version of C++, |
| see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2013/n3609.html for more details. |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/Forward.h: |
| * wtf/text/StringView.h: Added. |
| (WTF::StringView::StringView): |
| (WTF::StringView::empty): |
| (WTF::StringView::characters8): |
| (WTF::StringView::characters16): |
| (WTF::StringView::isEmpty): |
| (WTF::StringView::length): |
| (WTF::StringView::is8Bit): |
| (WTF::StringView::substring): |
| (WTF::StringView::toString): |
| (WTF::StringView::toStringWithoutCopying): |
| (WTF::StringView::encodedCharacters): |
| |
| 2014-01-07 David Farler <dfarler@apple.com> |
| |
| [ASAN] Building with trunk clang corrupts sandbox profile with comment from Compiler.h |
| https://bugs.webkit.org/show_bug.cgi?id=124532 |
| |
| Reviewed by David Kilzer. |
| |
| * wtf/Compiler.h: |
| Remove this quirk - it does nothing. |
| |
| 2014-01-06 Filip Pizlo <fpizlo@apple.com> |
| |
| Get rid of ENABLE(VALUE_PROFILER). It's on all the time now. |
| |
| Rubber stamped by Mark Hahnenberg. |
| |
| * wtf/Platform.h: |
| |
| 2014-01-06 Zan Dobersek <zdobersek@igalia.com> |
| |
| Remove using directives for the std namespace from WTF |
| https://bugs.webkit.org/show_bug.cgi?id=126524 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| Remove the using directives for the std namespace throughout the WTF code. |
| The more explicit std:: nested name specifier should be used instead. |
| |
| * wtf/MediaTime.cpp: |
| (WTF::MediaTime::createWithFloat): |
| (WTF::MediaTime::createWithDouble): |
| * wtf/text/StringImpl.cpp: |
| (WTF::StringImpl::create): |
| (WTF::StringImpl::lower): |
| (WTF::StringImpl::upper): |
| (WTF::StringImpl::foldCase): |
| (WTF::StringImpl::find): |
| (WTF::StringImpl::findIgnoringCase): |
| (WTF::reverseFindInner): |
| (WTF::StringImpl::reverseFind): |
| (WTF::reverseFindIgnoringCaseInner): |
| (WTF::StringImpl::reverseFindIgnoringCase): |
| (WTF::StringImpl::replace): |
| (WTF::StringImpl::utf8ForCharacters): |
| (WTF::StringImpl::utf8ForRange): |
| * wtf/text/WTFString.cpp: |
| (WTF::String::append): |
| (WTF::String::appendInternal): |
| (WTF::String::insert): |
| (WTF::String::substringSharingImpl): |
| (WTF::String::fromUTF8): |
| (WTF::toIntegralType): |
| * wtf/win/RunLoopWin.cpp: |
| |
| 2014-01-03 Mark Hahnenberg <mhahnenberg@apple.com> |
| |
| DoublyLinkedLists can't be concatenated |
| https://bugs.webkit.org/show_bug.cgi?id=125976 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/DoublyLinkedList.h: |
| (WTF::DoublyLinkedList<T>::append): |
| |
| 2014-01-04 Zan Dobersek <zdobersek@igalia.com> |
| |
| Explicitly use the std:: nested name specifier when using std::pair, std::make_pair |
| https://bugs.webkit.org/show_bug.cgi?id=126439 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/VectorTraits.h: Stop bringing std::pair into the current scope. |
| |
| 2014-01-02 Gavin Barraclough <barraclough@apple.com> |
| |
| Refactor NSActivity handling code from ChildProcess to UserActivity |
| https://bugs.webkit.org/show_bug.cgi?id=126330 |
| |
| Reviewed by Sam Weinig. |
| |
| UserActivity is a mechanism to express to the operating system (where appropriate) |
| that a user initiated activity is taking place, and as such that resources should be |
| made available to the process accordingly. |
| |
| Currently we hold a single NSActivity, at the WebKit layer. This refactoring allows us |
| to hold different activity tokens for different user actions (which simplifies the |
| handling, and aides debugging since the token can more accurately express the activity |
| taking place), and also will allow us to avoid the layering difficulty of calling back |
| up the stack to WebKit to register that an activity is taking place. |
| |
| * wtf/Platform.h: |
| - added HAVE_NS_ACTIVITY. |
| |
| 2013-12-30 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r161157, r161158, r161160, r161161, |
| r161163, and r161165. |
| http://trac.webkit.org/changeset/161157 |
| http://trac.webkit.org/changeset/161158 |
| http://trac.webkit.org/changeset/161160 |
| http://trac.webkit.org/changeset/161161 |
| http://trac.webkit.org/changeset/161163 |
| http://trac.webkit.org/changeset/161165 |
| https://bugs.webkit.org/show_bug.cgi?id=126332 |
| |
| Broke WebKit2 on Mountain Lion (Requested by ap on #webkit). |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/Forward.h: |
| * wtf/PlatformWin.cmake: |
| * wtf/threads/BinarySemaphore.cpp: Added. |
| (WTF::BinarySemaphore::BinarySemaphore): |
| (WTF::BinarySemaphore::~BinarySemaphore): |
| (WTF::BinarySemaphore::signal): |
| (WTF::BinarySemaphore::wait): |
| * wtf/threads/BinarySemaphore.h: Added. |
| (WTF::BinarySemaphore::event): |
| * wtf/threads/win/BinarySemaphoreWin.cpp: Added. |
| (WTF::BinarySemaphore::BinarySemaphore): |
| (WTF::BinarySemaphore::~BinarySemaphore): |
| (WTF::BinarySemaphore::signal): |
| (WTF::BinarySemaphore::wait): |
| |
| 2013-12-30 Anders Carlsson <andersca@apple.com> |
| |
| Replace yield() and pauseBriefly() with std::this_thread::yield() |
| https://bugs.webkit.org/show_bug.cgi?id=126105 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/ByteSpinLock.h: |
| (WTF::ByteSpinLock::lock): |
| * wtf/Threading.h: |
| * wtf/ThreadingPrimitives.h: |
| * wtf/ThreadingPthreads.cpp: |
| * wtf/ThreadingWin.cpp: |
| |
| 2013-12-30 Sam Weinig <sam@webkit.org> |
| |
| Remove unnecessary non-const overload in IteratorPair |
| https://bugs.webkit.org/show_bug.cgi?id=126314 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/IteratorPair.h: |
| |
| 2013-12-30 Sam Weinig <sam@webkit.org> |
| |
| Remove WTF's BinarySemaphore |
| https://bugs.webkit.org/show_bug.cgi?id=126310 |
| |
| Reviewed by Anders Carlsson. |
| |
| It's unused. Also remove the now empty wtf/threads directory. |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/Forward.h: |
| * wtf/PlatformWin.cmake: |
| * wtf/threads: Removed. |
| * wtf/threads/BinarySemaphore.cpp: Removed. |
| * wtf/threads/BinarySemaphore.h: Removed. |
| * wtf/threads/win: Removed. |
| * wtf/threads/win/BinarySemaphoreWin.cpp: Removed. |
| |
| 2013-12-30 Roger Fong <roger_fong@apple.com> |
| |
| [Windows] Unreviewed build fix following r160959. |
| |
| * wtf/Platform.h: |
| |
| 2013-12-30 Anders Carlsson <andersca@apple.com> |
| |
| Replace WTF::ThreadingOnce with std::call_once |
| https://bugs.webkit.org/show_bug.cgi?id=126215 |
| |
| Reviewed by Sam Weinig. |
| |
| * GNUmakefile.list.am: |
| * wtf/CompilationThread.cpp: |
| (WTF::initializeCompilationThreads): |
| * wtf/ThreadingOnce.h: Removed. |
| |
| 2013-12-26 Sam Weinig <sam@webkit.org> |
| |
| Move FilterIterator and IteratorPair to WTF and reimplement HashMap::keys() and HashMap::values() using IteratorPair |
| https://bugs.webkit.org/show_bug.cgi?id=126253 |
| |
| Reviewed by Anders Carlsson. |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| Add new files. |
| |
| * wtf/HashMap.h: |
| * wtf/RefPtrHashMap.h: |
| Remove the old implementation of keys() and values() and replace it with one |
| that uses IteratorPair. |
| |
| * wtf/FilterIterator.h: Copied from Source/WebKit2/Shared/FilterIterator.h. |
| * wtf/IteratorPair.h: Copied from Source/WebKit2/Shared/IteratorPair.h. |
| |
| 2013-12-27 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Upstream WebCore/page changes |
| https://bugs.webkit.org/show_bug.cgi?id=126180 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FeatureDefines.h: Define ENABLE_IOS_TOUCH_EVENTS to be enabled by default |
| when building iOS with ENABLE(TOUCH_EVENTS). |
| |
| 2013-12-25 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> |
| |
| [Nix] Building with DRAG_SUPPORT enabled |
| https://bugs.webkit.org/show_bug.cgi?id=126233 |
| |
| Reviewed by Daniel Bates. |
| |
| * wtf/nix/FeatureDefinesNix.h: |
| |
| 2013-12-24 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r160959. |
| http://trac.webkit.org/changeset/160959 |
| https://bugs.webkit.org/show_bug.cgi?id=126222 |
| |
| Caused Windows build to fail (Requested by rfong on #webkit). |
| |
| * wtf/ByteSpinLock.h: |
| (WTF::ByteSpinLock::lock): |
| * wtf/Threading.h: |
| * wtf/ThreadingPrimitives.h: |
| (WTF::pauseBriefly): |
| * wtf/ThreadingPthreads.cpp: |
| (WTF::yield): |
| * wtf/ThreadingWin.cpp: |
| (WTF::yield): |
| |
| 2013-12-23 Benjamin Poulain <bpoulain@apple.com> |
| |
| Fix the build after r161031 |
| |
| I enabled ENABLE_CSS_SELECTOR_JIT by accident. |
| |
| * wtf/Platform.h: |
| |
| 2013-12-23 Zan Dobersek <zdobersek@igalia.com> |
| |
| [GTK] Clean up compiler optimizations flags for libWTF, libJSC |
| https://bugs.webkit.org/show_bug.cgi?id=126157 |
| |
| Reviewed by Gustavo Noronha Silva. |
| |
| * GNUmakefile.am: Remove the -fstrict-aliasing and -O3 compiler flags for libWTF.la. -O3 gets |
| overridden by -O2 that's listed in CXXFLAGS (or -O0 in case of debug builds) and -fstrict-aliasing |
| is enabled when -O2 is used (and shouldn't be enabled in debug builds anyway). |
| |
| 2013-12-20 Anders Carlsson <andersca@apple.com> |
| |
| Replace yield() and pauseBriefly() with std::this_thread::yield() |
| https://bugs.webkit.org/show_bug.cgi?id=126105 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/ByteSpinLock.h: |
| (WTF::ByteSpinLock::lock): |
| * wtf/Threading.h: |
| * wtf/ThreadingPrimitives.h: |
| * wtf/ThreadingPthreads.cpp: |
| * wtf/ThreadingWin.cpp: |
| |
| 2013-12-20 Anders Carlsson <andersca@apple.com> |
| |
| Speed up case folding for 8-bit strings |
| https://bugs.webkit.org/show_bug.cgi?id=126098 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Add a case folding lookup table for 8-bit strings and use it instead of calling down to u_foldCase. |
| On a simple microbenchmark using a lookup table is about 15x faster. |
| |
| * wtf/text/StringHash.h: |
| (WTF::CaseFoldingHash::foldCase): |
| * wtf/text/StringImpl.cpp: |
| (WTF::equalIgnoringCase): |
| * wtf/text/StringImpl.h: |
| |
| 2013-12-20 Myles C. Maxfield <mmaxfield@apple.com> |
| |
| Faster implementation of text-decoration-skip: ink |
| https://bugs.webkit.org/show_bug.cgi?id=125718 |
| |
| Reviewed by Simon Fraser. |
| |
| This creates a new preprocessor define, CSS3_TEXT_DECORATION_SKIP_INK, |
| which enables the use of the text-decoration-skip: ink CSS value. |
| Creating this new value simplifies the logic about when to enable the |
| codepath for this CSS value. |
| |
| * wtf/Platform.h: |
| |
| 2013-12-20 Simon Fraser <simon.fraser@apple.com> |
| |
| Change "threaded scrolling" terminology to "asynchronous scrolling" |
| https://bugs.webkit.org/show_bug.cgi?id=126094 |
| |
| Reviewed by Tim Horton. |
| |
| Rename ENABLE_THREADED_SCROLLING to ENABLE_ASYNC_SCROLLING. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2013-12-20 Tamas Gergely <tgergely.u-szeged@partner.samsung.com> |
| |
| Build fails in debug mode after r160834. |
| https://bugs.webkit.org/show_bug.cgi?id=126059 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| Debug mode build failed due to comparing signed and unsigned in |
| ASSERT(). Now both values are unsigned. |
| |
| * wtf/dtoa/double-conversion.cc: |
| |
| 2013-12-19 Alex Christensen <achristensen@webkit.org> |
| |
| Final preparations for GStreamer on Windows. |
| https://bugs.webkit.org/show_bug.cgi?id=125958 |
| |
| Reviewed by Benjamin Poulain. |
| |
| * WTF.vcxproj/WTFDebugWinCairo.props: |
| * WTF.vcxproj/WTFReleaseWinCairo.props: |
| Include WinCairo.props. |
| * wtf/Platform.h: |
| Use GLib and GStreamer on WinCairo with video. |
| |
| 2013-12-18 Daniel Bates <dabates@apple.com> |
| |
| WTF, JavaScriptCore fails to build with trunk clang: operators new, new[], |
| delete, delete[] cannot be declared inline |
| https://bugs.webkit.org/show_bug.cgi?id=124186 |
| <rdar://problem/15644039> |
| |
| Reviewed by Geoffrey Garen and Anders Carlsson. |
| |
| Following <http://llvm.org/viewvc/llvm-project?view=revision&revision=193044> |
| (http://llvm.org/bugs/show_bug.cgi?id=17591>), Clang emits warnings when |
| operator new, delete are inlined. Such definitions cannot be inline per |
| replacement.functions (17.6.4.6/3) of the C++ standard. For now, |
| disable these warnings instead of exporting these functions. |
| |
| * wtf/FastMalloc.h: |
| |
| 2013-12-19 Hugo Parente Lima <hugo.lima@openbossa.org> |
| |
| WTF fails to compile with gcc 4.8.2 and -Werror=array-bounds |
| https://bugs.webkit.org/show_bug.cgi?id=125936 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/dtoa/double-conversion.cc: Use a unsigned instead of int on buffer_pos type. |
| |
| 2013-12-19 Peter Szanka <h868064@stud.u-szeged.hu> |
| |
| Delete RVCT related code parts. |
| https://bugs.webkit.org/show_bug.cgi?id=125626 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| * wtf/Compiler.h: follow-up fix for r160648, remove an unnecessary comment. |
| |
| 2013-12-18 Alex Christensen <achristensen@webkit.org> |
| |
| [WinCairo] Preparation for GStreamer on Windows. |
| https://bugs.webkit.org/show_bug.cgi?id=125946 |
| |
| Reviewed by Brent Fulgham. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| Use new GStreamer property sheets for WinCairo. |
| |
| 2013-12-18 Mark Hahnenberg <mhahnenberg@apple.com> |
| |
| DFG should have a separate StoreBarrier node |
| https://bugs.webkit.org/show_bug.cgi?id=125530 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/Platform.h: Added an #define for ENABLE(GGC) which will be used for landing things related to GenGC. |
| |
| 2013-12-16 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Upstream WebCore/html changes |
| https://bugs.webkit.org/show_bug.cgi?id=125765 |
| |
| Reviewed by Darin Adler. |
| |
| Defined ENABLE_IOS_AUTOCORRECT_AND_AUTOCAPITALIZE, enabled by default on iOS. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2013-12-17 Alex Christensen <achristensen@webkit.org> |
| |
| Compile fix for WebGL on Windows without GRAPHICS_SURFACE. |
| https://bugs.webkit.org/show_bug.cgi?id=125867 |
| |
| Reviewed by Martin Robinson. |
| |
| * wtf/FeatureDefines.h: |
| Removed unused ENABLE_GLIB_SUPPORT macro. |
| * wtf/Platform.h: |
| Don't use GRAPHICS_SURFACE for WebGL on Windows. |
| |
| 2013-12-17 Alex Christensen <achristensen@webkit.org> |
| |
| [Win] Fixed linker error with GStreamer. |
| https://bugs.webkit.org/show_bug.cgi?id=124861 |
| |
| Reviewed by Martin Robinson. |
| |
| * wtf/gobject/GOwnPtr.cpp: |
| (WTF::GError): |
| * wtf/gobject/GOwnPtr.h: |
| Added WTF_EXPORT_PRIVATE to freeOwnedGPtr<GError> declaration and definition. |
| |
| 2013-12-17 Benjamin Poulain <benjamin@webkit.org> |
| |
| Add a simple register allocator to WebCore for x86_64 |
| https://bugs.webkit.org/show_bug.cgi?id=125771 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Platform.h: Add a new flag "CSS_SELECTOR_JIT" to guard |
| an experimental JIT compiler in WebCore. |
| |
| 2013-12-16 Anders Carlsson <andersca@apple.com> |
| |
| Remove EnumClass.h from WTF |
| https://bugs.webkit.org/show_bug.cgi?id=125820 |
| |
| Reviewed by Darin Adler. |
| |
| All compilers we build on now support real strongly typed enums, so we can remove the ENUM_CLASS version. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CheckedArithmetic.h: |
| * wtf/EnumClass.h: Removed. |
| |
| 2013-12-16 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Remove dead code after conversion to VS2013 |
| https://bugs.webkit.org/show_bug.cgi?id=125795 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Assertions.h: Include <inttypes.h> now that it exists. |
| * wtf/Compiler.h: Update compiler checks for VS2013, and |
| enable support for NEVER_INLINE |
| * wtf/HashFunctions.h: |
| (WTF::PtrHash::hash): Remove compiler workaround. |
| * wtf/MathExtras.h: Remove C99 functions that are now supplied |
| by the MS runtime library. |
| * wtf/Platform.h: Remove old MSVC support flags. |
| * wtf/StdLibExtras.h: Remove old MSVC workaround code. |
| |
| 2013-12-16 Alex Christensen <achristensen@webkit.org> |
| |
| Fixed Win64 build on VS2013. |
| https://bugs.webkit.org/show_bug.cgi?id=125753 |
| |
| Reviewed by Brent Fulgham. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| Added correct PlatformToolset for 64-bit builds. |
| |
| 2013-12-16 Peter Szanka <h868064@stud.u-szeged.hu> |
| |
| Delete RVCT related code parts. |
| https://bugs.webkit.org/show_bug.cgi?id=125626 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Assertions.h: |
| * wtf/Compiler.h: |
| * wtf/FastMalloc.h: |
| * wtf/Platform.h: |
| |
| 2013-12-13 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Remove Pre-VS2013 support code. |
| https://bugs.webkit.org/show_bug.cgi?id=125693 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/StringPrintStream.cpp: |
| (WTF::StringPrintStream::vprintf): Use va_copy, like a civilized person. |
| |
| 2013-12-12 Darin Adler <darin@apple.com> |
| |
| Incorrect handling of non-ASCII characters in WTF::base64DecodeInternal |
| https://bugs.webkit.org/show_bug.cgi?id=125658 |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * wtf/text/Base64.cpp: |
| (WTF::base64EncodeInternal): Use a reference to an array instead of a pointer |
| for the table argument type so we check the size of the array at the call site. |
| (WTF::base64DecodeInternal): Ditto. Also added an bounds check before using the |
| table so we don't load some random value for non-ASCII characters. |
| |
| 2013-12-13 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Unreviewed build fix after r160548 |
| |
| * WTF.vcxproj/WTFGenerated.vcxproj: Specify that we are using |
| the vs12_xp target for Makefile-based projects. |
| |
| 2013-12-13 Anders Carlsson <andersca@apple.com> |
| |
| Require variadic templates to build WebKit |
| https://bugs.webkit.org/show_bug.cgi?id=125701 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/Compiler.h: |
| Add an #error if variadic templates are disabled. |
| |
| * wtf/NeverDestroyed.h: |
| * wtf/PassRef.h: |
| * wtf/StdLibExtras.h: |
| Remove a bunch of COMPILER_SUPPORTS(CXX_VARIADIC_TEMPLATES) #ifdefs. |
| |
| 2013-12-13 Peter Szanka <h868064@stud.u-szeged.hu> |
| |
| Delete INTEL C compiler related code parts. |
| https://bugs.webkit.org/show_bug.cgi?id=125625 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Assertions.h: |
| * wtf/Compiler.h: |
| |
| 2013-12-13 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Switch WebKit solution to Visual Studio 2013 |
| https://bugs.webkit.org/show_bug.cgi?id=125192 |
| |
| Reviewed by Anders Carlsson. |
| |
| * WTF.vcxproj/WTF.vcxproj: Update for VS2013 |
| * WTF.vcxproj/WTF.vcxproj.filters: Ditto |
| |
| 2013-12-12 Brady Eidson <beidson@apple.com> |
| |
| DatabaseProcess IndexedDB: Establish a metadata backing store on disk |
| https://bugs.webkit.org/show_bug.cgi?id=125258 |
| |
| Reviewed by Alexey Proskuryakov, Anders Carlsson, and Tim Horton. |
| |
| * wtf/text/WTFString.h: Export toUInt64Strict(). |
| |
| 2013-12-12 Sam Weinig <sam@webkit.org> |
| |
| Replace uses of WTF::BitArray with std::bitset |
| https://bugs.webkit.org/show_bug.cgi?id=125642 |
| |
| Reviewed by Anders Carlsson. |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/BitArray.h: Removed. |
| * wtf/CMakeLists.txt: |
| |
| 2013-12-11 David Kilzer <ddkilzer@apple.com> |
| |
| Define m_hasBadParent in InlineBox if defined(ADDRESS_SANITIZER) |
| <http://webkit.org/b/125329> |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Assertions.h: Define macro |
| ASSERT_WITH_SECURITY_IMPLICATION_DISABLED based on whether |
| ASSERT_WITH_SECURITY_IMPLICATION() is enabled. |
| |
| 2013-12-11 Brendan Long <b.long@cablelabs.com> |
| |
| Type punning error in MD5.cpp |
| https://bugs.webkit.org/show_bug.cgi?id=125412 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/MD5.cpp: |
| (WTF::toLittleEndian): Renamed, and use memcpy instead of casting. |
| (WTF::MD5::addBytes): Renamed reverseBytes to toLittleEndian. |
| (WTF::MD5::checksum): Same, and use memcpy instead of casting to prevent type punning error. |
| |
| 2013-12-11 Laszlo Vidacs <lac@inf.u-szeged.hu> |
| |
| Store SHA1 hash in std::array |
| https://bugs.webkit.org/show_bug.cgi?id=125446 |
| |
| Reviewed by Darin Adler. |
| |
| Change Vector to std::array and use typedef. |
| |
| * wtf/SHA1.cpp: |
| (WTF::SHA1::computeHash): |
| (WTF::SHA1::hexDigest): |
| (WTF::SHA1::computeHexDigest): |
| * wtf/SHA1.h: |
| |
| 2013-12-11 Oliver Hunt <oliver@apple.com> |
| |
| Give Unique StringImpls a meaningful data pointer |
| https://bugs.webkit.org/show_bug.cgi?id=125598 |
| |
| Reviewed by Michael Saboff. |
| |
| Found by code inspection. If there is a collision in an Identifier |
| table when comparing to a string literal we attempt to use the data |
| pointer (essentially this ends up being a null termination check). |
| |
| Previously unique pointers just used the literal 1 as the data address |
| but this obviously fails when dereferenced. Instead we now make the |
| data pointer point to the location of the buffer pointer itself. As |
| the buffer pointer is initialised to 0, this satisfies the requirement |
| that the 0-length unique string is null terminated. |
| |
| * wtf/text/StringImpl.h: |
| (WTF::StringImpl::StringImpl): |
| |
| 2013-12-10 Anders Carlsson <andersca@apple.com> |
| |
| Add a HashMap constructor that takes an initializer list |
| https://bugs.webkit.org/show_bug.cgi?id=125551 |
| |
| Reviewed by Dan Bernstein. |
| |
| * wtf/HashMap.h: |
| (WTF::HashMap::HashMap): |
| |
| 2013-12-10 Laszlo Vidacs <lac@inf.u-szeged.hu> |
| |
| Use std::array when computing MD5 checksum |
| https://bugs.webkit.org/show_bug.cgi?id=125509 |
| |
| Reviewed by Anders Carlsson. |
| |
| Added MD5::Digest type and MD5::hashSize for computing MD5 checksum. |
| |
| * wtf/MD5.cpp: |
| (WTF::MD5::checksum): |
| * wtf/MD5.h: |
| |
| 2013-12-10 Martin Robinson <mrobinson@igalia.com> |
| |
| Various fixes for the CMake GTK+ build |
| |
| Reviewed by Gustavo Noronha. |
| |
| * wtf/PlatformGTK.cmake: Add Zlib library to the WTF build. |
| |
| 2013-12-09 Sam Weinig <sam@webkit.org> |
| |
| Remove FixedArray |
| https://bugs.webkit.org/show_bug.cgi?id=125478 |
| |
| Reviewed by Anders Carlsson. |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/FixedArray.h: Removed. |
| |
| 2013-12-09 Sam Weinig <sam@webkit.org> |
| |
| Replace use of WTF::FixedArray with std::array |
| https://bugs.webkit.org/show_bug.cgi?id=125475 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/AVLTree.h: |
| * wtf/Bitmap.h: |
| * wtf/SixCharacterHash.cpp: |
| (WTF::integerToSixCharacterHashString): |
| * wtf/SixCharacterHash.h: |
| |
| 2013-12-06 Roger Fong <roger_fong@apple.com> and Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Support compiling with VS2013 |
| https://bugs.webkit.org/show_bug.cgi?id=125353 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Compiler.h: Show proper features for VS2012 and VS2013. |
| * wtf/MathExtras.h: Don't implement common C99 routines when |
| they are available through the runtime libraries. |
| * wtf/RetainPtr.h: |
| (WTF::RetainPtr::operator bool): Added. |
| * wtf/StdLibExtras.h: Use Microsoft's version of make_unique |
| when it exists. |
| |
| 2013-12-06 Laszlo Vidacs <lac@inf.u-szeged.hu> |
| |
| Define SHA1 hash size in SHA1.h and use it at various places. |
| https://bugs.webkit.org/show_bug.cgi?id=125345 |
| |
| Reviewed by Darin Adler. |
| |
| Use SHA1::hashSize instead of local variables. |
| |
| * wtf/SHA1.h: define SHA1 hash size |
| |
| 2013-12-05 Iain Lane <iain.lane@canonical.com> |
| |
| Remove USE(LOCKFREE_THREADSAFEREFCOUNTED) from Atomics.cpp since it is |
| no longer defined. |
| https://bugs.webkit.org/show_bug.cgi?id=124502 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Atomics.cpp: |
| |
| 2013-12-04 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Enable HTMLTemplateElement by default |
| https://bugs.webkit.org/show_bug.cgi?id=123851 |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2013-12-04 Dan Bernstein <mitz@apple.com> |
| |
| Replace USE(SECURITY_FRAMEWORK) with finer-grained defines |
| https://bugs.webkit.org/show_bug.cgi?id=125242 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/Platform.h: Removed definitions of WTF_USE_SECURITY_FRAMEWORK, and defined |
| HAVE_SEC_IDENTITY and HAVE_SEC_KEYCHAIN. |
| |
| 2013-12-03 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Web Inspector: Push Remote Inspector debugging connection management into JavaScriptCore |
| https://bugs.webkit.org/show_bug.cgi?id=124613 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * wtf/ios/WebCoreThread.cpp: |
| * wtf/ios/WebCoreThread.h: |
| Expose WebThreadRun/WebThreadRunSync iOS methods defined in WebCore through |
| WTF so that JavaScriptCore can use it. Another such method already existed. |
| |
| 2013-12-03 Mark Lam <mark.lam@apple.com> |
| |
| testapi test crashes on Windows in WTF::Vector<wchar_t,64,WTF::UnsafeVectorOverflow>::size(). |
| https://bugs.webkit.org/show_bug.cgi?id=121972. |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/OSAllocatorWin.cpp: |
| (WTF::OSAllocator::decommit): |
| (WTF::OSAllocator::releaseDecommitted): |
| - Added a check to ensure that the bytes to decommit / release is not 0. |
| On Windows, a 0 length passed to VirtualFree() has a special meaning, |
| and it's not "decommit / release nothing" as one would expect. Adding |
| this check makes OSAllocatorWin consistent with OSAllocatorPosix for |
| these 2 functions. |
| |
| 2013-12-02 Mark Lam <mark.lam@apple.com> |
| |
| Build failure when disabling JIT, YARR_JIT, and ASSEMBLER. |
| https://bugs.webkit.org/show_bug.cgi?id=123809. |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Platform.h: |
| - Ensure that the ASSEMBLER is enabled when the DISASSEMBLER is enabled. |
| |
| 2013-11-30 peavo@outlook.com <peavo@outlook.com> |
| |
| [Win] Some JavaScript date tests are failing. |
| https://bugs.webkit.org/show_bug.cgi?id=124946 |
| |
| Reviewed by Brent Fulgham. |
| |
| Use native Win32 api functions to compute Daylight saving time offset. |
| |
| * wtf/DateMath.cpp: |
| (WTF::UnixTimeToFileTime): Added method to calculate Win32 specific struct FILETIME from time_t value. |
| (WTF::calculateDSTOffset): Use native Win32 api functions to compute Daylight saving time offset. |
| |
| 2013-11-28 Thiago de Barros Lacerda <thiago.lacerda@openbossa.org> |
| |
| Nix Upstream: Updating Nix WTF files |
| https://bugs.webkit.org/show_bug.cgi?id=124980 |
| |
| Reviewed by Csaba Osztrogonác. |
| |
| Just to sync our private repo files and the trunk, as part of the upstream process. |
| |
| * wtf/DisallowCType.h: |
| * wtf/PlatformNix.cmake: |
| * wtf/nix/FeatureDefinesNix.h: |
| * wtf/nix/PlatformNix.h: |
| * wtf/nix/RunLoopNix.cpp: Added. |
| |
| 2013-11-28 Antti Koivisto <antti@apple.com> |
| |
| Remove feature: CSS variables |
| https://bugs.webkit.org/show_bug.cgi?id=114119 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2013-11-26 Filip Pizlo <fpizlo@apple.com> |
| |
| Do bytecode validation as part of testing |
| https://bugs.webkit.org/show_bug.cgi?id=124913 |
| |
| Reviewed by Oliver Hunt. |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/FastBitVector.cpp: Added. |
| (WTF::FastBitVector::dump): |
| * wtf/FastBitVector.h: |
| (WTF::FastBitVector::resize): |
| (WTF::FastBitVector::bitCount): |
| (WTF::FastBitVector::arrayLength): |
| |
| 2013-11-27 Tamas Gergely <tgergely.u-szeged@partner.samsung.com> |
| |
| Remove Sparc specific code. |
| https://bugs.webkit.org/show_bug.cgi?id=124941 |
| |
| Reviewed by Michael Saboff. |
| |
| Sparc is not supported, remove leftover code. |
| |
| * wtf/Platform.h: |
| * wtf/dtoa/utils.h: |
| |
| 2013-11-26 Marcelo Lira <marcelo.lira@openbossa.org> |
| |
| Nix upstreaming - Adding build files and supporting scripts |
| https://bugs.webkit.org/show_bug.cgi?id=118367 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| * wtf/FeatureDefines.h: |
| * wtf/Platform.h: |
| * wtf/PlatformNix.cmake: Added. |
| |
| 2013-11-26 Drew Yao <ayao@apple.com> |
| |
| ASSERT_WITH_SECURITY_IMPLICATION should crash in a distinct way. |
| https://bugs.webkit.org/show_bug.cgi?id=124757 |
| |
| Change ASSERT_WITH_SECURITY_IMPLICATION to access a different address from CRASH() |
| in order to help screen fuzzing bugs. |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| |
| 2013-11-24 Tim Horton <timothy_horton@apple.com> |
| |
| Upstream USE(IOSURFACE) from the iOS port |
| https://bugs.webkit.org/show_bug.cgi?id=124814 |
| |
| Reviewed by Sam Weinig. |
| |
| Some code guarded by USE(IOSURFACE) was recently upstreamed, |
| but not the definition of WTF_USE_IOSURFACE itself. |
| |
| * wtf/Platform.h: |
| |
| 2013-11-23 Xabier Rodriguez Calvar <calvaris@igalia.com> |
| |
| [GStreamer] Remove 0.10 codepath |
| https://bugs.webkit.org/show_bug.cgi?id=124534 |
| |
| Reviewed by Philippe Normand. |
| |
| * wtf/Platform.h: Removed macro for GStreamer 1.0 as it is the |
| only codepath now. |
| |
| 2013-11-21 Peter Molnar <pmolnar.u-szeged@partner.samsung.com> |
| |
| Remove ENABLE_WORKERS |
| https://bugs.webkit.org/show_bug.cgi?id=105784 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/FeatureDefines.h: |
| * wtf/nix/FeatureDefinesNix.h: |
| |
| 2013-11-21 Mark Rowe <mrowe@apple.com> |
| |
| <https://webkit.org/b/124701> Fix an error in a few Xcode configuration setting files. |
| |
| Reviewed by Alexey Proskuryakov. |
| |
| * Configurations/Base.xcconfig: |
| |
| 2013-11-20 Mark Lam <mark.lam@apple.com> |
| |
| Introducing VMEntryScope to update the VM stack limit. |
| https://bugs.webkit.org/show_bug.cgi?id=124634. |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Platform.h: |
| * wtf/StackBounds.h: |
| (WTF::StackBounds::StackBounds): |
| |
| 2013-11-18 Filip Pizlo <fpizlo@apple.com> |
| |
| Allow the FTL debug dumps to include the new size field |
| https://bugs.webkit.org/show_bug.cgi?id=124479 |
| |
| Reviewed by Mark Hahnenberg. |
| |
| * wtf/PrintStream.cpp: |
| (WTF::printInternal): |
| * wtf/PrintStream.h: |
| |
| 2013-11-17 Jer Noble <jer.noble@apple.com> |
| |
| [WTF] Media time should not have a constructor which accepts a single int or float. |
| https://bugs.webkit.org/show_bug.cgi?id=124470 |
| |
| Having a constructor taking a single number value, as it's very easy to accidentially mis- |
| initialize a MediaTime with a double (automatically casted to a int64_t). |
| |
| Reviewed by Eric Carlson. |
| |
| * wtf/MediaTime.h: |
| |
| 2013-11-18 Csaba Osztrogonác <ossy@webkit.org> |
| |
| URTBF after r159432 to make WinCairo build happy. |
| |
| * wtf/text/WTFString.h: |
| |
| 2013-11-18 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix make distcheck. |
| |
| * GNUmakefile.list.am: Add missing header file. |
| |
| 2013-11-16 Alexey Proskuryakov <ap@apple.com> |
| |
| Use uint8_t vectors for WebCrypto data |
| https://bugs.webkit.org/show_bug.cgi?id=124466 |
| |
| Reviewed by Sam Weinig. |
| |
| Binary data can be UTF-8, in which case "char*" is idiomatic, or it can be arbitrary |
| binary data, in which case "uint8_t*" is more common. |
| |
| Changed encode functions that took "const char *" to "const void*", and decode |
| functions that took "Vector<char>&" now take an adapter class. |
| |
| The adapter relies on Vector<char> and Vector<uint8_t> classes having an identical layout. |
| |
| * wtf/text/Base64.cpp: |
| (WTF::base64Encode): |
| (WTF::base64URLEncode): |
| (WTF::base64DecodeInternal): |
| (WTF::base64Decode): |
| (WTF::base64URLDecode): |
| * wtf/text/Base64.h: |
| (WTF::SignedOrUnsignedCharVectorAdapter): |
| (WTF::ConstSignedOrUnsignedCharVectorAdapter): |
| (WTF::base64Encode): |
| (WTF::base64URLEncode): |
| |
| 2013-11-15 Alexey Proskuryakov <ap@apple.com> |
| |
| Support exporting symmetric keys as JWK |
| https://bugs.webkit.org/show_bug.cgi?id=124442 |
| |
| Reviewed by Sam Weinig. |
| |
| Base64URL encoding doesn't use '=' padding, and doesn't need any other options. |
| Added this mode for encode, and removed policy arguments from exposed functions. |
| |
| * wtf/text/Base64.cpp: |
| (WTF::base64EncodeInternal): |
| (WTF::base64URLEncode): |
| (WTF::base64URLDecode): |
| * wtf/text/Base64.h: |
| (WTF::base64URLEncode): |
| |
| 2013-11-15 Mark Hahnenberg <mhahnenberg@apple.com> |
| |
| Remove VTableSpectrum |
| https://bugs.webkit.org/show_bug.cgi?id=124427 |
| |
| Reviewed by Filip Pizlo. |
| |
| * wtf/Platform.h: |
| |
| 2013-11-15 Jer Noble <jer.noble@apple.com> |
| |
| MediaTime addition and subtraction operators have errors when the rhs is infinite. |
| https://bugs.webkit.org/show_bug.cgi?id=124413 |
| |
| Reviewed by Eric Carlson. |
| |
| Correctly account for infinities that can occur on the right-hand side of addition or |
| subtraction operators. |
| |
| * wtf/MediaTime.cpp: |
| (WTF::MediaTime::operator+): |
| (WTF::MediaTime::operator-): |
| |
| 2013-11-14 Oliver Hunt <oliver@apple.com> |
| |
| Make CLoop easier to build, and make it work |
| https://bugs.webkit.org/show_bug.cgi?id=124359 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Make building with the CLoop forcibly enabled manually |
| disable the JITs |
| |
| * wtf/Platform.h: |
| |
| 2013-11-14 Andreas Kling <akling@apple.com> |
| |
| FontDescription copies should share families list, not duplicate it. |
| <https://webkit.org/b/124338> |
| |
| Add RefCountedArray::operator==. |
| |
| Reviewed by Antti Koivisto. |
| |
| 2013-11-13 Anders Carlsson <andersca@apple.com> |
| |
| Add a Vector constructor that takes an std::initializer_list |
| https://bugs.webkit.org/show_bug.cgi?id=124287 |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/Compiler.h: |
| * wtf/Vector.h: |
| (WTF::Vector::Vector): |
| |
| 2013-11-12 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] Unreviewed gardening. |
| |
| * WTF.vcxproj/WTF.vcxproj.filters: Tidy up filters so files show up |
| in their proper directories. |
| |
| 2013-11-12 Alex Christensen <achristensen@webkit.org> |
| |
| Build GStreamer files on Windows. |
| https://bugs.webkit.org/show_bug.cgi?id=124180 |
| |
| Reviewed by Brent Fulgham. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.vcxproj/copy-files.cmd: |
| Include gobject files in WinCairo build. |
| |
| 2013-11-09 Filip Pizlo <fpizlo@apple.com> |
| |
| Switch FTL GetById/PutById IC's over to using AnyRegCC |
| https://bugs.webkit.org/show_bug.cgi?id=124094 |
| |
| Reviewed by Sam Weinig. |
| |
| I needed to add another set operation, namely filter(), which is an in-place set |
| intersection. |
| |
| * wtf/BitVector.cpp: |
| (WTF::BitVector::filterSlow): |
| * wtf/BitVector.h: |
| (WTF::BitVector::filter): |
| |
| 2013-11-10 Ryuan Choi <ryuan.choi@samsung.com> |
| |
| [EFL] Build break on Ubuntu 13.10 |
| https://bugs.webkit.org/show_bug.cgi?id=124131 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| Turned DisallowCType macros off on EFL port because gtest-internal.h uses isspace(). |
| |
| * wtf/DisallowCType.h: Added !PLATFORM(EFL) guard. |
| |
| 2013-11-09 Patrick Gansterer <paroga@webkit.org> |
| |
| Move RunLoop from WebCore to WTF |
| https://bugs.webkit.org/show_bug.cgi?id=116606 |
| |
| Reviewed by Anders Carlsson. |
| |
| With this change RunLoop can be used in JavaScriptCore too. |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/CMakeLists.txt: |
| * wtf/PlatformBlackBerry.cmake: |
| * wtf/PlatformEfl.cmake: |
| * wtf/PlatformGTK.cmake: |
| * wtf/PlatformWin.cmake: |
| * wtf/RunLoop.cpp: Renamed from Source/WebCore/platform/RunLoop.cpp. |
| (WTF::RunLoop::Holder::Holder): |
| (WTF::RunLoop::Holder::runLoop): |
| (WTF::RunLoop::initializeMainRunLoop): |
| (WTF::RunLoop::current): |
| (WTF::RunLoop::main): |
| (WTF::RunLoop::isMain): |
| (WTF::RunLoop::performWork): |
| (WTF::RunLoop::dispatch): |
| * wtf/RunLoop.h: Renamed from Source/WebCore/platform/RunLoop.h. |
| (WTF::RunLoop::TimerBase::startRepeating): |
| (WTF::RunLoop::TimerBase::startOneShot): |
| (WTF::RunLoop::TimerBase::isRepeating): |
| (WTF::RunLoop::Timer::Timer): |
| (WTF::RunLoop::Timer::fired): |
| * wtf/blackberry/RunLoopBlackBerry.cpp: Renamed from Source/WebCore/platform/blackberry/RunLoopBlackBerry.cpp. |
| (WTF::RunLoop::RunLoop): |
| (WTF::RunLoop::~RunLoop): |
| (WTF::RunLoop::wakeUp): |
| * wtf/cf/RunLoopCF.cpp: Renamed from Source/WebCore/platform/cf/RunLoopCF.cpp. |
| (WTF::RunLoop::performWork): |
| (WTF::RunLoop::RunLoop): |
| (WTF::RunLoop::~RunLoop): |
| (WTF::RunLoop::runForDuration): |
| (WTF::RunLoop::wakeUp): |
| (WTF::RunLoop::run): |
| (WTF::RunLoop::stop): |
| (WTF::RunLoop::TimerBase::timerFired): |
| (WTF::RunLoop::TimerBase::TimerBase): |
| (WTF::RunLoop::TimerBase::~TimerBase): |
| (WTF::RunLoop::TimerBase::start): |
| (WTF::RunLoop::TimerBase::stop): |
| (WTF::RunLoop::TimerBase::isActive): |
| * wtf/efl/RunLoopEfl.cpp: Renamed from Source/WebCore/platform/efl/RunLoopEfl.cpp. |
| (WTF::RunLoop::RunLoop): |
| (WTF::RunLoop::~RunLoop): |
| (WTF::RunLoop::run): |
| (WTF::RunLoop::stop): |
| (WTF::RunLoop::wakeUpEvent): |
| (WTF::RunLoop::wakeUp): |
| (WTF::RunLoop::TimerBase::TimerBase): |
| (WTF::RunLoop::TimerBase::~TimerBase): |
| (WTF::RunLoop::TimerBase::timerFired): |
| (WTF::RunLoop::TimerBase::start): |
| (WTF::RunLoop::TimerBase::stop): |
| (WTF::RunLoop::TimerBase::isActive): |
| * wtf/gtk/RunLoopGtk.cpp: Renamed from Source/WebCore/platform/gtk/RunLoopGtk.cpp. |
| (WTF::RunLoop::RunLoop): |
| (WTF::RunLoop::~RunLoop): |
| (WTF::RunLoop::run): |
| (WTF::RunLoop::innermostLoop): |
| (WTF::RunLoop::pushNestedMainLoop): |
| (WTF::RunLoop::popNestedMainLoop): |
| (WTF::RunLoop::stop): |
| (WTF::RunLoop::queueWork): |
| (WTF::RunLoop::wakeUp): |
| (WTF::RunLoop::TimerBase::TimerBase): |
| (WTF::RunLoop::TimerBase::~TimerBase): |
| (WTF::RunLoop::TimerBase::clearTimerSource): |
| (WTF::RunLoop::TimerBase::timerFiredCallback): |
| (WTF::RunLoop::TimerBase::start): |
| (WTF::RunLoop::TimerBase::stop): |
| (WTF::RunLoop::TimerBase::isActive): |
| * wtf/win/RunLoopWin.cpp: Renamed from Source/WebCore/platform/win/RunLoopWin.cpp. |
| (WTF::RunLoop::RunLoopWndProc): |
| (WTF::RunLoop::wndProc): |
| (WTF::RunLoop::run): |
| (WTF::RunLoop::stop): |
| (WTF::RunLoop::registerRunLoopMessageWindowClass): |
| (WTF::RunLoop::RunLoop): |
| (WTF::RunLoop::~RunLoop): |
| (WTF::RunLoop::wakeUp): |
| (WTF::RunLoop::TimerBase::timerFired): |
| (WTF::generateTimerID): |
| (WTF::RunLoop::TimerBase::TimerBase): |
| (WTF::RunLoop::TimerBase::~TimerBase): |
| (WTF::RunLoop::TimerBase::start): |
| (WTF::RunLoop::TimerBase::stop): |
| (WTF::RunLoop::TimerBase::isActive): |
| |
| 2013-11-08 Alexey Proskuryakov <ap@apple.com> |
| |
| Make base64url decoding actually work |
| https://bugs.webkit.org/show_bug.cgi?id=124050 |
| |
| Reviewed by Sam Weinig. |
| |
| * wtf/text/Base64.cpp: (WTF::base64DecodeInternal): Don't hardcode knowledge about |
| alphabet, put it into the map. |
| |
| 2013-11-07 Denis Nomiyama <d.nomiyama@samsung.com> |
| |
| [GTK] Glyphs in vertical text tests are rotated 90 degrees clockwise |
| https://bugs.webkit.org/show_bug.cgi?id=50619 |
| |
| Reviewed by Martin Robinson. |
| |
| Enabled OPENTYPE_VERTICAL by default on GTK+ and EFL ports, which are |
| currently using Freetype. |
| |
| * wtf/Platform.h: |
| |
| 2013-11-06 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Upstream Letterpress effect |
| https://bugs.webkit.org/show_bug.cgi?id=123932 |
| |
| Reviewed by Sam Weinig. |
| |
| Add feature define ENABLE_LETTERPRESS disabled by default. We only enable |
| letterpress on iOS. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2013-11-06 Nick Diego Yamane <nick.yamane@openbossa.org> |
| |
| Disable "unused local typedefs" warning for GCC 4.7 |
| https://bugs.webkit.org/show_bug.cgi?id=123913 |
| |
| Reviewed by Martin Robinson. |
| |
| That warning was actually introduced in gcc 4.7.0. |
| See: http://gcc.gnu.org/gcc-4.7/changes.html |
| |
| * wtf/Compiler.h: |
| |
| 2013-11-06 Daniel Bates <dabates@apple.com> |
| |
| Add ENABLE(TEXT_SELECTION) |
| https://bugs.webkit.org/show_bug.cgi?id=123827 |
| |
| Reviewed by Ryosuke Niwa. |
| |
| Enable selection painting by default on all ports except iOS. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2013-11-04 Alexey Proskuryakov <ap@apple.com> |
| |
| Implement base64url encoding from RFC 4648 |
| https://bugs.webkit.org/show_bug.cgi?id=123767 |
| |
| Reviewed by Sam Weinig. |
| |
| No tests yet, will be covered by JWK tests for WebCrypto. |
| |
| * wtf/text/Base64.cpp: |
| (WTF::base64EncodeInternal): |
| (WTF::base64Encode): |
| (WTF::base64URLEncode): |
| (WTF::base64DecodeInternal): |
| (WTF::base64Decode): |
| (WTF::base64URLDecode): |
| * wtf/text/Base64.h: |
| (WTF::base64URLEncode): |
| |
| 2013-11-04 Brent Fulgham <bfulgham@apple.com> |
| |
| [Win] User VersionStamper for official builds |
| https://bugs.webkit.org/show_bug.cgi?id=123758 |
| |
| Reviewed by Tim Horton. |
| |
| * WTF.vcxproj/WTFPostBuild.cmd: Add missing command to run VersionStamper.exe. |
| |
| 2013-11-01 Jer Noble <jer.noble@apple.com> |
| |
| [PluginProxy] Add a setting to disable video plugin proxy support in HTMLMediaElement. |
| https://bugs.webkit.org/show_bug.cgi?id=123621 |
| |
| Reviewed by Eric Carlson. |
| |
| Enable WTF_USE_AVFOUNDATION and add some HAVE_AVFOUNDATION_* defines |
| to replace the existing __MAC_OS_X_VERSION_MIN_REQUIRED macros in |
| MediaPlayerPrivateAVFoundationObjC.mm. |
| |
| * wtf/Platform.h: |
| |
| 2013-11-02 Patrick Gansterer <paroga@webkit.org> |
| |
| Fix compilation of DateMath.cpp with MSVC |
| https://bugs.webkit.org/show_bug.cgi?id=123680 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/DateMath.cpp: |
| (WTF::appendTwoDigitNumber): Help the compiler finding the |
| correct overload by casting the characters to LChar. |
| |
| 2013-11-02 Filip Pizlo <fpizlo@apple.com> |
| |
| LLVM assertion failures should funnel into WTF's crash handling |
| https://bugs.webkit.org/show_bug.cgi?id=123682 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Give JSC some new toys to play with for crash handling. |
| |
| * wtf/Assertions.cpp: |
| * wtf/Assertions.h: |
| |
| 2013-11-02 Patrick Gansterer <paroga@webkit.org> |
| |
| Fix UnicodeWchar after r157330. |
| https://bugs.webkit.org/show_bug.cgi?id=123668 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/unicode/wchar/UnicodeWchar.cpp: |
| (unorm_normalize): |
| (u_strFoldCase): |
| (u_strToLower): |
| (u_strToUpper): |
| * wtf/unicode/wchar/UnicodeWchar.h: |
| (u_foldCase): |
| (u_isprint): |
| (u_isspace): |
| |
| 2013-11-02 Andreas Kling <akling@apple.com> |
| |
| Make remaining StringImpl functions return PassRef. |
| <https://webkit.org/b/123683> |
| |
| Okay, this seems to work well! Let's go all in and convert the |
| remaining StringImpl functions to return PassRef<StringImpl> instead |
| of PassRefPtr where we know that null is never returned. |
| |
| Reviewed by Anders Carlsson. |
| |
| 2013-11-02 Andreas Kling <akling@apple.com> |
| |
| StringImpl::upper() should return PassRef. |
| <https://webkit.org/b/123655> |
| |
| Make upper() return PassRef<StringImpl>. Spotted and removed some |
| ref churning in implementations. |
| |
| Reviewed by Darin Adler. |
| |
| 2013-11-01 Alexey Proskuryakov <ap@apple.com> |
| |
| Add WebCrypto AES-CBC |
| https://bugs.webkit.org/show_bug.cgi?id=123647 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/FixedArray.h: (WTF::FixedArray::data): Added a const version of the function. |
| |
| * wtf/Vector.h: Added a comment to Vector constructor about how it is different |
| from std::vector. |
| |
| 2013-11-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Unreviewed extended attempt at Windows build fix after r158471. |
| |
| * wtf/text/cf/AtomicStringCF.cpp: |
| * wtf/text/cf/StringCF.cpp: |
| * wtf/text/cf/StringImplCF.cpp: |
| |
| 2013-11-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Unreviewed attempt at Windows build fix after r158471. |
| |
| * wtf/text/cf/AtomicStringCF.cpp: |
| * wtf/text/cf/StringCF.cpp: |
| * wtf/text/cf/StringImplCF.cpp: |
| |
| 2013-11-01 Andreas Kling <akling@apple.com> |
| |
| Make more StringImpl construction helpers return PassRef. |
| <https://webkit.org/b/123652> |
| |
| Tweak another handful of StringImpl constructor functions to return |
| PassRef<StringImpl> instead of PassRefPtr. |
| |
| Reviewed by Anders Carlsson. |
| |
| 2013-11-01 Andreas Kling <akling@apple.com> |
| |
| Neuter WTF_MAKE_FAST_ALLOCATED in GLOBAL_FASTMALLOC_NEW builds. |
| <https://webkit.org/b/123639> |
| |
| When building with GLOBAL_FASTMALLOC_NEW, we don't need to expand |
| operator new/delete overrides in every class. |
| |
| This change makes allocations group up nicely in Instruments, |
| instead of being split between "WTF::fastMalloc" and "operator new" |
| depending on whether the class had WTF_MAKE_FAST_ALLOCATED. |
| |
| Reviewed by Anders Carlsson. |
| |
| 2013-11-01 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Move CF/Mac WTF String implementations down into WTF |
| https://bugs.webkit.org/show_bug.cgi?id=123635 |
| |
| Reviewed by Sam Weinig. |
| |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.vcxproj/WTF.vcxproj.filters: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/text/AtomicString.h: |
| * wtf/text/StringImpl.h: |
| * wtf/text/WTFString.h: |
| * wtf/text/cf/AtomicStringCF.cpp: Renamed from Source/WebCore/platform/text/cf/AtomicStringCF.cpp. |
| (WTF::AtomicString::add): |
| * wtf/text/cf/StringCF.cpp: Renamed from Source/WebCore/platform/text/cf/StringCF.cpp. |
| (WTF::String::String): |
| (WTF::String::createCFString): |
| * wtf/text/cf/StringImplCF.cpp: Renamed from Source/WebCore/platform/text/cf/StringImplCF.cpp. |
| (garbageCollectionEnabled): |
| (WTF::StringWrapperCFAllocator::retain): |
| (WTF::StringWrapperCFAllocator::release): |
| (WTF::StringWrapperCFAllocator::copyDescription): |
| (WTF::StringWrapperCFAllocator::allocate): |
| (WTF::StringWrapperCFAllocator::reallocate): |
| (WTF::StringWrapperCFAllocator::deallocateOnMainThread): |
| (WTF::StringWrapperCFAllocator::deallocate): |
| (WTF::StringWrapperCFAllocator::preferredSize): |
| (WTF::StringWrapperCFAllocator::create): |
| (WTF::StringWrapperCFAllocator::allocator): |
| (WTF::StringImpl::createCFString): |
| * wtf/text/mac/StringImplMac.mm: Renamed from Source/WebCore/platform/text/mac/StringImplMac.mm. |
| (WTF::StringImpl::operator NSString *): |
| * wtf/text/mac/StringMac.mm: Renamed from Source/WebCore/platform/text/mac/StringMac.mm. |
| (WTF::String::String): |
| |
| 2013-11-01 Emilio Pozuelo Monfort <pochu27@gmail.com> |
| |
| HPPA build fixes |
| https://bugs.webkit.org/show_bug.cgi?id=123625 |
| |
| Original patch from John David Anglin <dave.anglin@bell.net> |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/Platform.h: |
| * wtf/dtoa/utils.h: |
| |
| 2013-11-01 Patrick Gansterer <paroga@webkit.org> |
| |
| Buildfix for !USE(ICU_UNICODE) after 156968. |
| |
| * wtf/unicode/CollatorDefault.cpp: |
| (WTF::Collator::userDefault): |
| |
| 2013-10-30 Oliver Hunt <oliver@apple.com> |
| |
| Implement basic ES6 Math functions |
| https://bugs.webkit.org/show_bug.cgi?id=123536 |
| |
| Reviewed by Michael Saboff. |
| |
| Add basic implementations of necessary methods to MathExtras to |
| deal with MSVC not supplying them |
| |
| * wtf/MathExtras.h: |
| (asinh): |
| (acosh): |
| (atanh): |
| (expm1): |
| (log1p): |
| (cbrt): |
| |
| 2013-10-30 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r158299. |
| http://trac.webkit.org/changeset/158299 |
| https://bugs.webkit.org/show_bug.cgi?id=123558 |
| |
| caused assertion failures in fast/canvas/canvas-color- |
| serialization.html and fast/forms/input-text-paste- |
| maxlength.html (Requested by rniwa on #webkit). |
| |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::empty): |
| |
| 2013-10-30 Ryosuke Niwa <rniwa@webkit.org> |
| |
| Remove code for Mac Lion |
| https://bugs.webkit.org/show_bug.cgi?id=123542 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Platform.h: |
| |
| 2013-10-30 Peter Molnar <pmolnar.u-szeged@partner.samsung.com> |
| |
| Remove PCRE workaround. |
| https://bugs.webkit.org/show_bug.cgi?id=123265 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::empty): |
| |
| 2013-10-30 peavo@outlook.com <peavo@outlook.com> |
| |
| [Win] Compile errors when enabling DFG JIT. |
| https://bugs.webkit.org/show_bug.cgi?id=120998 |
| |
| Reviewed by Brent Fulgham. |
| |
| * wtf/CompilationThread.cpp: Use new ThreadingOnce class instead of pthread_once. |
| (WTF::initializeCompilationThreads): |
| * wtf/ThreadingOnce.h: Added ThreadingOnce class encapsulating pthread_once functionality. |
| (WTF::ThreadingOnce::ThreadingOnce): |
| (WTF::ThreadingOnce::~ThreadingOnce): |
| (WTF::ThreadingOnce::callOnce): |
| * wtf/text/CString.h: Export needed symbols. |
| |
| 2013-10-30 Alex Christensen <achristensen@webkit.org> |
| |
| Disabled JIT on Win64. |
| https://bugs.webkit.org/show_bug.cgi?id=122472 |
| |
| Reviewed by Geoffrey Garen. |
| |
| * wtf/Platform.h: |
| Disabled JIT on Win64. |
| |
| 2013-10-29 Andreas Kling <akling@apple.com> |
| |
| StringImpl::isolatedCopy() should return PassRef. |
| <https://webkit.org/b/123484> |
| |
| Make isolatedCopy() return a PassRef<StringImpl>. |
| |
| Reviewed by Anders Carlsson. |
| |
| 2013-10-29 Jer Noble <jer.noble@apple.com> |
| |
| [MSE] [Mac] Enable MediaSource on the Mac |
| https://bugs.webkit.org/show_bug.cgi?id=122484 |
| |
| Reviewed by Darin Adler. |
| |
| Enable ENABLE_MEDIA_SOURCE. |
| |
| * wtf/FeatureDefines.h: |
| * wtf/Platform.h: Force a clean build. |
| |
| 2013-10-29 Andreas Kling <akling@apple.com> |
| |
| StringImpl::adopt() should return PassRef. |
| <https://webkit.org/b/123456> |
| |
| Make the StringImpl::adopt() functions return a PassRef<StringImpl>. |
| |
| Reviewed by Anders Carlsson. |
| |
| 2013-10-29 Jinwoo Song <jinwoo7.song@samsung.com> |
| |
| Re-enable simple line layout for EFL |
| https://bugs.webkit.org/show_bug.cgi?id=123402 |
| |
| Reviewed by Antti Koivisto. |
| |
| * wtf/FeatureDefines.h: Enable 8-bit TextRun support for EFL port. |
| |
| 2013-10-28 Anders Carlsson <andersca@apple.com> |
| |
| RunLoop::dispatch should take an std::function |
| https://bugs.webkit.org/show_bug.cgi?id=123407 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/FunctionDispatcher.h: |
| |
| 2013-10-28 Andreas Kling <akling@apple.com> |
| |
| RenderElement::m_style should be a Ref. |
| <https://webkit.org/b/123401> |
| |
| Added a Ref::replace() so we can Indiana Jones the new style in |
| RenderElement::setStyle() while keeping a handle on the old style |
| for a while longer. |
| |
| Reviewed by Antti Koivisto. |
| |
| 2013-10-28 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| Unreviewed. Fix make distcheck. |
| |
| * GNUmakefile.list.am: Remove unexistent file from compilation. |
| |
| 2013-10-28 Bastien Nocera <hadess@hadess.net> |
| |
| Replace 0 timeouts g_timeout_add() by g_idle_add() |
| https://bugs.webkit.org/show_bug.cgi?id=123260 |
| |
| Reviewed by Carlos Garcia Campos. |
| |
| A zero timeout should be equivalent to using g_idle_add_full(G_PRIORITY_DEFAULT, ...) |
| without the nagging feeling that the wrong API was used. |
| |
| * wtf/gtk/MainThreadGtk.cpp: Use g_idle_add() instead |
| of 0-timer. |
| (WTF::scheduleDispatchFunctionsOnMainThread): |
| |
| 2013-10-28 Zan Dobersek <zdobersek@igalia.com> |
| |
| Re-enable simple line layout for GTK |
| https://bugs.webkit.org/show_bug.cgi?id=123388 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/FeatureDefines.h: Enable the 8-bit TextRun support for the GTK port. |
| |
| 2013-10-25 Joseph Pecoraro <pecoraro@apple.com> |
| |
| Upstream ENABLE(REMOTE_INSPECTOR) and enable on iOS and Mac |
| https://bugs.webkit.org/show_bug.cgi?id=123111 |
| |
| Reviewed by Timothy Hatcher. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2013-10-25 Jer Noble <jer.noble@apple.com> |
| |
| [WTF] Add a multiplication operator (and a few others) to MediaTime |
| https://bugs.webkit.org/show_bug.cgi?id=123137 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a multiplication operator and an inequality operator to the |
| MediaTime class for use by MSE. |
| |
| * wtf/MediaTime.cpp: |
| (WTF::signum): Moved to top of file. |
| (WTF::MediaTime::operator*): Added. |
| (WTF::MediaTime::operator!=): Added. |
| * wtf/MediaTime.h: |
| (WTF::operator*): Added non-class version of operator*. |
| |
| 2013-10-24 Jer Noble <jer.noble@apple.com> |
| |
| [Mac] Add helper methods to convert CMTime <--> MediaTime |
| https://bugs.webkit.org/show_bug.cgi?id=123285 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a #ifdef header_h protector. |
| |
| * wtf/MediaTime.h: |
| |
| 2013-10-24 Mark Rowe <mrowe@apple.com> |
| |
| Remove references to OS X 10.7 from Xcode configuration settings. |
| |
| Now that we're not building for OS X 10.7 they're no longer needed. |
| |
| Reviewed by Anders Carlsson. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| |
| 2013-10-24 Mark Rowe <mrowe@apple.com> |
| |
| <rdar://problem/15312643> Prepare for the mysterious future. |
| |
| Reviewed by David Kilzer. |
| |
| * Configurations/Base.xcconfig: |
| * Configurations/DebugRelease.xcconfig: |
| |
| 2013-10-24 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r157931. |
| http://trac.webkit.org/changeset/157931 |
| https://bugs.webkit.org/show_bug.cgi?id=123284 |
| |
| Seems to have caused a lot of assertions on debug bots |
| (Requested by ap on #webkit). |
| |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::empty): |
| |
| 2013-10-24 Peter Molnar <pmolnar.u-szeged@partner.samsung.com> |
| |
| Remove PCRE workaround. |
| https://bugs.webkit.org/show_bug.cgi?id=123265 |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/text/StringStatics.cpp: |
| (WTF::StringImpl::empty): |
| |
| 2013-10-24 Peter Molnar <pmolnar.u-szeged@partner.samsung.com> |
| |
| Remove Clang workaround. |
| https://bugs.webkit.org/show_bug.cgi?id=123262 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/CheckedArithmetic.h: |
| (WTF::Checked::Checked): |
| |
| 2013-10-24 Ryuan Choi <ryuan.choi@samsung.com> |
| |
| [EFL] Build break with latest EFL 1.8 libraries. |
| https://bugs.webkit.org/show_bug.cgi?id=123245 |
| |
| Reviewed by Gyuyoung Kim. |
| |
| After fixed build break on EFL 1.8 at r138326, EFL libraries are changed |
| Eo typedef and splitted header files which contain version macro. |
| |
| * wtf/OwnPtrCommon.h: Changed Eo typedef. |
| * wtf/efl/RefPtrEfl.h: Ditto. |
| |
| 2013-10-24 Carlos Garcia Campos <cgarcia@igalia.com> |
| |
| [GObject bindings] Make EventTarget interface introspectable |
| https://bugs.webkit.org/show_bug.cgi?id=77835 |
| |
| Reviewed by Gustavo Noronha Silva. |
| |
| Add support for use GRefPtr with GClosure. |
| |
| * wtf/gobject/GRefPtr.cpp: |
| (WTF::refGPtr): |
| (WTF::derefGPtr): |
| * wtf/gobject/GRefPtr.h: |
| * wtf/gobject/GTypedefs.h: |
| |
| 2013-10-23 Anders Carlsson <andersca@apple.com> |
| |
| Remove USE(LOCKFREE_THREADSAFEREFCOUNTED) |
| https://bugs.webkit.org/show_bug.cgi?id=123228 |
| |
| Reviewed by Geoffrey Garen. |
| |
| All ports support USE(LOCKFREE_THREADSAFEREFCOUNTED) now and taking a lock on every ref/deref seems bad. |
| |
| * wtf/Atomics.h: |
| * wtf/ThreadSafeRefCounted.h: |
| (WTF::ThreadSafeRefCountedBase::ref): |
| (WTF::ThreadSafeRefCountedBase::refCount): |
| (WTF::ThreadSafeRefCountedBase::derefBase): |
| |
| 2013-10-23 Anders Carlsson <andersca@apple.com> |
| |
| Remove HAVE_XPC |
| https://bugs.webkit.org/show_bug.cgi?id=123226 |
| |
| Reviewed by Dan Bernstein. |
| |
| HAVE_XPC has been true on Mac since Lion, so remove it. |
| |
| * wtf/Platform.h: |
| |
| 2013-10-23 Andreas Kling <akling@apple.com> |
| |
| Make more StringImpl construction functions return PassRef. |
| <https://webkit.org/b/123203> |
| |
| Knock out a couple more of the StringImpl construction helpers that |
| always return a non-null StringImpl. |
| |
| Reviewed by Antti Koivisto. |
| |
| 2013-10-22 Filip Pizlo <fpizlo@apple.com> |
| |
| FTL should be able to do some simple inline caches using LLVM patchpoints |
| https://bugs.webkit.org/show_bug.cgi?id=123164 |
| |
| Reviewed by Mark Hahnenberg. |
| |
| This needed some better bitvector support, like merging (|=), excluding (&=~), |
| hashing, and bit counting. |
| |
| * wtf/BitVector.cpp: |
| (WTF::BitVector::setSlow): |
| (WTF::BitVector::excludeSlow): |
| (WTF::BitVector::bitCountSlow): |
| (WTF::BitVector::equalsSlowCase): |
| (WTF::BitVector::hashSlowCase): |
| (WTF::BitVector::dump): |
| * wtf/BitVector.h: |
| (WTF::BitVector::merge): |
| (WTF::BitVector::exclude): |
| (WTF::BitVector::bitCount): |
| (WTF::BitVector::BitVector): |
| (WTF::BitVector::isEmptyValue): |
| (WTF::BitVector::isDeletedValue): |
| (WTF::BitVector::isEmptyOrDeletedValue): |
| (WTF::BitVector::operator==): |
| (WTF::BitVector::hash): |
| (WTF::BitVectorHash::hash): |
| (WTF::BitVectorHash::equal): |
| * wtf/HashTraits.h: |
| (WTF::CustomHashTraits::constructDeletedValue): |
| (WTF::CustomHashTraits::isDeletedValue): |
| (WTF::CustomHashTraits::emptyValue): |
| (WTF::CustomHashTraits::isEmptyValue): |
| * wtf/StdLibExtras.h: |
| (WTF::bitCount): |
| |
| 2013-10-23 Allan Sandfeld Jensen <allan.jensen@digia.com> |
| |
| Clean-up in Atomics.h |
| https://bugs.webkit.org/show_bug.cgi?id=123207 |
| |
| Reviewed by Anders Carlsson. |
| |
| Atomics.h has two confusing and bit-rotted ifdefs with comments. |
| |
| The first about CPU(SPARC64) was rendered obsolete when we switched |
| from __exchange_and_add to __sync_add_and_fetch. |
| |
| The second was caused by a wrong definition that apparently only |
| caused trouble on GCC. |
| |
| * wtf/Atomics.h: |
| |
| 2013-10-22 Andreas Kling <akling@apple.com> |
| |
| StringImpl::lower() should return a PassRef. |
| <https://webkit.org/b/123190> |
| |
| Test the waters and hack enough of StringImpl to be able to return |
| a PassRef<StringImpl> from lower(). |
| |
| Also gave String a constructor that takes a PassRef<StringImpl>. |
| |
| Reviewed by Antti Koivisto. |
| |
| 2013-10-22 Commit Queue <commit-queue@webkit.org> |
| |
| Unreviewed, rolling out r157835. |
| http://trac.webkit.org/changeset/157835 |
| https://bugs.webkit.org/show_bug.cgi?id=123192 |
| |
| broke 32-bit builds (Requested by smfr on #webkit). |
| |
| * wtf/MediaTime.cpp: |
| (WTF::signum): |
| * wtf/MediaTime.h: |
| |
| 2013-10-22 Jer Noble <jer.noble@apple.com> |
| |
| [WTF] Add a multiplication operator (and a few others) to MediaTime |
| https://bugs.webkit.org/show_bug.cgi?id=123137 |
| |
| Reviewed by Eric Carlson. |
| |
| Add a multiplication operator and an inequality operator to the |
| MediaTime class for use by MSE. |
| |
| * wtf/MediaTime.cpp: |
| (WTF::signum): Moved to top of file. |
| (WTF::MediaTime::operator*): Added. |
| (WTF::MediaTime::operator!=): Added. |
| * wtf/MediaTime.h: |
| (WTF::operator*): Added non-class version of operator*. |
| |
| 2013-10-21 Gyuyoung Kim <gyuyoung.kim@samsung.com> |
| |
| Make TYPE_CASTS_BASE more flexible |
| https://bugs.webkit.org/show_bug.cgi?id=122951 |
| |
| Reviewed by Andreas Kling. |
| |
| TYPE_CASTS_BASE is being used by node|element type casts. However, it is difficult |
| to be used by other type casts. For instance, CSSValue, Accessibility and so on. |
| This patch modifies TYPE_CASTS_BASE which can support other type casts. |
| |
| Besides TYPE_CASTS_BASE body is moved from node.h to Assertions.h. |
| |
| * wtf/Assertions.h: |
| |
| 2013-10-20 Filip Pizlo <fpizlo@apple.com> |
| |
| StructureStubInfo's usedRegisters set should be able to track all registers, not just the ones that our JIT's view as temporaries |
| https://bugs.webkit.org/show_bug.cgi?id=123076 |
| |
| Reviewed by Sam Weinig. |
| |
| Teach BitVector how to efficiently merge (i.e. bitvector |=). |
| |
| * wtf/BitVector.cpp: |
| (WTF::BitVector::mergeSlow): |
| * wtf/BitVector.h: |
| (WTF::BitVector::merge): |
| (WTF::BitVector::cleanseInlineBits): |
| |
| 2013-10-19 Jer Noble <jer.noble@apple.com> |
| |
| Unreviewed roll out of r157695; broke Mac builds. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2013-10-07 Jer Noble <jer.noble@apple.com> |
| |
| [MSE] [Mac] Enable MediaSource on the Mac |
| https://bugs.webkit.org/show_bug.cgi?id=122484 |
| |
| Reviewed by Darin Adler. |
| |
| Enable ENABLE_MEDIA_SOURCE. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2013-10-19 Andreas Kling <akling@apple.com> |
| |
| RefPtr::releaseNonNull() incorrectly increments the refcount. |
| <https://webkit.org/b/123063> |
| |
| Make releaseNonNull() use adoptRef(T&), mirroring release(). |
| |
| Reviewed by Anders Carlsson. |
| |
| 2013-10-18 Andreas Kling <akling@apple.com> |
| |
| Start passing RenderStyle around with PassRef. |
| <https://webkit.org/b/123051> |
| |
| Added some new PassRef tricks to make this patch possible. |
| |
| Reviewed by Darin Adler. |
| |
| * wtf/PassRef.h: |
| (WTF::PassRef::get): |
| |
| Added a get() helper to facilitate writing functions that |
| construct a new object and call some functions on it before |
| returning it. |
| |
| (WTF::PassRef::dropRef): |
| |
| This will deref() the referenced object and mark the PassRef |
| as "passed." This is used in code paths where the PassRef is |
| going to go out of scope with nobody to take it over. |
| |
| (WTF::PassRef::leakRef): |
| |
| Renamed takeReference() to leakRef() and made it public so |
| we don't have to awkwardly sink the PassRef into a Ref for |
| e.g static locals. |
| |
| * wtf/RefPtr.h: |
| (WTF::RefPtr::releaseNonNull): |
| |
| Added RefPtr::releaseNonNull() for a convenient way of creating |
| a PassRef<T> from a RefPtr<T>. This function may only be called |
| if the RefPtr is known to be non-null. |
| |
| 2013-10-18 Filip Pizlo <fpizlo@apple.com> |
| |
| A CodeBlock's StructureStubInfos shouldn't be in a Vector that we search using code origins and machine code PCs |
| https://bugs.webkit.org/show_bug.cgi?id=122940 |
| |
| Reviewed by Oliver Hunt. |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/BagToHashMap.h: Added. |
| (WTF::toHashMap): |
| * wtf/CMakeLists.txt: |
| |
| 2013-10-18 Anders Carlsson <andersca@apple.com> |
| |
| Remove spaces between template angle brackets |
| https://bugs.webkit.org/show_bug.cgi?id=123040 |
| |
| Reviewed by Andreas Kling. |
| |
| * wtf/AVLTree.h: |
| * wtf/CheckedArithmetic.h: |
| * wtf/Compression.h: |
| * wtf/Functional.h: |
| (WTF::R): |
| * wtf/HashFunctions.h: |
| * wtf/HashIterators.h: |
| * wtf/HashSet.h: |
| (WTF::::contains): |
| * wtf/ListHashSet.h: |
| (WTF::::contains): |
| * wtf/RefCountedLeakCounter.cpp: |
| * wtf/RetainPtr.h: |
| * wtf/SentinelLinkedList.h: |
| (WTF::::remove): |
| * wtf/SizeLimits.cpp: |
| * wtf/StreamBuffer.h: |
| * wtf/Vector.h: |
| * wtf/VectorTraits.h: |
| * wtf/WeakPtr.h: |
| (WTF::WeakReference::create): |
| (WTF::WeakReference::createUnbound): |
| (WTF::WeakPtr::WeakPtr): |
| (WTF::WeakPtrFactory::WeakPtrFactory): |
| * wtf/text/AtomicString.cpp: |
| (WTF::AtomicString::add): |
| (WTF::findString): |
| * wtf/text/StringConcatenate.h: |
| * wtf/text/StringImpl.h: |
| * wtf/text/StringOperators.h: |
| (WTF::operator+): |
| |
| 2013-10-18 Brendan Long <b.long@cablelabs.com> |
| |
| [GStreamer][GTK] Add GRefPtr::outPtr() |
| https://bugs.webkit.org/show_bug.cgi?id=122996 |
| |
| Reviewed by Philippe Normand. |
| |
| * wtf/gobject/GRefPtr.h: |
| (WTF::GRefPtr::outPtr): Added. |
| |
| 2013-10-17 Geoffrey Garen <ggaren@apple.com> |
| |
| Tidied up the Vector<T> move constructor |
| https://bugs.webkit.org/show_bug.cgi?id=122998 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Vector.h: |
| (WTF::::Vector): Don't call swap() "weird". It's the way most std types |
| implement move constructors. |
| |
| Do inline this function, so the compiler can optimize away a logical |
| move into a physical no-op. |
| |
| 2013-10-16 Filip Pizlo <fpizlo@apple.com> |
| |
| Introduce WTF::Bag and start using it for InlineCallFrameSet |
| https://bugs.webkit.org/show_bug.cgi?id=122941 |
| |
| Reviewed by Geoffrey Garen. |
| |
| Introduce WTF::Bag, which is basically an allocation pool. No POD restrictions. Does one |
| malloc per entry. No need to shrink afterwards. |
| |
| * GNUmakefile.list.am: |
| * WTF.vcxproj/WTF.vcxproj: |
| * WTF.xcodeproj/project.pbxproj: |
| * wtf/Bag.h: Added. |
| (WTF::Bag::Bag): |
| (WTF::Bag::~Bag): |
| (WTF::Bag::add): |
| (WTF::Bag::iterator::iterator): |
| (WTF::Bag::iterator::operator!): |
| (WTF::Bag::iterator::operator*): |
| (WTF::Bag::iterator::operator++): |
| (WTF::Bag::iterator::operator==): |
| (WTF::Bag::begin): |
| (WTF::Bag::end): |
| (WTF::Bag::isEmpty): |
| * wtf/CMakeLists.txt: |
| |
| 2013-10-17 Andreas Kling <akling@apple.com> |
| |
| Make it possible to assign a PassRef to a RefPtr. |
| <https://webkit.org/b/122943> |
| |
| We have to use std::move when constructing a RefPtr from a PassRef |
| since there is no copy constructor for the latter. |
| |
| Reviewed by Antti Koivisto. |
| |
| 2013-10-16 Ryuan Choi <ryuan.choi@samsung.com> |
| |
| Unreviewed build fix attempt on EFL port after r157520 and r157523 |
| |
| * wtf/PassRef.h: includes <utility> |
| |
| 2013-10-16 Darin Adler <darin@apple.com> |
| |
| Add PassRef and createRefCounted so we can improve creation of RefCounted objects |
| https://bugs.webkit.org/show_bug.cgi?id=122904 |
| |
| Reviewed by Anders Carlsson. |
| |
| * GNUmakefile.list.am: Added PassRef.h. |
| * WTF.vcxproj/WTF.vcxproj: Ditto. |
| * WTF.vcxproj/WTF.vcxproj.filters: Ditto. |
| * WTF.xcodeproj/project.pbxproj: Ditto. |
| * wtf/CMakeLists.txt: Ditto. |
| |
| * wtf/Forward.h: Added PassRef. Also re-sorted and un-indented to match what |
| the style-checking script expects. |
| |
| * wtf/PassRef.h: Added. Includes the createRefCounted function template, which |
| is analogous to make_unique, but is for reference counted objects, and also |
| assumes that new will never return null. Also includes an overload of adoptRef |
| that takes a reference rather than a pointer. |
| |
| * wtf/PassRefPtr.h: Include "PassRef.h" so we can share the adopted function. |
| Got rid of declarations that duplicate ones in there. |
| (WTF::refIfNotNull): Use nullptr. |
| (WTF::derefIfNotNull): Use nullptr. |
| (WTF::PassRefPtr::PassRefPtr): Use nullptr. Added an overload that takes a PassRef. |
| (WTF::PassRefPtr::operator UnspecifiedBoolType): Use nullptr. |
| (WTF::PassRefPtr::operator=): Made this deleted instead of compile time assertion. |
| (WTF::PassRefPtr::PassRefPtr): Made adopting constructor use an adopt tag instead |
| of an unused boolean. |
| (WTF::PassRefPtr::leakRef): Use nullptr. |
| (WTF::adoptRef): Use the adopt tag. |
| |
| * wtf/Ref.h: Use Noncopyable instead of rolling our own. |
| (WTF::Ref::Ref): Add an overload that takes a PassRef. |
| (WTF::Ref::operator=): Ditto. |
| |
| * wtf/RefPtr.h: Removed unneeded forward declaration of PassRefPtr. |
| (WTF::RefPtr::RefPtr): Use nullptr. Added overload that takes a PassRef. |
| (WTF::RefPtr::release): Use nullptr. |
| (WTF::RefPtr::operator UnspecifiedBoolType): Use nullptr. |
| (WTF::RefPtr::operator=): Added overload that takes a PassRef. |
| (WTF::RefPtr::clear): Use nullptr. |
| |
| * wtf/StdLibExtras.h: Added inline keyword to isPointerTypeAlignmentOkay, |
| reinterpret_cast_ptr, and make_unique. Seems like a simple oversight that these |
| were missing before. |
| |
| 2013-10-15 Dean Jackson <dino@apple.com> |
| |
| Add ENABLE_WEB_ANIMATIONS flag |
| https://bugs.webkit.org/show_bug.cgi?id=122871 |
| |
| Reviewed by Tim Horton. |
| |
| Eventually might be http://dev.w3.org/fxtf/web-animations/ |
| but this is just engine-internal work at the moment. |
| |
| * wtf/FeatureDefines.h: |
| |
| 2013-10-15 Daniel Bates <dabates@apple.com> |
| |
| [iOS] Upstream JavaScriptCore support for ARM64 |
| https://bugs.webkit.org/show_bug.cgi?id=122762 |
| |
| Reviewed by Oliver Hunt. |
| |
| * Configurations/Base.xcconfig: |
| * wtf/Atomics.h: |
| (WTF::weakCompareAndSwap): |
| (WTF::armV7_dmb): |
| * wtf/FastMalloc.cpp: |
| * wtf/Platform.h: |
| * wtf/dtoa.cpp: |
| * wtf/dtoa/utils.h: |
| * wtf/text/ASCIIFastPath.h: |
| (WTF::copyLCharsFromUCharSource): |
| * wtf/text/StringImpl.h: |
| |
| 2013-10-14 Zan Dobersek <zdobersek@igalia.com> |
| |
| Static assertions in WTF::adoptPtr should point to using adoptRef for ref-counted objects |
| https://bugs.webkit.org/show_bug.cgi?id=122745 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/PassOwnPtr.h: |
| (WTF::adoptPtr): When the object's type is convertible to the RefCountedBase or ThreadSafeRefCountedBase type, |
| the static assertion should note that adoptRef should be used instead. |
| |
| 2013-10-14 Anders Carlsson <andersca@apple.com> |
| |
| WebKit Nightlies broken by r157374 |
| https://bugs.webkit.org/show_bug.cgi?id=122736 |
| |
| Reviewed by Andreas Kling. |
| |
| Add back a callOnMainThread overload that Safari is using. |
| |
| * wtf/MainThread.cpp: |
| (WTF::callOnMainThread): |
| * wtf/MainThread.h: |
| |
| 2013-10-13 Darin Adler <darin@apple.com> |
| |
| Deprecate or remove deleteAllValues functions; there are only a few call sites left |
| https://bugs.webkit.org/show_bug.cgi?id=122738 |
| |
| Reviewed by Anders Carlsson. |
| |
| * wtf/Deque.h: Deleted deleteAllValues. |
| * wtf/HashMap.h: Ditto. |
| * wtf/HashSet.h: Ditto. |
| * wtf/ListHashSet.h: Ditto. |
| * wtf/Vector.h: Renamed deleteAllValues to deprecatedDeleteAllValues. |
| |
| == Rolled over to ChangeLog-2013-10-13 == |