mirror of
https://github.com/matrix-construct/construct
synced 2024-12-27 07:54:05 +01:00
ircd::db: Use non-allocating message string for exception translation.
This commit is contained in:
parent
a3f831e64f
commit
c9e9fd3621
1 changed files with 19 additions and 14 deletions
33
ircd/db.cc
33
ircd/db.cc
|
@ -10923,25 +10923,30 @@ ircd::db::throw_on_error::throw_on_error(const rocksdb::Status &s)
|
||||||
{
|
{
|
||||||
using rocksdb::Status;
|
using rocksdb::Status;
|
||||||
|
|
||||||
|
const string_view &message
|
||||||
|
{
|
||||||
|
s.getState()
|
||||||
|
};
|
||||||
|
|
||||||
switch(s.code())
|
switch(s.code())
|
||||||
{
|
{
|
||||||
case Status::kOk: return;
|
case Status::kOk: return;
|
||||||
case Status::kNotFound: throw not_found("%s", s.ToString());
|
case Status::kNotFound: throw not_found{"%s", message};
|
||||||
case Status::kCorruption: throw corruption("%s", s.ToString());
|
case Status::kCorruption: throw corruption{"%s", message};
|
||||||
case Status::kNotSupported: throw not_supported("%s", s.ToString());
|
case Status::kNotSupported: throw not_supported{"%s", message};
|
||||||
case Status::kInvalidArgument: throw invalid_argument("%s", s.ToString());
|
case Status::kInvalidArgument: throw invalid_argument{"%s", message};
|
||||||
case Status::kIOError: throw io_error("%s", s.ToString());
|
case Status::kIOError: throw io_error{"%s", message};
|
||||||
case Status::kMergeInProgress: throw merge_in_progress("%s", s.ToString());
|
case Status::kMergeInProgress: throw merge_in_progress{"%s", message};
|
||||||
case Status::kIncomplete: throw incomplete("%s", s.ToString());
|
case Status::kIncomplete: throw incomplete{"%s", message};
|
||||||
case Status::kShutdownInProgress: throw shutdown_in_progress("%s", s.ToString());
|
case Status::kShutdownInProgress: throw shutdown_in_progress{"%s", message};
|
||||||
case Status::kTimedOut: throw timed_out("%s", s.ToString());
|
case Status::kTimedOut: throw timed_out{"%s", message};
|
||||||
case Status::kAborted: throw aborted("%s", s.ToString());
|
case Status::kAborted: throw aborted{"%s", message};
|
||||||
case Status::kBusy: throw busy("%s", s.ToString());
|
case Status::kBusy: throw busy{"%s", message};
|
||||||
case Status::kExpired: throw expired("%s", s.ToString());
|
case Status::kExpired: throw expired{"%s", message};
|
||||||
case Status::kTryAgain: throw try_again("%s", s.ToString());
|
case Status::kTryAgain: throw try_again{"%s", message};
|
||||||
default: throw error
|
default: throw error
|
||||||
{
|
{
|
||||||
"code[%d] %s", s.code(), s.ToString()
|
"code[%d] %s", s.code(), message
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue