code: private int init(final ClassWriter cw, final int t) {
          int s;
          if (t == UNINITIALIZED_THIS) {
              s = OBJECT | cw.addType(cw.thisName);
          } else if ((t & (DIM | BASE_KIND)) == UNINITIALIZED) {
              String type = cw.typeTable[t & BASE_VALUE].strVal1;
              s = OBJECT | cw.addType(type);
          } else {
              return t;
          }
          for (int j = 0; j < initializationCount; ++j) {
              int u = initializations[j];
              int dim = u & DIM;
              int kind = u & KIND;
              if (kind == LOCAL) {
                  u = dim + inputLocals[u & VALUE];
              } else if (kind == STACK) {
                  u = dim + inputStack[inputStack.length - (u & VALUE)];
              }
              if (t == u) {
                  return s;
              }
          }
          return t;
      }
docs: Replaces the given type with the appropriate type if it is one of the
  types on which a constructor is invoked in the basic block.
  
  @param cw
  the ClassWriter to which this label belongs.
  @param t
  a type
  @return t or, if t is one of the types on which a constructor is invoked
  in the basic block, the type corresponding to this constructor.