nsSoftwareUpdate::NeedCleanup(); }
PRInt32 ScheduleFileForDeletion(nsIFile *filename){    // could not delete, schedule it for later    RKEY newkey;    HREG reg;    REGERR  err;    PRInt32 result = nsInstall::UNEXPECTED_ERROR;    char* regFilePath = GetRegFilePath();    err = NR_RegOpen(regFilePath, &reg);    if (regFilePath)      nsCRT::free(regFilePath);    if ( err == REGERR_OK )    {        err = NR_RegAddKey(reg,ROOTKEY_PRIVATE,REG_DELETE_LIST_KEY,&newkey);        if ( err == REGERR_OK )        {            char    valname[20];            err = NR_RegGetUniqueName( reg, valname, sizeof(valname) );            if ( err == REGERR_OK )            {                nsXPIDLCString nameowner;                nsresult rv = GetPersistentStringFromSpec(                                filename,getter_Copies(nameowner));                if ( NS_SUCCEEDED(rv) && nameowner )                {                    const char *fnamestr = nameowner;                    err = NR_RegSetEntry( reg, newkey, valname,                                           REGTYPE_ENTRY_BYTES,                                           (void*)fnamestr,                                           strlen(fnamestr)+sizeof('\0'));                    if ( err == REGERR_OK )                         result = nsInstall::REBOOT_NEEDED;                }            }        }        NR_RegClose(reg);    }    return result;}