code: public void releaseExtra(Variable variable) {
          Validate.notNull(variable);
          Validate.isTrue(variable.getParent() == this);
          Validate.isTrue(variable.index >= argVars.size());
          Validate.isTrue(variable.used);
  
          variable.used = false;
      }
docs: Release a variable that was acquired with {@link #acquireExtra(org.objectweb.asm.Type) }.
  @param variable variable to release
  @throws NullPointerException if any argument is {@code null}
  @throws IllegalArgumentException if {@code variable} wasn't acquired from this object, or if {@code variable} refers to an argument,
  or if {@code variable} has already been released