Compare commits

..

3 Commits

Author SHA1 Message Date
Alexey Rybalchenko
e484bf4578 Shm: Fix SetUsedSize() 2021-09-20 13:29:28 +02:00
Dennis Klein
b442483dc3 fix: Deprecate static string helper 2021-09-09 18:01:55 +02:00
Dennis Klein
727a709aff fix: -Winfinite-recursion 2021-09-09 18:01:55 +02:00
3 changed files with 12 additions and 3 deletions

View File

@@ -536,12 +536,14 @@ class Device
/// @brief Returns name of the given state as a string
/// @param state state
static std::string GetStateName(const State state) { return GetStateName(state); }
[[deprecated("Use fair::mq::GetStateName from <fairmq/States.h> directly")]]
static std::string GetStateName(const State state) { return fair::mq::GetStateName(state); }
/// @brief Returns name of the given transition as a string
/// @param transition transition
[[deprecated("Use fair::mq::GetTransitionName from <fairmq/States.h> directly")]]
static std::string GetTransitionName(const Transition transition)
{
return GetTransitionName(transition);
return fair::mq::GetTransitionName(transition);
}
static constexpr const char* DefaultId = "";

View File

@@ -88,6 +88,11 @@ struct ShmHeader
return HdrPtr(ptr)->refCount;
}
static uint16_t UserOffset(char* ptr)
{
return HdrPartSize() + HdrPtr(ptr)->userOffset;
}
static char* UserPtr(char* ptr)
{
// [HdrOffset(uint16_t)][Hdr alignment][Hdr][user buffer alignment][user buffer]

View File

@@ -217,7 +217,9 @@ class Message final : public fair::mq::Message
} else if (newSize <= fMeta.fSize) {
try {
try {
char* ptr = fManager.ShrinkInPlace(newSize, fManager.GetAddressFromHandle(fMeta.fHandle, fMeta.fSegmentId), fMeta.fSegmentId);
char* oldPtr = fManager.GetAddressFromHandle(fMeta.fHandle, fMeta.fSegmentId);
uint16_t userOffset = ShmHeader::UserOffset(oldPtr);
char* ptr = fManager.ShrinkInPlace(userOffset + newSize, oldPtr, fMeta.fSegmentId);
fLocalPtr = ShmHeader::UserPtr(ptr);
fMeta.fSize = newSize;
return true;