List had elements. Then, the list became empty.
Hi.
I have a weird problem in C++. I do the following.
Configuration gConfiguration; // global variable
BOOL LoadConfig()
{
HotTags ConfigHotTags = gConfiguration.GetHotTags();
for (long jj = 0; jj < pNodeList->length; jj++)
{
pNodeList->get_item(jj, &pNode);
pNamedNodeMap = pNode->Getattributes();
pNode1 = pNamedNodeMap->getNamedItem(L"ActionType");
_bstr_t ActionType = pNode1->Gettext();
pNode1 = pNamedNodeMap->getNamedItem(L"ActionScope");
_bstr_t ActionScope = pNode1->Gettext();
_bstr_t Tag = pNode->text;
HotTag* pHotTag = new HotTag((LPTSTR) ActionType, (LPTSTR) ActionScope,
(LPTSTR) Tag);
ConfigHotTags.push_back(pHotTag);
}
fDebug << "Hot Tag Test" << endl;
list<HotTag*>::iterator iter;
for (iter = ConfigHotTags.begin(); iter != ConfigHotTags.end(); iter++)
{
fDebug << (*iter)->GetActionType() << ", " << (*iter)->GetActionScope() <<
", " << (*iter)->GetTag() << endl;
}
}
The Hot Tag Test result is fine, printing the values. But, when I try to
access the elements from another function, ConfigHotTags is empty.
It prints ???0??? from the ???if??? block below when I call GetHotTagStart().
int GetHotTagStart(int iStart, string& sDataTemp, string& sTag)
{
ofstream fDebug("c:\\inetpub\\scripts\\debug.txt", ios::out | ios::app);
int iResult = string::npos;
int iIndex = 0;
bool bFound = false;
string sTempTag;
HotTags ConfigHotTags = gConfiguration.GetHotTags();
fDebug << "GetHotTagStart()" << endl;
list<HotTag*>::iterator iterator1;
if (ConfigHotTags.size() == 0)
fDebug << "0" << endl;
else if (ConfigHotTags.size() == 3)
fDebug << "3" << endl;
else
fDebug << "dont know" << endl;
// so on
}
Here is my Configuration class definition from .h file.
typedef std::list<HotTag*> HotTags;
class Configuration
{
private:
HotTags _HotTags;
public:
Configuration();
HotTags& GetHotTags();
};
From CPP file,
HotTags& Configuration::GetHotTags()
{
return (_HotTags);
}
Why is my ConfigHotTags empty in GetHotTagStart(), when the list had
elements in LoadConfig()?
Appreciate it.
J
--
Be Cool!