*: add "noexcept" to many, many function prototypes

This eliminates some overhead, because the compiler doesn't need to
consider these functions throwing.
This commit is contained in:
Max Kellermann
2017-05-08 14:44:49 +02:00
parent ac2e4e593d
commit 71f0ed8b74
272 changed files with 873 additions and 846 deletions

View File

@@ -89,7 +89,7 @@ AsyncInputStream::Check()
}
bool
AsyncInputStream::IsEOF()
AsyncInputStream::IsEOF() noexcept
{
return (KnownSize() && offset >= size) ||
(!open && buffer.IsEmpty());
@@ -164,7 +164,7 @@ AsyncInputStream::ReadTag()
}
bool
AsyncInputStream::IsAvailable()
AsyncInputStream::IsAvailable() noexcept
{
return postponed_exception ||
IsEOF() ||

View File

@@ -82,10 +82,10 @@ public:
/* virtual methods from InputStream */
void Check() final;
bool IsEOF() final;
bool IsEOF() noexcept final;
void Seek(offset_type new_offset) final;
Tag *ReadTag() final;
bool IsAvailable() final;
bool IsAvailable() noexcept final;
size_t Read(void *ptr, size_t read_size) final;
protected:

View File

@@ -75,14 +75,14 @@ InputStream::LockWaitReady()
*/
gcc_pure
static bool
ExpensiveSeeking(const char *uri)
ExpensiveSeeking(const char *uri) noexcept
{
return StringStartsWith(uri, "http://") ||
StringStartsWith(uri, "https://");
}
bool
InputStream::CheapSeeking() const
InputStream::CheapSeeking() const noexcept
{
return IsSeekable() && !ExpensiveSeeking(uri.c_str());
}
@@ -121,7 +121,7 @@ InputStream::LockReadTag()
}
bool
InputStream::IsAvailable()
InputStream::IsAvailable() noexcept
{
return true;
}
@@ -169,7 +169,7 @@ InputStream::LockReadFull(void *ptr, size_t _size)
}
bool
InputStream::LockIsEOF()
InputStream::LockIsEOF() noexcept
{
const std::lock_guard<Mutex> protect(mutex);
return IsEOF();

View File

@@ -261,7 +261,7 @@ public:
* Determines whether seeking is cheap. This is true for local files.
*/
gcc_pure
bool CheapSeeking() const;
bool CheapSeeking() const noexcept;
/**
* Seeks to the specified position in the stream. This will most
@@ -308,14 +308,14 @@ public:
* The caller must lock the mutex.
*/
gcc_pure
virtual bool IsEOF() = 0;
virtual bool IsEOF() noexcept = 0;
/**
* Wrapper for IsEOF() which locks and unlocks the mutex; the
* caller must not be holding it already.
*/
gcc_pure
bool LockIsEOF();
bool LockIsEOF() noexcept;
/**
* Reads the tag from the stream.
@@ -343,7 +343,7 @@ public:
* The caller must lock the mutex.
*/
gcc_pure
virtual bool IsAvailable();
virtual bool IsAvailable() noexcept;
/**
* Reads data from the stream into the caller-supplied buffer.

View File

@@ -70,7 +70,7 @@ ProxyInputStream::Seek(offset_type new_offset)
}
bool
ProxyInputStream::IsEOF()
ProxyInputStream::IsEOF() noexcept
{
return input.IsEOF();
}
@@ -82,7 +82,7 @@ ProxyInputStream::ReadTag()
}
bool
ProxyInputStream::IsAvailable()
ProxyInputStream::IsAvailable() noexcept
{
return input.IsAvailable();
}

View File

@@ -46,9 +46,9 @@ public:
void Check() override;
void Update() override;
void Seek(offset_type new_offset) override;
bool IsEOF() override;
bool IsEOF() noexcept override;
Tag *ReadTag() override;
bool IsAvailable() override;
bool IsAvailable() noexcept override;
size_t Read(void *ptr, size_t read_size) override;
protected:

View File

@@ -124,7 +124,7 @@ ThreadInputStream::Check()
}
bool
ThreadInputStream::IsAvailable()
ThreadInputStream::IsAvailable() noexcept
{
assert(!thread.IsInside());
@@ -158,7 +158,7 @@ ThreadInputStream::Read(void *ptr, size_t read_size)
}
bool
ThreadInputStream::IsEOF()
ThreadInputStream::IsEOF() noexcept
{
assert(!thread.IsInside());

View File

@@ -84,8 +84,8 @@ public:
/* virtual methods from InputStream */
void Check() override final;
bool IsEOF() override final;
bool IsAvailable() override final;
bool IsEOF() noexcept final;
bool IsAvailable() noexcept final;
size_t Read(void *ptr, size_t size) override final;
protected:

View File

@@ -96,7 +96,7 @@ class CdioParanoiaInputStream final : public InputStream {
}
/* virtual methods from InputStream */
bool IsEOF() override;
bool IsEOF() noexcept override;
size_t Read(void *ptr, size_t size) override;
void Seek(offset_type offset) override;
};
@@ -340,7 +340,7 @@ CdioParanoiaInputStream::Read(void *ptr, size_t length)
}
bool
CdioParanoiaInputStream::IsEOF()
CdioParanoiaInputStream::IsEOF() noexcept
{
return lsn_from + lsn_relofs > lsn_to;
}

View File

@@ -59,7 +59,7 @@ struct FfmpegInputStream final : public InputStream {
}
/* virtual methods from InputStream */
bool IsEOF() override;
bool IsEOF() noexcept override;
size_t Read(void *ptr, size_t size) override;
void Seek(offset_type offset) override;
};
@@ -118,7 +118,7 @@ FfmpegInputStream::Read(void *ptr, size_t read_size)
}
bool
FfmpegInputStream::IsEOF()
FfmpegInputStream::IsEOF() noexcept
{
return eof;
}

View File

@@ -45,7 +45,7 @@ public:
/* virtual methods from InputStream */
bool IsEOF() override {
bool IsEOF() noexcept override {
return GetOffset() >= GetSize();
}

View File

@@ -59,7 +59,7 @@ public:
ProxyInputStream::Update();
}
bool IsEOF() override {
bool IsEOF() noexcept override {
return !ReadingFromBuffer() && ProxyInputStream::IsEOF();
}

View File

@@ -55,7 +55,7 @@ public:
/* virtual methods from InputStream */
bool IsEOF() override {
bool IsEOF() noexcept override {
return offset >= size;
}