示例#1
0
 // add a stack item element to the current stack map frame
 void plantStackStack(String item, String val) {
   try {
     verifyframe.addStackItem(item, val);
   } catch (jasError e) {
     report_error(e.toString());
   }
 }
示例#2
0
 // define the offset of the current stack map frame
 void plantStackOffset(int n) {
   try {
     verifyframe.setOffset(n);
   } catch (jasError e) {
     report_error(e.toString());
   }
 }
示例#3
0
 void plantStackOffset(String label) throws jasError {
   Label l = getLabel(label);
   try {
     verifyframe.setOffset(l);
   } catch (jasError e) {
     report_error(e.toString());
   }
 }
示例#4
0
  // add the current stack map frame to the current stack map attribute
  void endStack() {
    if (!verifyframe.haveOffset()) {
      String l = "jasmin_reserved_SM:" + (stack_map_label_count++);
      try {
        plantLabel(l);
        verifyframe.setOffset(getLabel(l));
      } catch (jasError e) {
        report_error(e.toString());
      }
    }
    if (stackmap == null) stackmap = new StackMap(class_env);

    stackmap.addFrame(verifyframe);
    verifyframe = null; // PARANOYA
  }