private void pop(final String descriptor) {
    char firstDescriptorChar = descriptor.charAt(0);
    if (firstDescriptorChar == '(') {
      pop((Type.getArgumentsAndReturnSizes(descriptor) >> 2) - 1);
    } else if (firstDescriptorChar == 'J' || firstDescriptorChar == 'D') {
      pop(2);
    } else {
      pop(1);
    }
  }
private void pop(final String descriptor) {
    char firstDescriptorChar = descriptor.charAt(0);
    if (firstDescriptorChar == '(') {
      pop((Type.getArgumentsAndReturnSizes(descriptor) >> 2) - 1);
    } else if (firstDescriptorChar == 'J' || firstDescriptorChar == 'D') {
      pop(2);
    } else {
      pop(1);
    }
  }
private void pop ( final String descriptor ) { char firstDescriptorChar = descriptor . charAt ( 0 ) ; if ( firstDescriptorChar == ' ' ) { pop ( ( Type . getArgumentsAndReturnSizes ( descriptor ) >> 2 ) - 1 ) ; } else if ( firstDescriptorChar == ' ' || firstDescriptorChar == ' ' ) { pop ( 2 ) ; } else { pop ( 1 ) ; } }
Pops as many abstract types from the output frame stack as described by the given descriptor.

@param descriptor a type or method descriptor (in which case its argument types are popped).
Pops as many abstract types from the output frame stack as described by the given descriptor .