summaryrefslogtreecommitdiffstats
path: root/unoxml
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2010-10-14 13:04:33 +0100
committerCaolán McNamara <caolanm@redhat.com>2010-10-14 13:34:16 +0100
commit0e70d593ef28636a54f204b9a395e73f2308f4c4 (patch)
treeb2cd4dc8772fb253094724c8804a9700fb9b13bc /unoxml
parentfdo#30825# someone needs to hold the originating node (diff)
downloadcore-0e70d593ef28636a54f204b9a395e73f2308f4c4.tar.gz
core-0e70d593ef28636a54f204b9a395e73f2308f4c4.zip
fdo#30825# fix more ownership issues
Diffstat (limited to 'unoxml')
-rw-r--r--unoxml/source/xpath/nodelist.cxx3
-rw-r--r--unoxml/source/xpath/nodelist.hxx3
-rw-r--r--unoxml/source/xpath/xpathobject.cxx2
3 files changed, 5 insertions, 3 deletions
diff --git a/unoxml/source/xpath/nodelist.cxx b/unoxml/source/xpath/nodelist.cxx
index 5ae839a4e09b..4d7241e5b738 100644
--- a/unoxml/source/xpath/nodelist.cxx
+++ b/unoxml/source/xpath/nodelist.cxx
@@ -31,8 +31,9 @@
namespace XPath
{
- CNodeList::CNodeList(boost::shared_ptr<xmlXPathObject>& rxpathObj)
+ CNodeList::CNodeList(boost::shared_ptr<xmlXPathObject>& rxpathObj, const Reference< XNode >& contextNode)
: m_pNodeSet(0)
+ , m_xContextNode(contextNode)
{
if (rxpathObj != NULL && rxpathObj->type == XPATH_NODESET)
{
diff --git a/unoxml/source/xpath/nodelist.hxx b/unoxml/source/xpath/nodelist.hxx
index 68f419f10174..110e048b103c 100644
--- a/unoxml/source/xpath/nodelist.hxx
+++ b/unoxml/source/xpath/nodelist.hxx
@@ -53,10 +53,11 @@ namespace XPath
{
private:
boost::shared_ptr<xmlXPathObject> m_pXPathObj;
+ const Reference< XNode > m_xContextNode;
xmlNodeSetPtr m_pNodeSet;
public:
- CNodeList(boost::shared_ptr<xmlXPathObject> &rxpathObj);
+ CNodeList(boost::shared_ptr<xmlXPathObject> &rxpathObj, const Reference< XNode >& contextNode);
/**
The number of nodes in the list.
*/
diff --git a/unoxml/source/xpath/xpathobject.cxx b/unoxml/source/xpath/xpathobject.cxx
index 8d5343edbe97..1e20179a0d01 100644
--- a/unoxml/source/xpath/xpathobject.cxx
+++ b/unoxml/source/xpath/xpathobject.cxx
@@ -86,7 +86,7 @@ namespace XPath
*/
Reference< XNodeList > SAL_CALL CXPathObject::getNodeList() throw (RuntimeException)
{
- return Reference< XNodeList >(new CNodeList(m_pXPathObj));
+ return Reference< XNodeList >(new CNodeList(m_pXPathObj, m_xContextNode));
}
/**