diff --git a/src/csharp/ext/grpc_csharp_ext.c b/src/csharp/ext/grpc_csharp_ext.c index 946f5872c0ef2a218545539959693d31817c8d24..ee1fe0b494f163999227d3cc543dc2739d7171d4 100644 --- a/src/csharp/ext/grpc_csharp_ext.c +++ b/src/csharp/ext/grpc_csharp_ext.c @@ -122,8 +122,8 @@ void grpcsharp_metadata_array_destroy_metadata_including_entries( size_t i; if (array->metadata) { for (i = 0; i < array->count; i++) { - gpr_free((void *)array->metadata[i].key); - gpr_free((void *)array->metadata[i].value); + grpc_slice_unref(array->metadata[i].key); + grpc_slice_unref(array->metadata[i].value); } } gpr_free(array->metadata); @@ -167,10 +167,8 @@ grpcsharp_metadata_array_add(grpc_metadata_array *array, const char *key, const char *value, size_t value_length) { size_t i = array->count; GPR_ASSERT(array->count < array->capacity); - array->metadata[i].key = gpr_strdup(key); - array->metadata[i].value = (char *)gpr_malloc(value_length); - memcpy((void *)array->metadata[i].value, value, value_length); - array->metadata[i].value_length = value_length; + array->metadata[i].key = grpc_slice_from_copied_string(key); + array->metadata[i].value = grpc_slice_from_copied_buffer(value, value_length); array->count++; }