Fixes null captured parameters
[jpf-core.git] / src / main / gov / nasa / jpf / vm / ShortFieldInfo.java
1 /*
2  * Copyright (C) 2014, United States Government, as represented by the
3  * Administrator of the National Aeronautics and Space Administration.
4  * All rights reserved.
5  *
6  * The Java Pathfinder core (jpf-core) platform is licensed under the
7  * Apache License, Version 2.0 (the "License"); you may not use this file except
8  * in compliance with the License. You may obtain a copy of the License at
9  * 
10  *        http://www.apache.org/licenses/LICENSE-2.0. 
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and 
16  * limitations under the License.
17  */
18
19 package gov.nasa.jpf.vm;
20
21 import gov.nasa.jpf.JPFException;
22
23
24 /**
25  * fieldinfo for slots holding booleans
26  */
27 public class ShortFieldInfo extends SingleSlotFieldInfo {
28
29   short init;
30
31   public ShortFieldInfo (String name, int modifiers) {
32     super(name, "S", modifiers);
33   }
34
35   @Override
36   public void setConstantValue(Object constValue){
37     if (constValue instanceof Integer){
38       cv = constValue;
39       init = ((Integer)constValue).shortValue();
40
41     } else {
42       throw new JPFException("illegal short ConstValue=" + constValue);
43     }
44   }
45
46
47   @Override
48   public void initialize (ElementInfo ei, ThreadInfo ti) {
49     ei.getFields().setShortValue(storageOffset, init);
50   }
51
52   @Override
53   public boolean isShortField() {
54     return true;
55   }
56
57   @Override
58   public boolean isNumericField(){
59     return true;
60   }
61
62   @Override
63   public Object getValueObject (Fields f){
64     int i = f.getIntValue(storageOffset);
65     return new Short((short)i);
66   }
67
68   @Override
69   public String valueToString (Fields f) {
70     short i = f.getShortValue(storageOffset);
71     return Short.toString(i);
72   }
73
74 }