00001 package gov.nasa.arc.ase.jpf.jvm.bytecode; 00002 00003 import de.fub.bytecode.generic.InstructionHandle; 00004 import gov.nasa.arc.ase.jpf.*; 00005 import gov.nasa.arc.ase.jpf.jvm.*; 00006 import gov.nasa.arc.ase.util.Debug; 00007 00008 public class ARRAYLENGTH extends AbstractInstruction { 00009 private de.fub.bytecode.generic.ARRAYLENGTH peer; 00010 00011 public InstructionHandle execute(SystemState ss, KernelState ks, ThreadInfo th) { 00012 DynamicArea da = ks.dynamic_area; 00013 00014 int objref = th.pop(); 00015 int length = da.arraylength(objref); 00016 00017 th.push(length); 00018 00019 return th.getPC().getNext(); 00020 } 00021 public void setPeer(de.fub.bytecode.generic.Instruction i) { 00022 peer = (de.fub.bytecode.generic.ARRAYLENGTH)i; 00023 } 00024 }