aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libjava/ChangeLog9
-rw-r--r--libjava/java/lang/String.java3
-rw-r--r--libjava/java/lang/natString.cc7
3 files changed, 18 insertions, 1 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index f7d6e0d..9c4177f 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,12 @@
+2003-07-28 Tom Tromey <tromey@redhat.com>
+
+ * java/lang/natString.cc (init(gnu.gcj.runtime.StringBuffer)):
+ New method.
+ Include gnu/gcj/runtime/StringBuffer.h.
+ * java/lang/String.java (init(gnu.gcj.runtime.StringBuffer)): New
+ native method.
+ (String(gnu.gcj.runtime.StringBuffer)): Use it.
+
2003-07-27 Anthony Green <green@redhat.com>
* configure.in: Fix newlib check.
diff --git a/libjava/java/lang/String.java b/libjava/java/lang/String.java
index fe00b91..6844405 100644
--- a/libjava/java/lang/String.java
+++ b/libjava/java/lang/String.java
@@ -419,7 +419,7 @@ public final class String implements Serializable, Comparable, CharSequence
{
// No need to synchronize or mark the buffer, since we know it is
// only used once.
- init (buffer.value, 0, buffer.count, true);
+ init (buffer);
}
/**
@@ -1253,5 +1253,6 @@ public final class String implements Serializable, Comparable, CharSequence
private native void init(byte[] chars, int hibyte, int offset, int count);
private native void init(byte[] chars, int offset, int count, String enc)
throws UnsupportedEncodingException;
+ private native void init(gnu.gcj.runtime.StringBuffer buffer);
private static native void rehash();
}
diff --git a/libjava/java/lang/natString.cc b/libjava/java/lang/natString.cc
index 98309cf..6fd9284 100644
--- a/libjava/java/lang/natString.cc
+++ b/libjava/java/lang/natString.cc
@@ -28,6 +28,7 @@ details. */
#include <java/util/Locale.h>
#include <gnu/gcj/convert/UnicodeToBytes.h>
#include <gnu/gcj/convert/BytesToUnicode.h>
+#include <gnu/gcj/runtime/StringBuffer.h>
#include <jvm.h>
static void unintern (jobject);
@@ -525,6 +526,12 @@ java::lang::String::init (jbyteArray bytes, jint offset, jint count,
this->count = outpos;
}
+void
+java::lang::String::init (gnu::gcj::runtime::StringBuffer *buffer)
+{
+ init (buffer->value, 0, buffer->count, true);
+}
+
jboolean
java::lang::String::equals(jobject anObject)
{