Don't JS_ReportOutOfMemory while holding script_filename_table_lock (r=self).

This commit is contained in:
brendan%mozilla.org 2003-12-30 07:54:09 +00:00
Родитель 678fda6594
Коммит 5946f557e5
1 изменённых файлов: 8 добавлений и 5 удалений

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

@ -984,16 +984,19 @@ js_SaveScriptFilename(JSContext *cx, const char *filename)
sft_savings += strlen(sfe->filename); sft_savings += strlen(sfe->filename);
#endif #endif
if (!sfe) { if (!sfe) {
/* XXX this assumes NULL puns as JS_FALSE in the mark byte... */
sfe = (ScriptFilenameEntry *) sfe = (ScriptFilenameEntry *)
JS_HashTableRawAdd(table, hep, hash, filename, NULL); JS_HashTableRawAdd(table, hep, hash, filename, NULL);
if (sfe) if (sfe) {
sfe->key = strcpy(sfe->filename, filename); sfe->key = strcpy(sfe->filename, filename);
else JS_ASSERT(!sfe->mark);
JS_ReportOutOfMemory(cx); }
} }
JS_RELEASE_LOCK(script_filename_table_lock); JS_RELEASE_LOCK(script_filename_table_lock);
return sfe ? sfe->filename : NULL; if (!sfe) {
JS_ReportOutOfMemory(cx);
return NULL;
}
return sfe->filename;
} }
void void