code: protected <J, T extends Proxy<J>> T marshalConstructor(final int opcode,
                                                             final J implementation,
                                                             final int version,
                                                             final Class<T> newProxyCls,
                                                             final Arguments args) {
          final T t = marshalConstructor(opcode,
                                         implementation,
                                         version,
                                         newProxyCls,
                                         args.pointer.address);
          args.pointer.close();
          return t;
      }
docs: Prepare a request to be sent to the compositor
  <p/>
  Translates the request given by opcode and the extra arguments into the
  wire format and write it to the connection buffer.
  <p/>
  For new-id arguments, this function will allocate a new {@code Proxy}
  and send the ID to the server.  The new {@code Proxy} will be returned
  on success or NULL on errror with errno set accordingly.
  <p/>
  This is intended to be used by language bindings and not in
  non-generated code.
  
  @param opcode         Opcode of the request to be sent
  @param implementation The listener to use for the new proxy
  @param version        The runtime version of the new proxy
  @param newProxyCls    The type to use for the new proxy
  @param args           Extra arguments for the given request
  @param <J>            implementation Type
  @param <T>            proxy Type
  
  @return a new proxy