зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1446530. Change CloneDataNode to return already_AddRefed<CharacterData>. r=mystor
MozReview-Commit-ID: 1Clh4fG3GAq
This commit is contained in:
Родитель
2f66e620e3
Коммит
9ae8969557
|
@ -160,7 +160,7 @@ public:
|
|||
virtual nsresult Clone(dom::NodeInfo *aNodeInfo, nsINode **aResult,
|
||||
bool aPreallocateChildren) const override
|
||||
{
|
||||
nsCOMPtr<nsINode> result = CloneDataNode(aNodeInfo, true);
|
||||
RefPtr<CharacterData> result = CloneDataNode(aNodeInfo, true);
|
||||
result.forget(aResult);
|
||||
|
||||
if (!*aResult) {
|
||||
|
@ -218,8 +218,8 @@ protected:
|
|||
* @param aCloneText if true the text content will be cloned too
|
||||
* @return the clone
|
||||
*/
|
||||
virtual CharacterData *CloneDataNode(dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const = 0;
|
||||
virtual already_AddRefed<CharacterData>
|
||||
CloneDataNode(dom::NodeInfo *aNodeInfo, bool aCloneText) const = 0;
|
||||
|
||||
nsTextFragment mText;
|
||||
|
||||
|
|
|
@ -31,16 +31,16 @@ Comment::IsNodeOfType(uint32_t aFlags) const
|
|||
return !(aFlags & ~(eCOMMENT | eDATA_NODE));
|
||||
}
|
||||
|
||||
CharacterData*
|
||||
already_AddRefed<CharacterData>
|
||||
Comment::CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo, bool aCloneText) const
|
||||
{
|
||||
RefPtr<mozilla::dom::NodeInfo> ni = aNodeInfo;
|
||||
Comment *it = new Comment(ni.forget());
|
||||
if (it && aCloneText) {
|
||||
RefPtr<Comment> it = new Comment(ni.forget());
|
||||
if (aCloneText) {
|
||||
it->mText = mText;
|
||||
}
|
||||
|
||||
return it;
|
||||
return it.forget();
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
|
|
|
@ -45,8 +45,9 @@ public:
|
|||
// nsINode
|
||||
virtual bool IsNodeOfType(uint32_t aFlags) const override;
|
||||
|
||||
virtual CharacterData* CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const override;
|
||||
virtual already_AddRefed<CharacterData>
|
||||
CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const override;
|
||||
|
||||
virtual nsIDOMNode* AsDOMNode() override { return this; }
|
||||
#ifdef DEBUG
|
||||
|
|
|
@ -105,11 +105,11 @@ DocumentType::GetInternalSubset(nsAString& aInternalSubset) const
|
|||
aInternalSubset = mInternalSubset;
|
||||
}
|
||||
|
||||
CharacterData*
|
||||
already_AddRefed<CharacterData>
|
||||
DocumentType::CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo, bool aCloneText) const
|
||||
{
|
||||
already_AddRefed<mozilla::dom::NodeInfo> ni = RefPtr<mozilla::dom::NodeInfo>(aNodeInfo).forget();
|
||||
return new DocumentType(ni, mPublicId, mSystemId, mInternalSubset);
|
||||
return do_AddRef(new DocumentType(ni, mPublicId, mSystemId, mInternalSubset));
|
||||
}
|
||||
|
||||
} // namespace dom
|
||||
|
|
|
@ -55,8 +55,9 @@ public:
|
|||
// nsIContent overrides
|
||||
virtual const nsTextFragment* GetText() override;
|
||||
|
||||
virtual CharacterData* CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const override;
|
||||
virtual already_AddRefed<CharacterData>
|
||||
CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const override;
|
||||
|
||||
virtual nsIDOMNode* AsDOMNode() override { return this; }
|
||||
|
||||
|
|
|
@ -34,9 +34,9 @@ Text::SplitText(uint32_t aOffset, ErrorResult& aRv)
|
|||
|
||||
// Use Clone for creating the new node so that the new node is of same class
|
||||
// as this node!
|
||||
CharacterData* clone = CloneDataNode(mNodeInfo, false);
|
||||
RefPtr<CharacterData> clone = CloneDataNode(mNodeInfo, false);
|
||||
MOZ_ASSERT(clone && clone->IsText());
|
||||
RefPtr<Text> newContent = static_cast<Text*>(clone);
|
||||
RefPtr<Text> newContent = static_cast<Text*>(clone.get());
|
||||
|
||||
// nsRange expects the CharacterDataChanged notification is followed
|
||||
// by an insertion of |newContent|. If you change this code,
|
||||
|
|
|
@ -55,19 +55,19 @@ public:
|
|||
NS_DECL_NSIMUTATIONOBSERVER_ATTRIBUTECHANGED
|
||||
NS_DECL_NSIMUTATIONOBSERVER_NODEWILLBEDESTROYED
|
||||
|
||||
virtual CharacterData *CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const override
|
||||
virtual already_AddRefed<CharacterData>
|
||||
CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const override
|
||||
{
|
||||
already_AddRefed<mozilla::dom::NodeInfo> ni =
|
||||
RefPtr<mozilla::dom::NodeInfo>(aNodeInfo).forget();
|
||||
nsAttributeTextNode *it = new nsAttributeTextNode(ni,
|
||||
mNameSpaceID,
|
||||
mAttrName);
|
||||
if (it && aCloneText) {
|
||||
RefPtr<nsAttributeTextNode> it =
|
||||
new nsAttributeTextNode(ni, mNameSpaceID, mAttrName);
|
||||
if (aCloneText) {
|
||||
it->mText = mText;
|
||||
}
|
||||
|
||||
return it;
|
||||
return it.forget();
|
||||
}
|
||||
|
||||
// Public method for the event to run
|
||||
|
@ -113,16 +113,16 @@ nsTextNode::IsNodeOfType(uint32_t aFlags) const
|
|||
return !(aFlags & ~(eTEXT | eDATA_NODE));
|
||||
}
|
||||
|
||||
CharacterData*
|
||||
already_AddRefed<CharacterData>
|
||||
nsTextNode::CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo, bool aCloneText) const
|
||||
{
|
||||
already_AddRefed<mozilla::dom::NodeInfo> ni = RefPtr<mozilla::dom::NodeInfo>(aNodeInfo).forget();
|
||||
nsTextNode *it = new nsTextNode(ni);
|
||||
RefPtr<nsTextNode> it = new nsTextNode(ni);
|
||||
if (aCloneText) {
|
||||
it->mText = mText;
|
||||
}
|
||||
|
||||
return it;
|
||||
return it.forget();
|
||||
}
|
||||
|
||||
nsresult
|
||||
|
|
|
@ -50,8 +50,9 @@ public:
|
|||
// nsINode
|
||||
virtual bool IsNodeOfType(uint32_t aFlags) const override;
|
||||
|
||||
virtual CharacterData* CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const override;
|
||||
virtual already_AddRefed<CharacterData>
|
||||
CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const override;
|
||||
|
||||
virtual nsresult BindToTree(nsIDocument* aDocument, nsIContent* aParent,
|
||||
nsIContent* aBindingParent,
|
||||
|
|
|
@ -29,16 +29,16 @@ CDATASection::IsNodeOfType(uint32_t aFlags) const
|
|||
return !(aFlags & ~(eTEXT | eDATA_NODE));
|
||||
}
|
||||
|
||||
CharacterData*
|
||||
already_AddRefed<CharacterData>
|
||||
CDATASection::CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo, bool aCloneText) const
|
||||
{
|
||||
RefPtr<mozilla::dom::NodeInfo> ni = aNodeInfo;
|
||||
CDATASection *it = new CDATASection(ni.forget());
|
||||
if (it && aCloneText) {
|
||||
RefPtr<CDATASection> it = new CDATASection(ni.forget());
|
||||
if (aCloneText) {
|
||||
it->mText = mText;
|
||||
}
|
||||
|
||||
return it;
|
||||
return it.forget();
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
|
|
|
@ -47,8 +47,9 @@ public:
|
|||
// nsINode
|
||||
virtual bool IsNodeOfType(uint32_t aFlags) const override;
|
||||
|
||||
virtual CharacterData* CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const override;
|
||||
virtual already_AddRefed<CharacterData>
|
||||
CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const override;
|
||||
|
||||
virtual nsIDOMNode* AsDOMNode() override { return this; }
|
||||
#ifdef DEBUG
|
||||
|
|
|
@ -85,14 +85,14 @@ ProcessingInstruction::IsNodeOfType(uint32_t aFlags) const
|
|||
return !(aFlags & ~(ePROCESSING_INSTRUCTION | eDATA_NODE));
|
||||
}
|
||||
|
||||
CharacterData*
|
||||
already_AddRefed<CharacterData>
|
||||
ProcessingInstruction::CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const
|
||||
{
|
||||
nsAutoString data;
|
||||
GetData(data);
|
||||
RefPtr<mozilla::dom::NodeInfo> ni = aNodeInfo;
|
||||
return new ProcessingInstruction(ni.forget(), data);
|
||||
return do_AddRef(new ProcessingInstruction(ni.forget(), data));
|
||||
}
|
||||
|
||||
#ifdef DEBUG
|
||||
|
|
|
@ -28,8 +28,9 @@ public:
|
|||
// nsINode
|
||||
virtual bool IsNodeOfType(uint32_t aFlags) const override;
|
||||
|
||||
virtual CharacterData* CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const override;
|
||||
virtual already_AddRefed<CharacterData>
|
||||
CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const override;
|
||||
|
||||
#ifdef DEBUG
|
||||
virtual void List(FILE* out, int32_t aIndent) const override;
|
||||
|
|
|
@ -177,14 +177,14 @@ XMLStylesheetProcessingInstruction::GetStyleSheetInfo(nsAString& aTitle,
|
|||
aType.AssignLiteral("text/css");
|
||||
}
|
||||
|
||||
CharacterData*
|
||||
already_AddRefed<CharacterData>
|
||||
XMLStylesheetProcessingInstruction::CloneDataNode(mozilla::dom::NodeInfo *aNodeInfo,
|
||||
bool aCloneText) const
|
||||
{
|
||||
nsAutoString data;
|
||||
GetData(data);
|
||||
RefPtr<mozilla::dom::NodeInfo> ni = aNodeInfo;
|
||||
return new XMLStylesheetProcessingInstruction(ni.forget(), data);
|
||||
return do_AddRef(new XMLStylesheetProcessingInstruction(ni.forget(), data));
|
||||
}
|
||||
|
||||
} // namespace dom
|
||||
|
|
|
@ -82,8 +82,9 @@ protected:
|
|||
nsAString& aType,
|
||||
nsAString& aMedia,
|
||||
bool* aIsAlternate) final;
|
||||
CharacterData* CloneDataNode(mozilla::dom::NodeInfo* aNodeInfo,
|
||||
bool aCloneText) const final;
|
||||
already_AddRefed<CharacterData>
|
||||
CloneDataNode(mozilla::dom::NodeInfo* aNodeInfo,
|
||||
bool aCloneText) const final;
|
||||
};
|
||||
|
||||
} // namespace dom
|
||||
|
|
Загрузка…
Ссылка в новой задаче