code: private void removeField(OpcodeStack.Item itm) {
          XField xf = itm.getXField();
          if (xf != null) {
              mapFields.remove(xf.getName());
              xf = (XField) itm.getUserValue();
              if (xf != null) {
                  mapFields.remove(xf.getName());
              }
              if (mapFields.isEmpty()) {
                  throw new StopOpcodeParsingException();
              }
          }
      }
docs: /*
  removes a potential field that was accessed from the map fields if this field
  was retrieved from a ternary, the user value will hold the first variable,
  and that will be removed too.
  
  @param itm the stack item that may potentially be a map field to remove as it
  is used like a map