[kaffe] CVS kaffe (dalibor): Resynced with GNU JAXP
Kaffe CVS
cvs-commits at kaffe.org
Sun Aug 15 20:04:27 PDT 2004
PatchSet 5070
Date: 2004/08/16 02:43:39
Author: dalibor
Branch: HEAD
Tag: (none)
Log:
Resynced with GNU JAXP
2004-08-15 Dalibor Topic <robilad at kaffe.org>
* include/Makefile.am:
Added new libxmlj includes, and remove no longer needed ones.
* include/Makefile.in,
libraries/javalib/Makefile.am,
libraries/javalib/Makefile.in,
libraries/javalib/all.files:
Regnerated.
* libraries/clib/libxmlj/xmlj_dom.c,
libraries/clib/libxmlj/xmlj_dom.h,
libraries/clib/libxmlj/xmlj_io.c,
libraries/clib/libxmlj/xmlj_io.h,
libraries/clib/libxmlj/xmlj_sax.c,
libraries/clib/libxmlj/xmlj_transform.c,
libraries/clib/libxmlj/xmlj_util.c,
libraries/clib/libxmlj/xmlj_util.h,
libraries/clib/libxmlj/xmlj_xpath.c,
libraries/javalib/gnu/xml/aelfred2/SAXDriver.java,
libraries/javalib/gnu/xml/aelfred2/XmlParser.java,
libraries/javalib/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java,
libraries/javalib/gnu/xml/libxmlj/dom/GnomeElement.java,
libraries/javalib/gnu/xml/libxmlj/dom/GnomeXPathExpression.java,
libraries/javalib/gnu/xml/libxmlj/sax/GnomeLocator.java,
libraries/javalib/gnu/xml/libxmlj/sax/GnomeXMLReader.java,
libraries/javalib/gnu/xml/libxmlj/sax/StringArrayAttributes.java,
libraries/javalib/gnu/xml/libxmlj/sax/XMLName.java,
libraries/javalib/gnu/xml/libxmlj/transform/GnomeTransformer.java,
libraries/javalib/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java,
libraries/javalib/gnu/xml/libxmlj/util/XMLJ.java,
libraries/javalib/org/w3c/dom/bootstrap/DOMImplementationRegistry.java:
Resynced with GNU JAXP.
2004-08-10 Chris Burdess <dog at gnu.org>
* transform: Fixed imports.
2004-07-30 Chris Burdess <dog at gnu.org>
* transform: Added support for DOMSource and DOMResult transforms
to/from GnomeDocument nodes.
2004-07-27 Chris Burdess <dog at gnu.org>
* GnomeElement: getAttribute(NS) returns empty strings instead of
null.
* sax: Cached java.lang.String class.
2004-08-10 Musachy Barroso <musachy at gmail.com>
* XmlParser.java: Fixed bug while reading 0x2028. Check
for document version in external subset.
2004-08-10 Musachy Barroso <musachy at gmail.com>
* XmlParser.java: Convert 0x2028 to '\r' when document is 1.1
2004-08-08 Musachy Barroso <musachy at gmail.com>
* XmlParser.java: Report start name characters that are not
BaseChar. (more of them)
2004-08-08 Musachy Barroso <musachy at gmail.com>
* XmlParser.java: Report start name characters that are not
BaseChar.
2004-08-08 Musachy Barroso <musachy at gmail.com>
* XmlParser.java: Report NEL characters as igorable if document
is 1.1
2004-08-07 Musachy Barroso <musachy at gmail.com>
* XmlParser.java: Fixed bug while reading whitespaces in elements
content.
2004-08-06 Musachy Barroso <musachy at gmail.com>
* SAXDriver.java: Check added for missing prefix in namespace
declaration attribute.
2004-08-06 Musachy Barroso <musachy at gmail.com>
* XmlParser.java: Partial character ref, partial entity
references checks, moved to parseEntity(...)
2004-08-06 Musachy Barroso <musachy at gmail.com>
* SAXDriver.java: Checks added for colon in entities, PI and
notations. Unbounded prefixes error changed to fatal.
2004-08-05 Musachy Barroso <musachy at gmail.com>
* SAXDriver.java: Fixed bug intruduced with the partial character
ref, partial entity references checks.
2004-08-05 Musachy Barroso <musachy at gmail.com>
* SAXDriver.java: Fixed bug intruduced with the partial character
ref, partial entity references checks.
2004-08-03 Musachy Barroso <musachy at gmail.com>
* SAXDriver.java: Check added for namespaces names containing only
':'.
2004-07-31 Musachy Barroso <musachy at gmail.com>
* XmlParser.java: Improved check for partial character references
and partial entity references in internal entities.
2004-07-31 Musachy Barroso <musachy at gmail.com>
* XmlParser.java: Added check for partial character references
in internal entities.
2004-07-29 Musachy Barroso <musachy at gmail.com>
* SAXDriver.java: Added checks for invalid use of reserved
prefixes and namespaces.
2004-07-28 Musachy Barroso <musachy at gmail.com>
* XmlParser.java: Invalidate character range [0x7f - 0x9f] if the
document version is 1.1. 0x85(NEL) is still valid.
2004-07-25 Musachy Barroso <musachy at gmail.com>
* XmlParser.java: Fixed end-of-line handling to comply with sec 2.11.
Members:
ChangeLog:1.2628->1.2629
include/Makefile.am:1.71->1.72
include/Makefile.in:1.183->1.184
libraries/clib/libxmlj/xmlj_dom.c:1.4->1.5
libraries/clib/libxmlj/xmlj_dom.h:1.3->1.4
libraries/clib/libxmlj/xmlj_io.c:1.5->1.6
libraries/clib/libxmlj/xmlj_io.h:1.4->1.5
libraries/clib/libxmlj/xmlj_sax.c:1.4->1.5
libraries/clib/libxmlj/xmlj_transform.c:1.4->1.5
libraries/clib/libxmlj/xmlj_util.c:1.3->1.4
libraries/clib/libxmlj/xmlj_util.h:1.3->1.4
libraries/clib/libxmlj/xmlj_xpath.c:1.3->1.4
libraries/javalib/Makefile.am:1.221->1.222
libraries/javalib/Makefile.in:1.298->1.299
libraries/javalib/all.files:1.15->1.16
libraries/javalib/gnu/xml/aelfred2/SAXDriver.java:1.9->1.10
libraries/javalib/gnu/xml/aelfred2/XmlParser.java:1.8->1.9
libraries/javalib/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java:1.3->1.4
libraries/javalib/gnu/xml/libxmlj/dom/GnomeElement.java:1.3->1.4
libraries/javalib/gnu/xml/libxmlj/dom/GnomeXPathExpression.java:1.2->1.3
libraries/javalib/gnu/xml/libxmlj/sax/GnomeLocator.java:1.2->1.3
libraries/javalib/gnu/xml/libxmlj/sax/GnomeXMLReader.java:1.2->1.3
libraries/javalib/gnu/xml/libxmlj/sax/StringArrayAttributes.java:1.2->1.3
libraries/javalib/gnu/xml/libxmlj/sax/XMLName.java:1.2->1.3
libraries/javalib/gnu/xml/libxmlj/transform/ErrorListenerErrorHandler.java:INITIAL->1.1
libraries/javalib/gnu/xml/libxmlj/transform/ErrorListenerProxy.java:1.2->1.3(DEAD)
libraries/javalib/gnu/xml/libxmlj/transform/GnomeTemplates.java:1.1->1.2(DEAD)
libraries/javalib/gnu/xml/libxmlj/transform/GnomeTransformer.java:1.1->1.2
libraries/javalib/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java:1.2->1.3
libraries/javalib/gnu/xml/libxmlj/transform/JavaContext.java:1.4->1.5(DEAD)
libraries/javalib/gnu/xml/libxmlj/transform/LibxsltStylesheet.java:1.4->1.5(DEAD)
libraries/javalib/gnu/xml/libxmlj/transform/URIResolverEntityResolver.java:INITIAL->1.1
libraries/javalib/gnu/xml/libxmlj/transform/URIResolverProxy.java:1.2->1.3(DEAD)
libraries/javalib/gnu/xml/libxmlj/util/XMLJ.java:1.2->1.3
libraries/javalib/org/w3c/dom/bootstrap/DOMImplementationRegistry.java:1.1->1.2
Index: kaffe/ChangeLog
diff -u kaffe/ChangeLog:1.2628 kaffe/ChangeLog:1.2629
--- kaffe/ChangeLog:1.2628 Mon Aug 16 00:41:14 2004
+++ kaffe/ChangeLog Mon Aug 16 02:43:39 2004
@@ -1,5 +1,138 @@
2004-08-15 Dalibor Topic <robilad at kaffe.org>
+ * include/Makefile.am:
+ Added new libxmlj includes, and remove no longer needed ones.
+
+ * include/Makefile.in,
+ libraries/javalib/Makefile.am,
+ libraries/javalib/Makefile.in,
+ libraries/javalib/all.files:
+ Regnerated.
+
+ * libraries/clib/libxmlj/xmlj_dom.c,
+ libraries/clib/libxmlj/xmlj_dom.h,
+ libraries/clib/libxmlj/xmlj_io.c,
+ libraries/clib/libxmlj/xmlj_io.h,
+ libraries/clib/libxmlj/xmlj_sax.c,
+ libraries/clib/libxmlj/xmlj_transform.c,
+ libraries/clib/libxmlj/xmlj_util.c,
+ libraries/clib/libxmlj/xmlj_util.h,
+ libraries/clib/libxmlj/xmlj_xpath.c,
+ libraries/javalib/gnu/xml/aelfred2/SAXDriver.java,
+ libraries/javalib/gnu/xml/aelfred2/XmlParser.java,
+ libraries/javalib/gnu/xml/libxmlj/dom/GnomeDocumentBuilder.java,
+ libraries/javalib/gnu/xml/libxmlj/dom/GnomeElement.java,
+ libraries/javalib/gnu/xml/libxmlj/dom/GnomeXPathExpression.java,
+ libraries/javalib/gnu/xml/libxmlj/sax/GnomeLocator.java,
+ libraries/javalib/gnu/xml/libxmlj/sax/GnomeXMLReader.java,
+ libraries/javalib/gnu/xml/libxmlj/sax/StringArrayAttributes.java,
+ libraries/javalib/gnu/xml/libxmlj/sax/XMLName.java,
+ libraries/javalib/gnu/xml/libxmlj/transform/GnomeTransformer.java,
+ libraries/javalib/gnu/xml/libxmlj/transform/GnomeTransformerFactory.java,
+ libraries/javalib/gnu/xml/libxmlj/util/XMLJ.java,
+ libraries/javalib/org/w3c/dom/bootstrap/DOMImplementationRegistry.java:
+ Resynced with GNU JAXP.
+
+ 2004-08-10 Chris Burdess <dog at gnu.org>
+
+ * transform: Fixed imports.
+
+ 2004-07-30 Chris Burdess <dog at gnu.org>
+
+ * transform: Added support for DOMSource and DOMResult transforms
+ to/from GnomeDocument nodes.
+
+ 2004-07-27 Chris Burdess <dog at gnu.org>
+
+ * GnomeElement: getAttribute(NS) returns empty strings instead of
+ null.
+ * sax: Cached java.lang.String class.
+
+ 2004-08-10 Musachy Barroso <musachy at gmail.com>
+
+ * XmlParser.java: Fixed bug while reading 0x2028. Check
+ for document version in external subset.
+
+ 2004-08-10 Musachy Barroso <musachy at gmail.com>
+
+ * XmlParser.java: Convert 0x2028 to '\r' when document is 1.1
+
+ 2004-08-08 Musachy Barroso <musachy at gmail.com>
+
+ * XmlParser.java: Report start name characters that are not
+ BaseChar. (more of them)
+
+ 2004-08-08 Musachy Barroso <musachy at gmail.com>
+
+ * XmlParser.java: Report start name characters that are not
+ BaseChar.
+
+ 2004-08-08 Musachy Barroso <musachy at gmail.com>
+
+ * XmlParser.java: Report NEL characters as igorable if document
+ is 1.1
+
+ 2004-08-07 Musachy Barroso <musachy at gmail.com>
+
+ * XmlParser.java: Fixed bug while reading whitespaces in elements
+ content.
+
+ 2004-08-06 Musachy Barroso <musachy at gmail.com>
+
+ * SAXDriver.java: Check added for missing prefix in namespace
+ declaration attribute.
+
+ 2004-08-06 Musachy Barroso <musachy at gmail.com>
+
+ * XmlParser.java: Partial character ref, partial entity
+ references checks, moved to parseEntity(...)
+
+ 2004-08-06 Musachy Barroso <musachy at gmail.com>
+
+ * SAXDriver.java: Checks added for colon in entities, PI and
+ notations. Unbounded prefixes error changed to fatal.
+
+ 2004-08-05 Musachy Barroso <musachy at gmail.com>
+
+ * SAXDriver.java: Fixed bug intruduced with the partial character
+ ref, partial entity references checks.
+
+ 2004-08-05 Musachy Barroso <musachy at gmail.com>
+
+ * SAXDriver.java: Fixed bug intruduced with the partial character
+ ref, partial entity references checks.
+
+ 2004-08-03 Musachy Barroso <musachy at gmail.com>
+
+ * SAXDriver.java: Check added for namespaces names containing only
+ ':'.
+
+ 2004-07-31 Musachy Barroso <musachy at gmail.com>
+
+ * XmlParser.java: Improved check for partial character references
+ and partial entity references in internal entities.
+
+ 2004-07-31 Musachy Barroso <musachy at gmail.com>
+
+ * XmlParser.java: Added check for partial character references
+ in internal entities.
+
+ 2004-07-29 Musachy Barroso <musachy at gmail.com>
+
+ * SAXDriver.java: Added checks for invalid use of reserved
+ prefixes and namespaces.
+
+ 2004-07-28 Musachy Barroso <musachy at gmail.com>
+
+ * XmlParser.java: Invalidate character range [0x7f - 0x9f] if the
+ document version is 1.1. 0x85(NEL) is still valid.
+
+ 2004-07-25 Musachy Barroso <musachy at gmail.com>
+
+ * XmlParser.java: Fixed end-of-line handling to comply with sec 2.11.
+
+2004-08-15 Dalibor Topic <robilad at kaffe.org>
+
* libraries/javalib/java/security/DummyMessageDigest.java:
New file. Taken from GNU Classpath.
Index: kaffe/include/Makefile.am
diff -u kaffe/include/Makefile.am:1.71 kaffe/include/Makefile.am:1.72
--- kaffe/include/Makefile.am:1.71 Sun Aug 15 20:02:27 2004
+++ kaffe/include/Makefile.am Mon Aug 16 02:43:42 2004
@@ -172,17 +172,17 @@
gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h \
gnu_xml_libxmlj_dom_GnomeNode.h \
gnu_xml_libxmlj_dom_GnomeNodeList.h \
+ gnu_xml_libxmlj_dom_GnomeNotation.h \
gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \
gnu_xml_libxmlj_dom_GnomeTypeInfo.h \
- gnu_xml_libxmlj_sax_GnomeLocator.h \
- gnu_xml_libxmlj_sax_GnomeXMLReader.h \
gnu_xml_libxmlj_dom_GnomeXPathExpression.h \
gnu_xml_libxmlj_dom_GnomeXPathNodeList.h \
gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h \
gnu_xml_libxmlj_dom_GnomeXPathResult.h \
- gnu_xml_libxmlj_transform_LibxsltStylesheet.h \
- gnu_xml_libxmlj_transform_GnomeTransformerFactory.h \
- gnu_xml_libxmlj_transform_JavaContext.h
+ gnu_xml_libxmlj_sax_GnomeLocator.h \
+ gnu_xml_libxmlj_sax_GnomeXMLReader.h \
+ gnu_xml_libxmlj_transform_GnomeTransformer.h \
+ gnu_xml_libxmlj_transform_GnomeTransformerFactory.h
LIBGTKPEER_JNI_HDRS = \
gnu_java_awt_peer_gtk_GdkClasspathFontPeer.h \
Index: kaffe/include/Makefile.in
diff -u kaffe/include/Makefile.in:1.183 kaffe/include/Makefile.in:1.184
--- kaffe/include/Makefile.in:1.183 Sun Aug 15 20:02:27 2004
+++ kaffe/include/Makefile.in Mon Aug 16 02:43:42 2004
@@ -510,17 +510,17 @@
gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h \
gnu_xml_libxmlj_dom_GnomeNode.h \
gnu_xml_libxmlj_dom_GnomeNodeList.h \
+ gnu_xml_libxmlj_dom_GnomeNotation.h \
gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h \
gnu_xml_libxmlj_dom_GnomeTypeInfo.h \
- gnu_xml_libxmlj_sax_GnomeLocator.h \
- gnu_xml_libxmlj_sax_GnomeXMLReader.h \
gnu_xml_libxmlj_dom_GnomeXPathExpression.h \
gnu_xml_libxmlj_dom_GnomeXPathNodeList.h \
gnu_xml_libxmlj_dom_GnomeXPathNSResolver.h \
gnu_xml_libxmlj_dom_GnomeXPathResult.h \
- gnu_xml_libxmlj_transform_LibxsltStylesheet.h \
- gnu_xml_libxmlj_transform_GnomeTransformerFactory.h \
- gnu_xml_libxmlj_transform_JavaContext.h
+ gnu_xml_libxmlj_sax_GnomeLocator.h \
+ gnu_xml_libxmlj_sax_GnomeXMLReader.h \
+ gnu_xml_libxmlj_transform_GnomeTransformer.h \
+ gnu_xml_libxmlj_transform_GnomeTransformerFactory.h
LIBGTKPEER_JNI_HDRS = \
gnu_java_awt_peer_gtk_GdkClasspathFontPeer.h \
Index: kaffe/libraries/clib/libxmlj/xmlj_dom.c
diff -u kaffe/libraries/clib/libxmlj/xmlj_dom.c:1.4 kaffe/libraries/clib/libxmlj/xmlj_dom.c:1.5
--- kaffe/libraries/clib/libxmlj/xmlj_dom.c:1.4 Mon Jul 26 02:40:56 2004
+++ kaffe/libraries/clib/libxmlj/xmlj_dom.c Mon Aug 16 02:43:43 2004
@@ -47,6 +47,17 @@
}
xmljHashScanData;
+/* Prototypes for local functions */
+
+void
+xmljAddAttribute (xmlNodePtr node, xmlAttrPtr attr);
+
+void
+xmljHashScanner (void *payload, void *vdata, xmlChar *name);
+
+xmlChar *
+xmljGetNodeValue (xmlNodePtr node);
+
/*
* Determines whether a child node is suitable for insertion in the list of
* children for a given parent node.
@@ -834,10 +845,15 @@
{
xmlNodePtr node;
const xmlChar *s_name;
+ const xmlChar *s_value;
node = xmljGetNodeID (env, self);
s_name = xmljGetStringChars (env, name);
- return xmljNewString (env, xmlGetProp (node, s_name));
+ s_value = xmlGetProp (node, s_name);
+ xmlFree ((xmlChar *) s_name);
+ return (s_value == NULL) ?
+ xmljNewString (env, BAD_CAST "") :
+ xmljNewString (env, s_value);
}
JNIEXPORT void JNICALL
@@ -877,6 +893,7 @@
{
return NULL;
}
+ xmlFree ((xmlChar *) s_name);
return xmljGetNodeInstance (env, (xmlNodePtr) attr);
}
@@ -943,8 +960,12 @@
{
s_uri = xmljGetStringChars (env, uri);
s_value = xmlGetNsProp (node, s_localName, s_uri);
+ xmlFree ((xmlChar *) s_uri);
}
- return xmljNewString (env, s_value);
+ xmlFree ((xmlChar *) s_localName);
+ return (s_value == NULL) ?
+ xmljNewString (env, BAD_CAST "") :
+ xmljNewString (env, s_value);
}
JNIEXPORT void JNICALL
@@ -1013,6 +1034,8 @@
}
attr = attr->next;
}
+ xmlFree ((xmlChar *) s_uri);
+ xmlFree ((xmlChar *) s_localName);
return xmljGetNodeInstance (env, (xmlNodePtr) attr);
}
@@ -1049,35 +1072,46 @@
}
JNIEXPORT jboolean JNICALL
+Java_gnu_xml_libxmlj_dom_GnomeElement_hasAttribute (JNIEnv * env,
+ jobject self,
+ jstring name)
+{
+ xmlNodePtr node;
+ const xmlChar *s_name;
+ const xmlChar *s_value;
+
+ node = xmljGetNodeID (env, self);
+ s_name = xmljGetStringChars (env, name);
+ s_value = xmlGetProp (node, s_name);
+ xmlFree ((xmlChar *) s_name);
+ return (s_value != NULL);
+}
+
+JNIEXPORT jboolean JNICALL
Java_gnu_xml_libxmlj_dom_GnomeElement_hasAttributeNS (JNIEnv * env,
jobject self,
jstring uri,
jstring localName)
{
xmlNodePtr node;
- xmlAttrPtr attr;
const xmlChar *s_uri;
const xmlChar *s_localName;
+ const xmlChar *s_value;
node = xmljGetNodeID (env, self);
- attr = node->properties;
- s_uri = xmljGetStringChars (env, uri);
s_localName = xmljGetStringChars (env, localName);
- while (attr != NULL)
+ if (uri == NULL)
{
- if (uri == NULL)
- {
- if (xmljMatch (s_localName, (xmlNodePtr) attr))
- break;
- }
- else
- {
- if (xmljMatchNS (s_uri, s_localName, (xmlNodePtr) attr))
- break;
- }
- attr = attr->next;
+ s_value = xmlGetNoNsProp (node, s_localName);
}
- return (attr != NULL);
+ else
+ {
+ s_uri = xmljGetStringChars (env, uri);
+ s_value = xmlGetNsProp (node, s_localName, s_uri);
+ xmlFree ((xmlChar *) s_uri);
+ }
+ xmlFree ((xmlChar *) s_localName);
+ return (s_value != NULL);
}
/* -- GnomeEntity -- */
@@ -1146,6 +1180,7 @@
}
s_name = xmljGetStringChars (env, name);
ret = (xmlNodePtr) xmlHashLookup (hash, s_name);
+ xmlFree ((xmlChar *) s_name);
return xmljGetNodeInstance (env, ret);
}
}
@@ -1255,6 +1290,7 @@
{
xmlHashRemoveEntry (hash, s_name, NULL);
}
+ xmlFree ((xmlChar *) s_name);
return xmljGetNodeInstance (env, ret);
}
}
@@ -1302,7 +1338,7 @@
if (attr == NULL)
{
char msg[1024];
- sprintf (msg, "No attribute at index %d\n", index);
+ sprintf (msg, "No attribute at index %d\n", (int) index);
xmljThrowException (env, "java/lang/NullPointerException", msg);
return NULL;
}
@@ -1384,12 +1420,12 @@
hash = (xmlHashTablePtr) ((type == 1) ? dtd->entities : dtd->notations);
if (hash == NULL)
{
- return NULL;
+ return 0;
}
data = (xmljHashScanData *) malloc (sizeof (xmljHashScanData));
if (data == NULL)
{
- return NULL;
+ return 0;
}
data->index = -1;
data->count = 0;
@@ -1917,6 +1953,7 @@
xmlNodePtr node;
xmlNsPtr ns;
xmlDocPtr doc;
+ const xmlChar *s_uri;
node = xmljGetNodeID (env, self);
doc = node->doc;
@@ -1926,8 +1963,9 @@
doc = (xmlDocPtr) node;
node = xmlDocGetRootElement (doc);
}
- ns = xmlSearchNsByHref (doc, node, xmljGetStringChars (env,
- namespaceURI));
+ s_uri = xmljGetStringChars (env, namespaceURI);
+ ns = xmlSearchNsByHref (doc, node, s_uri);
+ xmlFree ((xmlChar *) s_uri);
if (ns == NULL)
{
return NULL;
@@ -1942,10 +1980,12 @@
{
xmlNodePtr node;
xmlNsPtr ns;
+ const xmlChar *s_uri;
node = xmljGetNodeID (env, self);
- ns = xmlSearchNsByHref (node->doc, node, xmljGetStringChars (env,
- namespaceURI));
+ s_uri = xmljGetStringChars (env, namespaceURI);
+ ns = xmlSearchNsByHref (node->doc, node, s_uri);
+ xmlFree ((xmlChar *) s_uri);
if (ns == NULL)
{
return 0;
@@ -1961,6 +2001,7 @@
xmlNodePtr node;
xmlDocPtr doc;
xmlNsPtr ns;
+ const xmlChar *s_prefix;
node = xmljGetNodeID (env, self);
doc = node->doc;
@@ -1970,7 +2011,9 @@
doc = (xmlDocPtr) node;
node = xmlDocGetRootElement (doc);
}
- ns = xmlSearchNs (doc, node, xmljGetStringChars (env, prefix));
+ s_prefix = xmljGetStringChars (env, prefix);
+ ns = xmlSearchNs (doc, node, s_prefix);
+ xmlFree ((xmlChar *) s_prefix);
if (ns == NULL)
{
return NULL;
@@ -2263,6 +2306,7 @@
break;
attr = attr->next;
}
+ xmlFree ((xmlChar *) s_name);
return attr;
}
@@ -2286,6 +2330,8 @@
break;
attr = attr->next;
}
+ xmlFree ((xmlChar *) s_uri);
+ xmlFree ((xmlChar *) s_localName);
return attr;
}
Index: kaffe/libraries/clib/libxmlj/xmlj_dom.h
diff -u kaffe/libraries/clib/libxmlj/xmlj_dom.h:1.3 kaffe/libraries/clib/libxmlj/xmlj_dom.h:1.4
--- kaffe/libraries/clib/libxmlj/xmlj_dom.h:1.3 Mon Jul 26 02:40:57 2004
+++ kaffe/libraries/clib/libxmlj/xmlj_dom.h Mon Aug 16 02:43:43 2004
@@ -36,6 +36,7 @@
#include "gnu_xml_libxmlj_dom_GnomeNamedNodeMap.h"
#include "gnu_xml_libxmlj_dom_GnomeNode.h"
#include "gnu_xml_libxmlj_dom_GnomeNodeList.h"
+#include "gnu_xml_libxmlj_dom_GnomeNotation.h"
#include "gnu_xml_libxmlj_dom_GnomeProcessingInstruction.h"
#include "gnu_xml_libxmlj_dom_GnomeTypeInfo.h"
Index: kaffe/libraries/clib/libxmlj/xmlj_io.c
diff -u kaffe/libraries/clib/libxmlj/xmlj_io.c:1.5 kaffe/libraries/clib/libxmlj/xmlj_io.c:1.6
--- kaffe/libraries/clib/libxmlj/xmlj_io.c:1.5 Mon Jul 26 02:40:57 2004
+++ kaffe/libraries/clib/libxmlj/xmlj_io.c Mon Aug 16 02:43:43 2004
@@ -97,6 +97,11 @@
OutputStreamContext *xmljNewOutputStreamContext (JNIEnv * env,
jobject outputStream);
+void
+xmljFreeOutputStreamContext (OutputStreamContext * outContext);
+
+xmlCharEncoding
+xmljDetectCharEncoding (JNIEnv * env, jbyteArray buffer);
int
xmljOutputWriteCallback (void *context, const char *buffer, int len)
@@ -300,7 +305,7 @@
ret->fatalError = NULL;
ret->resolveURIAndOpen = NULL;
-
+ ret->stringClass = NULL;
return ret;
}
@@ -533,6 +538,7 @@
free(sax);
xmljFreeSAXParseContext (saxCtx);
xmljFreeParserContext (ctx);
+ xmljClearStringCache ();
return doc;
}
@@ -762,6 +768,9 @@
/* Once-only initialisation of the key */
static pthread_once_t thread_context_once = PTHREAD_ONCE_INIT;
+
+static void
+thread_context_key_alloc (void);
/* Allocate the key */
static void
Index: kaffe/libraries/clib/libxmlj/xmlj_io.h
diff -u kaffe/libraries/clib/libxmlj/xmlj_io.h:1.4 kaffe/libraries/clib/libxmlj/xmlj_io.h:1.5
--- kaffe/libraries/clib/libxmlj/xmlj_io.h:1.4 Mon Jul 26 02:40:57 2004
+++ kaffe/libraries/clib/libxmlj/xmlj_io.h Mon Aug 16 02:43:43 2004
@@ -77,7 +77,7 @@
jmethodID fatalError;
jmethodID resolveURIAndOpen; /* JavaProxy */
-
+ jclass stringClass;
}
SAXParseContext;
@@ -166,6 +166,6 @@
xmljGetThreadContext (void);
void
-xmljClearThreadContext ();
+xmljClearThreadContext (void);
#endif /* !defined XMLJ_IO_H */
Index: kaffe/libraries/clib/libxmlj/xmlj_sax.c
diff -u kaffe/libraries/clib/libxmlj/xmlj_sax.c:1.4 kaffe/libraries/clib/libxmlj/xmlj_sax.c:1.5
--- kaffe/libraries/clib/libxmlj/xmlj_sax.c:1.4 Mon Jul 26 02:40:57 2004
+++ kaffe/libraries/clib/libxmlj/xmlj_sax.c Mon Aug 16 02:43:43 2004
@@ -33,13 +33,22 @@
xmlExternalEntityLoader defaultLoader = NULL;
+void
+xmljDispatchError (xmlParserCtxtPtr ctx,
+ xmlSAXLocatorPtr loc,
+ JNIEnv *env,
+ jobject target,
+ jmethodID method,
+ const char *msg,
+ va_list args);
+
/* -- GnomeLocator -- */
JNIEXPORT jstring JNICALL
-Java_gnu_xml_libxmlj_sax_GnomeLocator_getPublicId (JNIEnv * env,
- jobject self,
- jobject j_ctx,
- jobject j_loc)
+Java_gnu_xml_libxmlj_sax_GnomeLocator_publicId (JNIEnv * env,
+ jobject self,
+ jobject j_ctx,
+ jobject j_loc)
{
xmlParserCtxtPtr ctx;
xmlSAXLocatorPtr loc;
@@ -53,10 +62,10 @@
}
JNIEXPORT jstring JNICALL
-Java_gnu_xml_libxmlj_sax_GnomeLocator_getSystemId (JNIEnv * env,
- jobject self,
- jobject j_ctx,
- jobject j_loc)
+Java_gnu_xml_libxmlj_sax_GnomeLocator_systemId (JNIEnv * env,
+ jobject self,
+ jobject j_ctx,
+ jobject j_loc)
{
xmlParserCtxtPtr ctx;
xmlSAXLocatorPtr loc;
@@ -70,10 +79,10 @@
}
JNIEXPORT jint JNICALL
-Java_gnu_xml_libxmlj_sax_GnomeLocator_getLineNumber (JNIEnv * env,
- jobject self,
- jobject j_ctx,
- jobject j_loc)
+Java_gnu_xml_libxmlj_sax_GnomeLocator_lineNumber (JNIEnv * env,
+ jobject self,
+ jobject j_ctx,
+ jobject j_loc)
{
xmlParserCtxtPtr ctx;
xmlSAXLocatorPtr loc;
@@ -88,10 +97,10 @@
}
JNIEXPORT jint JNICALL
-Java_gnu_xml_libxmlj_sax_GnomeLocator_getColumnNumber (JNIEnv * env,
- jobject self,
- jobject j_ctx,
- jobject j_loc)
+Java_gnu_xml_libxmlj_sax_GnomeLocator_columnNumber (JNIEnv * env,
+ jobject self,
+ jobject j_ctx,
+ jobject j_loc)
{
xmlParserCtxtPtr ctx;
xmlSAXLocatorPtr loc;
@@ -271,6 +280,10 @@
target = sax->obj;
xmljCheckWellFormed (ctx);
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return;
+ }
if (sax->startDTD == NULL)
{
@@ -321,6 +334,11 @@
env = sax->env;
target = sax->obj;
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return NULL;
+ }
+
if (sax->resolveEntity == NULL)
{
sax->resolveEntity =
@@ -403,6 +421,10 @@
target = sax->obj;
xmljCheckWellFormed (ctx);
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return;
+ }
j_name = xmljNewString (env, name);
switch (type)
@@ -475,6 +497,10 @@
target = sax->obj;
xmljCheckWellFormed (ctx);
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return;
+ }
if (sax->notationDecl == NULL)
{
@@ -529,6 +555,10 @@
target = sax->obj;
xmljCheckWellFormed (ctx);
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return;
+ }
if (sax->attributeDecl == NULL)
{
@@ -580,6 +610,10 @@
target = sax->obj;
xmljCheckWellFormed (ctx);
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return;
+ }
if (sax->elementDecl == NULL)
{
@@ -628,6 +662,10 @@
target = sax->obj;
xmljCheckWellFormed (ctx);
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return;
+ }
if (sax->unparsedEntityDecl == NULL)
{
@@ -673,6 +711,10 @@
/* Update locator on sax context */
sax->loc = loc;
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return;
+ }
if (sax->setDocumentLocator == NULL)
{
@@ -709,6 +751,10 @@
target = sax->obj;
xmljCheckWellFormed (ctx);
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return;
+ }
if (sax->startDocument == NULL)
{
@@ -744,6 +790,10 @@
target = sax->obj;
xmljCheckWellFormed (ctx);
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return;
+ }
if (sax->endDocument == NULL)
{
@@ -771,7 +821,6 @@
SAXParseContext *sax;
JNIEnv *env;
jobject target;
- jclass cls;
jstring j_name;
jobjectArray j_attrs;
jstring j_attr;
@@ -785,6 +834,10 @@
target = sax->obj;
xmljCheckWellFormed (ctx);
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return;
+ }
if (sax->startElement == NULL)
{
@@ -802,24 +855,49 @@
j_name = xmljNewString (env, name);
/* build attributes array */
len = 0;
- for (len = 0; attrs && attrs[len] != NULL; len++)
+ for (len = 0; attrs && attrs[len]; len++)
{
}
- cls = (*env)->FindClass (env, "java/lang/String");
- j_attrs = (*env)->NewObjectArray (env, len, cls, NULL);
- len = 0;
- for (len = 0; attrs && attrs[len] != NULL; len++)
+ if (len)
{
- j_attr = xmljNewString (env, attrs[len]);
- (*env)->SetObjectArrayElement (env, j_attrs, len, j_attr);
+ if (sax->stringClass == NULL)
+ {
+ sax->stringClass = (*env)->FindClass (env, "java/lang/String");
+ if (sax->stringClass == NULL)
+ {
+ fprintf (stderr, "Can't find java.lang.String class!\n");
+ return;
+ }
+ }
+ j_attrs = (*env)->NewObjectArray (env, len, sax->stringClass, NULL);
+ if (j_attrs == NULL)
+ {
+ fprintf (stderr, "Can't allocate attributes array!\n");
+ return;
+ }
+ len = 0;
+ for (len = 0; attrs && attrs[len]; len++)
+ {
+ j_attr = xmljNewString (env, attrs[len]);
+ (*env)->SetObjectArrayElement (env, j_attrs, len, j_attr);
+ }
+
+ (*env)->CallVoidMethod (env,
+ target,
+ sax->startElement,
+ j_name,
+ j_attrs);
+ (*env)->DeleteLocalRef (env, j_attrs);
+ }
+ else
+ {
+ (*env)->CallVoidMethod (env,
+ target,
+ sax->startElement,
+ j_name,
+ NULL);
+
}
-
- (*env)->CallVoidMethod (env,
- target,
- sax->startElement,
- j_name,
- j_attrs);
- /* TODO free array? */
}
void
@@ -840,6 +918,10 @@
target = sax->obj;
xmljCheckWellFormed (ctx);
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return;
+ }
if (sax->endElement == NULL)
{
@@ -888,6 +970,10 @@
target = sax->obj;
xmljCheckWellFormed (ctx);
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return;
+ }
if (sax->characters == NULL)
{
@@ -931,6 +1017,10 @@
target = sax->obj;
xmljCheckWellFormed (ctx);
+ if ((*env)->ExceptionOccurred (env))
+ {
+ return;
+ }
if (sax->ignorableWhitespace == NULL)
{
@@ -974,6 +1064,10 @@
*** Patch too long, truncated ***
More information about the kaffe
mailing list