- Fix a crash when an application hasnt defined a event label

svn path=/trunk/; revision=43097
This commit is contained in:
Johannes Anderwald 2009-09-20 17:44:52 +00:00
parent 8694a0d2e3
commit a1aecae7e1

View file

@ -66,6 +66,8 @@ PLABEL_MAP FindLabel(PAPP_MAP pAppMap, TCHAR * szName)
while(pMap) while(pMap)
{ {
ASSERT(pMap);
ASSERT(pMap->szName);
if (!_tcscmp(pMap->szName, szName)) if (!_tcscmp(pMap->szName, szName))
return pMap; return pMap;
@ -77,6 +79,8 @@ PLABEL_MAP FindLabel(PAPP_MAP pAppMap, TCHAR * szName)
while(pMap) while(pMap)
{ {
ASSERT(pMap);
ASSERT(pMap->szName);
if (!_tcscmp(pMap->szName, szName)) if (!_tcscmp(pMap->szName, szName))
return pMap; return pMap;
@ -84,8 +88,21 @@ PLABEL_MAP FindLabel(PAPP_MAP pAppMap, TCHAR * szName)
} }
pMap = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(LABEL_MAP));
if (!pMap)
return NULL;
return NULL; pMap->szName = pMap->szDesc = _tcsdup(szName);
if (!pMap->szName)
{
HeapFree(GetProcessHeap(), 0, pMap);
return NULL;
}
pMap->AppMap = pAppMap;
pMap->Next = s_Map;
s_Map = pMap;
return pMap;
} }
VOID RemoveLabel(PLABEL_MAP pMap) VOID RemoveLabel(PLABEL_MAP pMap)
@ -206,7 +223,7 @@ LoadEventLabel(HKEY hKey, TCHAR * szSubKey)
return FALSE; return FALSE;
} }
pMap = HeapAlloc(GetProcessHeap(), 0, sizeof(LABEL_MAP)); pMap = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, sizeof(LABEL_MAP));
if (!pMap) if (!pMap)
{ {
return FALSE; return FALSE;
@ -492,10 +509,9 @@ ImportSoundEntry(HWND hwndDlg, HKEY hKey, TCHAR * szLabelName, TCHAR * szAppName
{ {
return FALSE; return FALSE;
} }
pLabel = FindLabel(pAppMap, szLabelName);
//MessageBox(hwndDlg, szLabelName, szAppName, MB_OK); ASSERT(pLabel);
pLabel = FindLabel(NULL, szLabelName);
RemoveLabel(pLabel); RemoveLabel(pLabel);
pLabel->AppMap = pAppMap; pLabel->AppMap = pAppMap;