aboutsummaryrefslogtreecommitdiff
path: root/libjava/java/lang/natObject.cc
diff options
context:
space:
mode:
Diffstat (limited to 'libjava/java/lang/natObject.cc')
-rw-r--r--libjava/java/lang/natObject.cc5
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
{