views:

61

answers:

0

I have one class which is implemented this way

.cpp

   MyClass::~MyClass()
    {
       if(m_List)
       {
          delete m_List;
          m_List = NULL;
       }
    }

MyClass* MyClass::Create()
{
    MyClass* self = new MyClass(); // leak here as per Instrument
 if(!self)  
 {
  return NULL; 
 }

 if(!self->Construct())
 {
  delete self;
  self = NULL;
  return NULL;
 }

 return self;
}

BOOL MyClass::Construct()
{

 m_List = new MSList(); // MSList = link list class   // leak here as per Instrument

 if(!m_List)
 {
  delete m_List;
  m_List = NULL;

  return FALSE;
 }
return TRUE
}

.mm

MyClass* obj = MyClass::Create();
obj->DoSomeOper();
delete obj;

Can not figure out why it is showing a memory leak?