public inbox for java-patches@gcc.gnu.org
 help / color / mirror / Atom feed
* Re: [PATCH, libjava] Use accessor functions to manipulate xmlOutputBuffer
       [not found] <m3txwdvxyj.fsf@redhat.com>
@ 2012-08-09  9:08 ` Andrew Haley
  2012-08-09 10:49   ` Andrew Hughes
  0 siblings, 1 reply; 7+ messages in thread
From: Andrew Haley @ 2012-08-09  9:08 UTC (permalink / raw)
  To: Dodji Seketeli; +Cc: GCJ-patches

On 08/08/2012 11:08 PM, Dodji Seketeli wrote:
> Hello,
> 
> 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.
> 
> Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.
> 
> OK to commit?

OK.

Thanks,
Andrew.


> libjava/classpath/
> 
> 	* native/jni/xmlj/xmlj_io.c (GET_XML_OUTPUT_BUFFER_CONTENT)
> 	(GET_XML_OUTPUT_BUFFER_SIZE): New macros.
> 	(xmljOutputWriteCallback): Use them.
> ---
>  libjava/classpath/native/jni/xmlj/xmlj_io.c |   20 +++++++++++++++++---
>  1 files changed, 17 insertions(+), 3 deletions(-)
> 
> diff --git a/libjava/classpath/native/jni/xmlj/xmlj_io.c b/libjava/classpath/native/jni/xmlj/xmlj_io.c
> index aa2964d..a55e48d 100644
> --- a/libjava/classpath/native/jni/xmlj/xmlj_io.c
> +++ b/libjava/classpath/native/jni/xmlj/xmlj_io.c
> @@ -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);
> 

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH, libjava] Use accessor functions to manipulate xmlOutputBuffer
  2012-08-09  9:08 ` [PATCH, libjava] Use accessor functions to manipulate xmlOutputBuffer Andrew Haley
@ 2012-08-09 10:49   ` Andrew Hughes
  2012-08-09 12:00     ` Andrew Haley
  2012-08-09 13:42     ` Dodji Seketeli
  0 siblings, 2 replies; 7+ messages in thread
From: Andrew Hughes @ 2012-08-09 10:49 UTC (permalink / raw)
  To: Andrew Haley; +Cc: GCJ-patches, Dodji Seketeli

----- Original Message -----
> On 08/08/2012 11:08 PM, Dodji Seketeli wrote:
> > Hello,
> > 
> > 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.
> > 
> > Bootstrapped and tested on x86_64-unknown-linux-gnu against trunk.
> > 
> > OK to commit?
> 
> OK.
> 

As this is a GNU Classpath change, it should go in there first to avoid creating
a divergence which will cause later problems in merging.  Classpath is regularly
merged into gcj as a whole.

I found several patches during the last merge which had only been added to gcj
(some without ChangeLog entries) and this slowed the process down considerably.

Dodji, I can push this to Classpath on your behalf if you don't have commit
access.

> Thanks,
> Andrew.
> 
> 
> > libjava/classpath/
> > 
> > 	* native/jni/xmlj/xmlj_io.c (GET_XML_OUTPUT_BUFFER_CONTENT)
> > 	(GET_XML_OUTPUT_BUFFER_SIZE): New macros.
> > 	(xmljOutputWriteCallback): Use them.
> > ---
> >  libjava/classpath/native/jni/xmlj/xmlj_io.c |   20
> >  +++++++++++++++++---
> >  1 files changed, 17 insertions(+), 3 deletions(-)
> > 
> > diff --git a/libjava/classpath/native/jni/xmlj/xmlj_io.c
> > b/libjava/classpath/native/jni/xmlj/xmlj_io.c
> > index aa2964d..a55e48d 100644
> > --- a/libjava/classpath/native/jni/xmlj/xmlj_io.c
> > +++ b/libjava/classpath/native/jni/xmlj/xmlj_io.c
> > @@ -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);
> > 
> 
> 

Thanks,
-- 
Andrew :)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

PGP Key: 248BDC07 (https://keys.indymedia.org/)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F  8F91 3B96 A578 248B DC07

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH, libjava] Use accessor functions to manipulate xmlOutputBuffer
  2012-08-09 10:49   ` Andrew Hughes
@ 2012-08-09 12:00     ` Andrew Haley
  2012-08-09 13:42     ` Dodji Seketeli
  1 sibling, 0 replies; 7+ messages in thread
From: Andrew Haley @ 2012-08-09 12:00 UTC (permalink / raw)
  To: Andrew Hughes; +Cc: GCJ-patches, Dodji Seketeli

On 08/09/2012 11:48 AM, Andrew Hughes wrote:
> As this is a GNU Classpath change, it should go in there first to avoid creating
> a divergence which will cause later problems in merging.

Ah, I didn't notice that.  I just checked that the patch was OK.

Andrew.

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH, libjava] Use accessor functions to manipulate xmlOutputBuffer
  2012-08-09 10:49   ` Andrew Hughes
  2012-08-09 12:00     ` Andrew Haley
@ 2012-08-09 13:42     ` Dodji Seketeli
  2012-08-09 14:40       ` Andrew Hughes
  1 sibling, 1 reply; 7+ messages in thread
From: Dodji Seketeli @ 2012-08-09 13:42 UTC (permalink / raw)
  To: Andrew Hughes; +Cc: Andrew Haley, GCJ-patches, GCC Patches

Andrew Hughes <ahughes@redhat.com> writes:

>> OK.
>> 
>
> As this is a GNU Classpath change, it should go in there first to avoid creating
> a divergence which will cause later problems in merging.  Classpath is regularly
> merged into gcj as a whole.
>
> I found several patches during the last merge which had only been added to gcj
> (some without ChangeLog entries) and this slowed the process down considerably.
>
> Dodji, I can push this to Classpath on your behalf if you don't have commit
> access.

Oops.  I committed the patch before I saw your message.  Sorry.

If you agree, I can revert the commit so that you can commit it to
classpath then.  I don't think I have commit access to GNU classpath.

Sorry for the inconvenience.

-- 
		Dodji

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH, libjava] Use accessor functions to manipulate xmlOutputBuffer
  2012-08-09 13:42     ` Dodji Seketeli
@ 2012-08-09 14:40       ` Andrew Hughes
  2012-08-09 15:02         ` Dodji Seketeli
  0 siblings, 1 reply; 7+ messages in thread
From: Andrew Hughes @ 2012-08-09 14:40 UTC (permalink / raw)
  To: Dodji Seketeli; +Cc: Andrew Haley, GCJ-patches, GCC Patches

----- Original Message -----
> Andrew Hughes <ahughes@redhat.com> writes:
> 
> >> OK.
> >> 
> >
> > As this is a GNU Classpath change, it should go in there first to
> > avoid creating
> > a divergence which will cause later problems in merging.  Classpath
> > is regularly
> > merged into gcj as a whole.
> >
> > I found several patches during the last merge which had only been
> > added to gcj
> > (some without ChangeLog entries) and this slowed the process down
> > considerably.
> >
> > Dodji, I can push this to Classpath on your behalf if you don't
> > have commit
> > access.
> 
> Oops.  I committed the patch before I saw your message.  Sorry.
> 
> If you agree, I can revert the commit so that you can commit it to
> classpath then.  I don't think I have commit access to GNU classpath.
> 
> Sorry for the inconvenience.
> 

Don't worry about reverting it.  I'll add it to Classpath now, then
they'll be in sync when we do the next merge.

In future, please post changes to files under the libjava/classpath directory to
classpath@gnu.org and feel free to ping me directly if you don't
get a response in a reasonable timeframe.  It just makes my life a bit
easier when it comes to doing the merges :-)

> --
> 		Dodji
> 

-- 
Andrew :)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

PGP Key: 248BDC07 (https://keys.indymedia.org/)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F  8F91 3B96 A578 248B DC07

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH, libjava] Use accessor functions to manipulate xmlOutputBuffer
  2012-08-09 14:40       ` Andrew Hughes
@ 2012-08-09 15:02         ` Dodji Seketeli
  2012-08-09 20:04           ` Andrew Hughes
  0 siblings, 1 reply; 7+ messages in thread
From: Dodji Seketeli @ 2012-08-09 15:02 UTC (permalink / raw)
  To: Andrew Hughes; +Cc: Andrew Haley, GCJ-patches, GCC Patches

Andrew Hughes <ahughes@redhat.com> writes:

> Don't worry about reverting it.  I'll add it to Classpath now, then
> they'll be in sync when we do the next merge.

Thank you.

> In future, please post changes to files under the libjava/classpath directory to
> classpath@gnu.org and feel free to ping me directly if you don't
> get a response in a reasonable timeframe.  It just makes my life a bit
> easier when it comes to doing the merges :-)

OK, I will do.  Sorry for the inconvenience.

-- 
		Dodji

^ permalink raw reply	[flat|nested] 7+ messages in thread

* Re: [PATCH, libjava] Use accessor functions to manipulate xmlOutputBuffer
  2012-08-09 15:02         ` Dodji Seketeli
@ 2012-08-09 20:04           ` Andrew Hughes
  0 siblings, 0 replies; 7+ messages in thread
From: Andrew Hughes @ 2012-08-09 20:04 UTC (permalink / raw)
  To: Dodji Seketeli; +Cc: Andrew Haley, GCJ-patches, GCC Patches



----- Original Message -----
> Andrew Hughes <ahughes@redhat.com> writes:
> 
> > Don't worry about reverting it.  I'll add it to Classpath now, then
> > they'll be in sync when we do the next merge.
> 
> Thank you.
> 

Done: http://git.savannah.gnu.org/cgit/classpath.git/commit/?id=4d4db712cf4df4feb4d7b98bb1b5b448218500b3

> > In future, please post changes to files under the libjava/classpath
> > directory to
> > classpath@gnu.org and feel free to ping me directly if you don't
> > get a response in a reasonable timeframe.  It just makes my life a
> > bit
> > easier when it comes to doing the merges :-)
> 
> OK, I will do.  Sorry for the inconvenience.

No worries.  It's not immediately obvious for someone new to the libjava codebase.

> 
> --
> 		Dodji
> 

-- 
Andrew :)

Free Java Software Engineer
Red Hat, Inc. (http://www.redhat.com)

PGP Key: 248BDC07 (https://keys.indymedia.org/)
Fingerprint = EC5A 1F5E C0AD 1D15 8F1F  8F91 3B96 A578 248B DC07

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2012-08-09 20:04 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <m3txwdvxyj.fsf@redhat.com>
2012-08-09  9:08 ` [PATCH, libjava] Use accessor functions to manipulate xmlOutputBuffer Andrew Haley
2012-08-09 10:49   ` Andrew Hughes
2012-08-09 12:00     ` Andrew Haley
2012-08-09 13:42     ` Dodji Seketeli
2012-08-09 14:40       ` Andrew Hughes
2012-08-09 15:02         ` Dodji Seketeli
2012-08-09 20:04           ` Andrew Hughes

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).