2727
2828#include " firebird.h"
2929
30+ #include < vector>
3031#include " ../../common/classes/TempFile.h"
3132#include " ../../common/StatusArg.h"
3233#include " ../../common/utils_proto.h"
@@ -64,7 +65,7 @@ using namespace Firebird;
6465
6566namespace Jrd {
6667
67- static const FB_UINT64 TOUCH_INTERVAL = 60 * 60 ; // in seconds, one hour should be enough
68+ static constexpr FB_UINT64 TOUCH_INTERVAL = 60 * 60 ; // in seconds, one hour should be enough
6869
6970void checkFileError (const char * filename, const char * operation, ISC_STATUS iscError)
7071{
@@ -309,7 +310,7 @@ void ConfigStorage::acquire()
309310 m_sharedMemory->mutexLock ();
310311 }
311312
312- TraceCSHeader* header = m_sharedMemory->getHeader ();
313+ const TraceCSHeader* header = m_sharedMemory->getHeader ();
313314 if (header->mem_allocated > m_sharedMemory->sh_mem_length_mapped )
314315 {
315316#ifdef HAVE_OBJECT_MAP
@@ -384,7 +385,7 @@ ULONG ConfigStorage::allocSlot(ULONG slotSize)
384385 ULONG lenFound = 0 ;
385386 for (ULONG i = 0 ; i < header->slots_cnt ; i++)
386387 {
387- TraceCSHeader::Slot* slot = header->slots + i;
388+ const TraceCSHeader::Slot* slot = header->slots + i;
388389 if (!slot->used && slot->size >= slotSize &&
389390 (!lenFound || lenFound > slot->size ))
390391 {
@@ -401,7 +402,7 @@ ULONG ConfigStorage::allocSlot(ULONG slotSize)
401402 // move free slot to the top position
402403 if (idxFound != header->slots_cnt - 1 )
403404 {
404- TraceCSHeader::Slot tmp = header->slots [idxFound];
405+ const TraceCSHeader::Slot tmp = header->slots [idxFound];
405406
406407 const FB_SIZE_T mv = sizeof (TraceCSHeader::Slot) * (header->slots_cnt - idxFound - 1 );
407408 memmove (&header->slots [idxFound], &header->slots [idxFound + 1 ], mv);
@@ -450,7 +451,7 @@ struct SlotByOffset
450451 ULONG index; // slot index
451452 ULONG offset; // initial data ofset
452453
453- static ULONG generate (const SlotByOffset& i) { return i.offset ; }
454+ static ULONG generate (const SlotByOffset& i) noexcept { return i.offset ; }
454455};
455456
456457typedef SortedArray<SlotByOffset, EmptyStorage<SlotByOffset>, ULONG, SlotByOffset>
@@ -651,10 +652,10 @@ bool ConfigStorage::validate()
651652}
652653
653654
654- ULONG ConfigStorage::getSessionSize (const TraceSession& session)
655+ ULONG ConfigStorage::getSessionSize (const TraceSession& session) noexcept
655656{
656657 ULONG ret = 1 ; // tagEnd
657- const ULONG sz = 1 + sizeof (ULONG); // sizeof tag + sizeof len
658+ constexpr ULONG sz = 1 + sizeof (ULONG); // sizeof tag + sizeof len
658659
659660 ULONG len = session.ses_name .length ();
660661 if (len)
@@ -672,18 +673,17 @@ ULONG ConfigStorage::getSessionSize(const TraceSession& session)
672673 if ((len = session.ses_config .length ()))
673674 ret += sz + len;
674675
675- if ((len = sizeof (session.ses_start )))
676- ret += sz + len;
677-
678676 if ((len = session.ses_logfile .length ()))
679677 ret += sz + len;
680678
679+ ret += sz + sizeof (session.ses_start );
680+
681681 return ret;
682682}
683683
684684bool ConfigStorage::findSession (ULONG sesId, ULONG& idx)
685685{
686- TraceCSHeader* header = m_sharedMemory->getHeader ();
686+ const TraceCSHeader* header = m_sharedMemory->getHeader ();
687687
688688 ULONG hi = header->slots_cnt , lo = 0 ;
689689 while (hi > lo)
@@ -745,8 +745,8 @@ bool ConfigStorage::getSession(Firebird::TraceSession& session, GET_FLAGS getFla
745745 if (!findSession (session.ses_id , idx))
746746 return false ;
747747
748- TraceCSHeader* header = m_sharedMemory->getHeader ();
749- TraceCSHeader::Slot* slot = &header->slots [idx];
748+ const TraceCSHeader* header = m_sharedMemory->getHeader ();
749+ const TraceCSHeader::Slot* slot = &header->slots [idx];
750750
751751 if (slot->ses_id != session.ses_id || !slot->used )
752752 return false ;
@@ -756,11 +756,11 @@ bool ConfigStorage::getSession(Firebird::TraceSession& session, GET_FLAGS getFla
756756
757757bool ConfigStorage::getNextSession (TraceSession& session, GET_FLAGS getFlag, ULONG& nextIdx)
758758{
759- TraceCSHeader* header = m_sharedMemory->getHeader ();
759+ const TraceCSHeader* header = m_sharedMemory->getHeader ();
760760
761761 while (nextIdx < header->slots_cnt )
762762 {
763- TraceCSHeader::Slot* slot = header->slots + nextIdx;
763+ const TraceCSHeader::Slot* slot = header->slots + nextIdx;
764764 nextIdx++;
765765
766766 if (slot->used )
@@ -769,9 +769,9 @@ bool ConfigStorage::getNextSession(TraceSession& session, GET_FLAGS getFlag, ULO
769769 return false ;
770770}
771771
772- bool ConfigStorage::readSession (TraceCSHeader::Slot* slot, TraceSession& session, GET_FLAGS getFlag)
772+ bool ConfigStorage::readSession (const TraceCSHeader::Slot* slot, TraceSession& session, GET_FLAGS getFlag)
773773{
774- const ULONG getMask[3 ] =
774+ constexpr ULONG getMask[3 ] =
775775 {
776776 MAX_ULONG, // ALL
777777 0 , // FLAGS
@@ -780,7 +780,7 @@ bool ConfigStorage::readSession(TraceCSHeader::Slot* slot, TraceSession& session
780780 (1 << tagRole) // AUTH
781781 };
782782
783- TraceCSHeader* header = m_sharedMemory->getHeader ();
783+ const TraceCSHeader* header = m_sharedMemory->getHeader ();
784784
785785 session.clear ();
786786 session.ses_id = slot->ses_id ;
@@ -789,7 +789,7 @@ bool ConfigStorage::readSession(TraceCSHeader::Slot* slot, TraceSession& session
789789 if (getFlag == FLAGS)
790790 return true ;
791791
792- char * p = reinterpret_cast <char *> (header) + slot->offset ;
792+ const char * p = reinterpret_cast <const char *> (header) + slot->offset ;
793793 Reader reader (p, slot->size );
794794
795795 while (true )
@@ -884,7 +884,7 @@ void ConfigStorage::markDeleted(TraceCSHeader::Slot* slot)
884884 slot->used = 0 ;
885885}
886886
887- void ConfigStorage::updateFlags (TraceSession& session)
887+ void ConfigStorage::updateFlags (const TraceSession& session)
888888{
889889 ULONG idx;
890890 if (!findSession (session.ses_id , idx))
@@ -944,7 +944,7 @@ void ConfigStorage::Writer::write(ITEM tag, ULONG len, const void* data)
944944 m_mem += len;
945945}
946946
947- const void * ConfigStorage::Reader::read (ITEM& tag, ULONG& len)
947+ const void * ConfigStorage::Reader::read (ITEM& tag, ULONG& len) noexcept
948948{
949949 if (m_mem + 1 > m_end)
950950 return NULL ;
0 commit comments