mirror of
https://github.com/matrix-construct/construct
synced 2025-03-14 05:20:17 +01:00
ircd::buffer: Minor qualifiers; minor cleanup.
This commit is contained in:
parent
51d2ac4b33
commit
4ab97bd1a3
2 changed files with 30 additions and 9 deletions
|
@ -62,25 +62,38 @@ ircd::buffer::copy(const mutable_buffer &dst,
|
|||
|
||||
inline char *&
|
||||
__attribute__((always_inline))
|
||||
ircd::buffer::copy(char *&dest,
|
||||
char *const &stop,
|
||||
ircd::buffer::copy(char *&__restrict__ dest,
|
||||
char *const &__restrict__ stop,
|
||||
const const_buffer &src)
|
||||
{
|
||||
assert(dest <= stop);
|
||||
const size_t remain(std::distance(dest, stop));
|
||||
const size_t cpsz(std::min(size(src), remain));
|
||||
const auto *const __restrict__ srcp
|
||||
{
|
||||
data(src)
|
||||
};
|
||||
|
||||
const size_t remain
|
||||
(
|
||||
std::distance(dest, stop)
|
||||
);
|
||||
|
||||
const size_t cpsz
|
||||
{
|
||||
std::min(size(src), remain)
|
||||
};
|
||||
|
||||
assert(!overlap(const_buffer(dest, cpsz), src));
|
||||
assert(cpsz <= size(src));
|
||||
assert(cpsz <= remain);
|
||||
__builtin_memcpy(dest, data(src), cpsz);
|
||||
__builtin_memcpy(dest, srcp, cpsz);
|
||||
dest += cpsz;
|
||||
assert(dest <= stop);
|
||||
return dest;
|
||||
}
|
||||
|
||||
inline char *&
|
||||
ircd::buffer::copy(char *&dest,
|
||||
char *const &stop,
|
||||
ircd::buffer::copy(char *&__restrict__ dest,
|
||||
char *const &__restrict__ stop,
|
||||
char src)
|
||||
{
|
||||
assert(dest <= stop);
|
||||
|
|
|
@ -53,8 +53,16 @@ ircd::buffer::move(char *&dest,
|
|||
const const_buffer &src)
|
||||
{
|
||||
assert(dest <= stop);
|
||||
const size_t remain(std::distance(dest, stop));
|
||||
const size_t cpsz(std::min(size(src), remain));
|
||||
const size_t remain
|
||||
(
|
||||
std::distance(dest, stop)
|
||||
);
|
||||
|
||||
const size_t cpsz
|
||||
{
|
||||
std::min(size(src), remain)
|
||||
};
|
||||
|
||||
assert(cpsz <= size(src));
|
||||
assert(cpsz <= remain);
|
||||
__builtin_memmove(dest, data(src), cpsz);
|
||||
|
|
Loading…
Add table
Reference in a new issue