]> gcc.gnu.org Git - gcc.git/commitdiff
Use accessor functions to manipulate xmlOutputBuffer
authorDodji Seketeli <dodji@redhat.com>
Thu, 9 Aug 2012 10:33:48 +0000 (10:33 +0000)
committerDodji Seketeli <dodji@gcc.gnu.org>
Thu, 9 Aug 2012 10:33:48 +0000 (12:33 +0200)
This is a fix to prepare the xmlj_io.c file of gnu classpath to a coming
API change in libxml2.

Basically, we were previously accessing fields inside the
xmlOutputBuffer struct of libxml2.  In a coming version of libxml2,
that won't be possible anymore.  Client code will have to use accessor
functions instead.  For the gory details, there is an interestin note
of Daniel Veillard (author of libxml2) at
https://mail.gnome.org/archives/desktop-devel-list/2012-August/msg00007.html.

This patch defines too accessor macros that, depending on the version
of libxml2 we are using will either access the fields of
xmlOutputBuffer directly, or use the new accessor function.

Tested on x86_64-unknown-linux-gnu against trunk.

libjava/classpath/

* native/jni/xmlj/xmlj_io.c (GET_XML_OUTPUT_BUFFER_CONTENT)
(GET_XML_OUTPUT_BUFFER_SIZE): New macros.
(xmljOutputWriteCallback): Use them.

From-SVN: r190249

libjava/classpath/ChangeLog
libjava/classpath/native/jni/xmlj/xmlj_io.c

index 0bd2e6ee12850315427dc391f69f32895435102f..cd6b8aa9d5da0a9de7eb1cd1ffcf78e68e95011d 100644 (file)
@@ -1,3 +1,10 @@
+2012-08-09  Dodji Seketeli  <dodji@redhat.com>
+
+       Use accessor functions to manipulate xmlOutputBuffer
+       * native/jni/xmlj/xmlj_io.c (GET_XML_OUTPUT_BUFFER_CONTENT)
+       (GET_XML_OUTPUT_BUFFER_SIZE): New macros.
+       (xmljOutputWriteCallback): Use them.
+
 2012-03-08  Andrew John Hughes  <ahughes@redhat.com>
 
        * NEWS: Set correct release date.
index aa2964dc312dc9ec58182143a8cb070e2947a222..a55e48df8111c66606e2ff53d69ca111f84b94b6 100644 (file)
@@ -102,6 +102,19 @@ xmljFreeOutputStreamContext (OutputStreamContext * outContext);
 xmlCharEncoding
 xmljDetectCharEncoding (JNIEnv * env, jbyteArray buffer);
 
+
+#ifdef LIBXML2_NEW_BUFFER
+#define GET_XML_OUTPUT_BUFFER_CONTENT(buf) (gchar *) \
+  (char *) xmlOutputBufferGetContent(buf)
+#define GET_XML_OUTPUT_BUFFER_SIZE(buf) \
+  xmlOutputBufferGetSize(buf)
+#else
+#define GET_XML_OUTPUT_BUFFER_CONTENT(buf) \
+ (buf)->buffer->content
+#define GET_XML_OUTPUT_BUFFER_SIZE(buf) \
+  (buf)->buffer->use
+#endif
+
 int
 xmljOutputWriteCallback (void *context, const char *buffer, int len)
 {
@@ -752,9 +765,10 @@ xmljLoadExternalEntity (const char *URL, const char *ID,
       inputStream->directory = NULL;
       inputStream->buf = inputBuffer;
 
-      inputStream->base = inputStream->buf->buffer->content;
-      inputStream->cur = inputStream->buf->buffer->content;
-      inputStream->end = &inputStream->base[inputStream->buf->buffer->use];
+      inputStream->base = GET_XML_OUTPUT_BUFFER_CONTENT (inputStream->buf);
+      inputStream->cur = GET_XML_OUTPUT_BUFFER_CONTENT (inputStream->buf);
+      inputStream->end =
+      &inputStream->base[GET_XML_OUTPUT_BUFFER_SIZE (inputStream->buf)];
       if ((ctxt->directory == NULL) && (inputStream->directory != NULL))
         ctxt->directory =
           (char *) xmlStrdup ((const xmlChar *) inputStream->directory);
This page took 0.078269 seconds and 5 git commands to generate.