W
wong_powah
I need to clean up some old code which implements a static instance of
a class.
Please comment out whether my clean up is good.
My goal is to change the old code as little as possible.
Old code are:
Appliance.h
class Appliance {
//...
private:
static FastMap* ReaderSerialNumberMapping;
};
Appliance.cpp
FastMap* Appliance::ReaderSerialNumberMapping=NULL;
Appliance::Appliance(unsigned int serialNumber) {
if( ReaderSerialNumberMapping==NULL )
{
ReaderSerialNumberMapping = new FastMap(16);
}
//...
ReaderSerialNumberMapping->Assign( serialNumber, readerNumber );
//...
}
void Appliance::doY() {
//...
readerNumber = ReaderSerialNumberMapping->get( serialNumber);
//...
}
// The old code does not have a destructor so it does not delete the
memory pointed by the ReaderSerialNumberMapping. Therefore I want to
fix the memory leak problem by changing the implementation of
ReaderSerialNumberMapping to not using the pointer.
// New code are as follows:
Appliance.h
class Appliance {
//...
private:
static FastMap ReaderSerialNumberMapping;
}
Appliance.cpp
FastMap Appliance::ReaderSerialNumberMapping = FastMap(16);
void Appliance::Appliance(unsigned int serialNumber) {
//...
ReaderSerialNumberMapping.Assign( serialNumber, readerNumber );
}
void Appliance::doY() {
//...
readerNumber = ReaderSerialNumberMapping.get( serialNumber);
//...
}
a class.
Please comment out whether my clean up is good.
My goal is to change the old code as little as possible.
Old code are:
Appliance.h
class Appliance {
//...
private:
static FastMap* ReaderSerialNumberMapping;
};
Appliance.cpp
FastMap* Appliance::ReaderSerialNumberMapping=NULL;
Appliance::Appliance(unsigned int serialNumber) {
if( ReaderSerialNumberMapping==NULL )
{
ReaderSerialNumberMapping = new FastMap(16);
}
//...
ReaderSerialNumberMapping->Assign( serialNumber, readerNumber );
//...
}
void Appliance::doY() {
//...
readerNumber = ReaderSerialNumberMapping->get( serialNumber);
//...
}
// The old code does not have a destructor so it does not delete the
memory pointed by the ReaderSerialNumberMapping. Therefore I want to
fix the memory leak problem by changing the implementation of
ReaderSerialNumberMapping to not using the pointer.
// New code are as follows:
Appliance.h
class Appliance {
//...
private:
static FastMap ReaderSerialNumberMapping;
}
Appliance.cpp
FastMap Appliance::ReaderSerialNumberMapping = FastMap(16);
void Appliance::Appliance(unsigned int serialNumber) {
//...
ReaderSerialNumberMapping.Assign( serialNumber, readerNumber );
}
void Appliance::doY() {
//...
readerNumber = ReaderSerialNumberMapping.get( serialNumber);
//...
}