Author: jmb
Date: Sat Sep 29 02:12:08 2007
New Revision: 3605
URL:
http://source.netsurf-browser.org?rev=3605&view=rev
Log:
Add finalisation method to libxml-libdom.
Ensure testcases clean up after themselves by calling xml_dom_binding_finalise()
Modified:
trunk/dom/bindings/xml/xmlbinding.c
trunk/dom/bindings/xml/xmlbinding.h
trunk/dom/test/lib/testobject.c
Modified: trunk/dom/bindings/xml/xmlbinding.c
URL:
http://source.netsurf-browser.org/trunk/dom/bindings/xml/xmlbinding.c?rev...
==============================================================================
--- trunk/dom/bindings/xml/xmlbinding.c (original)
+++ trunk/dom/bindings/xml/xmlbinding.c Sat Sep 29 02:12:08 2007
@@ -396,3 +396,21 @@
return XML_OK;
}
+/**
+ * Finalise the XML DOM binding
+ *
+ * \return XML_OK on success.
+ */
+xml_error xml_dom_binding_finalise(void)
+{
+ dom_exception err;
+
+ err = dom_finalise();
+ if (err != DOM_NO_ERR) {
+ /** \todo Do something about it */
+ }
+
+ return XML_OK;
+}
+
+
Modified: trunk/dom/bindings/xml/xmlbinding.h
URL:
http://source.netsurf-browser.org/trunk/dom/bindings/xml/xmlbinding.h?rev...
==============================================================================
--- trunk/dom/bindings/xml/xmlbinding.h (original)
+++ trunk/dom/bindings/xml/xmlbinding.h Sat Sep 29 02:12:08 2007
@@ -14,4 +14,7 @@
/* Initialise the XML DOM binding */
xml_error xml_dom_binding_initialise(xml_alloc alloc, void *pw);
+/* Finalise the XML DOM binding */
+xml_error xml_dom_binding_finalise(void);
+
#endif
Modified: trunk/dom/test/lib/testobject.c
URL:
http://source.netsurf-browser.org/trunk/dom/test/lib/testobject.c?rev=360...
==============================================================================
--- trunk/dom/test/lib/testobject.c (original)
+++ trunk/dom/test/lib/testobject.c Sat Sep 29 02:12:08 2007
@@ -15,16 +15,18 @@
#include "testobject.h"
#include "utils.h"
+static bool xml_parser_initialised;
+
struct TestObject {
xml_parser *parser;
struct dom_document *doc;
};
+static void test_object_cleanup(void);
+
TestObject *test_object_create(int argc, char **argv,
const char *uri, bool will_be_modified)
{
- static bool xml_parser_initialised;
-
char fnbuf[1024];
#define CHUNK_SIZE 4096
uint8_t buf[CHUNK_SIZE];
@@ -41,6 +43,8 @@
if (xml_parser_initialised == false) {
assert(xml_dom_binding_initialise(myrealloc, NULL) == XML_OK);
+
+ atexit(test_object_cleanup);
xml_parser_initialised = true;
}
@@ -113,4 +117,9 @@
return "text/xml";
}
+void test_object_cleanup(void)
+{
+ if (xml_parser_initialised)
+ xml_dom_binding_finalise();
+}