Guarding against memory allocation error and a resulting null pointer.

Also, now AddRef'ing XPCOM nsPropertyElements when created.
This commit is contained in:
sgehani%netscape.com 1999-07-01 18:39:46 +00:00
Родитель e8c04d9530
Коммит 71384d8fb5
1 изменённых файлов: 7 добавлений и 2 удалений

Просмотреть файл

@ -362,8 +362,11 @@ AddElemToArray(PLHashEntry* he, PRIntn i, void* arg)
nsString* keyStr = new nsString((PRUnichar*) he->key);
nsString* valueStr = new nsString((PRUnichar*) he->value);
// XXX Fix to make XPCOM friendly?
nsPropertyElement *element = new nsPropertyElement();
if (!element)
return HT_ENUMERATE_STOP;
NS_ADDREF(element);
element->SetKey(keyStr);
element->SetValue(valueStr);
propArray->InsertElementAt(element, i);
@ -383,7 +386,9 @@ nsPersistentProperties::EnumerateProperties(nsIBidirectionalEnumerator** aResult
return rv;
// Step through hash entries populating a transient array
PL_HashTableEnumerateEntries(mTable, AddElemToArray, (void *)propArray);
PRIntn n = PL_HashTableEnumerateEntries(mTable, AddElemToArray, (void *)propArray);
if ( n < (PRIntn) mTable->nentries )
return NS_ERROR_OUT_OF_MEMORY;
// Convert array into enumerator
rv = NS_NewISupportsArrayEnumerator(propArray, aResult);