summaryrefslogtreecommitdiff
path: root/unoxml
diff options
context:
space:
mode:
authorsb <sb@openoffice.org>2010-11-19 11:35:41 +0100
committersb <sb@openoffice.org>2010-11-19 11:35:41 +0100
commitf68a775489a364249e72befedd1a6fe268f428ce (patch)
treeca3a963f43969b6f66a06caf32e75455e3901fe8 /unoxml
parentbd8a2d12d3db79f2a904763ee122bbfe5627ed00 (diff)
parent9c16b686c71855df1bbcbf1bcc4b175c48abb49c (diff)
sb131: merged in re/DEV300_next towards DEV300_m94
Diffstat (limited to 'unoxml')
-rw-r--r--unoxml/source/dom/document.cxx38
-rw-r--r--unoxml/source/dom/document.hxx5
-rw-r--r--unoxml/source/dom/node.cxx16
-rw-r--r--unoxml/source/rdf/librdf_repository.cxx18
-rw-r--r--unoxml/source/xpath/xpathapi.cxx2
-rw-r--r--unoxml/source/xpath/xpathapi.hxx2
-rw-r--r--unoxml/source/xpath/xpathobject.cxx4
-rw-r--r--unoxml/source/xpath/xpathobject.hxx3
8 files changed, 14 insertions, 74 deletions
diff --git a/unoxml/source/dom/document.cxx b/unoxml/source/dom/document.cxx
index 656aa1cbef6c..fcd43832adf0 100644
--- a/unoxml/source/dom/document.cxx
+++ b/unoxml/source/dom/document.cxx
@@ -53,50 +53,12 @@
namespace DOM
{
- void CDocument::addnode(xmlNodePtr aNode)
- {
- if (aNode != (xmlNodePtr)m_aDocPtr)
- {
- Reference< XNode >* nref = new Reference< XNode >(CNode::get(aNode));
- m_aNodeRefList.push_back(nref);
- }
- }
-
CDocument::~CDocument()
{
- Reference< XNode >* pRef;
- nodereflist_t::const_iterator r = m_aNodeRefList.begin();
- while (r!=m_aNodeRefList.end())
- {
- pRef = *r;
- delete pRef;
- r++;
- }
-
- // get rid of leftover instances, if anybody still holds a
- // reference to one of these, it will be invalid!
- /*
- CNode* aNode = 0;
- nodelist_t::const_iterator i = m_aNodeList.begin();
- while (i!=m_aNodeList.end())
- {
- aNode = CNode::get(*i, sal_False);
- if (aNode != 0)
- {
- // CNode::remove(*i);
- // delete will remove
- delete aNode;
- }
- i++;
- }
- */
-
xmlFreeDoc(m_aDocPtr);
-
}
CDocument::CDocument(xmlDocPtr aDocPtr):
- m_aNodeRefList(),
m_aDocPtr(aDocPtr),
m_streamListeners()
{
diff --git a/unoxml/source/dom/document.hxx b/unoxml/source/dom/document.hxx
index b653619031a1..3fe593ff2b24 100644
--- a/unoxml/source/dom/document.hxx
+++ b/unoxml/source/dom/document.hxx
@@ -72,12 +72,9 @@ namespace DOM
XActiveDataControl, XActiveDataSource, XSAXSerializable, XFastSAXSerializable>
{
friend class CNode;
- typedef std::list< Reference< XNode >* > nodereflist_t;
typedef set< Reference< XStreamListener > > listenerlist_t;
private:
- nodereflist_t m_aNodeRefList;
-
xmlDocPtr m_aDocPtr;
// datacontrol/source state
@@ -87,8 +84,6 @@ namespace DOM
protected:
CDocument(xmlDocPtr aDocPtr);
- void addnode(xmlNodePtr aNode);
-
public:
virtual ~CDocument();
diff --git a/unoxml/source/dom/node.cxx b/unoxml/source/dom/node.cxx
index fb4a6bf508b3..d4b317b425b3 100644
--- a/unoxml/source/dom/node.cxx
+++ b/unoxml/source/dom/node.cxx
@@ -228,7 +228,7 @@ namespace DOM
// m_aNodeType = NodeType::NOTATION_NODE;
pNode = static_cast< CNode* >(new CAttr((xmlAttrPtr)aNode));
break;
- // unsopported node types
+ // unsupported node types
case XML_HTML_DOCUMENT_NODE:
case XML_ELEMENT_DECL:
case XML_ATTRIBUTE_DECL:
@@ -238,18 +238,10 @@ namespace DOM
pNode = 0;
break;
}
- }
- if ( pNode != 0 )
- {
- if(CNode::theNodeMap.insert(nodemap_t::value_type(aNode, pNode)).second)
+
+ if ( pNode != 0 )
{
- // insertion done, register node with document
- xmlDocPtr doc = aNode->doc;
- if( doc != NULL)
- {
- CDocument* pDoc = static_cast< CDocument* >(CNode::get((xmlNodePtr)doc));
- pDoc->addnode(aNode);
- } else
+ if(!CNode::theNodeMap.insert(nodemap_t::value_type(aNode, pNode)).second)
{
// if insertion failed, delete the new instance and return null
delete pNode;
diff --git a/unoxml/source/rdf/librdf_repository.cxx b/unoxml/source/rdf/librdf_repository.cxx
index a7e50e7e232d..83de4df8050f 100644
--- a/unoxml/source/rdf/librdf_repository.cxx
+++ b/unoxml/source/rdf/librdf_repository.cxx
@@ -39,7 +39,10 @@
#include <boost/shared_array.hpp>
#include <boost/bind.hpp>
-#include <librdf.h>
+#include <libxslt/security.h>
+
+// #i114999# do not include librdf.h, it is broken in redland 1.0.11
+#include <redland.h>
#include <com/sun/star/lang/XServiceInfo.hpp>
#include <com/sun/star/lang/XInitialization.hpp>
@@ -64,19 +67,6 @@
#include <comphelper/stlunosequence.hxx>
#include <comphelper/sequenceasvector.hxx>
#include <comphelper/makesequence.hxx>
-#include <librdf.h>
-#include <libxslt/security.h>
-
-#include <boost/utility.hpp>
-#include <boost/shared_ptr.hpp>
-#include <boost/shared_array.hpp>
-#include <boost/bind.hpp>
-
-#include <map>
-#include <functional>
-#include <algorithm>
-
-#include <string.h>
/**
diff --git a/unoxml/source/xpath/xpathapi.cxx b/unoxml/source/xpath/xpathapi.cxx
index 80666d9e2031..f40082e25e9b 100644
--- a/unoxml/source/xpath/xpathapi.cxx
+++ b/unoxml/source/xpath/xpathapi.cxx
@@ -352,7 +352,7 @@ namespace XPath
throw XPathException();
}
xmlXPathFreeContext(xpathCtx);
- Reference< XXPathObject > aObj(new CXPathObject(xpathObj));
+ Reference< XXPathObject > aObj(new CXPathObject(xpathObj, contextNode));
return aObj;
}
diff --git a/unoxml/source/xpath/xpathapi.hxx b/unoxml/source/xpath/xpathapi.hxx
index fdfff24353cc..048fafaae8e9 100644
--- a/unoxml/source/xpath/xpathapi.hxx
+++ b/unoxml/source/xpath/xpathapi.hxx
@@ -69,7 +69,7 @@ namespace XPath
private:
nsmap_t m_nsmap;
- const Reference < XMultiServiceFactory >& m_aFactory;
+ const Reference< XMultiServiceFactory > m_aFactory;
extensions_t m_extensions;
public:
diff --git a/unoxml/source/xpath/xpathobject.cxx b/unoxml/source/xpath/xpathobject.cxx
index 083d19080c4b..757de0c5aac4 100644
--- a/unoxml/source/xpath/xpathobject.cxx
+++ b/unoxml/source/xpath/xpathobject.cxx
@@ -31,8 +31,8 @@
namespace XPath
{
- CXPathObject::CXPathObject(xmlXPathObjectPtr xpathObj)
- : m_pXPathObj(xpathObj, xmlXPathFreeObject)
+ CXPathObject::CXPathObject(xmlXPathObjectPtr xpathObj, const Reference< XNode >& contextNode)
+ : m_pXPathObj(xpathObj, xmlXPathFreeObject), m_xContextNode(contextNode)
{
switch (m_pXPathObj->type)
{
diff --git a/unoxml/source/xpath/xpathobject.hxx b/unoxml/source/xpath/xpathobject.hxx
index 8e256bc8a994..348fae8e21e6 100644
--- a/unoxml/source/xpath/xpathobject.hxx
+++ b/unoxml/source/xpath/xpathobject.hxx
@@ -52,10 +52,11 @@ namespace XPath
{
private:
boost::shared_ptr<xmlXPathObject> m_pXPathObj;
+ const Reference< XNode > m_xContextNode;
XPathObjectType m_xPathObjectType;
public:
- CXPathObject(xmlXPathObjectPtr xpathObj);
+ CXPathObject(xmlXPathObjectPtr xpathObj, const Reference< XNode >& contextNode);
/**
get object type