strlen(fnamestr));
strlen(fnamestr)+1);
PRInt32 DeleteFileNowOrSchedule(const nsFileSpec& filename){    PRInt32 result = nsInstall::SUCCESS;    filename.Delete(PR_FALSE);    if (filename.Exists())    {        // could not delete, schedule it for later        RKEY newkey;        HREG reg;        REGERR  err;        result = nsInstall::UNEXPECTED_ERROR;        err = NR_RegOpen("", &reg) ;        if ( err == REGERR_OK )        {            err = NR_RegAddKey(reg,ROOTKEY_PRIVATE,REG_DELETE_LIST_KEY,&newkey);            if ( err == REGERR_OK )            {                char    valname[20];                char*   fnamestr = nsnull;                err = NR_RegGetUniqueName( reg, valname, sizeof(valname) );                if ( err == REGERR_OK )                {                    nsresult rv;                    rv = GetPersistentStringFromSpec( filename, &fnamestr );                    if ( NS_SUCCEEDED(rv) && fnamestr )                    {                        err = NR_RegSetEntry( reg, newkey, valname,                                               REGTYPE_ENTRY_BYTES,                                               (void*)fnamestr,                                               strlen(fnamestr));                        if ( err == REGERR_OK )                            result = nsInstall::REBOOT_NEEDED;                    }                }            }            NR_RegClose(reg);        }    }    return result;}