diff options
author | Tom Tromey <tromey@cygnus.com> | 1999-11-25 00:36:51 +0000 |
---|---|---|
committer | Tom Tromey <tromey@gcc.gnu.org> | 1999-11-25 00:36:51 +0000 |
commit | 93d455621810ca1fcb759fcb6cc4c237ba02a584 (patch) | |
tree | 35bb29ca80faf5479ebdd7ea3a0fbd2086f9fc89 /libjava/java/lang/natObject.cc | |
parent | fc39d3710887c5a0d560d93e29e8c222d40bf072 (diff) | |
download | gcc-93d455621810ca1fcb759fcb6cc4c237ba02a584.zip gcc-93d455621810ca1fcb759fcb6cc4c237ba02a584.tar.gz gcc-93d455621810ca1fcb759fcb6cc4c237ba02a584.tar.bz2 |
prims.cc (_Jv_NewObjectArray): Use _Jv_GetArrayElementFromElementType.
* prims.cc (_Jv_NewObjectArray): Use
_Jv_GetArrayElementFromElementType.
(_Jv_NewPrimArray): Likewise.
* java/lang/natObject.cc (clone): Use
_Jv_GetArrayElementFromElementType instead of sizeof.
* java/lang/natSystem.cc (arraycopy): Use
_Jv_GetArrayElementFromElementType.
* include/jvm.h (_Jv_GetArrayElementFromElementType): New
function.
From-SVN: r30655
Diffstat (limited to 'libjava/java/lang/natObject.cc')
-rw-r--r-- | libjava/java/lang/natObject.cc | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/libjava/java/lang/natObject.cc b/libjava/java/lang/natObject.cc index 22632c5..0ca5a58 100644 --- a/libjava/java/lang/natObject.cc +++ b/libjava/java/lang/natObject.cc @@ -84,7 +84,10 @@ java::lang::Object::clone (void) r = _Jv_NewObjectArray (array->length, comp, NULL); eltsize = sizeof (jobject); } - size = sizeof (__JArray) + array->length * eltsize; + // We can't use sizeof on __JArray because we must account for + // alignment of the element type. + size = (_Jv_GetArrayElementFromElementType (array, comp) - (char *) array + + array->length * eltsize); } else { |