|  | @@ -41,11 +41,11 @@ typedef enum {
 | 
	
		
			
				|  |  |  typedef struct grpc_byte_buffer {
 | 
	
		
			
				|  |  |    void *reserved;
 | 
	
		
			
				|  |  |    grpc_byte_buffer_type type;
 | 
	
		
			
				|  |  | -  union {
 | 
	
		
			
				|  |  | -    struct {
 | 
	
		
			
				|  |  | +  union grpc_byte_buffer_data {
 | 
	
		
			
				|  |  | +    struct /* internal */ {
 | 
	
		
			
				|  |  |        void *reserved[8];
 | 
	
		
			
				|  |  |      } reserved;
 | 
	
		
			
				|  |  | -    struct {
 | 
	
		
			
				|  |  | +    struct grpc_compressed_buffer {
 | 
	
		
			
				|  |  |        grpc_compression_algorithm compression;
 | 
	
		
			
				|  |  |        grpc_slice_buffer slice_buffer;
 | 
	
		
			
				|  |  |      } raw;
 | 
	
	
		
			
				|  | @@ -104,10 +104,10 @@ typedef struct grpc_arg_pointer_vtable {
 | 
	
		
			
				|  |  |  typedef struct {
 | 
	
		
			
				|  |  |    grpc_arg_type type;
 | 
	
		
			
				|  |  |    char *key;
 | 
	
		
			
				|  |  | -  union {
 | 
	
		
			
				|  |  | +  union grpc_arg_value {
 | 
	
		
			
				|  |  |      char *string;
 | 
	
		
			
				|  |  |      int integer;
 | 
	
		
			
				|  |  | -    struct {
 | 
	
		
			
				|  |  | +    struct grpc_arg_pointer {
 | 
	
		
			
				|  |  |        void *p;
 | 
	
		
			
				|  |  |        const grpc_arg_pointer_vtable *vtable;
 | 
	
		
			
				|  |  |      } pointer;
 | 
	
	
		
			
				|  | @@ -391,7 +391,7 @@ typedef struct grpc_metadata {
 | 
	
		
			
				|  |  |    /** The following fields are reserved for grpc internal use.
 | 
	
		
			
				|  |  |        There is no need to initialize them, and they will be set to garbage
 | 
	
		
			
				|  |  |        during calls to grpc. */
 | 
	
		
			
				|  |  | -  struct {
 | 
	
		
			
				|  |  | +  struct /* internal */ {
 | 
	
		
			
				|  |  |      void *obfuscated[4];
 | 
	
		
			
				|  |  |    } internal_data;
 | 
	
		
			
				|  |  |  } grpc_metadata;
 | 
	
	
		
			
				|  | @@ -491,25 +491,25 @@ typedef struct grpc_op {
 | 
	
		
			
				|  |  |    uint32_t flags;
 | 
	
		
			
				|  |  |    /** Reserved for future usage */
 | 
	
		
			
				|  |  |    void *reserved;
 | 
	
		
			
				|  |  | -  union {
 | 
	
		
			
				|  |  | +  union grpc_op_data {
 | 
	
		
			
				|  |  |      /** Reserved for future usage */
 | 
	
		
			
				|  |  | -    struct {
 | 
	
		
			
				|  |  | +    struct /* internal */ {
 | 
	
		
			
				|  |  |        void *reserved[8];
 | 
	
		
			
				|  |  |      } reserved;
 | 
	
		
			
				|  |  | -    struct {
 | 
	
		
			
				|  |  | +    struct grpc_op_send_initial_metadata {
 | 
	
		
			
				|  |  |        size_t count;
 | 
	
		
			
				|  |  |        grpc_metadata *metadata;
 | 
	
		
			
				|  |  |        /** If \a is_set, \a compression_level will be used for the call.
 | 
	
		
			
				|  |  |         * Otherwise, \a compression_level won't be considered */
 | 
	
		
			
				|  |  | -      struct {
 | 
	
		
			
				|  |  | +      struct grpc_op_send_initial_metadata_maybe_compression_level {
 | 
	
		
			
				|  |  |          uint8_t is_set;
 | 
	
		
			
				|  |  |          grpc_compression_level level;
 | 
	
		
			
				|  |  |        } maybe_compression_level;
 | 
	
		
			
				|  |  |      } send_initial_metadata;
 | 
	
		
			
				|  |  | -    struct {
 | 
	
		
			
				|  |  | +    struct grpc_op_send_message {
 | 
	
		
			
				|  |  |        struct grpc_byte_buffer *send_message;
 | 
	
		
			
				|  |  |      } send_message;
 | 
	
		
			
				|  |  | -    struct {
 | 
	
		
			
				|  |  | +    struct grpc_op_send_status_from_server {
 | 
	
		
			
				|  |  |        size_t trailing_metadata_count;
 | 
	
		
			
				|  |  |        grpc_metadata *trailing_metadata;
 | 
	
		
			
				|  |  |        grpc_status_code status;
 | 
	
	
		
			
				|  | @@ -523,16 +523,16 @@ typedef struct grpc_op {
 | 
	
		
			
				|  |  |          object, recv_initial_metadata->array is owned by the caller).
 | 
	
		
			
				|  |  |          After the operation completes, call grpc_metadata_array_destroy on this
 | 
	
		
			
				|  |  |          value, or reuse it in a future op. */
 | 
	
		
			
				|  |  | -    struct {
 | 
	
		
			
				|  |  | +    struct grpc_op_recv_initial_metadata {
 | 
	
		
			
				|  |  |        grpc_metadata_array *recv_initial_metadata;
 | 
	
		
			
				|  |  |      } recv_initial_metadata;
 | 
	
		
			
				|  |  |      /** ownership of the byte buffer is moved to the caller; the caller must
 | 
	
		
			
				|  |  |          call grpc_byte_buffer_destroy on this value, or reuse it in a future op.
 | 
	
		
			
				|  |  |         */
 | 
	
		
			
				|  |  | -    struct {
 | 
	
		
			
				|  |  | +    struct grpc_op_recv_message {
 | 
	
		
			
				|  |  |        struct grpc_byte_buffer **recv_message;
 | 
	
		
			
				|  |  |      } recv_message;
 | 
	
		
			
				|  |  | -    struct {
 | 
	
		
			
				|  |  | +    struct grpc_op_recv_status_on_client {
 | 
	
		
			
				|  |  |        /** ownership of the array is with the caller, but ownership of the
 | 
	
		
			
				|  |  |            elements stays with the call object (ie key, value members are owned
 | 
	
		
			
				|  |  |            by the call object, trailing_metadata->array is owned by the caller).
 | 
	
	
		
			
				|  | @@ -542,7 +542,7 @@ typedef struct grpc_op {
 | 
	
		
			
				|  |  |        grpc_status_code *status;
 | 
	
		
			
				|  |  |        grpc_slice *status_details;
 | 
	
		
			
				|  |  |      } recv_status_on_client;
 | 
	
		
			
				|  |  | -    struct {
 | 
	
		
			
				|  |  | +    struct grpc_op_recv_close_on_server {
 | 
	
		
			
				|  |  |        /** out argument, set to 1 if the call failed in any way (seen as a
 | 
	
		
			
				|  |  |            cancellation on the server), or 0 if the call succeeded */
 | 
	
		
			
				|  |  |        int *cancelled;
 |