diff --git a/content/xml/document/public/MANIFEST b/content/xml/document/public/MANIFEST index 1cc23cf49087..23b711837fc5 100644 --- a/content/xml/document/public/MANIFEST +++ b/content/xml/document/public/MANIFEST @@ -1,3 +1,2 @@ nsIXMLContentSink.h -nsIXMLDocument.h -nsIXMLElementFactory.h +nsIXMLDocument.h \ No newline at end of file diff --git a/content/xml/document/public/Makefile.in b/content/xml/document/public/Makefile.in index f3cbcfaaacfa..263a04e63383 100644 --- a/content/xml/document/public/Makefile.in +++ b/content/xml/document/public/Makefile.in @@ -31,7 +31,6 @@ MODULE = layout EXPORTS = \ nsIXMLContentSink.h \ nsIXMLDocument.h \ - nsIXMLElementFactory.h \ $(NULL) EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS)) diff --git a/content/xml/document/public/makefile.win b/content/xml/document/public/makefile.win index 7f4ed39910d8..d82ad2f32b47 100644 --- a/content/xml/document/public/makefile.win +++ b/content/xml/document/public/makefile.win @@ -24,8 +24,7 @@ DEPTH=..\..\..\.. EXPORTS = \ nsIXMLContentSink.h \ nsIXMLDocument.h \ - nsIXMLElementFactory.h \ - $(NULL) + $(NULL) MODULE=raptor diff --git a/content/xml/document/src/nsXMLContentSink.cpp b/content/xml/document/src/nsXMLContentSink.cpp index 7a21e4d9a7e6..849d15736274 100644 --- a/content/xml/document/src/nsXMLContentSink.cpp +++ b/content/xml/document/src/nsXMLContentSink.cpp @@ -21,7 +21,7 @@ */ #include "nsCOMPtr.h" #include "nsXMLContentSink.h" -#include "nsIXMLElementFactory.h" +#include "nsIElementFactory.h" #include "nsIParser.h" #include "nsIUnicharInputStream.h" #include "nsIDocument.h" @@ -1853,7 +1853,7 @@ nsXMLContentSink::RefreshIfEnabled(nsIViewManager* vm) // XML Element Factory // -class XMLElementFactoryImpl : public nsIXMLElementFactory +class XMLElementFactoryImpl : public nsIElementFactory { protected: XMLElementFactoryImpl(); @@ -1862,13 +1862,13 @@ protected: public: friend nsresult - NS_NewXMLElementFactory(nsIXMLElementFactory** aResult); + NS_NewXMLElementFactory(nsIElementFactory** aResult); // nsISupports interface NS_DECL_ISUPPORTS - // nsIXMLElementFactory interface - NS_IMETHOD CreateInstanceByTag(const nsString& aTag, nsIXMLContent** aResult); + // nsIElementFactory interface + NS_IMETHOD CreateInstanceByTag(const nsString& aTag, nsIContent** aResult); }; @@ -1883,11 +1883,11 @@ XMLElementFactoryImpl::~XMLElementFactoryImpl() } -NS_IMPL_ISUPPORTS(XMLElementFactoryImpl, NS_GET_IID(nsIXMLElementFactory)); +NS_IMPL_ISUPPORTS(XMLElementFactoryImpl, NS_GET_IID(nsIElementFactory)); nsresult -NS_NewXMLElementFactory(nsIXMLElementFactory** aResult) +NS_NewXMLElementFactory(nsIElementFactory** aResult) { NS_PRECONDITION(aResult != nsnull, "null ptr"); if (! aResult) @@ -1905,12 +1905,17 @@ NS_NewXMLElementFactory(nsIXMLElementFactory** aResult) NS_IMETHODIMP -XMLElementFactoryImpl::CreateInstanceByTag(const nsString& aTag, nsIXMLContent** aResult) +XMLElementFactoryImpl::CreateInstanceByTag(const nsString& aTag, nsIContent** aResult) { nsCOMPtr tag = dont_AddRef(NS_NewAtom(aTag)); if (! tag) return NS_ERROR_OUT_OF_MEMORY; - return NS_NewXMLElement(aResult, tag); + nsCOMPtr xmlContent; + nsresult rv = NS_NewXMLElement(getter_AddRefs(xmlContent), tag); + nsCOMPtr result = do_QueryInterface(xmlContent); + *aResult = result; + NS_IF_ADDREF(*aResult); + return rv; } diff --git a/layout/xml/document/public/MANIFEST b/layout/xml/document/public/MANIFEST index 1cc23cf49087..23b711837fc5 100644 --- a/layout/xml/document/public/MANIFEST +++ b/layout/xml/document/public/MANIFEST @@ -1,3 +1,2 @@ nsIXMLContentSink.h -nsIXMLDocument.h -nsIXMLElementFactory.h +nsIXMLDocument.h \ No newline at end of file diff --git a/layout/xml/document/public/Makefile.in b/layout/xml/document/public/Makefile.in index f3cbcfaaacfa..263a04e63383 100644 --- a/layout/xml/document/public/Makefile.in +++ b/layout/xml/document/public/Makefile.in @@ -31,7 +31,6 @@ MODULE = layout EXPORTS = \ nsIXMLContentSink.h \ nsIXMLDocument.h \ - nsIXMLElementFactory.h \ $(NULL) EXPORTS := $(addprefix $(srcdir)/, $(EXPORTS)) diff --git a/layout/xml/document/public/makefile.win b/layout/xml/document/public/makefile.win index 7f4ed39910d8..d82ad2f32b47 100644 --- a/layout/xml/document/public/makefile.win +++ b/layout/xml/document/public/makefile.win @@ -24,8 +24,7 @@ DEPTH=..\..\..\.. EXPORTS = \ nsIXMLContentSink.h \ nsIXMLDocument.h \ - nsIXMLElementFactory.h \ - $(NULL) + $(NULL) MODULE=raptor diff --git a/layout/xml/document/public/nsIXMLElementFactory.h b/layout/xml/document/public/nsIXMLElementFactory.h deleted file mode 100644 index 7390df9d9bb5..000000000000 --- a/layout/xml/document/public/nsIXMLElementFactory.h +++ /dev/null @@ -1,50 +0,0 @@ -/* -*- Mode: c++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- - * - * The contents of this file are subject to the Netscape Public - * License Version 1.1 (the "License"); you may not use this file - * except in compliance with the License. You may obtain a copy of - * the License at http://www.mozilla.org/NPL/ - * - * Software distributed under the License is distributed on an "AS - * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or - * implied. See the License for the specific language governing - * rights and limitations under the License. - * - * The Original Code is Mozilla Communicator client code. - * - * The Initial Developer of the Original Code is Netscape Communications - * Corporation. Portions created by Netscape are - * Copyright (C) 1998 Netscape Communications Corporation. All - * Rights Reserved. - * - * Contributor(s): - */ -#ifndef nsIXMLElementFactory_h___ -#define nsIXMLElementFactory_h___ - -#include "nslayout.h" -#include "nsISupports.h" - -class nsIXMLContent; -class nsString; - -// {CF170390-79CC-11d3-BE44-0020A6361667} -#define NS_IXML_ELEMENT_FACTORY_IID \ -{ 0xcf170390, 0x79cc, 0x11d3, { 0xbe, 0x44, 0x0, 0x20, 0xa6, 0x36, 0x16, 0x67 } }; - -/** - * An API for creating XML content objects - */ -class nsIXMLElementFactory : public nsISupports { -public: - static const nsIID& GetIID() { static nsIID iid = NS_IXML_ELEMENT_FACTORY_IID; return iid; } - - NS_IMETHOD CreateInstanceByTag(const nsString& aTag, - nsIXMLContent** aResult) = 0; -}; - - -extern nsresult -NS_NewXMLElementFactory(nsIXMLElementFactory** aResult); - -#endif /* nsIXMLElementFactory_h___ */ diff --git a/layout/xml/document/src/nsXMLContentSink.cpp b/layout/xml/document/src/nsXMLContentSink.cpp index 7a21e4d9a7e6..849d15736274 100644 --- a/layout/xml/document/src/nsXMLContentSink.cpp +++ b/layout/xml/document/src/nsXMLContentSink.cpp @@ -21,7 +21,7 @@ */ #include "nsCOMPtr.h" #include "nsXMLContentSink.h" -#include "nsIXMLElementFactory.h" +#include "nsIElementFactory.h" #include "nsIParser.h" #include "nsIUnicharInputStream.h" #include "nsIDocument.h" @@ -1853,7 +1853,7 @@ nsXMLContentSink::RefreshIfEnabled(nsIViewManager* vm) // XML Element Factory // -class XMLElementFactoryImpl : public nsIXMLElementFactory +class XMLElementFactoryImpl : public nsIElementFactory { protected: XMLElementFactoryImpl(); @@ -1862,13 +1862,13 @@ protected: public: friend nsresult - NS_NewXMLElementFactory(nsIXMLElementFactory** aResult); + NS_NewXMLElementFactory(nsIElementFactory** aResult); // nsISupports interface NS_DECL_ISUPPORTS - // nsIXMLElementFactory interface - NS_IMETHOD CreateInstanceByTag(const nsString& aTag, nsIXMLContent** aResult); + // nsIElementFactory interface + NS_IMETHOD CreateInstanceByTag(const nsString& aTag, nsIContent** aResult); }; @@ -1883,11 +1883,11 @@ XMLElementFactoryImpl::~XMLElementFactoryImpl() } -NS_IMPL_ISUPPORTS(XMLElementFactoryImpl, NS_GET_IID(nsIXMLElementFactory)); +NS_IMPL_ISUPPORTS(XMLElementFactoryImpl, NS_GET_IID(nsIElementFactory)); nsresult -NS_NewXMLElementFactory(nsIXMLElementFactory** aResult) +NS_NewXMLElementFactory(nsIElementFactory** aResult) { NS_PRECONDITION(aResult != nsnull, "null ptr"); if (! aResult) @@ -1905,12 +1905,17 @@ NS_NewXMLElementFactory(nsIXMLElementFactory** aResult) NS_IMETHODIMP -XMLElementFactoryImpl::CreateInstanceByTag(const nsString& aTag, nsIXMLContent** aResult) +XMLElementFactoryImpl::CreateInstanceByTag(const nsString& aTag, nsIContent** aResult) { nsCOMPtr tag = dont_AddRef(NS_NewAtom(aTag)); if (! tag) return NS_ERROR_OUT_OF_MEMORY; - return NS_NewXMLElement(aResult, tag); + nsCOMPtr xmlContent; + nsresult rv = NS_NewXMLElement(getter_AddRefs(xmlContent), tag); + nsCOMPtr result = do_QueryInterface(xmlContent); + *aResult = result; + NS_IF_ADDREF(*aResult); + return rv; }