DataRef<T> should use Ref<T> internally.
<https://webkit.org/b/122953>

DataRef is used to hold RenderStyle substructures, and due to the
way style inheritance is implemented, DataRef will always point to
a live object.

Codify this by making DataRef::m_data a Ref, and making all methods
that create substructure objects return PassRef.

Reviewed by Antti Koivisto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157568 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Use PassRef for constructing StylePropertySets.
<https://webkit.org/b/122948>

Make functions that construct StylePropertySets return PassRef
instead of PassRefPtr. Since they never return null, this gets rid
of the extra branch in ~PassRefPtr everywhere.

Also StyleRule* classes now hold a Ref<StylePropertySet>, codifying
the fact that they always have a property set.

Reviewed by Antti Koivisto.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157569 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Massage the Gtk build.

* WebCoreSupport/EditorClientGtk.cpp:
(WebKit::EditorClient::shouldApplyStyle):

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157570 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove JITStackFrame references in JIT probes.
https://bugs.webkit.org/show_bug.cgi?id=122947.

Reviewed by Michael Saboff.

* assembler/MacroAssemblerARM.cpp:
(JSC::MacroAssemblerARM::ProbeContext::dump):
* assembler/MacroAssemblerARM.h:
* assembler/MacroAssemblerARMv7.cpp:
(JSC::MacroAssemblerARMv7::ProbeContext::dump):
* assembler/MacroAssemblerARMv7.h:
* assembler/MacroAssemblerX86Common.cpp:
(JSC::MacroAssemblerX86Common::ProbeContext::dump):
* assembler/MacroAssemblerX86Common.h:
* jit/JITStubsARM.h:
* jit/JITStubsARMv7.h:
* jit/JITStubsX86.h:
* jit/JITStubsX86Common.h:
* jit/JITStubsX86_64.h:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157571 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Remove JITStackFrame references in the C Loop LLINT.
https://bugs.webkit.org/show_bug.cgi?id=122950.

Reviewed by Michael Saboff.

* jit/JITStubs.h:
* llint/LowLevelInterpreter.cpp:
(JSC::CLoop::execute):
* offlineasm/cloop.rb:



git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157572 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[GTK] Add URLMediaStream in the build
https://bugs.webkit.org/show_bug.cgi?id=122833

Reviewed by Carlos Garcia Campos.

* GNUmakefile.am: Add mediastream/gstreamer in include directories list.
* GNUmakefile.list.am: Add DOMURLMediaStream files in the build.

git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157573 268f45cc-cd09-0410-ab3c-d52691b4dbfc
[CSS Shapes] Improve the performance of image valued shapes with large shape-margins
https://bugs.webkit.org/show_bug.cgi?id=122613

Reviewed by Andreas Kling.

The cost of computing the shape-margin boundary of an image-valued shape-outside
is now proportional to (2 * shape-margin + image.height) rather than
(2 * shape-margin * image.height). The performance improvement comes from skipping
sequences of rounded-rectangle intervals that will not contribute to the final
result. Each non-empty row in the original image contributes one rounded-rectangle
whose corner radius is shape-margin, height is 2 * shape-margin, and width is
2 * shape-margin plus the width of the limits of the intervals on the row.

Renamed private method RasterShape::getIntervals() to intervalsAt() to be a little
more consistent with WebKit naming conventions.

There are no new tests since is just an internal refactoring.

* rendering/shapes/RasterShape.cpp:
(WebCore::MarginIntervalGenerator::set): Changed the x1,x2 parameters to an IntShapeInterval.
(WebCore::RasterShapeIntervals::contains): Refactor for the getIntervals() => intervalsAt() rename.
(WebCore::RasterShapeIntervals::getIntervalX1Values): Ditto.
(WebCore::RasterShapeIntervals::getIncludedIntervals): Ditto.
(WebCore::RasterShapeIntervals::getExcludedIntervals): Ditto.
(WebCore::RasterShapeIntervals::computeShapeMarginIntervals): Performance tuning.
* rendering/shapes/RasterShape.h:
(WebCore::RasterShapeIntervals::intervalsAt): Renamed getIntervals().
(WebCore::RasterShapeIntervals::limitIntervalAt): Return the min/max limits of the intervals at Y.
* rendering/shapes/ShapeInterval.h:
(WebCore::ShapeInterval::isEmpty): Added.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
StyleRuleFoo::mutableProperties() should return a reference.
<https://webkit.org/b/122962>

The mutableProperties() functions always return objects, so make
them return MutableStylePropertySet&.

Also tweaked the StyleRuleCSSStyleDeclaration constructor to take
references to both the properties and the owner rule since both
are required.

Reviewed by Antti Koivisto.


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@157575 268f45cc-cd09-0410-ab3c-d52691b4dbfc
Source/JavaScriptCore: Remove JITStackFrame references in the C Loop LLINT.
https://bugs.webkit.org/show_bug.cgi?id=122950.

Patch by Mark Lam <mark.lam@apple.com> on 2013-10-17
Reviewed by Michael Saboff.

* jit/JITStubs.h:
* llint/LowLevelInterpreter.cpp:
(JSC::CLoop::execute):
* offlineasm/cloop.rb:

Source/WTF: Introduce WTF::Bag and start using it for InlineCallFrameSet
https://bugs.webkit.org/show_bug.cgi?id=122941

Reviewed by Geoffrey Garen.
        
Introduce WTF::Bag, which is basically an allocation pool. No POD restrictions. Does one
malloc per entry. No need to shrink afterwards.

* GNUmakefile.list.am:
* WTF.vcxproj/WTF.vcxproj:
* WTF.xcodeproj/project.pbxproj:
* wtf/Bag.h: Added.
(WTF::Bag::Bag):
(WTF::Bag::~Bag):
(WTF::Bag::add):
(WTF::Bag::iterator::iterator):
(WTF::Bag::iterator::operator!):
(WTF::Bag::iterator::operator*):
(WTF::Bag::iterator::operator++):
(WTF::Bag::iterator::operator==):
(WTF::Bag::begin):
(WTF::Bag::end):
(WTF::Bag::isEmpty):
* wtf/CMakeLists.txt:



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