зеркало из https://github.com/mozilla/gecko-dev.git
Bug 1377999 - Make nsXULElement to adapt the DOMArena changes r=smaug
Differential Revision: https://phabricator.services.mozilla.com/D57705 --HG-- extra : moz-landing-system : lando
This commit is contained in:
Родитель
17552f5d3d
Коммит
a104d39094
|
@ -22,7 +22,9 @@ namespace dom {
|
|||
|
||||
nsXULElement* NS_NewXULPopupElement(
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo) {
|
||||
return new XULPopupElement(std::move(aNodeInfo));
|
||||
RefPtr<mozilla::dom::NodeInfo> nodeInfo(aNodeInfo);
|
||||
auto* nim = nodeInfo->NodeInfoManager();
|
||||
return new (nim) XULPopupElement(nodeInfo.forget());
|
||||
}
|
||||
|
||||
JSObject* XULPopupElement::WrapNode(JSContext* aCx,
|
||||
|
|
|
@ -16,8 +16,10 @@ namespace dom {
|
|||
|
||||
nsXULElement* NS_NewXULTooltipElement(
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo) {
|
||||
RefPtr<mozilla::dom::NodeInfo> nodeInfo(aNodeInfo);
|
||||
auto* nim = nodeInfo->NodeInfoManager();
|
||||
RefPtr<XULTooltipElement> tooltip =
|
||||
new XULTooltipElement(std::move(aNodeInfo));
|
||||
new (nim) XULTooltipElement(nodeInfo.forget());
|
||||
NS_ENSURE_SUCCESS(tooltip->Init(), nullptr);
|
||||
return tooltip;
|
||||
}
|
||||
|
|
|
@ -123,7 +123,9 @@ void nsXULElement::MaybeUpdatePrivateLifetime() {
|
|||
/* static */
|
||||
nsXULElement* NS_NewBasicXULElement(
|
||||
already_AddRefed<mozilla::dom::NodeInfo>&& aNodeInfo) {
|
||||
return new nsXULElement(std::move(aNodeInfo));
|
||||
RefPtr<mozilla::dom::NodeInfo> nodeInfo(std::move(aNodeInfo));
|
||||
auto* nim = nodeInfo->NodeInfoManager();
|
||||
return new (nim) nsXULElement(nodeInfo.forget());
|
||||
}
|
||||
|
||||
/* static */
|
||||
|
@ -132,7 +134,8 @@ nsXULElement* nsXULElement::Construct(
|
|||
RefPtr<mozilla::dom::NodeInfo> nodeInfo = aNodeInfo;
|
||||
if (nodeInfo->Equals(nsGkAtoms::label) ||
|
||||
nodeInfo->Equals(nsGkAtoms::description)) {
|
||||
return new XULTextElement(nodeInfo.forget());
|
||||
auto* nim = nodeInfo->NodeInfoManager();
|
||||
return new (nim) XULTextElement(nodeInfo.forget());
|
||||
}
|
||||
|
||||
if (nodeInfo->Equals(nsGkAtoms::menupopup) ||
|
||||
|
@ -148,16 +151,19 @@ nsXULElement* nsXULElement::Construct(
|
|||
if (nodeInfo->Equals(nsGkAtoms::iframe) ||
|
||||
nodeInfo->Equals(nsGkAtoms::browser) ||
|
||||
nodeInfo->Equals(nsGkAtoms::editor)) {
|
||||
return new XULFrameElement(nodeInfo.forget());
|
||||
auto* nim = nodeInfo->NodeInfoManager();
|
||||
return new (nim) XULFrameElement(nodeInfo.forget());
|
||||
}
|
||||
|
||||
if (nodeInfo->Equals(nsGkAtoms::menu) ||
|
||||
nodeInfo->Equals(nsGkAtoms::menulist)) {
|
||||
return new XULMenuElement(nodeInfo.forget());
|
||||
auto* nim = nodeInfo->NodeInfoManager();
|
||||
return new (nim) XULMenuElement(nodeInfo.forget());
|
||||
}
|
||||
|
||||
if (nodeInfo->Equals(nsGkAtoms::tree)) {
|
||||
return new XULTreeElement(nodeInfo.forget());
|
||||
auto* nim = nodeInfo->NodeInfoManager();
|
||||
return new (nim) XULTreeElement(nodeInfo.forget());
|
||||
}
|
||||
|
||||
return NS_NewBasicXULElement(nodeInfo.forget());
|
||||
|
|
Загрузка…
Ссылка в новой задаче