修正了一个内存泄露的问题

来源:互联网 发布:智能手表 推荐 知乎 编辑:程序博客网 时间:2024/05/04 05:45

void GTPIcon::LoadIconInfo( )
{
 StructIconInfo* picon=GTPIcon::FindPIconOrigion(m_IconCode);
 if(picon!=NULL)
 {
  LoadSubsFromXml(picon->XmlData);
  m_pIconInfo=picon;
  m_Remark=m_pIconInfo->IconName;
 }
 else
 {
  CPIconDB::OpenDB();
  int count=0;
  CString strCondition;
  strCondition.Format(_T("IconID=%d"),m_IconCode);

  StructIconInfo* pIconInfo=new StructIconInfo();
  pIconInfo->IconCode=m_IconCode;

  struct StructIcon** listicon=CPIconDB::OpenRstIcon(strCondition,count);
  if(count!=1)return;
  pIconInfo->Angle=listicon[0]->Angle;
  pIconInfo->IconName=listicon[0]->IconName;
  pIconInfo->Mirror=listicon[0]->Mirror;
  pIconInfo->NavigateType=listicon[0]->NavigateType;
  delete listicon[0];
  delete[] listicon;

  strCondition.Format(_T("IconCode=%d"),m_IconCode);
  struct StructIconDetailForEdit** listRecord=CPIconDB::OpenRstIconDetailForEdit(strCondition,count);
  if(count>0)
  {
   LoadSubsFromXml(listRecord[0]->XmlData);
   pIconInfo->XmlData=listRecord[0]->XmlData;
   delete listRecord[0];
   delete[] listRecord;
  }
  
  m_pIconInfo=pIconInfo;
  m_ListPIcon.push_back(pIconInfo);
  m_Remark=m_pIconInfo->IconName;
 }
}

原创粉丝点击