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 }