зеркало из https://github.com/mozilla/gecko-dev.git
Bug 855597: Rename DOMSVGTransform to SVGTransform r=jwatt
--HG-- rename : content/svg/content/src/DOMSVGTransform.cpp => content/svg/content/src/SVGTransform.cpp rename : content/svg/content/src/DOMSVGTransform.h => content/svg/content/src/SVGTransform.h
This commit is contained in:
Родитель
8a8c63d72c
Коммит
b516c059a7
|
@ -4,7 +4,7 @@
|
|||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "DOMSVGTransformList.h"
|
||||
#include "DOMSVGTransform.h"
|
||||
#include "mozilla/dom/SVGTransform.h"
|
||||
#include "mozilla/dom/SVGMatrix.h"
|
||||
#include "SVGAnimatedTransformList.h"
|
||||
#include "nsSVGElement.h"
|
||||
|
@ -17,7 +17,7 @@
|
|||
namespace {
|
||||
|
||||
void UpdateListIndicesFromIndex(
|
||||
FallibleTArray<mozilla::DOMSVGTransform*>& aItemsArray,
|
||||
FallibleTArray<mozilla::dom::SVGTransform*>& aItemsArray,
|
||||
uint32_t aStartingIndex)
|
||||
{
|
||||
uint32_t length = aItemsArray.Length();
|
||||
|
@ -33,6 +33,8 @@ void UpdateListIndicesFromIndex(
|
|||
|
||||
namespace mozilla {
|
||||
|
||||
using namespace dom;
|
||||
|
||||
// We could use NS_IMPL_CYCLE_COLLECTION_1, except that in Unlink() we need to
|
||||
// clear our DOMSVGAnimatedTransformList's weak ref to us to be safe. (The other
|
||||
// option would be to not unlink and rely on the breaking of the other edges in
|
||||
|
@ -78,10 +80,10 @@ DOMSVGTransformList::InternalListLengthWillChange(uint32_t aNewLength)
|
|||
{
|
||||
uint32_t oldLength = mItems.Length();
|
||||
|
||||
if (aNewLength > DOMSVGTransform::MaxListIndex()) {
|
||||
if (aNewLength > SVGTransform::MaxListIndex()) {
|
||||
// It's safe to get out of sync with our internal list as long as we have
|
||||
// FEWER items than it does.
|
||||
aNewLength = DOMSVGTransform::MaxListIndex();
|
||||
aNewLength = SVGTransform::MaxListIndex();
|
||||
}
|
||||
|
||||
nsRefPtr<DOMSVGTransformList> kungFuDeathGrip;
|
||||
|
@ -145,8 +147,8 @@ DOMSVGTransformList::Clear(ErrorResult& error)
|
|||
}
|
||||
}
|
||||
|
||||
already_AddRefed<DOMSVGTransform>
|
||||
DOMSVGTransformList::Initialize(DOMSVGTransform& newItem, ErrorResult& error)
|
||||
already_AddRefed<SVGTransform>
|
||||
DOMSVGTransformList::Initialize(SVGTransform& newItem, ErrorResult& error)
|
||||
{
|
||||
if (IsAnimValList()) {
|
||||
error.Throw(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR);
|
||||
|
@ -161,7 +163,7 @@ DOMSVGTransformList::Initialize(DOMSVGTransform& newItem, ErrorResult& error)
|
|||
// clone of newItem, it would actually insert newItem. To prevent that from
|
||||
// happening we have to do the clone here, if necessary.
|
||||
|
||||
nsRefPtr<DOMSVGTransform> domItem = &newItem;
|
||||
nsRefPtr<SVGTransform> domItem = &newItem;
|
||||
if (domItem->HasOwner()) {
|
||||
domItem = newItem.Clone();
|
||||
}
|
||||
|
@ -171,7 +173,7 @@ DOMSVGTransformList::Initialize(DOMSVGTransform& newItem, ErrorResult& error)
|
|||
return InsertItemBefore(*domItem, 0, error);
|
||||
}
|
||||
|
||||
DOMSVGTransform*
|
||||
SVGTransform*
|
||||
DOMSVGTransformList::IndexedGetter(uint32_t index, bool& found,
|
||||
ErrorResult& error)
|
||||
{
|
||||
|
@ -186,8 +188,8 @@ DOMSVGTransformList::IndexedGetter(uint32_t index, bool& found,
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
already_AddRefed<DOMSVGTransform>
|
||||
DOMSVGTransformList::InsertItemBefore(DOMSVGTransform& newItem,
|
||||
already_AddRefed<SVGTransform>
|
||||
DOMSVGTransformList::InsertItemBefore(SVGTransform& newItem,
|
||||
uint32_t index, ErrorResult& error)
|
||||
{
|
||||
if (IsAnimValList()) {
|
||||
|
@ -196,12 +198,12 @@ DOMSVGTransformList::InsertItemBefore(DOMSVGTransform& newItem,
|
|||
}
|
||||
|
||||
index = std::min(index, LengthNoFlush());
|
||||
if (index >= DOMSVGTransform::MaxListIndex()) {
|
||||
if (index >= SVGTransform::MaxListIndex()) {
|
||||
error.Throw(NS_ERROR_DOM_INDEX_SIZE_ERR);
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
nsRefPtr<DOMSVGTransform> domItem = &newItem;
|
||||
nsRefPtr<SVGTransform> domItem = &newItem;
|
||||
if (newItem.HasOwner()) {
|
||||
domItem = newItem.Clone(); // must do this before changing anything!
|
||||
}
|
||||
|
@ -234,8 +236,8 @@ DOMSVGTransformList::InsertItemBefore(DOMSVGTransform& newItem,
|
|||
return domItem.forget();
|
||||
}
|
||||
|
||||
already_AddRefed<DOMSVGTransform>
|
||||
DOMSVGTransformList::ReplaceItem(DOMSVGTransform& newItem,
|
||||
already_AddRefed<SVGTransform>
|
||||
DOMSVGTransformList::ReplaceItem(SVGTransform& newItem,
|
||||
uint32_t index, ErrorResult& error)
|
||||
{
|
||||
if (IsAnimValList()) {
|
||||
|
@ -248,7 +250,7 @@ DOMSVGTransformList::ReplaceItem(DOMSVGTransform& newItem,
|
|||
return nullptr;
|
||||
}
|
||||
|
||||
nsRefPtr<DOMSVGTransform> domItem = &newItem;
|
||||
nsRefPtr<SVGTransform> domItem = &newItem;
|
||||
if (newItem.HasOwner()) {
|
||||
domItem = newItem.Clone(); // must do this before changing anything!
|
||||
}
|
||||
|
@ -274,7 +276,7 @@ DOMSVGTransformList::ReplaceItem(DOMSVGTransform& newItem,
|
|||
return domItem.forget();
|
||||
}
|
||||
|
||||
already_AddRefed<DOMSVGTransform>
|
||||
already_AddRefed<SVGTransform>
|
||||
DOMSVGTransformList::RemoveItem(uint32_t index, ErrorResult& error)
|
||||
{
|
||||
if (IsAnimValList()) {
|
||||
|
@ -299,7 +301,7 @@ DOMSVGTransformList::RemoveItem(uint32_t index, ErrorResult& error)
|
|||
// Notify the DOM item of removal *before* modifying the lists so that the
|
||||
// DOM item can copy its *old* value:
|
||||
mItems[index]->RemovingFromList();
|
||||
nsRefPtr<DOMSVGTransform> result = mItems[index];
|
||||
nsRefPtr<SVGTransform> result = mItems[index];
|
||||
|
||||
InternalList().RemoveItem(index);
|
||||
mItems.RemoveElementAt(index);
|
||||
|
@ -313,14 +315,14 @@ DOMSVGTransformList::RemoveItem(uint32_t index, ErrorResult& error)
|
|||
return result.forget();
|
||||
}
|
||||
|
||||
already_AddRefed<DOMSVGTransform>
|
||||
already_AddRefed<SVGTransform>
|
||||
DOMSVGTransformList::CreateSVGTransformFromMatrix(dom::SVGMatrix& matrix)
|
||||
{
|
||||
nsRefPtr<DOMSVGTransform> result = new DOMSVGTransform(matrix.Matrix());
|
||||
nsRefPtr<SVGTransform> result = new SVGTransform(matrix.Matrix());
|
||||
return result.forget();
|
||||
}
|
||||
|
||||
already_AddRefed<DOMSVGTransform>
|
||||
already_AddRefed<SVGTransform>
|
||||
DOMSVGTransformList::Consolidate(ErrorResult& error)
|
||||
{
|
||||
if (IsAnimValList()) {
|
||||
|
@ -345,7 +347,7 @@ DOMSVGTransformList::Consolidate(ErrorResult& error)
|
|||
MOZ_ASSERT(!error.Failed(), "How could this fail?");
|
||||
|
||||
// And append the new transform
|
||||
nsRefPtr<DOMSVGTransform> transform = new DOMSVGTransform(mx);
|
||||
nsRefPtr<SVGTransform> transform = new SVGTransform(mx);
|
||||
return InsertItemBefore(*transform, LengthNoFlush(), error);
|
||||
}
|
||||
|
||||
|
@ -356,7 +358,7 @@ void
|
|||
DOMSVGTransformList::EnsureItemAt(uint32_t aIndex)
|
||||
{
|
||||
if (!mItems[aIndex]) {
|
||||
mItems[aIndex] = new DOMSVGTransform(this, aIndex, IsAnimValList());
|
||||
mItems[aIndex] = new SVGTransform(this, aIndex, IsAnimValList());
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -376,7 +378,7 @@ DOMSVGTransformList::MaybeInsertNullInAnimValListAt(uint32_t aIndex)
|
|||
"animVal list not in sync!");
|
||||
|
||||
animVal->mItems.InsertElementAt(aIndex,
|
||||
static_cast<DOMSVGTransform*>(nullptr));
|
||||
static_cast<SVGTransform*>(nullptr));
|
||||
|
||||
UpdateListIndicesFromIndex(animVal->mItems, aIndex + 1);
|
||||
}
|
||||
|
|
|
@ -16,17 +16,15 @@
|
|||
#include "mozilla/Attributes.h"
|
||||
#include "mozilla/ErrorResult.h"
|
||||
|
||||
class nsIDOMSVGTransform;
|
||||
class nsSVGElement;
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
namespace dom {
|
||||
class SVGMatrix;
|
||||
class SVGTransform;
|
||||
}
|
||||
|
||||
class DOMSVGTransform;
|
||||
|
||||
/**
|
||||
* Class DOMSVGTransformList
|
||||
*
|
||||
|
@ -38,7 +36,7 @@ class DOMSVGTransform;
|
|||
class DOMSVGTransformList MOZ_FINAL : public nsISupports,
|
||||
public nsWrapperCache
|
||||
{
|
||||
friend class DOMSVGTransform;
|
||||
friend class dom::SVGTransform;
|
||||
|
||||
public:
|
||||
NS_DECL_CYCLE_COLLECTING_ISUPPORTS
|
||||
|
@ -96,34 +94,34 @@ public:
|
|||
return LengthNoFlush();
|
||||
}
|
||||
void Clear(ErrorResult& error);
|
||||
already_AddRefed<DOMSVGTransform> Initialize(DOMSVGTransform& newItem,
|
||||
ErrorResult& error);
|
||||
DOMSVGTransform* GetItem(uint32_t index, ErrorResult& error)
|
||||
already_AddRefed<dom::SVGTransform> Initialize(dom::SVGTransform& newItem,
|
||||
ErrorResult& error);
|
||||
dom::SVGTransform* GetItem(uint32_t index, ErrorResult& error)
|
||||
{
|
||||
bool found;
|
||||
DOMSVGTransform* item = IndexedGetter(index, found, error);
|
||||
dom::SVGTransform* item = IndexedGetter(index, found, error);
|
||||
if (!found) {
|
||||
error.Throw(NS_ERROR_DOM_INDEX_SIZE_ERR);
|
||||
}
|
||||
return item;
|
||||
}
|
||||
DOMSVGTransform* IndexedGetter(uint32_t index, bool& found,
|
||||
ErrorResult& error);
|
||||
already_AddRefed<DOMSVGTransform> InsertItemBefore(DOMSVGTransform& newItem,
|
||||
uint32_t index,
|
||||
ErrorResult& error);
|
||||
already_AddRefed<DOMSVGTransform> ReplaceItem(DOMSVGTransform& newItem,
|
||||
uint32_t index,
|
||||
ErrorResult& error);
|
||||
already_AddRefed<DOMSVGTransform> RemoveItem(uint32_t index,
|
||||
ErrorResult& error);
|
||||
already_AddRefed<DOMSVGTransform> AppendItem(DOMSVGTransform& newItem,
|
||||
ErrorResult& error)
|
||||
dom::SVGTransform* IndexedGetter(uint32_t index, bool& found,
|
||||
ErrorResult& error);
|
||||
already_AddRefed<dom::SVGTransform> InsertItemBefore(dom::SVGTransform& newItem,
|
||||
uint32_t index,
|
||||
ErrorResult& error);
|
||||
already_AddRefed<dom::SVGTransform> ReplaceItem(dom::SVGTransform& newItem,
|
||||
uint32_t index,
|
||||
ErrorResult& error);
|
||||
already_AddRefed<dom::SVGTransform> RemoveItem(uint32_t index,
|
||||
ErrorResult& error);
|
||||
already_AddRefed<dom::SVGTransform> AppendItem(dom::SVGTransform& newItem,
|
||||
ErrorResult& error)
|
||||
{
|
||||
return InsertItemBefore(newItem, LengthNoFlush(), error);
|
||||
}
|
||||
already_AddRefed<DOMSVGTransform> CreateSVGTransformFromMatrix(dom::SVGMatrix& matrix);
|
||||
already_AddRefed<DOMSVGTransform> Consolidate(ErrorResult& error);
|
||||
already_AddRefed<dom::SVGTransform> CreateSVGTransformFromMatrix(dom::SVGMatrix& matrix);
|
||||
already_AddRefed<dom::SVGTransform> Consolidate(ErrorResult& error);
|
||||
uint32_t Length() const
|
||||
{
|
||||
return NumberOfItems();
|
||||
|
@ -152,15 +150,15 @@ private:
|
|||
*/
|
||||
SVGTransformList& InternalList() const;
|
||||
|
||||
/// Creates a DOMSVGTransform for aIndex, if it doesn't already exist.
|
||||
/// Creates a SVGTransform for aIndex, if it doesn't already exist.
|
||||
void EnsureItemAt(uint32_t aIndex);
|
||||
|
||||
void MaybeInsertNullInAnimValListAt(uint32_t aIndex);
|
||||
void MaybeRemoveItemFromAnimValListAt(uint32_t aIndex);
|
||||
|
||||
// Weak refs to our DOMSVGTransform items. The items are friends and take care
|
||||
// Weak refs to our SVGTransform items. The items are friends and take care
|
||||
// of clearing our pointer to them when they die.
|
||||
FallibleTArray<DOMSVGTransform*> mItems;
|
||||
FallibleTArray<dom::SVGTransform*> mItems;
|
||||
|
||||
nsRefPtr<DOMSVGAnimatedTransformList> mAList;
|
||||
};
|
||||
|
|
|
@ -29,7 +29,6 @@ CPPSRCS = \
|
|||
DOMSVGPoint.cpp \
|
||||
DOMSVGPointList.cpp \
|
||||
DOMSVGStringList.cpp \
|
||||
DOMSVGTransform.cpp \
|
||||
DOMSVGTransformList.cpp \
|
||||
nsDOMSVGZoomEvent.cpp \
|
||||
nsISVGPoint.cpp \
|
||||
|
@ -147,6 +146,7 @@ CPPSRCS = \
|
|||
SVGTextPathElement.cpp \
|
||||
SVGTextPositioningElement.cpp \
|
||||
SVGTitleElement.cpp \
|
||||
SVGTransform.cpp \
|
||||
SVGTransformableElement.cpp \
|
||||
SVGTransformList.cpp \
|
||||
SVGTransformListParser.cpp \
|
||||
|
@ -241,6 +241,7 @@ EXPORTS_mozilla/dom = \
|
|||
SVGTextPathElement.h \
|
||||
SVGTextPositioningElement.h \
|
||||
SVGTitleElement.h \
|
||||
SVGTransform.h \
|
||||
SVGTransformableElement.h \
|
||||
SVGTSpanElement.h \
|
||||
SVGUseElement.h \
|
||||
|
|
|
@ -19,6 +19,7 @@ namespace mozilla {
|
|||
|
||||
namespace dom {
|
||||
class SVGAnimationElement;
|
||||
class SVGTransform;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -38,7 +39,7 @@ class SVGAnimationElement;
|
|||
class SVGAnimatedTransformList
|
||||
{
|
||||
// friends so that they can get write access to mBaseVal
|
||||
friend class DOMSVGTransform;
|
||||
friend class dom::SVGTransform;
|
||||
friend class DOMSVGTransformList;
|
||||
|
||||
public:
|
||||
|
|
|
@ -20,7 +20,7 @@ NS_IMPL_CYCLE_COLLECTION_WRAPPERCACHE_1(SVGMatrix, mTransform)
|
|||
NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(SVGMatrix, AddRef)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(SVGMatrix, Release)
|
||||
|
||||
DOMSVGTransform*
|
||||
SVGTransform*
|
||||
SVGMatrix::GetParentObject() const
|
||||
{
|
||||
return mTransform;
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
#ifndef mozilla_dom_SVGMatrix_h
|
||||
#define mozilla_dom_SVGMatrix_h
|
||||
|
||||
#include "DOMSVGTransform.h"
|
||||
#include "mozilla/dom/SVGTransform.h"
|
||||
#include "gfxMatrix.h"
|
||||
#include "nsAutoPtr.h"
|
||||
#include "nsCycleCollectionParticipant.h"
|
||||
|
@ -57,14 +57,14 @@ public:
|
|||
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(SVGMatrix)
|
||||
|
||||
/**
|
||||
* Ctor for SVGMatrix objects that belong to a DOMSVGTransform.
|
||||
* Ctor for SVGMatrix objects that belong to a SVGTransform.
|
||||
*/
|
||||
SVGMatrix(DOMSVGTransform& aTransform) : mTransform(&aTransform) {
|
||||
SVGMatrix(SVGTransform& aTransform) : mTransform(&aTransform) {
|
||||
SetIsDOMBinding();
|
||||
}
|
||||
|
||||
/**
|
||||
* Ctors for SVGMatrix objects created independently of a DOMSVGTransform.
|
||||
* Ctors for SVGMatrix objects created independently of a SVGTransform.
|
||||
*/
|
||||
// Default ctor for gfxMatrix will produce identity mx
|
||||
SVGMatrix() {
|
||||
|
@ -80,7 +80,7 @@ public:
|
|||
}
|
||||
|
||||
// WebIDL
|
||||
DOMSVGTransform* GetParentObject() const;
|
||||
SVGTransform* GetParentObject() const;
|
||||
virtual JSObject* WrapObject(JSContext* aCx, JSObject* aScope) MOZ_OVERRIDE;
|
||||
|
||||
float A() const { return static_cast<float>(Matrix().xx); }
|
||||
|
@ -123,7 +123,7 @@ private:
|
|||
return mTransform ? mTransform->IsAnimVal() : false;
|
||||
}
|
||||
|
||||
nsRefPtr<DOMSVGTransform> mTransform;
|
||||
nsRefPtr<SVGTransform> mTransform;
|
||||
|
||||
// Typically we operate on the matrix data accessed via mTransform but for
|
||||
// matrices that exist independently of an SVGTransform we use mMatrix below.
|
||||
|
|
|
@ -416,17 +416,17 @@ SVGSVGElement::CreateSVGRect()
|
|||
return rect.forget();
|
||||
}
|
||||
|
||||
already_AddRefed<DOMSVGTransform>
|
||||
already_AddRefed<SVGTransform>
|
||||
SVGSVGElement::CreateSVGTransform()
|
||||
{
|
||||
nsRefPtr<DOMSVGTransform> transform = new DOMSVGTransform();
|
||||
nsRefPtr<SVGTransform> transform = new SVGTransform();
|
||||
return transform.forget();
|
||||
}
|
||||
|
||||
already_AddRefed<DOMSVGTransform>
|
||||
already_AddRefed<SVGTransform>
|
||||
SVGSVGElement::CreateSVGTransformFromMatrix(SVGMatrix& matrix)
|
||||
{
|
||||
nsRefPtr<DOMSVGTransform> transform = new DOMSVGTransform(matrix.Matrix());
|
||||
nsRefPtr<SVGTransform> transform = new SVGTransform(matrix.Matrix());
|
||||
return transform.forget();
|
||||
}
|
||||
|
||||
|
|
|
@ -29,13 +29,13 @@ class nsSVGImageFrame;
|
|||
|
||||
namespace mozilla {
|
||||
class DOMSVGAnimatedPreserveAspectRatio;
|
||||
class DOMSVGTransform;
|
||||
class SVGFragmentIdentifier;
|
||||
class AutoSVGRenderingState;
|
||||
|
||||
namespace dom {
|
||||
class SVGAngle;
|
||||
class SVGMatrix;
|
||||
class SVGTransform;
|
||||
class SVGViewElement;
|
||||
class SVGIRect;
|
||||
|
||||
|
@ -241,8 +241,8 @@ public:
|
|||
already_AddRefed<nsISVGPoint> CreateSVGPoint();
|
||||
already_AddRefed<SVGMatrix> CreateSVGMatrix();
|
||||
already_AddRefed<SVGIRect> CreateSVGRect();
|
||||
already_AddRefed<DOMSVGTransform> CreateSVGTransform();
|
||||
already_AddRefed<DOMSVGTransform> CreateSVGTransformFromMatrix(SVGMatrix& matrix);
|
||||
already_AddRefed<SVGTransform> CreateSVGTransform();
|
||||
already_AddRefed<SVGTransform> CreateSVGTransformFromMatrix(SVGMatrix& matrix);
|
||||
Element* GetElementById(const nsAString& elementId, ErrorResult& rv);
|
||||
already_AddRefed<nsIDOMSVGAnimatedRect> ViewBox();
|
||||
already_AddRefed<DOMSVGAnimatedPreserveAspectRatio> PreserveAspectRatio();
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#include "DOMSVGTransform.h"
|
||||
#include "mozilla/dom/SVGTransform.h"
|
||||
#include "mozilla/dom/SVGMatrix.h"
|
||||
#include "SVGAnimatedTransformList.h"
|
||||
#include "nsError.h"
|
||||
|
@ -14,10 +14,9 @@
|
|||
#include "mozilla/dom/SVGTransformBinding.h"
|
||||
|
||||
namespace mozilla {
|
||||
namespace dom {
|
||||
|
||||
using namespace dom;
|
||||
|
||||
static nsSVGAttrTearoffTable<DOMSVGTransform, SVGMatrix> sSVGMatrixTearoffTable;
|
||||
static nsSVGAttrTearoffTable<SVGTransform, SVGMatrix> sSVGMatrixTearoffTable;
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
|
||||
|
@ -25,7 +24,7 @@ static nsSVGAttrTearoffTable<DOMSVGTransform, SVGMatrix> sSVGMatrixTearoffTable;
|
|||
// clear our list's weak ref to us to be safe. (The other option would be to
|
||||
// not unlink and rely on the breaking of the other edges in the cycle, as
|
||||
// NS_SVG_VAL_IMPL_CYCLE_COLLECTION does.)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(DOMSVGTransform)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_BEGIN(SVGTransform)
|
||||
// We may not belong to a list, so we must null check tmp->mList.
|
||||
if (tmp->mList) {
|
||||
tmp->mList->mItems[tmp->mListIndex] = nullptr;
|
||||
|
@ -34,7 +33,7 @@ NS_IMPL_CYCLE_COLLECTION_UNLINK(mList)
|
|||
NS_IMPL_CYCLE_COLLECTION_UNLINK_PRESERVED_WRAPPER
|
||||
NS_IMPL_CYCLE_COLLECTION_UNLINK_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(DOMSVGTransform)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_BEGIN(SVGTransform)
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mList)
|
||||
SVGMatrix* matrix =
|
||||
sSVGMatrixTearoffTable.GetTearoff(tmp);
|
||||
|
@ -42,21 +41,21 @@ NS_IMPL_CYCLE_COLLECTION_TRAVERSE(mList)
|
|||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_SCRIPT_OBJECTS
|
||||
NS_IMPL_CYCLE_COLLECTION_TRAVERSE_END
|
||||
|
||||
NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(DOMSVGTransform, AddRef)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(DOMSVGTransform, Release)
|
||||
NS_IMPL_CYCLE_COLLECTION_ROOT_NATIVE(SVGTransform, AddRef)
|
||||
NS_IMPL_CYCLE_COLLECTION_UNROOT_NATIVE(SVGTransform, Release)
|
||||
|
||||
JSObject*
|
||||
DOMSVGTransform::WrapObject(JSContext* aCx, JSObject* aScope)
|
||||
SVGTransform::WrapObject(JSContext* aCx, JSObject* aScope)
|
||||
{
|
||||
return mozilla::dom::SVGTransformBinding::Wrap(aCx, aScope, this);
|
||||
return SVGTransformBinding::Wrap(aCx, aScope, this);
|
||||
}
|
||||
|
||||
//----------------------------------------------------------------------
|
||||
// Ctors:
|
||||
|
||||
DOMSVGTransform::DOMSVGTransform(DOMSVGTransformList *aList,
|
||||
uint32_t aListIndex,
|
||||
bool aIsAnimValItem)
|
||||
SVGTransform::SVGTransform(DOMSVGTransformList *aList,
|
||||
uint32_t aListIndex,
|
||||
bool aIsAnimValItem)
|
||||
: mList(aList)
|
||||
, mListIndex(aListIndex)
|
||||
, mIsAnimValItem(aIsAnimValItem)
|
||||
|
@ -70,7 +69,7 @@ DOMSVGTransform::DOMSVGTransform(DOMSVGTransformList *aList,
|
|||
NS_ABORT_IF_FALSE(IndexIsValid(), "Bad index for DOMSVGNumber!");
|
||||
}
|
||||
|
||||
DOMSVGTransform::DOMSVGTransform()
|
||||
SVGTransform::SVGTransform()
|
||||
: mList(nullptr)
|
||||
, mListIndex(0)
|
||||
, mIsAnimValItem(false)
|
||||
|
@ -81,7 +80,7 @@ DOMSVGTransform::DOMSVGTransform()
|
|||
SetIsDOMBinding();
|
||||
}
|
||||
|
||||
DOMSVGTransform::DOMSVGTransform(const gfxMatrix &aMatrix)
|
||||
SVGTransform::SVGTransform(const gfxMatrix &aMatrix)
|
||||
: mList(nullptr)
|
||||
, mListIndex(0)
|
||||
, mIsAnimValItem(false)
|
||||
|
@ -90,7 +89,7 @@ DOMSVGTransform::DOMSVGTransform(const gfxMatrix &aMatrix)
|
|||
SetIsDOMBinding();
|
||||
}
|
||||
|
||||
DOMSVGTransform::DOMSVGTransform(const nsSVGTransform &aTransform)
|
||||
SVGTransform::SVGTransform(const nsSVGTransform &aTransform)
|
||||
: mList(nullptr)
|
||||
, mListIndex(0)
|
||||
, mIsAnimValItem(false)
|
||||
|
@ -99,7 +98,7 @@ DOMSVGTransform::DOMSVGTransform(const nsSVGTransform &aTransform)
|
|||
SetIsDOMBinding();
|
||||
}
|
||||
|
||||
DOMSVGTransform::~DOMSVGTransform()
|
||||
SVGTransform::~SVGTransform()
|
||||
{
|
||||
SVGMatrix* matrix = sSVGMatrixTearoffTable.GetTearoff(this);
|
||||
if (matrix) {
|
||||
|
@ -115,13 +114,13 @@ DOMSVGTransform::~DOMSVGTransform()
|
|||
}
|
||||
|
||||
uint16_t
|
||||
DOMSVGTransform::Type() const
|
||||
SVGTransform::Type() const
|
||||
{
|
||||
return Transform().Type();
|
||||
}
|
||||
|
||||
SVGMatrix*
|
||||
DOMSVGTransform::Matrix()
|
||||
SVGTransform::Matrix()
|
||||
{
|
||||
SVGMatrix* wrapper =
|
||||
sSVGMatrixTearoffTable.GetTearoff(this);
|
||||
|
@ -133,13 +132,13 @@ DOMSVGTransform::Matrix()
|
|||
}
|
||||
|
||||
float
|
||||
DOMSVGTransform::Angle() const
|
||||
SVGTransform::Angle() const
|
||||
{
|
||||
return Transform().Angle();
|
||||
}
|
||||
|
||||
void
|
||||
DOMSVGTransform::SetMatrix(SVGMatrix& aMatrix, ErrorResult& rv)
|
||||
SVGTransform::SetMatrix(SVGMatrix& aMatrix, ErrorResult& rv)
|
||||
{
|
||||
if (mIsAnimValItem) {
|
||||
rv.Throw(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR);
|
||||
|
@ -149,7 +148,7 @@ DOMSVGTransform::SetMatrix(SVGMatrix& aMatrix, ErrorResult& rv)
|
|||
}
|
||||
|
||||
void
|
||||
DOMSVGTransform::SetTranslate(float tx, float ty, ErrorResult& rv)
|
||||
SVGTransform::SetTranslate(float tx, float ty, ErrorResult& rv)
|
||||
{
|
||||
if (mIsAnimValItem) {
|
||||
rv.Throw(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR);
|
||||
|
@ -167,7 +166,7 @@ DOMSVGTransform::SetTranslate(float tx, float ty, ErrorResult& rv)
|
|||
}
|
||||
|
||||
void
|
||||
DOMSVGTransform::SetScale(float sx, float sy, ErrorResult& rv)
|
||||
SVGTransform::SetScale(float sx, float sy, ErrorResult& rv)
|
||||
{
|
||||
if (mIsAnimValItem) {
|
||||
rv.Throw(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR);
|
||||
|
@ -184,7 +183,7 @@ DOMSVGTransform::SetScale(float sx, float sy, ErrorResult& rv)
|
|||
}
|
||||
|
||||
void
|
||||
DOMSVGTransform::SetRotate(float angle, float cx, float cy, ErrorResult& rv)
|
||||
SVGTransform::SetRotate(float angle, float cx, float cy, ErrorResult& rv)
|
||||
{
|
||||
if (mIsAnimValItem) {
|
||||
rv.Throw(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR);
|
||||
|
@ -205,7 +204,7 @@ DOMSVGTransform::SetRotate(float angle, float cx, float cy, ErrorResult& rv)
|
|||
}
|
||||
|
||||
void
|
||||
DOMSVGTransform::SetSkewX(float angle, ErrorResult& rv)
|
||||
SVGTransform::SetSkewX(float angle, ErrorResult& rv)
|
||||
{
|
||||
if (mIsAnimValItem) {
|
||||
rv.Throw(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR);
|
||||
|
@ -227,7 +226,7 @@ DOMSVGTransform::SetSkewX(float angle, ErrorResult& rv)
|
|||
}
|
||||
|
||||
void
|
||||
DOMSVGTransform::SetSkewY(float angle, ErrorResult& rv)
|
||||
SVGTransform::SetSkewY(float angle, ErrorResult& rv)
|
||||
{
|
||||
if (mIsAnimValItem) {
|
||||
rv.Throw(NS_ERROR_DOM_NO_MODIFICATION_ALLOWED_ERR);
|
||||
|
@ -252,9 +251,9 @@ DOMSVGTransform::SetSkewY(float angle, ErrorResult& rv)
|
|||
// List management methods:
|
||||
|
||||
void
|
||||
DOMSVGTransform::InsertingIntoList(DOMSVGTransformList *aList,
|
||||
uint32_t aListIndex,
|
||||
bool aIsAnimValItem)
|
||||
SVGTransform::InsertingIntoList(DOMSVGTransformList *aList,
|
||||
uint32_t aListIndex,
|
||||
bool aIsAnimValItem)
|
||||
{
|
||||
NS_ABORT_IF_FALSE(!HasOwner(), "Inserting item that is already in a list");
|
||||
|
||||
|
@ -267,7 +266,7 @@ DOMSVGTransform::InsertingIntoList(DOMSVGTransformList *aList,
|
|||
}
|
||||
|
||||
void
|
||||
DOMSVGTransform::RemovingFromList()
|
||||
SVGTransform::RemovingFromList()
|
||||
{
|
||||
NS_ABORT_IF_FALSE(!mTransform,
|
||||
"Item in list also has another non-list value associated with it");
|
||||
|
@ -278,7 +277,7 @@ DOMSVGTransform::RemovingFromList()
|
|||
}
|
||||
|
||||
nsSVGTransform&
|
||||
DOMSVGTransform::InternalItem()
|
||||
SVGTransform::InternalItem()
|
||||
{
|
||||
SVGAnimatedTransformList *alist = Element()->GetAnimatedTransformList();
|
||||
return mIsAnimValItem && alist->mAnimVal ?
|
||||
|
@ -287,14 +286,14 @@ DOMSVGTransform::InternalItem()
|
|||
}
|
||||
|
||||
const nsSVGTransform&
|
||||
DOMSVGTransform::InternalItem() const
|
||||
SVGTransform::InternalItem() const
|
||||
{
|
||||
return const_cast<DOMSVGTransform *>(this)->InternalItem();
|
||||
return const_cast<SVGTransform*>(this)->InternalItem();
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
bool
|
||||
DOMSVGTransform::IndexIsValid()
|
||||
SVGTransform::IndexIsValid()
|
||||
{
|
||||
SVGAnimatedTransformList *alist = Element()->GetAnimatedTransformList();
|
||||
return (mIsAnimValItem &&
|
||||
|
@ -309,7 +308,7 @@ DOMSVGTransform::IndexIsValid()
|
|||
// Interface for SVGMatrix's use
|
||||
|
||||
void
|
||||
DOMSVGTransform::SetMatrix(const gfxMatrix& aMatrix)
|
||||
SVGTransform::SetMatrix(const gfxMatrix& aMatrix)
|
||||
{
|
||||
NS_ABORT_IF_FALSE(!mIsAnimValItem,
|
||||
"Attempting to modify read-only transform");
|
||||
|
@ -328,7 +327,7 @@ DOMSVGTransform::SetMatrix(const gfxMatrix& aMatrix)
|
|||
// Implementation helpers
|
||||
|
||||
void
|
||||
DOMSVGTransform::NotifyElementDidChange(const nsAttrValue& aEmptyOrOldValue)
|
||||
SVGTransform::NotifyElementDidChange(const nsAttrValue& aEmptyOrOldValue)
|
||||
{
|
||||
if (HasOwner()) {
|
||||
Element()->DidChangeTransformList(aEmptyOrOldValue);
|
||||
|
@ -338,4 +337,5 @@ DOMSVGTransform::NotifyElementDidChange(const nsAttrValue& aEmptyOrOldValue)
|
|||
}
|
||||
}
|
||||
|
||||
} // namespace dom
|
||||
} // namespace mozilla
|
|
@ -4,8 +4,8 @@
|
|||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
||||
|
||||
#ifndef MOZILLA_DOMSVGTRANSFORM_H__
|
||||
#define MOZILLA_DOMSVGTRANSFORM_H__
|
||||
#ifndef mozilla_dom_SVGTransform_h
|
||||
#define mozilla_dom_SVGTransform_h
|
||||
|
||||
#include "DOMSVGTransformList.h"
|
||||
#include "nsAutoPtr.h"
|
||||
|
@ -23,26 +23,25 @@ struct gfxMatrix;
|
|||
#define MOZ_SVG_LIST_INDEX_BIT_COUNT 31 // supports > 2 billion list items
|
||||
|
||||
namespace mozilla {
|
||||
|
||||
namespace dom {
|
||||
|
||||
class SVGMatrix;
|
||||
}
|
||||
|
||||
/**
|
||||
* DOM wrapper for an SVG transform. See DOMSVGLength.h.
|
||||
*/
|
||||
class DOMSVGTransform MOZ_FINAL : public nsWrapperCache
|
||||
class SVGTransform MOZ_FINAL : public nsWrapperCache
|
||||
{
|
||||
public:
|
||||
NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(DOMSVGTransform)
|
||||
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(DOMSVGTransform)
|
||||
NS_INLINE_DECL_CYCLE_COLLECTING_NATIVE_REFCOUNTING(SVGTransform)
|
||||
NS_DECL_CYCLE_COLLECTION_SCRIPT_HOLDER_NATIVE_CLASS(SVGTransform)
|
||||
|
||||
/**
|
||||
* Generic ctor for DOMSVGTransform objects that are created for an attribute.
|
||||
* Generic ctor for SVGTransform objects that are created for an attribute.
|
||||
*/
|
||||
DOMSVGTransform(DOMSVGTransformList *aList,
|
||||
uint32_t aListIndex,
|
||||
bool aIsAnimValItem);
|
||||
SVGTransform(DOMSVGTransformList *aList,
|
||||
uint32_t aListIndex,
|
||||
bool aIsAnimValItem);
|
||||
|
||||
/**
|
||||
* Ctors for creating the objects returned by:
|
||||
|
@ -51,23 +50,23 @@ public:
|
|||
* SVGTransformList.createSVGTransformFromMatrix(in SVGMatrix matrix)
|
||||
* which do not initially belong to an attribute.
|
||||
*/
|
||||
explicit DOMSVGTransform();
|
||||
explicit DOMSVGTransform(const gfxMatrix &aMatrix);
|
||||
explicit SVGTransform();
|
||||
explicit SVGTransform(const gfxMatrix &aMatrix);
|
||||
|
||||
/**
|
||||
* Ctor for creating an unowned copy. Used with Clone().
|
||||
*/
|
||||
explicit DOMSVGTransform(const nsSVGTransform &aMatrix);
|
||||
explicit SVGTransform(const nsSVGTransform &aMatrix);
|
||||
|
||||
~DOMSVGTransform();
|
||||
~SVGTransform();
|
||||
|
||||
/**
|
||||
* Create an unowned copy of an owned transform. The caller is responsible for
|
||||
* the first AddRef().
|
||||
*/
|
||||
DOMSVGTransform* Clone() {
|
||||
SVGTransform* Clone() {
|
||||
NS_ASSERTION(mList, "unexpected caller");
|
||||
return new DOMSVGTransform(InternalItem());
|
||||
return new SVGTransform(InternalItem());
|
||||
}
|
||||
|
||||
bool IsInList() const {
|
||||
|
@ -184,7 +183,7 @@ private:
|
|||
};
|
||||
|
||||
nsAttrValue
|
||||
DOMSVGTransform::NotifyElementWillChange()
|
||||
SVGTransform::NotifyElementWillChange()
|
||||
{
|
||||
nsAttrValue result;
|
||||
if (HasOwner()) {
|
||||
|
@ -193,8 +192,9 @@ DOMSVGTransform::NotifyElementWillChange()
|
|||
return result;
|
||||
}
|
||||
|
||||
} // namespace dom
|
||||
} // namespace mozilla
|
||||
|
||||
#undef MOZ_SVG_LIST_INDEX_BIT_COUNT
|
||||
|
||||
#endif // MOZILLA_DOMSVGTRANSFORM_H__
|
||||
#endif // mozilla_dom_SVGTransform_h
|
|
@ -14,6 +14,10 @@
|
|||
|
||||
namespace mozilla {
|
||||
|
||||
namespace dom {
|
||||
class SVGTransform;
|
||||
}
|
||||
|
||||
/**
|
||||
* ATTENTION! WARNING! WATCH OUT!!
|
||||
*
|
||||
|
@ -27,7 +31,7 @@ class SVGTransformList
|
|||
{
|
||||
friend class SVGAnimatedTransformList;
|
||||
friend class DOMSVGTransformList;
|
||||
friend class DOMSVGTransform;
|
||||
friend class dom::SVGTransform;
|
||||
|
||||
public:
|
||||
SVGTransformList() {}
|
||||
|
|
|
@ -907,8 +907,6 @@ DOMInterfaces = {
|
|||
},
|
||||
|
||||
'SVGTransform': {
|
||||
'nativeType': 'mozilla::DOMSVGTransform',
|
||||
'headerFile': 'DOMSVGTransform.h',
|
||||
'nativeOwnership': 'refcounted',
|
||||
'resultNotAddRefed': [ 'matrix' ]
|
||||
},
|
||||
|
|
Загрузка…
Ссылка в новой задаче