aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authortromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-28 16:12:00 +0000
committertromey <tromey@138bc75d-0d04-0410-961f-82ee72b054a4>2003-07-28 16:12:00 +0000
commit6c53bed4ecf351452ce2952271f157be95e44049 (patch)
tree0df6dcf0658d8ff35dcfa4a03ea147a206a5c0d1 /libjava/java
parentfc3df35715336a36e894a10f4f4992234ff26a2b (diff)
* 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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@69890 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava/java')
-rw-r--r--libjava/java/lang/String.java3
-rw-r--r--libjava/java/lang/natString.cc7
2 files changed, 9 insertions, 1 deletions
diff --git a/libjava/java/lang/String.java b/libjava/java/lang/String.java
index fe00b9100cc..6844405e34c 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 98309cfe62e..6fd928478b5 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)
{