91 // Find stack location 92 Address addr = addressOfExpressionStackAt(i); 93 94 // Depending on oop/int put it in the right package 95 StackValue sv; 96 if (oopMask.isOop(i + nofLocals)) { 97 // oop value 98 sv = new StackValue(addr.getOopHandleAt(0), 0); 99 } else { 100 // integer 101 // Fetch a signed integer the size of a stack slot 102 sv = new StackValue(addr.getCIntegerAt(0, VM.getVM().getAddressSize(), false)); 103 } 104 result.add(sv); 105 } 106 107 return result; 108 } 109 110 /** Returns List<MonitorInfo> */ 111 public List getMonitors() { 112 List result = new ArrayList(5); 113 for (BasicObjectLock current = getFrame().interpreterFrameMonitorEnd(); 114 current.address().lessThan(getFrame().interpreterFrameMonitorBegin().address()); 115 current = getFrame().nextMonitorInInterpreterFrame(current)) { 116 result.add(new MonitorInfo(current.obj(), current.lock(), false, false)); 117 } 118 return result; 119 } 120 121 /** Test operation */ 122 public boolean isInterpretedFrame() { return true; } 123 124 /** Package-internal constructor */ 125 InterpretedVFrame(Frame fr, RegisterMap regMap, JavaThread thread) { 126 super(fr, regMap, thread); 127 } 128 129 /** Accessor for Byte Code Index (NOTE: access to BCP is not allowed 130 in this system; see Frame.java) */ 131 public int getBCI() { 132 return getFrame().getInterpreterFrameBCI(); | 91 // Find stack location 92 Address addr = addressOfExpressionStackAt(i); 93 94 // Depending on oop/int put it in the right package 95 StackValue sv; 96 if (oopMask.isOop(i + nofLocals)) { 97 // oop value 98 sv = new StackValue(addr.getOopHandleAt(0), 0); 99 } else { 100 // integer 101 // Fetch a signed integer the size of a stack slot 102 sv = new StackValue(addr.getCIntegerAt(0, VM.getVM().getAddressSize(), false)); 103 } 104 result.add(sv); 105 } 106 107 return result; 108 } 109 110 /** Returns List<MonitorInfo> */ 111 public List<MonitorInfo> getMonitors() { 112 List<MonitorInfo> result = new ArrayList<>(5); 113 for (BasicObjectLock current = getFrame().interpreterFrameMonitorEnd(); 114 current.address().lessThan(getFrame().interpreterFrameMonitorBegin().address()); 115 current = getFrame().nextMonitorInInterpreterFrame(current)) { 116 result.add(new MonitorInfo(current.obj(), current.lock(), false, false)); 117 } 118 return result; 119 } 120 121 /** Test operation */ 122 public boolean isInterpretedFrame() { return true; } 123 124 /** Package-internal constructor */ 125 InterpretedVFrame(Frame fr, RegisterMap regMap, JavaThread thread) { 126 super(fr, regMap, thread); 127 } 128 129 /** Accessor for Byte Code Index (NOTE: access to BCP is not allowed 130 in this system; see Frame.java) */ 131 public int getBCI() { 132 return getFrame().getInterpreterFrameBCI(); |