util/HugeAllocator: throw std::bad_alloc on error
This commit is contained in:
@@ -50,10 +50,7 @@ ThreadInputStream::Start(Error &error)
|
||||
assert(buffer == nullptr);
|
||||
|
||||
void *p = HugeAllocate(buffer_size);
|
||||
if (p == nullptr) {
|
||||
error.SetErrno();
|
||||
return nullptr;
|
||||
}
|
||||
assert(p != nullptr);
|
||||
|
||||
buffer = new CircularBuffer<uint8_t>((uint8_t *)p, buffer_size);
|
||||
|
||||
|
@@ -73,10 +73,10 @@ struct CurlInputStream final : public AsyncInputStream {
|
||||
/** parser for icy-metadata */
|
||||
IcyInputStream *icy;
|
||||
|
||||
CurlInputStream(const char *_url, Mutex &_mutex, Cond &_cond,
|
||||
void *_buffer)
|
||||
CurlInputStream(const char *_url, Mutex &_mutex, Cond &_cond)
|
||||
:AsyncInputStream(_url, _mutex, _cond,
|
||||
_buffer, CURL_MAX_BUFFERED,
|
||||
HugeAllocate(CURL_MAX_BUFFERED),
|
||||
CURL_MAX_BUFFERED,
|
||||
CURL_RESUME_AT),
|
||||
request_headers(nullptr),
|
||||
icy(new IcyInputStream(this)) {}
|
||||
@@ -844,14 +844,7 @@ inline InputStream *
|
||||
CurlInputStream::Open(const char *url, Mutex &mutex, Cond &cond,
|
||||
Error &error)
|
||||
{
|
||||
void *buffer = HugeAllocate(CURL_MAX_BUFFERED);
|
||||
if (buffer == nullptr) {
|
||||
error.Set(curl_domain, "Out of memory");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
CurlInputStream *c = new CurlInputStream(url, mutex, cond, buffer);
|
||||
|
||||
CurlInputStream *c = new CurlInputStream(url, mutex, cond);
|
||||
if (!c->InitEasy(error) || !input_curl_easy_add_indirect(c, error)) {
|
||||
delete c;
|
||||
return nullptr;
|
||||
|
@@ -48,11 +48,10 @@ class NfsInputStream final : public AsyncInputStream, NfsFileReader {
|
||||
bool reconnect_on_resume, reconnecting;
|
||||
|
||||
public:
|
||||
NfsInputStream(const char *_uri,
|
||||
Mutex &_mutex, Cond &_cond,
|
||||
void *_buffer)
|
||||
NfsInputStream(const char *_uri, Mutex &_mutex, Cond &_cond)
|
||||
:AsyncInputStream(_uri, _mutex, _cond,
|
||||
_buffer, NFS_MAX_BUFFERED,
|
||||
HugeAllocate(NFS_MAX_BUFFERED),
|
||||
NFS_MAX_BUFFERED,
|
||||
NFS_RESUME_AT),
|
||||
reconnect_on_resume(false), reconnecting(false) {}
|
||||
|
||||
@@ -239,13 +238,7 @@ input_nfs_open(const char *uri,
|
||||
if (!StringStartsWith(uri, "nfs://"))
|
||||
return nullptr;
|
||||
|
||||
void *buffer = HugeAllocate(NFS_MAX_BUFFERED);
|
||||
if (buffer == nullptr) {
|
||||
error.Set(nfs_domain, "Out of memory");
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
NfsInputStream *is = new NfsInputStream(uri, mutex, cond, buffer);
|
||||
NfsInputStream *is = new NfsInputStream(uri, mutex, cond);
|
||||
if (!is->Open(error)) {
|
||||
delete is;
|
||||
return nullptr;
|
||||
|
Reference in New Issue
Block a user