2015-09-11 Keith Miller 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-07-23 Lucas Forschler Merge r187129 2015-07-21 Daniel Bates WTFCrash() in WebKit::WebProcess::networkConnection() https://bugs.webkit.org/show_bug.cgi?id=147112 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 Matthew Hanson Merge r186910. rdar://problem/21863296 2015-07-16 Benjamin Poulain [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 Lucas Forschler Merge r186826 2015-07-14 Anders Carlsson Assertions.h should include ExportMacros.h https://bugs.webkit.org/show_bug.cgi?id=146948 Reviewed by Tim Horton. * wtf/Assertions.h: 2015-07-12 Babak Shafiei Merge r186720. 2015-07-11 Joseph Pecoraro Unreviewed build fix, restrict APP_LINKS to just iOS. * wtf/Platform.h: 2015-07-10 Matthew Hanson Disable non-shipping features. * Configurations/FeatureDefines.xcconfig: 2015-07-09 Tim Horton Use CoreAnimation fences instead of synchronous IPC to synchronize resize https://bugs.webkit.org/show_bug.cgi?id=146294 Reviewed by Anders Carlsson. * wtf/Platform.h: Add HAVE(COREANIMATION_FENCES) 2015-07-04 Chris Dumez 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 [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 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 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 Disable the experimental WebGL2 implementation https://bugs.webkit.org/show_bug.cgi?id=146526 Reviewed by Myles Maxfield. Add (and disable) an ENABLE_WEBGL2 flag. * wtf/FeatureDefines.h: 2015-06-30 Alex Christensen [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 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 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 Temporarily disable PICTURE_SIZES https://bugs.webkit.org/show_bug.cgi?id=146435 Reviewed by Tim Horton. Temporarily disable PICTURE_SIZES because it causes problems with out of date polyfills. * wtf/FeatureDefines.h: 2015-06-26 Antti Koivisto Network process hangs fetching disk cache entries https://bugs.webkit.org/show_bug.cgi?id=146348 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 Unreviewed, rolling out r185906. https://bugs.webkit.org/show_bug.cgi?id=146276 MSVC doesn't yet provide a const-qualified std::array::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 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 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 [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 Fix build. * wtf/threads/BinarySemaphore.cpp: 2015-06-22 Anders Carlsson 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 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 [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 [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 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 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(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 [WK2] Fix unused-private-field warning in WebProcess/Plugins/PluginView. 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 SegmentedVector should waste less memory. 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 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 Remove unused template parameter InlineCapacity from SegmentedVector. Reviewed by Anders Carlsson. * wtf/SegmentedVector.h: (WTF::SegmentedVectorIterator::operator=): (WTF::SegmentedVectorIterator::SegmentedVectorIterator): (WTF::SegmentedVector::at): 2015-06-16 Mark Lam Use NakedPtr& 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::swap): (WTF::swap): 2015-06-12 Zan Dobersek [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::lock): (WTF::MutexWrapper::unlock): (WTF::MutexWrapper::lock): (WTF::MutexWrapper::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::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::lock): Deleted. (WTF::MutexWrapper::unlock): Deleted. (WTF::MutexWrapper::lock): Deleted. (WTF::MutexWrapper::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::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 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 [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 Build fix. * wtf/TinyPtrSet.h: (WTF::TinyPtrSet::isEmpty): s/poointer/pointer/ 2015-06-07 Filip Pizlo 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 [WK2][iOS] Limit the number of vnodes used by the WebContent processes https://bugs.webkit.org/show_bug.cgi?id=145672 Reviewed by Antti Koivisto. * wtf/RefCounter.h: (WTF::RefCounter::value): Expose the actual refcount instead of a boolean value. 2015-06-05 Alex Christensen [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 and Youenn Fablet [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 and Youenn Fablet [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 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` 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 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 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 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 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 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 [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 img.currentSrc problem in strict mode with old picturefill https://bugs.webkit.org/show_bug.cgi?id=144095 Reviewed by Simon Fraser. Add a PICTURE_SIZES flag. * wtf/FeatureDefines.h: 2015-05-26 Andreas Kling StringView should have find(StringView, start). 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 Update build settings Reviewed by Anders Carlsson. * Configurations/DebugRelease.xcconfig: 2015-05-23 Dan Bernstein 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 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 [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 Give StringView a utf8() API. 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 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 [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 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 [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 [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 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 [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 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 Build fix for some versions of clang. * wtf/SaturatedArithmetic.h: (signedAddOverflows): (signedSubtractOverflows): 2015-05-14 Dan Bernstein Reverted r177753, now that is fixed. Rubber-stamped by Benjamin Poulain. * wtf/SaturatedArithmetic.h: (signedAddOverflows): (signedSubtractOverflows): 2015-05-14 Myles C. Maxfield 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 [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 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 { 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 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::clear): 2015-05-12 Michael Saboff 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 [Win] Move Windows build target to Windows 7 (or newer) https://bugs.webkit.org/show_bug.cgi?id=144890 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 [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 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 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 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 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 Optimize serialization of quoted JSON strings. 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 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 Optimize serialization of quoted JSON strings. 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 [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 [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 [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 [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 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 [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 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 Generated static StringImpls should have static flag set. 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 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 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 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 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 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 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 [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 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 [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 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 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 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 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 [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 [Win] Deactivate WebGL until Windows tests work properly https://bugs.webkit.org/show_bug.cgi?id=144291 Reviewed by Zalan Bujtas. * wtf/FeatureDefines.h: Force WebGL off for Windows builds. 2015-04-27 Michael Catanzaro 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 [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 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 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 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 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 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 [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 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 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 There should only be one way to get the system memory size. 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 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 , so we don't need the workaround any more. 2015-04-22 Alexey Proskuryakov [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 Make Vector(const Vector&) constructor explicit https://bugs.webkit.org/show_bug.cgi?id=143970 Reviewed by Darin Adler. Make Vector(const Vector&) 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 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 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 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 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 [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::Hash::hash): (WTF::DefaultHash::Hash::equal): (WTF::HashTraits::isEmptyValue): (WTF::SymbolRegistryKey::SymbolRegistryKey): 2015-04-16 Antti Koivisto 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 Remove the unnecessary WTF_CHANGES define https://bugs.webkit.org/show_bug.cgi?id=143825 Reviewed by Andreas Kling. * config.h: 2015-04-15 Руслан Ижбулатов 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 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 Allow LaunchServices to handle URLs on link navigations 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 [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 [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 and Patrick Gansterer 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 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 (like SHA1::Digest and MD5::Digest). * wtf/BloomFilter.h: (WTF::BloomFilter::keysFromHash): (WTF::BloomFilter::mayContain): (WTF::BloomFilter::add): 2015-04-03 Antti Koivisto 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::mayContain): (WTF::BloomFilter::add): (WTF::BloomFilter::isBitSet): (WTF::BloomFilter::setBit): (WTF::BloomFilter::clear): (WTF::CountingBloomFilter::CountingBloomFilter): (WTF::CountingBloomFilter::mayContain): (WTF::CountingBloomFilter::firstBucket): (WTF::CountingBloomFilter::secondBucket): (WTF::CountingBloomFilter::add): (WTF::CountingBloomFilter::remove): (WTF::CountingBloomFilter::clear): (WTF::CountingBloomFilter::likelyEmpty): (WTF::CountingBloomFilter::isClear): (WTF::BloomFilter::maximumCount): Deleted. (WTF::BloomFilter::firstSlot): Deleted. (WTF::BloomFilter::secondSlot): Deleted. (WTF::BloomFilter::remove): Deleted. (WTF::BloomFilter::likelyEmpty): Deleted. (WTF::BloomFilter::isClear): Deleted. 015-04-01 Antti Koivisto 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 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 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 Fix the build after . * wtf/text/StringImpl.h: (WTF::StringImpl::extractFoldedStringInSymbol): A function cannot be both exported and inline. 2015-03-31 Yusuke Suzuki 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 [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 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 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 Unreviewed, we have edited this file in 2015. * wtf/Platform.h: 2015-03-25 Filip Pizlo 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 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 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 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 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 DFGAllocator should use bmalloc's aligned allocator. 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 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 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 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 [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 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 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 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 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 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 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 Replace TCSpinLock with a new WTF::SpinLock based on WTF::Atomic. 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 Introduce WTF::Atomic to wrap std::atomic for a friendlier CAS. 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 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 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 Change WTF::ByteSpinLock to use std::atomic. 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 [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 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 [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 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 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 [Win] JSC Build Warnings Need to be Resolved. Reviewed by Brent Fulgham. * wtf/Compiler.h: - MSVC also does not have the CONSIDERS_UNREACHABLE_CODE quirk. 2015-03-10 Geoffrey Garen 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 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 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 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 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 [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 [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 [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 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 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 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 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 NetworkCache efficacy logging is using too much CPU https://bugs.webkit.org/show_bug.cgi?id=142186 Reviewed by Antti Koivisto. * wtf/HashMap.h: (WTF::copyToVector): Add copyToVector() utility function for HashMap that uses an std::pair 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 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 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 [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 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 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): Deleted. (WTF::TryMallocReturnValue::getValue): Marked inline, changed to work only with pointer types, not arbitrary non-pointer types. 2015-02-26 Brent Fulgham [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 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 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 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 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 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 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 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 EFL URTBF * wtf/PlatformEfl.cmake: 2015-02-20 Simon Fraser 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 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 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 [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 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 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 Re-indent Deque.h Rubber-stamped by Antti Koivisto. * wtf/Deque.h: 2015-02-11 Brent Fulgham [Win] [64-bit] Work around MSVC2013 Runtime Bug https://bugs.webkit.org/show_bug.cgi?id=141498 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 [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 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 [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 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 [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 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 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 Remove WTF::fastMallocGoodSize(). 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 and Xabier Rodriguez Calvar [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 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 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 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 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 [iOS] ASSERTION FAILED: m_scriptExecutionContext->isContextThread() in ContextDestructionObserver::observeContext https://bugs.webkit.org/show_bug.cgi?id=141057 Reviewed by Alexey Proskuryakov. * wtf/MainThread.h: * wtf/mac/MainThreadMac.mm: (WTF::callOnWebThreadOrDispatchAsyncOnMainThread): Added. 2015-01-31 Sam Weinig 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 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 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 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 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 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 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 Add match_constness helper struct https://bugs.webkit.org/show_bug.cgi?id=140905 Reviewed by Benjamin Poulain. Add match_constness 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 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 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 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 throws -[OS_dispatch_data _xref_dispose]: unrecognized selector sent to instance 0 * wtf/OSObjectPtr.h: (WTF::retainOSObject): (WTF::releaseOSObject): Add specialization for dispatch_data_t on Maverics. 2015-01-29 Santosh Mahto 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 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 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 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 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 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 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 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 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 [Win] ASSERTION FAILED !m_ptr under AccessibilityController::winAddNotificationListener https://bugs.webkit.org/show_bug.cgi?id=87426 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::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 Provide implementation for WTF::DefaultHash https://bugs.webkit.org/show_bug.cgi?id=140848 Reviewed by Anders Carlsson. Provide implementation for WTF::DefaultHash so that we can use HashMap> 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 [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 [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 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 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 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 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 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 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 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 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 Unreviewed fix after r163330. * wtf/Platform.h: Use C style comment. 2015-01-14 Marc Juul 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 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 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 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 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 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 [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 [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 [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 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 [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 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 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 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 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 Purge PassRefPtr from Page. Reviewed by Anders Carlsson. Make SchedulePair::create() return Ref since it never fails. * wtf/SchedulePair.h: (WTF::SchedulePair::create): 2015-01-01 Darin Adler 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 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 . * wtf/SaturatedArithmetic.h: (signedAddOverflows): (signedSubtractOverflows): 2014-12-26 Dan Bernstein 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 Try to fix the Windows build after r177733. * wtf/Ref.h: 2014-12-25 Alexey Proskuryakov 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 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 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 Re-indent RefPtr.h and RetainPtr.h. Rubber-stamped by Sam Weinig. * wtf/RefPtr.h: * wtf/RetainPtr.h: 2014-12-20 Eric Carlson [iOS] add optimized fullscreen API https://bugs.webkit.org/show_bug.cgi?id=139833 Reviewed by Simon Fraser. * wtf/Platform.h: Define ENABLE_VIDEO_PRESENTATION_MODE. 2014-12-18 Gyuyoung Kim 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 to use std::exchange(). 2014-12-18 Gavin Barraclough 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 [Win] Build correction after r177541. * wtf/RefCounter.h: (WTF::RefCounter::Token::Token): Revise constructor inlines to correct syntax error. 2014-12-18 Gavin Barraclough 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. 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() will return a result of type RefCounter::Token. 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::Token): (WTF::=): - Tokens can be copied & assigned. (WTF::RefCounter::count): Deleted. - renamed to token<>(). 2014-12-18 Anders Carlsson 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::clear): (WTF::OwnPtr::release): (WTF::OwnPtr::leakPtr): (WTF::=): * wtf/PassOwnPtr.h: (WTF::PassOwnPtr::leakPtr): * wtf/PassRefPtr.h: (WTF::PassRefPtr::leakRef): * wtf/Ref.h: * wtf/RefPtr.h: (WTF::RefPtr::clear): (WTF::RefPtr::leakRef): * wtf/RetainPtr.h: (WTF::RetainPtr::leakRef): 2014-12-18 Anders Carlsson 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 [iOS] Make it possible to toggle FeatureCounter support at runtime https://bugs.webkit.org/show_bug.cgi?id=139688 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 [Win] Correct DebugSuffix builds under MSBuild https://bugs.webkit.org/show_bug.cgi?id=139733 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 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 [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 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 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 [iOS] Add feature counting support https://bugs.webkit.org/show_bug.cgi?id=139652 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 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 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 Purge PassRefPtr from FocusEvent code. 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 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 Minor follow-up tweaks suggested by Darin on bug 139587. * wtf/text/WTFString.h: (WTF::String::String): 2014-12-14 Andreas Kling Replace PassRef with Ref/Ref&& across the board. Reviewed by Darin Adler. Kill the PassRef class and replace it by Ref/Ref&&. Usage is simple: - For locals and members, keep using Ref. - For return types, use Ref. - For (ownership-transferring) arguments, use Ref&&. When passing to a Ref&&, use WTF::move() to mobilize the value at the call site, e.g: void myFunction(Ref&&); Ref 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() { return m_foo; } ... now becomes ... Ref 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::PassRef): Deleted. (WTF::PassRef::~PassRef): Deleted. (WTF::PassRef::get): Deleted. (WTF::PassRef::ptr): Deleted. (WTF::PassRef::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::replace): (WTF::adoptRef): * wtf/RefCounter.h: (WTF::RefCounter::count): * wtf/RefPtr.h: (WTF::RefPtr::releaseNonNull): (WTF::RefPtr::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): (WTF::StringImpl::constructInternal): (WTF::StringImpl::isolatedCopy): * wtf/text/WTFString.h: (WTF::String::String): 2014-12-10 Geoffrey Garen 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 [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 Switch from using PLATFORM_NAME to SDK selectors in ANGLE, bmalloc, gtest, JavaScriptCore, WTF 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 [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 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 [Apple] Use Accelerate framework to speed-up FEGaussianBlur https://bugs.webkit.org/show_bug.cgi?id=139310 Reviewed by Simon Fraser. Add a HAVE_ACCELERATE flag, true on Apple platforms. * wtf/Platform.h: 2014-12-08 Myles C. Maxfield 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 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 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 Use more PassRef in AtomicString. 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 [Win] proj files copying over too many resources.. https://bugs.webkit.org/show_bug.cgi?id=139315. Reviewed by Brent Fulgham. * WTF.vcxproj/WTF.proj: Only copy WTF.dll. 2014-12-05 Andreas Kling PassRef should deref on destruction if pointee was not moved. 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::PassRef): (WTF::PassRef::~PassRef): (WTF::PassRef::get): (WTF::PassRef::ptr): (WTF::PassRef::leakRef): (WTF::PassRef::dropRef): Deleted. 2014-12-05 Jer Noble [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 [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 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 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::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 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 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 Fix IOS builds. * wtf/IndexedIterator.h: 2014-12-02 Gavin Barraclough 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 Optimize constructing JSC::Identifier from AtomicString. 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 Fix non-mac builds. * wtf/IndexedIterator.h: 2014-12-01 Oliver Hunt Fix 32-bit build. * wtf/IndexedIterator.h: 2014-11-17 Oliver Hunt 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 [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 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 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 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 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 [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 Fix WTF build with newer versions of clang. * wtf/HashTable.h: (WTF::removeIterator): * wtf/dtoa/utils.h: (WTF::double_conversion::BitCast): 2014-11-13 Myles C. Maxfield 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::PassRef): 2014-11-12 Ryuan Choi [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 Rename USE(MASM_PROBE) to ENABLE(MASM_PROBE). 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 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 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::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 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 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 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::PassRef): 2014-11-05 Dan Bernstein 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 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 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 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::ptr): * wtf/Ref.h: (WTF::Ref::ptr): (WTF::GetPtrHelper>::getPtr): 2014-11-04 Dániel Bátyai 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 Allow implicit conversion from Ref to T& https://bugs.webkit.org/show_bug.cgi?id=138331 Reviewed by Andreas Kling. Allow implicit conversion from Ref 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 Unreviewed, fix ASan build after r175382 * wtf/SizeLimits.cpp: 2014-10-31 Geoffrey Garen 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 Unreviewed rollout r175389. 2014-10-30 Dana Burkart Prepare for the mysterious future Reviewed by Lucas Forschler. * Configurations/Base.xcconfig: * Configurations/DebugRelease.xcconfig: 2014-10-30 Geoffrey Garen 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 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 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 [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 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 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 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 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 [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 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 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 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 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 [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 Reverted incorrect build fix attempt. * wtf/Threading.cpp: 2014-10-17 Dan Bernstein Tried to fix the Yosemite build. * wtf/Threading.cpp: 2014-10-16 Dan Bernstein 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 [Win] Unreviewed gardening. Ignore Visual Studio *.sdf files. * WTF.vcxproj: Modified property svn:ignore. 2014-10-13 Antti Koivisto 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 [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 [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::lock): (WTF::MutexWrapper::unlock): (WTF::MutexWrapper::lock): (WTF::MutexWrapper::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 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 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 [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 [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 [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 [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 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 Use "1", not "true". * wtf/text/StringView.h: 2014-10-07 Anders Carlsson Temporarily disable the StringView lifetime checking. * wtf/text/StringView.h: 2014-10-07 Anders Carlsson Another build fix attempt. * wtf/text/StringView.cpp: (WTF::StringView::UnderlyingString::UnderlyingString): 2014-10-07 Anders Carlsson Try to fix the Windows build. * wtf/text/StringView.cpp: (WTF::StringView::UnderlyingString::UnderlyingString): 2014-10-06 Darin Adler 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 [Win] DateMath's calculateUTFOffset does not account for DST. https://bugs.webkit.org/show_bug.cgi?id=137458 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 Add is<>() / downcast<>() support for RenderObject subclasses https://bugs.webkit.org/show_bug.cgi?id=137424 Reviewed by Benjamin Poulain. Handle correctly calling TypeCastTraits::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 [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 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 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 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 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 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 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 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 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, Bar> map: RefPtr 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 Add back debugging/testing code that I accidentally removed. * wtf/text/StringConcatenate.h: (WTF::StringTypeAdapter::writeTo): 2014-10-02 Anders Carlsson 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 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 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 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 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 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://bugs.webkit.org/show_bug.cgi?id=137277 http://trac.webkit.org/changeset/174183 "Another attempt to fix the Mac build after " https://bugs.webkit.org/show_bug.cgi?id=137277 http://trac.webkit.org/changeset/174186 2014-10-01 Daniel Bates Another attempt to fix the Mac build after (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 Attempt to fix the build after (https://bugs.webkit.org/show_bug.cgi?id=137277) Include header 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 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 [Win] 32-bit JavaScriptCore should limit itself to the C loop https://bugs.webkit.org/show_bug.cgi?id=137304 Reviewed by Michael Saboff. * wtf/Platform.h: Force the C loop when building for 32-bit Windows. 2014-09-30 Christophe Dumez 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 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 REGRESSION (r172532): JSBase.h declares NSMapTable functions that are SPI https://bugs.webkit.org/show_bug.cgi?id=137170 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 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 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 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 [Windows] Unreviewed build fix. Ensure that python2.7 is used for Windows builds. * WTF.vcxproj/WTFGenerated.make: 2014-09-25 Csaba Osztrogonác 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 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 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 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 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>::hash): Deleted. (WTF::PtrHash>::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>::hash): Deleted. (WTF::PtrHash>::equal): Deleted. Remove unnecessary specialization of PtrHash. * wtf/RetainPtr.h: (WTF::PtrHash>::hash): Deleted. (WTF::PtrHash>::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 Make possible HashSet> https://bugs.webkit.org/show_bug.cgi?id=136166 Reviewed by Darin Adler. * wtf/GetPtr.h: (WTF::getPtr): (WTF::GetPtrHelper>::getPtr): Make specializing GetPtrHelper a bit cleaner (you don't have to put IsSmartPtr::value everywhere any more) and add specializations for std::unique_ptr. * wtf/HashFunctions.h: (WTF::PtrHash>): 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::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>::hash): (WTF::PtrHash>::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 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 arguments instead of the getPtr(const RefPtr&) 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 Always assume internal SDK when building configuration Production https://bugs.webkit.org/show_bug.cgi?id=136925 Reviewed by Dan Bernstein. * Configurations/Base.xcconfig: 2014-09-19 Diego Pino Garcia 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 [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 Unreviewed rollout r173731. Broke multiple builds. * wtf/Assertions.cpp: * wtf/Assertions.h: 2014-09-18 Joseph Pecoraro 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 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 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 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 [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 Unreviewed, disable native inlining because it causes build failures. * wtf/Platform.h: 2014-09-15 Jer Noble [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 [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 Re-add the request autocomplete feature 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 Swiping back from a Twitter image to Twitter flashes to the wrong position https://bugs.webkit.org/show_bug.cgi?id=136798 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 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 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 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 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 Remove FILTERS flag https://bugs.webkit.org/show_bug.cgi?id=136571 Reviewed by Darin Adler. * wtf/FeatureDefines.h: 2014-09-08 Dan Bernstein 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 Try to fix the build after r173383, part 2. * wtf/OSObjectPtr.h: 2014-09-08 Tim Horton Try to fix the build after r173383. * wtf/OSObjectPtr.h: 2014-09-07 Sam Weinig 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 More build fixes after r173374. * wtf/dtoa/strtod.cc: 2014-09-08 Jessie Berlin Build fix after r173374. * wtf/dtoa/strtod.cc: 2014-09-08 Jessie Berlin Speculative build fix after r173364. * wtf/dtoa/strtod.cc: 2014-09-07 Maciej Stachowiak 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 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 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 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 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 Rolled out . 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 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 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 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 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 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 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 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 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 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 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 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 [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 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 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 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 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::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 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 JavaScriptCore is missing debug info for WTF because libWTF.a is stripped. / 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 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 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::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 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 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 [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 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 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 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 Revert r172831, it broke the Windows build. * wtf/ExportMacros.h: 2014-08-21 Zalan Bujtas 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 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 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 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 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 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 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 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 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 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 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 Enable didReceiveDataArray callback on Mac https://bugs.webkit.org/show_bug.cgi?id=135554 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 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 [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 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 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 Update HashTable's operator= after r172167 per review comments * wtf/HashTable.h: Update the type as suggested by Darin. 2014-08-07 Benjamin Poulain 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 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 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 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 [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 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 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 PropertyName's internal string is always atomic. 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 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 [Win] Modify version numbering scheme to support 5-tuple versions https://bugs.webkit.org/show_bug.cgi?id=135400 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 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 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 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 Unreviewed, roll out r171641-r171644. It broke some tests; will investigate and reland later. * wtf/text/WTFString.h: 2014-07-25 Filip Pizlo Attempt to fix Windows. * wtf/text/WTFString.h: 2014-07-25 Gavin Barraclough 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 [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 Merge r169148, r169185, r169188, r169578, r169582, r169584, r169588, r169753 from ftlopt. 2014-06-04 Filip Pizlo [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 Merge r168635, r168780, r169005, r169014, and r169143 from ftlopt. 2014-05-20 Filip Pizlo [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 [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 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 Revert: Run the FastMalloc scavenger thread on iOS as well. 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 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 [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 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 [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 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 [Win] Unreviewed build fix after r170930. * WTF.vcxproj/copy-files.cmd: Include cf files in post-build copy operation. 2014-07-09 Brent Fulgham [Win] Remove uses of 'bash' in build system https://bugs.webkit.org/show_bug.cgi?id=134782 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 [Win] Remove use of 'grep' in build steps https://bugs.webkit.org/show_bug.cgi?id=134770 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 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 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 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 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 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 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 iOS build fix after http://trac.webkit.org/changeset/170697. Unreviewed. * wtf/Deque.h: 2014-07-02 Dan Bernstein 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 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 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 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 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 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 [ARMv7] Skip one particularly expensive fastFree() alignment check. 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 Bump FastMalloc thread cache max size to 1MB on iOS. 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 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 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 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 [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 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 Run the FastMalloc scavenger thread on iOS as well. Reviewed by Gavin Barraclough. * wtf/FastMalloc.cpp: 2014-06-24 Anders Carlsson 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ó [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 [EFL] Replace RefPtr 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 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 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 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 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 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 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 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 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 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 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 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 Web process main thread priority is lower than some network process threads. 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 Enable css jit for armv7 on iOS. https://bugs.webkit.org/show_bug.cgi?id=133961 Reviewed by Andreas Kling. * wtf/Platform.h: Enable css jit for ARM thumb on iOS. 2014-06-17 Dan Bernstein 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 iOS build fix after r169995. * wtf/RetainPtr.h: 2014-06-15 Anders Carlsson 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 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 Enable css jit for armv7 on iOS. https://bugs.webkit.org/show_bug.cgi?id=133890 Reviewed by Andreas Kling. * wtf/Platform.h: Enable css jit for ARM thumb on iOS. 2014-06-13 Mark Hahnenberg 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 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 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 [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 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 Improve CSSPrimitiveValue::customCSSText for ARMv7 https://bugs.webkit.org/show_bug.cgi?id=133597 Reviewed by Andreas Kling. * wtf/RefPtr.h: (WTF::RefPtr::RefPtr): * wtf/text/WTFString.h: (WTF::String::String): 2014-06-05 Yoav Weiss 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 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 [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 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 Enable css jit by default on arm64. https://bugs.webkit.org/show_bug.cgi?id=133246 Reviewed by Benjamin Poulain. * wtf/Platform.h: Added arm64 to list of supported architectures. 2014-05-28 Filip Pizlo 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 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 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 [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 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 Add the partial specialization for VectorTraits> https://bugs.webkit.org/show_bug.cgi?id=133083 Reviewed by Andreas Kling. * wtf/VectorTraits.h: Like for RefPtr

, OwnPtr

and Ref

, the partial specialization for VectorTraits> should exist and should inherit from SimpleClassVector. 2014-05-20 Geoffrey Garen Rolled out 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 [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 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 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 [iOS WK2] background-attachment:fixed behaves very poorly https://bugs.webkit.org/show_bug.cgi?id=132881 Reviewed by Beth Dakin. Remove ENABLE_FAST_MOBILE_SCROLLING. Ports can use the fixedBackgroundsPaintRelativeToDocument setting now. * wtf/FeatureDefines.h: 2014-05-08 Alexey Proskuryakov Automatically zip document bundles used via File API https://bugs.webkit.org/show_bug.cgi?id=132713 Reviewed by Anders Carlsson. * wtf/FeatureDefines.h: Added ENABLE_FILE_REPLACEMENT for Mac. 2014-05-07 Filip Pizlo 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 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 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 Optimize JSRopeString for resolving directly to AtomicString. 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 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 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 [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 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 [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 [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 Unreviewed, fix cloop build. * wtf/Platform.h: 2014-04-29 Michael Saboff 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 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 [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 [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 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 Speed up jsStringWithCache() through WeakGCMap inlining. 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 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 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 [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 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 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 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 Use HashMap and Vector 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 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 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 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 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 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 monotonicallyIncreasingTime() should only initialize its static timebaseInfo once. 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 [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 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 [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 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 Put bmalloc headers in the right place https://bugs.webkit.org/show_bug.cgi?id=131464 Reviewed by Mark Rowe. * wtf/FastMalloc.cpp: Use "" syntax so we can find our headers in /usr/local/include/bmalloc/. 2014-04-09 Geoffrey Garen 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 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 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 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 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 [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 Date object needs to check for ES5 15.9.1.14 TimeClip limit. 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 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 [EFL] Enable CSS JIT again, it works fine after r166666. Reviewed by Csaba Osztrogonác. * wtf/Platform.h: 2014-04-03 Javier Fernandez [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 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 [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 [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 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 [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 [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 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 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 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 [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 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 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 Connection::dispatchOneMessage() can be re-entered while handling Cmd-key menu equivalents, ASSERT(!_data->_keyDownEventBeingResent) https://bugs.webkit.org/show_bug.cgi?id=130767 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 Unreviewed. Removing the remaining Automake cruft. * GNUmakefile.list.am: Removed. 2014-03-25 Martin Robinson [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 [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 [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 Fix the iOS build. * wtf/ThreadingPthreads.cpp: (WTF::createThreadInternal): (WTF::setCurrentThreadQOSUtility): 2014-03-24 Gavin Barraclough 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 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 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 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. * 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. 2014-03-20 Darin Adler 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 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 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 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 Unreviewed Clang build fix for the GTK port after r165952. * wtf/gobject/GMainLoopSource.h: Include the header for the std::function<> objects. 2014-03-18 Carlos Garcia Campos [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 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 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 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 More FTL enabling. Rubber stamped by Dan Bernstein and Mark Hahnenberg. * wtf/Platform.h: 2014-03-17 Darin Adler 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 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 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 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 One more fix after r165725. Reviewed by Csaba Osztrogonác. * wtf/WTFThreadData.h: 2014-03-17 Tamas Gergely Buildfix after r165725 for non Mac platforms. Reviewed by Csaba Osztrogonác. * wtf/WTFThreadData.h: 2014-03-17 Andreas Kling [Mac] WTFThreadData should use _pthread_getspecific_direct(). 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 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 Follow-up: Fix undefined behavior in WTF::equal() in StringImpl.h for i386/x86_64 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 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 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 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 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 Fix undefined behavior in WTF::equal() in StringImpl.h for i386/x86_64 Reviewed by Geoff Garen. * wtf/text/StringImpl.h: (WTF::loadUnaligned): Add template method. (WTF::equal): Switch to using loadUnaligned<>(). 2014-03-14 Mark Rowe 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 Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers https://bugs.webkit.org/show_bug.cgi?id=130276 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 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 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 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 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 [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 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 [Win] Unreviewed gardening. * wtf/MathExtras.h: VS2013 provides an lrint implementation. No need to implement our own. 2014-03-10 Jer Noble 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 [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 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 [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 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 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 [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 [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 [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 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 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 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 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 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 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 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 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 Crash in WTF::StringBuilder::append() https://bugs.webkit.org/show_bug.cgi?id=125817 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 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 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 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 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 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 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 [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 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 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 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 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 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 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::checkValidity): (WTF::Deque::checkIndexValidity): (WTF::Deque::invalidateIterators): (WTF::Deque::Deque): (WTF::=): (WTF::Deque::destroyAll): (WTF::Deque::~Deque): (WTF::Deque::swap): (WTF::Deque::clear): (WTF::Deque::expandCapacityIfNeeded): (WTF::Deque::expandCapacity): (WTF::Deque::append): (WTF::Deque::prepend): (WTF::Deque::removeFirst): (WTF::Deque::removeLast): (WTF::Deque::remove): (WTF::DequeIteratorBase::checkValidity): (WTF::DequeIteratorBase::addToIteratorsList): (WTF::DequeIteratorBase::removeFromIteratorsList): (WTF::DequeIteratorBase::DequeIteratorBase): (WTF::DequeIteratorBase::~DequeIteratorBase): (WTF::DequeIteratorBase::isEqual): (WTF::DequeIteratorBase::increment): (WTF::DequeIteratorBase::decrement): (WTF::DequeIteratorBase::after): (WTF::DequeIteratorBase::before): * wtf/Vector.h: (WTF::VectorBuffer::swap): (WTF::VectorBuffer::swapInlineBuffer): (WTF::VectorBuffer::swapInlineBuffers): (WTF::Vector::swap): 2014-02-15 Mikhail Pozdnyakov 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 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 (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 Fix the iOS build after [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 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 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 No need to save reservedZoneSize when dropping the JSLock. Reviewed by Geoffrey Garen. * wtf/WTFThreadData.cpp: (WTF::WTFThreadData::WTFThreadData): * wtf/WTFThreadData.h: - removed unnneeded m_savedReservedZoneSize. 2014-02-11 Mark Hahnenberg 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 [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 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 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 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 [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 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 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 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 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 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 Remove unused ENABLE(REPAINT_THROTTLING) flag. Reviewed by Antti Koivisto. * wtf/FeatureDefines.h: 2014-02-06 Filip Pizlo 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 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 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 Remove ENABLE(DIRECTORY_UPLOAD). Rubber-stamped by Ryosuke Niwa. * wtf/FeatureDefines.h: 2014-02-05 Carlos Garcia Campos 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> 2014-02-05 Csaba Osztrogonác 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 The stack limit computation does not work for Windows. 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 Remove