Skip to content

Commit 9c1da67

Browse files
committed
Minimal necessary refactoring to remove my old hack in BurpMaster.
reinterpret_cast's replaced by safer static_cast's. Also, removed not used m_status.
1 parent 25fb454 commit 9c1da67

File tree

3 files changed

+124
-66
lines changed

3 files changed

+124
-66
lines changed

src/burp/BurpTasks.cpp

Lines changed: 14 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ const FB_SIZE_T MIN_IO_BUFFER_SIZE = 128 * 1024;
4343

4444
/// class IOBuffer
4545

46-
IOBuffer::IOBuffer(void* item, FB_SIZE_T size) :
46+
IOBuffer::IOBuffer(BurpTaskItem* item, FB_SIZE_T size) :
4747
m_item(item),
4848
m_memory(*getDefaultMemoryPool()),
4949
m_aligned(NULL),
@@ -53,7 +53,6 @@ IOBuffer::IOBuffer(void* item, FB_SIZE_T size) :
5353
m_next(NULL),
5454
m_linked(false),
5555
m_locked(0)
56-
5756
{
5857
fb_assert(size >= MIN_IO_BUFFER_SIZE);
5958
m_aligned = m_memory.getBuffer(m_size);
@@ -63,7 +62,7 @@ IOBuffer::IOBuffer(void* item, FB_SIZE_T size) :
6362
class BurpGblHolder
6463
{
6564
public:
66-
BurpGblHolder(BurpGlobals* gbl, void* item)
65+
BurpGblHolder(BurpGlobals* gbl, BurpTaskItem* item)
6766
{
6867
m_prev = BurpGlobals::getSpecific();
6968

@@ -89,7 +88,7 @@ class BurpGblHolder
8988
}
9089
protected:
9190
BurpGlobals* m_prev;
92-
void* m_prev_item;
91+
BurpTaskItem* m_prev_item;
9392
};
9493

9594

@@ -122,17 +121,14 @@ class SimpleGblHolder
122121

123122
/// class BackupRelationTask
124123

125-
BackupRelationTask::BackupRelationTask(BurpGlobals* tdgbl) : Task(),
126-
m_masterGbl(tdgbl),
124+
BackupRelationTask::BackupRelationTask(BurpGlobals* tdgbl) : BurpTask(tdgbl),
127125
m_relation(NULL),
128126
m_readers(0),
129127
m_readDone(false),
130128
m_nextPP(0),
131129
m_stop(false),
132130
m_error(false)
133131
{
134-
fb_utils::init_status(m_status);
135-
136132
int workers = tdgbl->gbl_sw_par_workers;
137133
if (workers <= 0)
138134
workers = 1;
@@ -191,7 +187,7 @@ void BackupRelationTask::SetRelation(burp_rel* relation)
191187

192188
bool BackupRelationTask::handler(WorkItem& _item)
193189
{
194-
Item* item = reinterpret_cast<Item*>(&_item);
190+
Item* item = static_cast<Item*>(&_item);
195191

196192
try
197193
{
@@ -236,7 +232,7 @@ bool BackupRelationTask::handler(WorkItem& _item)
236232

237233
bool BackupRelationTask::getWorkItem(BackupRelationTask::WorkItem** pItem)
238234
{
239-
Item* item = reinterpret_cast<Item*> (*pItem);
235+
Item* item = static_cast<Item*>(*pItem);
240236

241237
MutexLockGuard guard(m_mutex, FB_FUNCTION);
242238

@@ -356,7 +352,7 @@ IOBuffer* BackupRelationTask::renewBuffer(BurpGlobals* tdgbl)
356352
{
357353
fb_assert(!tdgbl->master);
358354

359-
Item* item = reinterpret_cast<Item*> (tdgbl->taskItem);
355+
Item* item = static_cast<Item*>(tdgbl->taskItem);
360356
fb_assert(item);
361357
if (!item)
362358
return NULL;
@@ -433,7 +429,7 @@ void BackupRelationTask::releaseBuffer(Item& item)
433429

434430
void BackupRelationTask::recordAdded(BurpGlobals* tdgbl)
435431
{
436-
Item* item = reinterpret_cast<Item*> (tdgbl->taskItem);
432+
Item* item = static_cast<Item*>(tdgbl->taskItem);
437433
if (!item)
438434
return;
439435

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

445-
BackupRelationTask* BackupRelationTask::getBackupTask(BurpGlobals* tdgbl)
446-
{
447-
Item* item = reinterpret_cast<Item*> (tdgbl->taskItem);
448-
if (item)
449-
return item->getBackupTask();
450-
451-
return NULL;
452-
}
453-
454441
IOBuffer* BackupRelationTask::getDirtyBuffer()
455442
{
456443
IOBuffer* buf = NULL;
@@ -479,7 +466,7 @@ IOBuffer* BackupRelationTask::getDirtyBuffer()
479466

480467
void BackupRelationTask::putCleanBuffer(IOBuffer* buf)
481468
{
482-
Item* item = reinterpret_cast<Item*>(buf->getItem());
469+
Item* item = static_cast<Item*>(buf->getItem());
483470
{
484471
MutexLockGuard guard(item->m_mutex, FB_FUNCTION);
485472

@@ -650,8 +637,7 @@ BackupRelationTask::Item::EnsureUnlockBuffer::~EnsureUnlockBuffer()
650637

651638
/// class RestoreRelationTask
652639

653-
RestoreRelationTask::RestoreRelationTask(BurpGlobals* tdgbl) : Task(),
654-
m_masterGbl(tdgbl),
640+
RestoreRelationTask::RestoreRelationTask(BurpGlobals* tdgbl) : BurpTask(tdgbl),
655641
m_relation(NULL),
656642
m_lastRecord(rec_relation_data),
657643
m_writers(0),
@@ -662,8 +648,6 @@ RestoreRelationTask::RestoreRelationTask(BurpGlobals* tdgbl) : Task(),
662648
m_verbRecs(0)
663649

664650
{
665-
fb_utils::init_status(m_status);
666-
667651
int workers = tdgbl->gbl_sw_par_workers;
668652
if (workers <= 0)
669653
workers = 1;
@@ -725,7 +709,7 @@ void RestoreRelationTask::SetRelation(BurpGlobals* tdgbl, burp_rel* relation)
725709

726710
bool RestoreRelationTask::handler(WorkItem& _item)
727711
{
728-
Item* item = reinterpret_cast<Item*>(&_item);
712+
Item* item = static_cast<Item*>(&_item);
729713

730714
try
731715
{
@@ -772,7 +756,7 @@ bool RestoreRelationTask::handler(WorkItem& _item)
772756

773757
bool RestoreRelationTask::getWorkItem(WorkItem** pItem)
774758
{
775-
Item* item = reinterpret_cast<Item*> (*pItem);
759+
Item* item = static_cast<Item*>(*pItem);
776760

777761
MutexLockGuard guard(m_mutex, FB_FUNCTION);
778762

@@ -821,7 +805,7 @@ bool RestoreRelationTask::getWorkItem(WorkItem** pItem)
821805
return (item && item->m_inuse);
822806
}
823807

824-
bool RestoreRelationTask::getResult(IStatus* status)
808+
bool RestoreRelationTask::getResult(IStatus* /*status*/)
825809
{
826810
fb_assert(!m_error || m_dirtyBuffers.isEmpty());
827811

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

836-
RestoreRelationTask* RestoreRelationTask::getRestoreTask(BurpGlobals* tdgbl)
837-
{
838-
Item* item = reinterpret_cast<Item*> (tdgbl->taskItem);
839-
if (item)
840-
return item->getRestoreTask();
841-
842-
return NULL;
843-
}
844-
845820
void RestoreRelationTask::verbRecs(FB_UINT64& records, bool total)
846821
{
847822
if (!total)
@@ -1047,7 +1022,7 @@ IOBuffer* RestoreRelationTask::renewBuffer(BurpGlobals* tdgbl)
10471022

10481023
fb_assert(!tdgbl->master);
10491024

1050-
Item* item = reinterpret_cast<Item*> (tdgbl->taskItem);
1025+
Item* item = static_cast<Item*>(tdgbl->taskItem);
10511026
fb_assert(item);
10521027
if (!item)
10531028
ExcReadDone::raise();

0 commit comments

Comments
 (0)