This is the mail archive of the
java-patches@gcc.gnu.org
mailing list for the Java project.
Patch: FYI: fix permission problem in String
- From: Tom Tromey <tromey at redhat dot com>
- To: GCC libjava patches <java-patches at gcc dot gnu dot org>
- Date: 28 Jul 2003 09:51:56 -0600
- Subject: Patch: FYI: fix permission problem in String
- Reply-to: tromey at redhat dot com
I'm checking this in on the trunk.
This fixes the package-private permission problem in String.
Tom
Index: ChangeLog
from 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.
Index: java/lang/String.java
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/lang/String.java,v
retrieving revision 1.23
diff -u -r1.23 String.java
--- java/lang/String.java 31 Mar 2003 01:03:21 -0000 1.23
+++ java/lang/String.java 28 Jul 2003 15:58:51 -0000
@@ -419,7 +419,7 @@
{
// 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 @@
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();
}
Index: java/lang/natString.cc
===================================================================
RCS file: /cvs/gcc/gcc/libjava/java/lang/natString.cc,v
retrieving revision 1.30
diff -u -r1.30 natString.cc
--- java/lang/natString.cc 7 Jun 2003 18:34:59 -0000 1.30
+++ java/lang/natString.cc 28 Jul 2003 15:58:51 -0000
@@ -28,6 +28,7 @@
#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);
@@ -523,6 +524,12 @@
this->data = array;
this->boffset = (char *) elements (array) - (char *) array;
this->count = outpos;
+}
+
+void
+java::lang::String::init (gnu::gcj::runtime::StringBuffer *buffer)
+{
+ init (buffer->value, 0, buffer->count, true);
}
jboolean