Mercurial > hg > truffle
diff src/share/vm/graal/graalCompiler.cpp @ 5616:310ed6650682
added check to ensure fast path allocation is never used for types that don't allow it
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 15 Jun 2012 12:04:26 +0200 |
parents | 70f715dfbb41 |
children | 6cb39a47da14 |
line wrap: on
line diff
--- a/src/share/vm/graal/graalCompiler.cpp Thu Jun 14 17:03:22 2012 +0200 +++ b/src/share/vm/graal/graalCompiler.cpp Fri Jun 15 12:04:26 2012 +0200 @@ -278,8 +278,12 @@ if (klass->oop_is_javaArray()) { HotSpotResolvedJavaType::set_isArrayClass(obj, true); } else { + int size = instanceKlass::cast(klass())->size_helper() * HeapWordSize; + if (!instanceKlass::cast(klass())->can_be_fastpath_allocated()) { + size = -size; + } HotSpotResolvedJavaType::set_isArrayClass(obj, false); - HotSpotResolvedJavaType::set_instanceSize(obj, instanceKlass::cast(klass())->size_helper() * HeapWordSize); + HotSpotResolvedJavaType::set_instanceSize(obj, size); HotSpotResolvedJavaType::set_hasFinalizer(obj, klass->has_finalizer()); }