code: private void getImplicitFrame(final Context frame) {
          String desc = frame.desc;
          Object[] locals = frame.local;
          int local = 0;
          if ((frame.access & Opcodes.ACC_STATIC) == 0) {
              if ("<init>".equals(frame.name)) {
                  locals[local++] = Opcodes.UNINITIALIZED_THIS;
              } else {
                  locals[local++] = readClass(header + 2, frame.buffer);
              }
          }
          int i = 1;
          loop: while (true) {
              int j = i;
              switch (desc.charAt(i++)) {
              case 'Z':
              case 'C':
              case 'B':
              case 'S':
              case 'I':
                  locals[local++] = Opcodes.INTEGER;
                  break;
              case 'F':
                  locals[local++] = Opcodes.FLOAT;
                  break;
              case 'J':
                  locals[local++] = Opcodes.LONG;
                  break;
              case 'D':
                  locals[local++] = Opcodes.DOUBLE;
                  break;
              case '[':
                  while (desc.charAt(i) == '[') {
                      ++i;
                  }
                  if (desc.charAt(i) == 'L') {
                      ++i;
                      while (desc.charAt(i) != ';') {
                          ++i;
                      }
                  }
                  locals[local++] = desc.substring(j, ++i);
                  break;
              case 'L':
                  while (desc.charAt(i) != ';') {
                      ++i;
                  }
                  locals[local++] = desc.substring(j + 1, i++);
                  break;
              default:
                  break loop;
              }
          }
          frame.localCount = local;
      }
docs: Computes the implicit frame of the method currently being parsed (as
  defined in the given {@link Context}) and stores it in the given context.
  
  @param frame
  information about the class being parsed.