|  | @@ -66,32 +66,13 @@ void grpc_slice_unref(grpc_slice slice) {
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +namespace grpc_core {
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  /* grpc_slice_from_static_string support structure - a refcount that does
 | 
	
		
			
				|  |  |     nothing */
 | 
	
		
			
				|  |  | -static grpc_slice_refcount NoopRefcount =
 | 
	
		
			
				|  |  | -    grpc_slice_refcount(grpc_slice_refcount::Type::NOP);
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -size_t grpc_slice_memory_usage(grpc_slice s) {
 | 
	
		
			
				|  |  | -  if (s.refcount == nullptr || s.refcount == &NoopRefcount) {
 | 
	
		
			
				|  |  | -    return 0;
 | 
	
		
			
				|  |  | -  } else {
 | 
	
		
			
				|  |  | -    return s.data.refcounted.length;
 | 
	
		
			
				|  |  | -  }
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -grpc_slice grpc_slice_from_static_buffer(const void* s, size_t len) {
 | 
	
		
			
				|  |  | -  grpc_slice slice;
 | 
	
		
			
				|  |  | -  slice.refcount = &NoopRefcount;
 | 
	
		
			
				|  |  | -  slice.data.refcounted.bytes = (uint8_t*)s;
 | 
	
		
			
				|  |  | -  slice.data.refcounted.length = len;
 | 
	
		
			
				|  |  | -  return slice;
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -grpc_slice grpc_slice_from_static_string(const char* s) {
 | 
	
		
			
				|  |  | -  return grpc_slice_from_static_buffer(s, strlen(s));
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -namespace grpc_core {
 | 
	
		
			
				|  |  | +grpc_slice_refcount kNoopRefcount(grpc_slice_refcount::Type::NOP);
 | 
	
		
			
				|  |  | +static_assert(std::is_trivially_destructible<decltype(kNoopRefcount)>::value,
 | 
	
		
			
				|  |  | +              "kNoopRefcount must be trivially destructible.");
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  /* grpc_slice_new support structures - we create a refcount object extended
 | 
	
		
			
				|  |  |     with the user provided data pointer & destroy function */
 | 
	
	
		
			
				|  | @@ -122,6 +103,22 @@ class NewSliceRefcount {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  }  // namespace grpc_core
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +size_t grpc_slice_memory_usage(grpc_slice s) {
 | 
	
		
			
				|  |  | +  if (s.refcount == nullptr || s.refcount == &grpc_core::kNoopRefcount) {
 | 
	
		
			
				|  |  | +    return 0;
 | 
	
		
			
				|  |  | +  } else {
 | 
	
		
			
				|  |  | +    return s.data.refcounted.length;
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +grpc_slice grpc_slice_from_static_buffer(const void* s, size_t len) {
 | 
	
		
			
				|  |  | +  return grpc_slice_from_static_buffer_internal(s, len);
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +grpc_slice grpc_slice_from_static_string(const char* s) {
 | 
	
		
			
				|  |  | +  return grpc_slice_from_static_buffer_internal(s, strlen(s));
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  grpc_slice grpc_slice_new_with_user_data(void* p, size_t len,
 | 
	
		
			
				|  |  |                                           void (*destroy)(void*),
 | 
	
		
			
				|  |  |                                           void* user_data) {
 | 
	
	
		
			
				|  | @@ -375,10 +372,10 @@ grpc_slice grpc_slice_split_tail_maybe_ref(grpc_slice* source, size_t split,
 | 
	
		
			
				|  |  |        switch (ref_whom) {
 | 
	
		
			
				|  |  |          case GRPC_SLICE_REF_TAIL:
 | 
	
		
			
				|  |  |            tail.refcount = source->refcount->sub_refcount();
 | 
	
		
			
				|  |  | -          source->refcount = &NoopRefcount;
 | 
	
		
			
				|  |  | +          source->refcount = &grpc_core::kNoopRefcount;
 | 
	
		
			
				|  |  |            break;
 | 
	
		
			
				|  |  |          case GRPC_SLICE_REF_HEAD:
 | 
	
		
			
				|  |  | -          tail.refcount = &NoopRefcount;
 | 
	
		
			
				|  |  | +          tail.refcount = &grpc_core::kNoopRefcount;
 | 
	
		
			
				|  |  |            source->refcount = source->refcount->sub_refcount();
 | 
	
		
			
				|  |  |            break;
 | 
	
		
			
				|  |  |          case GRPC_SLICE_REF_BOTH:
 |