aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorMarco Trudel <mtrudel@gmx.ch>2007-03-12 19:48:32 +0000
committerTom Tromey <tromey@redhat.com>2007-03-12 19:48:32 +0000
commit4efc26842438c159deb19e9efb9d63ff8ffab443 (patch)
tree58a95a38cf44e5e20d4c340b3c31889ac3db3fa6 /libjava
parent122870692dded2bb3fd8fdc36d9e63a77fa15d2b (diff)
2007-03-12 Marco Trudel <mtrudel@gmx.ch>
* java/lang/natString.cc (getBytes (jstring enc)): Fixed the loop for multiple cycles, Code cleanup git-svn-id: https://gcc.gnu.org/svn/gcc/trunk@122859 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog5
-rw-r--r--libjava/java/lang/natString.cc19
2 files changed, 16 insertions, 8 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index 57485ef8ebf..ef215ef31a1 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,8 @@
+2007-03-12 Marco Trudel <mtrudel@gmx.ch>
+
+ * java/lang/natString.cc (getBytes (jstring enc)):
+ Fixed the loop for multiple cycles, Code cleanup
+
2007-03-09 Tom Tromey <tromey@redhat.com>
* sources.am, Makefile.in: Rebuilt.
diff --git a/libjava/java/lang/natString.cc b/libjava/java/lang/natString.cc
index f86abd8bc2d..39590a3e4e0 100644
--- a/libjava/java/lang/natString.cc
+++ b/libjava/java/lang/natString.cc
@@ -1,6 +1,6 @@
// natString.cc - Implementation of java.lang.String native methods.
-/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software Foundation
+/* Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software Foundation
This file is part of libgcj.
@@ -615,11 +615,9 @@ java::lang::String::getBytes (jstring enc)
while (todo > 0 || converter->havePendingBytes())
{
converter->setOutput(buffer, bufpos);
- // We only really need to do a single write.
- converter->setFinished();
int converted = converter->write(this, offset, todo, NULL);
bufpos = converter->count;
- if (converted == 0 && bufpos == converter->count)
+ if (converted == 0)
{
buflen *= 2;
jbyteArray newbuffer = JvNewByteArray(buflen);
@@ -627,10 +625,15 @@ java::lang::String::getBytes (jstring enc)
buffer = newbuffer;
}
else
- bufpos = converter->count;
-
- offset += converted;
- todo -= converted;
+ {
+ offset += converted;
+ todo -= converted;
+ }
+ }
+ if (length() > 0)
+ {
+ converter->setFinished();
+ converter->write(this, 0, 0, NULL);
}
converter->done ();
if (bufpos == buflen)