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 <[EMAIL PROTECTED]> * 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 <[EMAIL PROTECTED]> * transform: Fixed imports. 2004-07-30 Chris Burdess <[EMAIL PROTECTED]> * transform: Added support for DOMSource and DOMResult transforms to/from GnomeDocument nodes. 2004-07-27 Chris Burdess <[EMAIL PROTECTED]> * GnomeElement: getAttribute(NS) returns empty strings instead of null. * sax: Cached java.lang.String class. 2004-08-10 Musachy Barroso <[EMAIL PROTECTED]> * XmlParser.java: Fixed bug while reading 0x2028. Check for document version in external subset. 2004-08-10 Musachy Barroso <[EMAIL PROTECTED]> * XmlParser.java: Convert 0x2028 to '\r' when document is 1.1 2004-08-08 Musachy Barroso <[EMAIL PROTECTED]> * XmlParser.java: Report start name characters that are not BaseChar. (more of them) 2004-08-08 Musachy Barroso <[EMAIL PROTECTED]> * XmlParser.java: Report start name characters that are not BaseChar. 2004-08-08 Musachy Barroso <[EMAIL PROTECTED]> * XmlParser.java: Report NEL characters as igorable if document is 1.1 2004-08-07 Musachy Barroso <[EMAIL PROTECTED]> * XmlParser.java: Fixed bug while reading whitespaces in elements content. 2004-08-06 Musachy Barroso <[EMAIL PROTECTED]> * SAXDriver.java: Check added for missing prefix in namespace declaration attribute. 2004-08-06 Musachy Barroso <[EMAIL PROTECTED]> * XmlParser.java: Partial character ref, partial entity references checks, moved to parseEntity(...) 2004-08-06 Musachy Barroso <[EMAIL PROTECTED]> * SAXDriver.java: Checks added for colon in entities, PI and notations. Unbounded prefixes error changed to fatal. 2004-08-05 Musachy Barroso <[EMAIL PROTECTED]> * SAXDriver.java: Fixed bug intruduced with the partial character ref, partial entity references checks. 2004-08-05 Musachy Barroso <[EMAIL PROTECTED]> * SAXDriver.java: Fixed bug intruduced with the partial character ref, partial entity references checks. 2004-08-03 Musachy Barroso <[EMAIL PROTECTED]> * SAXDriver.java: Check added for namespaces names containing only ':'. 2004-07-31 Musachy Barroso <[EMAIL PROTECTED]> * XmlParser.java: Improved check for partial character references and partial entity references in internal entities. 2004-07-31 Musachy Barroso <[EMAIL PROTECTED]> * XmlParser.java: Added check for partial character references in internal entities. 2004-07-29 Musachy Barroso <[EMAIL PROTECTED]> * SAXDriver.java: Added checks for invalid use of reserved prefixes and namespaces. 2004-07-28 Musachy Barroso <[EMAIL PROTECTED]> * XmlParser.java: Invalidate character range [0x7f - 0x9f] if the document version is 1.1. 0x85(NEL) is still valid. 2004-07-25 Musachy Barroso <[EMAIL PROTECTED]> * 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 <[EMAIL PROTECTED]> + * 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 <[EMAIL PROTECTED]> + + * transform: Fixed imports. + + 2004-07-30 Chris Burdess <[EMAIL PROTECTED]> + + * transform: Added support for DOMSource and DOMResult transforms + to/from GnomeDocument nodes. + + 2004-07-27 Chris Burdess <[EMAIL PROTECTED]> + + * GnomeElement: getAttribute(NS) returns empty strings instead of + null. + * sax: Cached java.lang.String class. + + 2004-08-10 Musachy Barroso <[EMAIL PROTECTED]> + + * XmlParser.java: Fixed bug while reading 0x2028. Check + for document version in external subset. + + 2004-08-10 Musachy Barroso <[EMAIL PROTECTED]> + + * XmlParser.java: Convert 0x2028 to '\r' when document is 1.1 + + 2004-08-08 Musachy Barroso <[EMAIL PROTECTED]> + + * XmlParser.java: Report start name characters that are not + BaseChar. (more of them) + + 2004-08-08 Musachy Barroso <[EMAIL PROTECTED]> + + * XmlParser.java: Report start name characters that are not + BaseChar. + + 2004-08-08 Musachy Barroso <[EMAIL PROTECTED]> + + * XmlParser.java: Report NEL characters as igorable if document + is 1.1 + + 2004-08-07 Musachy Barroso <[EMAIL PROTECTED]> + + * XmlParser.java: Fixed bug while reading whitespaces in elements + content. + + 2004-08-06 Musachy Barroso <[EMAIL PROTECTED]> + + * SAXDriver.java: Check added for missing prefix in namespace + declaration attribute. + + 2004-08-06 Musachy Barroso <[EMAIL PROTECTED]> + + * XmlParser.java: Partial character ref, partial entity + references checks, moved to parseEntity(...) + + 2004-08-06 Musachy Barroso <[EMAIL PROTECTED]> + + * SAXDriver.java: Checks added for colon in entities, PI and + notations. Unbounded prefixes error changed to fatal. + + 2004-08-05 Musachy Barroso <[EMAIL PROTECTED]> + + * SAXDriver.java: Fixed bug intruduced with the partial character + ref, partial entity references checks. + + 2004-08-05 Musachy Barroso <[EMAIL PROTECTED]> + + * SAXDriver.java: Fixed bug intruduced with the partial character + ref, partial entity references checks. + + 2004-08-03 Musachy Barroso <[EMAIL PROTECTED]> + + * SAXDriver.java: Check added for namespaces names containing only + ':'. + + 2004-07-31 Musachy Barroso <[EMAIL PROTECTED]> + + * XmlParser.java: Improved check for partial character references + and partial entity references in internal entities. + + 2004-07-31 Musachy Barroso <[EMAIL PROTECTED]> + + * XmlParser.java: Added check for partial character references + in internal entities. + + 2004-07-29 Musachy Barroso <[EMAIL PROTECTED]> + + * SAXDriver.java: Added checks for invalid use of reserved + prefixes and namespaces. + + 2004-07-28 Musachy Barroso <[EMAIL PROTECTED]> + + * XmlParser.java: Invalidate character range [0x7f - 0x9f] if the + document version is 1.1. 0x85(NEL) is still valid. + + 2004-07-25 Musachy Barroso <[EMAIL PROTECTED]> + + * XmlParser.java: Fixed end-of-line handling to comply with sec 2.11. + +2004-08-15 Dalibor Topic <[EMAIL PROTECTED]> + * 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 *** _______________________________________________ kaffe mailing list [EMAIL PROTECTED] http://kaffe.org/cgi-bin/mailman/listinfo/kaffe