Removed `goto fail` code with `unique_ptr`.
Previously, UDPTransport::SendMessageInternal
dynamically allocated a
char[]
and used a goto fail
to make sure that it was properly
deleted. Something like:
char *buf = new char[100];
if (...) {
...
goto fail;
} else if (...) {
...
goto fail;
} else {
...
}
fail:
delete [] buf;
return false;
Now, the array is stored in a unique_ptr
so that it's properly
deallocated when the function returns, without needing the goto fail.