sequenceNumber(-1),
machineId(-1),
transactionSequenceNumber(-1),
+ dataBytes(NULL),
liveKeys(new Hashset<IoTString *>()) {
}
sequenceNumber(_sequenceNumber),
machineId(_machineId),
transactionSequenceNumber(_transactionSequenceNumber),
+ dataBytes(NULL),
liveKeys(new Hashset<IoTString *>()) {
}
Commit::~Commit() {
- delete parts;
+ {
+ uint Size = parts->size();
+ for(uint i=0;i<Size; i++)
+ parts->get(i)->releaseRef();
+ delete parts;
+ }
{
SetIterator<KeyValue *, KeyValue *, uintptr_t, 0> * keyit = keyValueUpdateSet->iterator();
while(keyit->hasNext()) {
delete liveKeys;
if (missingParts != NULL)
delete missingParts;
+ if (dataBytes != NULL)
+ delete dataBytes;
}
void Commit::addPartDecode(CommitPart *newPart) {
return;
}
+ newPart->acquireRef();
CommitPart *previouslySeenPart = parts->setExpand(newPart->getPartNumber(), newPart);
if (previouslySeenPart == NULL)
partCount++;
if (previouslySeenPart != NULL) {
// Set dead the old one since the new one is a rescued version of this part
previouslySeenPart->setDead();
+ previouslySeenPart->releaseRef();
} else if (newPart->isLastPart()) {
missingParts = new Hashset<int32_t>();
hasLastPart = true;
// Make all the parts of this transaction dead
for (uint32_t partNumber = 0; partNumber < parts->size(); partNumber++) {
CommitPart *part = parts->get(partNumber);
- if (parts != NULL)
- part->setDead();
+ part->setDead();
}
}
}
-CommitPart *Commit::getPart(int index) {
- return parts->get(index);
-}
-
void Commit::createCommitParts() {
+ uint Size = parts->size();
+ for(uint i=0;i < Size; i++) {
+ Entry * e=parts->get(i);
+ e->releaseRef();
+ }
parts->clear();
partCount = 0;
// Convert to chars