src/share/vm/memory/space.cpp

changeset 1934
e9ff18c4ace7
parent 1907
c18cbe5936b8
parent 1926
2d127394260e
child 2314
f95d63e2154a
     1.1 --- a/src/share/vm/memory/space.cpp	Tue Jun 01 11:48:33 2010 -0700
     1.2 +++ b/src/share/vm/memory/space.cpp	Wed Jun 02 22:45:42 2010 -0700
     1.3 @@ -861,9 +861,9 @@
     1.4    }
     1.5    size = align_object_size(size);
     1.6  
     1.7 -  const size_t min_int_array_size = typeArrayOopDesc::header_size(T_INT);
     1.8 -  if (size >= min_int_array_size) {
     1.9 -    size_t length = (size - min_int_array_size) * (HeapWordSize / sizeof(jint));
    1.10 +  const size_t array_header_size = typeArrayOopDesc::header_size(T_INT);
    1.11 +  if (size >= (size_t)align_object_size(array_header_size)) {
    1.12 +    size_t length = (size - array_header_size) * (HeapWordSize / sizeof(jint));
    1.13      // allocate uninitialized int array
    1.14      typeArrayOop t = (typeArrayOop) allocate(size);
    1.15      assert(t != NULL, "allocation should succeed");
    1.16 @@ -871,7 +871,7 @@
    1.17      t->set_klass(Universe::intArrayKlassObj());
    1.18      t->set_length((int)length);
    1.19    } else {
    1.20 -    assert((int) size == instanceOopDesc::header_size(),
    1.21 +    assert(size == CollectedHeap::min_fill_size(),
    1.22             "size for smallest fake object doesn't match");
    1.23      instanceOop obj = (instanceOop) allocate(size);
    1.24      obj->set_mark(markOopDesc::prototype());

mercurial