rem: var entries = { dirs: [], files: [] }; this._readUpdateLog(updateLog, entries); 
add: var newEntries = { }; this._readUpdateLog(updateLog, newEntries);  try { const nsIDirectoryEnumerator = Components.interfaces.nsIDirectoryEnumerator; const nsILocalFile = Components.interfaces.nsILocalFile; var prefixWizLog = "install_wizard"; var uninstallDir = getFile(KEY_APPDIR); uninstallDir.append("uninstall"); var entries = uninstallDir.directoryEntries.QueryInterface(nsIDirectoryEnumerator); while (true) { var wizLog = entries.nextFile; if (!wizLog) break; if (wizLog instanceof nsILocalFile && !wizLog.isDirectory() && wizLog.leafName.indexOf(prefixWizLog) == 0) { this._readXPInstallLog(wizLog, newEntries); wizLog.remove(false); } } } catch (e) {} if (entries) entries.close();  var uninstallLog = this._getUninstallLogFile(); var oldEntries = []; this._readUninstallLog(uninstallLog, oldEntries);   for (var relPath in newEntries) { if (oldEntries.indexOf(relPath) != -1) delete newEntries[relPath]; }  if (newEntries.length == 0) return; 
context:   begin: function() {    var installLog = this._getInstallLogFile();    var updateLog = this._getUpdateLogFile();    if (!installLog || !updateLog)      return;    var entries = { dirs: [], files: [] };    this._readUpdateLog(updateLog, entries);    this._outputStream =        openFileOutputStream(installLog, PR_WRONLY | PR_APPEND);    this._writeLine("\nUPDATE [" + new Date().toUTCString() + "]");    var i;    // The log file is processed in reverse order, so list directories before    // files to ensure that the directories will be deleted.    for (i = 0; i < entries.dirs.length; ++i)      this._writeLine(PREFIX_CREATE_FOLDER + entries.dirs[i]);    for (i = 0; i < entries.files.length; ++i)      this._writeLine(PREFIX_INSTALLING + entries.files[i]);  },
meta: 9421	/local1/tlutelli/issta_data/temp/all_js/javascript/2006_temp/2006/9421/700627f478d36907aca9e594576adb4bfdf7f428/nsPostUpdateWin.js/buggy/toolkit/mozapps/update/src/nsPostUpdateWin.js