Mercurial > hg > graal-jvmci-8
comparison jvmci/jdk.vm.ci.hotspot/src/jdk/vm/ci/hotspot/HotSpotConstantReflectionProvider.java @ 23325:f895a46e0a45
8150850: [JVMCI] NPE when executing HotSpotConstantReflectionProvider.readStableFieldValue
Contributed-by: kshefov
Reviewed-by: twisti, dnsimon
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Tue, 15 Mar 2016 13:00:43 +0300 |
parents | 7b09dede4552 |
children | f102ee538647 |
comparison
equal
deleted
inserted
replaced
23324:c4ac68fc4b12 | 23325:f895a46e0a45 |
---|---|
336 return null; | 336 return null; |
337 } | 337 } |
338 | 338 |
339 public JavaConstant readStableFieldValue(ResolvedJavaField field, JavaConstant receiver, boolean isDefaultStable) { | 339 public JavaConstant readStableFieldValue(ResolvedJavaField field, JavaConstant receiver, boolean isDefaultStable) { |
340 JavaConstant fieldValue = readNonStableFieldValue(field, receiver); | 340 JavaConstant fieldValue = readNonStableFieldValue(field, receiver); |
341 if (fieldValue.isNonNull()) { | 341 if (fieldValue != null && fieldValue.isNonNull()) { |
342 JavaType declaredType = field.getType(); | 342 JavaType declaredType = field.getType(); |
343 if (declaredType.getComponentType() != null) { | 343 if (declaredType.getComponentType() != null) { |
344 int stableDimension = getArrayDimension(declaredType); | 344 int stableDimension = getArrayDimension(declaredType); |
345 return HotSpotObjectConstantImpl.forStableArray(((HotSpotObjectConstantImpl) fieldValue).object(), stableDimension, isDefaultStable); | 345 return HotSpotObjectConstantImpl.forStableArray(((HotSpotObjectConstantImpl) fieldValue).object(), stableDimension, isDefaultStable); |
346 } | 346 } |