Structure should have a method for concurrently getting all of the property map entries, and this method shouldn't involve copy-paste
https://bugs.webkit.org/show_bug.cgi?id=136983

Reviewed by Mark Hahnenberg.

* runtime/PropertyMapHashTable.h:
(JSC::PropertyMapEntry::PropertyMapEntry): Moved PropertyMapEntry struct to Structure.h so that Structure can refer to it.
* runtime/Structure.cpp:
(JSC::Structure::getConcurrently): Switch to using the new forEachPropertyConcurrently() method.
(JSC::Structure::getPropertiesConcurrently): The subject of this patch. It will be useful for object allocation sinking (bug 136330).
(JSC::Structure::dump): Switch to using the new forEachPropertyConcurrently() method.
* runtime/Structure.h:
(JSC::PropertyMapEntry::PropertyMapEntry): Moved from PropertyMapHashTable.h.
* runtime/StructureInlines.h:
(JSC::Structure::forEachPropertyConcurrently): Capture this very common concurrent structure iteration pattern into a template method.



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@173799 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Fix post-mortem nits for r173724
https://bugs.webkit.org/show_bug.cgi?id=136986

Reviewed by Darin Adler.

Fix post-mortem nits for r173724.

No new tests, no behavior change.

* editing/EditingStyle.cpp:
(WebCore::HTMLAttributeEquivalent::attributeValueAsCSSValue):
(WebCore::HTMLFontSizeEquivalent::attributeValueAsCSSValue):
Use nullptr instead of 0.

* editing/SplitElementCommand.cpp:
(WebCore::SplitElementCommand::doUnapply):
Use getIdAttribute() / setIdAttribute().

* rendering/RenderTableCell.cpp:
(WebCore::RenderTableCell::computePreferredLogicalWidths):
Use fastHasAttribute() for nowrap and do an early return to avoid
calling styleOrColLogicalWidth() if the nowrap attribute is missing.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@173800 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Make possible HashSet<std::unique_ptr<>>
https://bugs.webkit.org/show_bug.cgi?id=136166

Reviewed by Darin Adler.

Source/WTF:

* wtf/GetPtr.h:
(WTF::getPtr):
(WTF::GetPtrHelper<std::unique_ptr<T>>::getPtr):
Make specializing GetPtrHelper a bit cleaner (you don't have to put 
IsSmartPtr<T>::value everywhere any more) and add specializations for
std::unique_ptr.

* wtf/HashFunctions.h:
(WTF::PtrHash<std::unique_ptr<P>>):
Add specialization for PtrHash for std::unique_ptr and set it as the DefaultHash
for it as well.

* wtf/HashMap.h:    
* wtf/HashSet.h:
Add overloads of find(), contains(), remove(), take() (and get() for HashMap) for "smart pointers" that
take the raw pointer type as the parameter. These use SFINAE to make themselves only available
when the IsSmartPtr<KeyType>::value is true. 

* wtf/HashTraits.h:
Override constructDeletedValue() and isDeletedValue() in the std::unique_ptr specialization
since the default implementation depends on the type having a constructor that takes a HashTableDeletedValue
and function named isHashTableDeletedValue().

* wtf/OwnPtr.h:
(WTF::OwnPtr::OwnPtr):
(WTF::OwnPtr::isHashTableDeletedValue):
(WTF::OwnPtr::hashTableDeletedValue):
Add HashTableDeletedValue constructor/functions to allow the constructDeletedValue() and isDeletedValue()
hash traits to work.

(WTF::PtrHash<OwnPtr<P>>::hash):
(WTF::PtrHash<OwnPtr<P>>::equal):
Add specialization for PtrHash for OwnPtr and set it as the DefaultHash
for it as well.

* wtf/Ref.h:
Update for the less verbose GetPtrHelper specialization.

Tools:

* TestWebKitAPI/Tests/WTF/CopyMoveCounter.h: Removed.
* TestWebKitAPI/Counters.cpp: Added.
* TestWebKitAPI/Counters.h: Copied from Tools/TestWebKitAPI/Tests/WTF/CopyMoveCounter.h.
Move the CopyMoveCounter helper from CopyMoveCounter.h to Counters.h, and add a ConstructorDestructorCounter
helper to the mix as well. Add Counters.cpp to allow for the global variables to be used in more than one
translation unit.
    
* TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
Add new files.

* TestWebKitAPI/Tests/WTF/HashMap.cpp:
Add tests for using std::unique_ptr and OwnPtr as the key's of a HashMap.

* TestWebKitAPI/Tests/WTF/HashSet.cpp:
Add tests for using std::unique_ptr and OwnPtr as the values of a HashSet.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@173801 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Leak: WebNotificationPrivate ObjC leaks seen on leaks bot
https://bugs.webkit.org/show_bug.cgi?id=136972

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2014-09-21
Reviewed by Darin Adler.

* WebView/WebNotification.h:
* WebView/WebNotification.mm:
(-[WebNotification initWithCoreNotification:notificationID:]):
Switch to RetainPtr and adopt into _private to ensure when we are
deallocated that _private will get deallocated.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@173802 268f45cc-cd09-0410-ab3c-d52691b4dbfc