From 8eeb67a6d1ad7c926ff572207f9c6e3e4b42059e Mon Sep 17 00:00:00 2001 From: green Date: Mon, 31 Jan 2000 08:56:09 +0000 Subject: * gnu/gcj/convert/natIconv.cc (read): Minor fixes. (write): Ditto. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@31712 138bc75d-0d04-0410-961f-82ee72b054a4 --- libjava/gnu/gcj/convert/natIconv.cc | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) (limited to 'libjava/gnu') diff --git a/libjava/gnu/gcj/convert/natIconv.cc b/libjava/gnu/gcj/convert/natIconv.cc index 129db7ecf05..ee3490a99b7 100644 --- a/libjava/gnu/gcj/convert/natIconv.cc +++ b/libjava/gnu/gcj/convert/natIconv.cc @@ -69,9 +69,12 @@ gnu::gcj::convert::Input_iconv::read (jcharArray outbuffer, size_t outavail = count; size_t old_out = outavail; + const char *inbuf = (const char *) &bytes[inpos]; + char *outbuf = (char *) &out[outpos]; + size_t r = iconv ((iconv_t) handle, - &bytes[inpos], &inavail, - &out[outpos], &outavail); + &inbuf, &inavail, + &outbuf, &outavail); // FIXME: what if R==-1? inpos += old_in - inavail; @@ -118,7 +121,7 @@ gnu::gcj::convert::Output_iconv::write (jcharArray inbuffer, jint inpos, jint count) { #ifdef HAVE_ICONV - jint origpos = outpos; + jint origpos = inpos; jchar *chars = elements (inbuffer); jbyte *out = elements (buf); @@ -129,9 +132,12 @@ gnu::gcj::convert::Output_iconv::write (jcharArray inbuffer, size_t outavail = buf->length - count; size_t old_out = outavail; + const char *inbuf = (const char *) &chars[inpos]; + char *outbuf = (char *) &out[count]; + size_t r = iconv ((iconv_t) handle, - &chars[inpos], &inavail, - &out[count], &outavail); + &inbuf, &inavail, + &outbuf, &outavail); // FIXME: what if R==-1? count += old_out - outavail; -- cgit v1.2.3