aboutsummaryrefslogtreecommitdiff
path: root/libjava/java
diff options
context:
space:
mode:
authorTom Tromey <tromey@redhat.com>2003-07-28 16:12:00 +0000
committerTom Tromey <tromey@gcc.gnu.org>2003-07-28 16:12:00 +0000
commit651bed366a537cac8a9561d749e0a83e277259ce (patch)
tree0df6dcf0658d8ff35dcfa4a03ea147a206a5c0d1 /libjava/java
parent5dfa45d043db04ebddf4081364661e0784304d39 (diff)
downloadgcc-651bed366a537cac8a9561d749e0a83e277259ce.zip
gcc-651bed366a537cac8a9561d749e0a83e277259ce.tar.gz
gcc-651bed366a537cac8a9561d749e0a83e277259ce.tar.bz2
natString.cc (init(gnu.gcj.runtime.StringBuffer)): New method.
* 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. From-SVN: r69890
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 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)
{