Skip to content

Commit

Permalink
Minimal necessary refactoring to remove my old hack in BurpMaster.
Browse files Browse the repository at this point in the history
reinterpret_cast's replaced by safer static_cast's.
Also, removed not used m_status.
  • Loading branch information
hvlad committed Feb 28, 2025
1 parent 25fb454 commit 9c1da67
Show file tree
Hide file tree
Showing 3 changed files with 124 additions and 66 deletions.
53 changes: 14 additions & 39 deletions src/burp/BurpTasks.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ const FB_SIZE_T MIN_IO_BUFFER_SIZE = 128 * 1024;

/// class IOBuffer

IOBuffer::IOBuffer(void* item, FB_SIZE_T size) :
IOBuffer::IOBuffer(BurpTaskItem* item, FB_SIZE_T size) :
m_item(item),
m_memory(*getDefaultMemoryPool()),
m_aligned(NULL),
Expand All @@ -53,7 +53,6 @@ IOBuffer::IOBuffer(void* item, FB_SIZE_T size) :
m_next(NULL),
m_linked(false),
m_locked(0)

{
fb_assert(size >= MIN_IO_BUFFER_SIZE);
m_aligned = m_memory.getBuffer(m_size);
Expand All @@ -63,7 +62,7 @@ IOBuffer::IOBuffer(void* item, FB_SIZE_T size) :
class BurpGblHolder
{
public:
BurpGblHolder(BurpGlobals* gbl, void* item)
BurpGblHolder(BurpGlobals* gbl, BurpTaskItem* item)
{
m_prev = BurpGlobals::getSpecific();

Expand All @@ -89,7 +88,7 @@ class BurpGblHolder
}
protected:
BurpGlobals* m_prev;
void* m_prev_item;
BurpTaskItem* m_prev_item;
};


Expand Down Expand Up @@ -122,17 +121,14 @@ class SimpleGblHolder

/// class BackupRelationTask

BackupRelationTask::BackupRelationTask(BurpGlobals* tdgbl) : Task(),
m_masterGbl(tdgbl),
BackupRelationTask::BackupRelationTask(BurpGlobals* tdgbl) : BurpTask(tdgbl),
m_relation(NULL),
m_readers(0),
m_readDone(false),
m_nextPP(0),
m_stop(false),
m_error(false)
{
fb_utils::init_status(m_status);

int workers = tdgbl->gbl_sw_par_workers;
if (workers <= 0)
workers = 1;
Expand Down Expand Up @@ -191,7 +187,7 @@ void BackupRelationTask::SetRelation(burp_rel* relation)

bool BackupRelationTask::handler(WorkItem& _item)
{
Item* item = reinterpret_cast<Item*>(&_item);
Item* item = static_cast<Item*>(&_item);

try
{
Expand Down Expand Up @@ -236,7 +232,7 @@ bool BackupRelationTask::handler(WorkItem& _item)

bool BackupRelationTask::getWorkItem(BackupRelationTask::WorkItem** pItem)
{
Item* item = reinterpret_cast<Item*> (*pItem);
Item* item = static_cast<Item*>(*pItem);

MutexLockGuard guard(m_mutex, FB_FUNCTION);

Expand Down Expand Up @@ -356,7 +352,7 @@ IOBuffer* BackupRelationTask::renewBuffer(BurpGlobals* tdgbl)
{
fb_assert(!tdgbl->master);

Item* item = reinterpret_cast<Item*> (tdgbl->taskItem);
Item* item = static_cast<Item*>(tdgbl->taskItem);
fb_assert(item);
if (!item)
return NULL;
Expand Down Expand Up @@ -433,7 +429,7 @@ void BackupRelationTask::releaseBuffer(Item& item)

void BackupRelationTask::recordAdded(BurpGlobals* tdgbl)
{
Item* item = reinterpret_cast<Item*> (tdgbl->taskItem);
Item* item = static_cast<Item*>(tdgbl->taskItem);
if (!item)
return;

Expand All @@ -442,15 +438,6 @@ void BackupRelationTask::recordAdded(BurpGlobals* tdgbl)
tdgbl->mvol_io_data = tdgbl->gbl_io_ptr;
}

BackupRelationTask* BackupRelationTask::getBackupTask(BurpGlobals* tdgbl)
{
Item* item = reinterpret_cast<Item*> (tdgbl->taskItem);
if (item)
return item->getBackupTask();

return NULL;
}

IOBuffer* BackupRelationTask::getDirtyBuffer()
{
IOBuffer* buf = NULL;
Expand Down Expand Up @@ -479,7 +466,7 @@ IOBuffer* BackupRelationTask::getDirtyBuffer()

void BackupRelationTask::putCleanBuffer(IOBuffer* buf)
{
Item* item = reinterpret_cast<Item*>(buf->getItem());
Item* item = static_cast<Item*>(buf->getItem());
{
MutexLockGuard guard(item->m_mutex, FB_FUNCTION);

Expand Down Expand Up @@ -650,8 +637,7 @@ BackupRelationTask::Item::EnsureUnlockBuffer::~EnsureUnlockBuffer()

/// class RestoreRelationTask

RestoreRelationTask::RestoreRelationTask(BurpGlobals* tdgbl) : Task(),
m_masterGbl(tdgbl),
RestoreRelationTask::RestoreRelationTask(BurpGlobals* tdgbl) : BurpTask(tdgbl),
m_relation(NULL),
m_lastRecord(rec_relation_data),
m_writers(0),
Expand All @@ -662,8 +648,6 @@ RestoreRelationTask::RestoreRelationTask(BurpGlobals* tdgbl) : Task(),
m_verbRecs(0)

{
fb_utils::init_status(m_status);

int workers = tdgbl->gbl_sw_par_workers;
if (workers <= 0)
workers = 1;
Expand Down Expand Up @@ -725,7 +709,7 @@ void RestoreRelationTask::SetRelation(BurpGlobals* tdgbl, burp_rel* relation)

bool RestoreRelationTask::handler(WorkItem& _item)
{
Item* item = reinterpret_cast<Item*>(&_item);
Item* item = static_cast<Item*>(&_item);

try
{
Expand Down Expand Up @@ -772,7 +756,7 @@ bool RestoreRelationTask::handler(WorkItem& _item)

bool RestoreRelationTask::getWorkItem(WorkItem** pItem)
{
Item* item = reinterpret_cast<Item*> (*pItem);
Item* item = static_cast<Item*>(*pItem);

MutexLockGuard guard(m_mutex, FB_FUNCTION);

Expand Down Expand Up @@ -821,7 +805,7 @@ bool RestoreRelationTask::getWorkItem(WorkItem** pItem)
return (item && item->m_inuse);
}

bool RestoreRelationTask::getResult(IStatus* status)
bool RestoreRelationTask::getResult(IStatus* /*status*/)
{
fb_assert(!m_error || m_dirtyBuffers.isEmpty());

Expand All @@ -833,15 +817,6 @@ int RestoreRelationTask::getMaxWorkers()
return m_items.getCount();
}

RestoreRelationTask* RestoreRelationTask::getRestoreTask(BurpGlobals* tdgbl)
{
Item* item = reinterpret_cast<Item*> (tdgbl->taskItem);
if (item)
return item->getRestoreTask();

return NULL;
}

void RestoreRelationTask::verbRecs(FB_UINT64& records, bool total)
{
if (!total)
Expand Down Expand Up @@ -1047,7 +1022,7 @@ IOBuffer* RestoreRelationTask::renewBuffer(BurpGlobals* tdgbl)

fb_assert(!tdgbl->master);

Item* item = reinterpret_cast<Item*> (tdgbl->taskItem);
Item* item = static_cast<Item*>(tdgbl->taskItem);
fb_assert(item);
if (!item)
ExcReadDone::raise();
Expand Down
Loading

0 comments on commit 9c1da67

Please sign in to comment.