xmlfix3: unoxml: fix CNotationsMap: member pointer does not keep document alive

This commit is contained in:
Michael Stahl 2011-01-19 20:27:24 +01:00
parent 711668c784
commit 6f147497c0
2 changed files with 60 additions and 28 deletions

View file

@ -25,12 +25,16 @@
*
************************************************************************/
#include "notationsmap.hxx"
#include <notationsmap.hxx>
#include <documenttype.hxx>
namespace DOM
{
CNotationsMap::CNotationsMap(const CDocumentType* aDocType)
: m_pDocType(aDocType)
CNotationsMap::CNotationsMap(
::rtl::Reference<CDocumentType> const& pDocType)
: m_pDocType(pDocType)
{
}
@ -45,7 +49,9 @@ namespace DOM
/**
Retrieves a node specified by local name
*/
Reference< XNode > SAL_CALL CNotationsMap::getNamedItem(const OUString& /* name */) throw (RuntimeException)
Reference< XNode > SAL_CALL
CNotationsMap::getNamedItem(OUString const& /*name*/)
throw (RuntimeException)
{
return Reference< XNode >();
}
@ -53,8 +59,10 @@ namespace DOM
/**
Retrieves a node specified by local name and namespace URI.
*/
Reference< XNode > SAL_CALL CNotationsMap::getNamedItemNS(const OUString& /*namespaceURI*/, const OUString& /*localName*/)
throw (RuntimeException)
Reference< XNode > SAL_CALL
CNotationsMap::getNamedItemNS(
OUString const& /*namespaceURI*/, OUString const& /*localName*/)
throw (RuntimeException)
{
return Reference< XNode >();
}
@ -62,7 +70,8 @@ throw (RuntimeException)
/**
Returns the indexth item in the map.
*/
Reference< XNode > SAL_CALL CNotationsMap::item(sal_Int32 /*index*/) throw (RuntimeException)
Reference< XNode > SAL_CALL
CNotationsMap::item(sal_Int32 /*index*/) throw (RuntimeException)
{
return Reference< XNode >();
}
@ -70,7 +79,9 @@ throw (RuntimeException)
/**
Removes a node specified by name.
*/
Reference< XNode > SAL_CALL CNotationsMap::removeNamedItem(const OUString& /*name*/) throw (RuntimeException)
Reference< XNode > SAL_CALL
CNotationsMap::removeNamedItem(OUString const& /*name*/)
throw (RuntimeException)
{
return Reference< XNode >();
}
@ -78,7 +89,10 @@ throw (RuntimeException)
/**
// Removes a node specified by local name and namespace URI.
*/
Reference< XNode > SAL_CALL CNotationsMap::removeNamedItemNS(const OUString& /*namespaceURI*/, const OUString& /*localName*/) throw (RuntimeException)
Reference< XNode > SAL_CALL
CNotationsMap::removeNamedItemNS(
OUString const& /*namespaceURI*/, OUString const& /*localName*/)
throw (RuntimeException)
{
return Reference< XNode >();
}
@ -86,7 +100,9 @@ throw (RuntimeException)
/**
// Adds a node using its nodeName attribute.
*/
Reference< XNode > SAL_CALL CNotationsMap::setNamedItem(const Reference< XNode >& /*arg*/) throw (RuntimeException)
Reference< XNode > SAL_CALL
CNotationsMap::setNamedItem(Reference< XNode > const& /*arg*/)
throw (RuntimeException)
{
return Reference< XNode >();
}
@ -94,7 +110,9 @@ throw (RuntimeException)
/**
Adds a node using its namespaceURI and localName.
*/
Reference< XNode > SAL_CALL CNotationsMap::setNamedItemNS(const Reference< XNode >& /*arg*/) throw (RuntimeException)
Reference< XNode > SAL_CALL
CNotationsMap::setNamedItemNS(Reference< XNode > const& /*arg*/)
throw (RuntimeException)
{
return Reference< XNode >();
}

View file

@ -25,18 +25,18 @@
*
************************************************************************/
#ifndef _NOTATIONSMAP_HXX
#define _NOTATIONSMAP_HXX
#ifndef DOM_NOTATIONSMAP_HXX
#define DOM_NOTATIONSMAP_HXX
#include <map>
#include <sal/types.h>
#include <cppuhelper/implbase1.hxx>
#include <rtl/ref.hxx>
#include <com/sun/star/uno/Reference.h>
#include <com/sun/star/uno/Exception.hpp>
#include <com/sun/star/xml/dom/XNode.hpp>
#include <com/sun/star/xml/dom/XNamedNodeMap.hpp>
#include "document.hxx"
#include "documenttype.hxx"
#include <cppuhelper/implbase1.hxx>
using ::rtl::OUString;
using namespace com::sun::star::uno;
@ -44,13 +44,16 @@ using namespace com::sun::star::xml::dom;
namespace DOM
{
class CNotationsMap : public cppu::WeakImplHelper1< XNamedNodeMap >
class CDocumentType;
class CNotationsMap
: public cppu::WeakImplHelper1< XNamedNodeMap >
{
private:
const CDocumentType* m_pDocType;
::rtl::Reference<CDocumentType> const m_pDocType;
public:
CNotationsMap(const CDocumentType* aDocType);
CNotationsMap(::rtl::Reference<CDocumentType> const& pDocType);
/**
The number of nodes in this map.
@ -60,37 +63,48 @@ namespace DOM
/**
Retrieves a node specified by local name
*/
virtual Reference< XNode > SAL_CALL getNamedItem(const OUString& name) throw (RuntimeException);
virtual Reference< XNode > SAL_CALL
getNamedItem(OUString const& name) throw (RuntimeException);
/**
Retrieves a node specified by local name and namespace URI.
*/
virtual Reference< XNode > SAL_CALL getNamedItemNS(const OUString& namespaceURI,const OUString& localName) throw (RuntimeException);
virtual Reference< XNode > SAL_CALL getNamedItemNS(
OUString const& namespaceURI, OUString const& localName)
throw (RuntimeException);
/**
Returns the indexth item in the map.
*/
virtual Reference< XNode > SAL_CALL item(sal_Int32 index) throw (RuntimeException);
virtual Reference< XNode > SAL_CALL
item(sal_Int32 index) throw (RuntimeException);
/**
Removes a node specified by name.
*/
virtual Reference< XNode > SAL_CALL removeNamedItem(const OUString& name) throw (RuntimeException);
virtual Reference< XNode > SAL_CALL
removeNamedItem(OUString const& name) throw (RuntimeException);
/**
// Removes a node specified by local name and namespace URI.
*/
virtual Reference< XNode > SAL_CALL removeNamedItemNS(const OUString& namespaceURI, const OUString& localName) throw (RuntimeException);
virtual Reference< XNode > SAL_CALL removeNamedItemNS(
OUString const& namespaceURI, OUString const& localName)
throw (RuntimeException);
/**
// Adds a node using its nodeName attribute.
*/
virtual Reference< XNode > SAL_CALL setNamedItem(const Reference< XNode >& arg) throw (RuntimeException);
virtual Reference< XNode > SAL_CALL
setNamedItem(Reference< XNode > const& arg)
throw (RuntimeException);
/**
Adds a node using its namespaceURI and localName.
*/
virtual Reference< XNode > SAL_CALL setNamedItemNS(const Reference< XNode >& arg) throw (RuntimeException);
virtual Reference< XNode > SAL_CALL
setNamedItemNS(Reference< XNode > const& arg)
throw (RuntimeException);
};
}