Main Page   Packages   Class Hierarchy   Alphabetical List   Compound List   File List   Compound Members  

AASTORE.java

00001 package gov.nasa.arc.ase.jpf.jvm.bytecode;
00002 
00003 import gov.nasa.arc.ase.jpf.jvm.ElementInfo;
00004 import gov.nasa.arc.ase.jpf.jvm.SystemState;
00005 import gov.nasa.arc.ase.jpf.jvm.KernelState;
00006 import gov.nasa.arc.ase.jpf.jvm.ThreadInfo;
00007 import de.fub.bytecode.classfile.ConstantPool;
00008 import gov.nasa.arc.ase.util.Debug;
00009 //#ifdef RACE
00010 
00011 //#endif RACE
00012 
00013 public class AASTORE extends Instruction {
00014   public Instruction execute(SystemState ss, KernelState ks, ThreadInfo th) {
00015     int value = th.pop();
00016     int index = th.pop();
00017     int arrayRef = th.pop();
00018 
00019     if(arrayRef == -1)
00020       return th.createAndThrowException("java.lang.NullPointerException");
00021 
00022     ElementInfo e = ks.da.get(arrayRef);
00023 
00024     if(e.outOfBounds(index))
00025       return th.createAndThrowException("java.lang.ArrayIndexOutOfBoundsException");
00026 
00027     e.setField(index, value);
00028 
00029 //#ifdef RACE
00030 
00031 
00032 //#endif RACE
00033 
00034     return th.getPC().getNext();
00035   }  
00036   public void setPeer(de.fub.bytecode.generic.Instruction i, ConstantPool cp) {
00037   }  
00038 }

Generated at Thu Feb 7 06:35:50 2002 for Bandera by doxygen1.2.10 written by Dimitri van Heesch, © 1997-2001