in src/main.rs [299:324]
fn do_update(
log: &slog::Logger,
code_path: &PathBuf,
update_folder_name: &str,
) -> Result<(), Box<dyn error::Error>> {
info!(log, "do_update: {:?}, {}", code_path, update_folder_name);
let root_path = code_path.parent().ok_or(io::Error::new(
io::ErrorKind::Other,
"Could not get parent path of uninstdat",
))?;
let mut uninstdat_path = PathBuf::from(root_path);
uninstdat_path.push("unins000.dat");
move_update(log, &uninstdat_path, update_folder_name)?;
// if, for any reason, the uninstdat file is corrupt, let's continue silently
// https://github.com/Microsoft/vscode/issues/45607
patch_uninstdat(log, &uninstdat_path, update_folder_name).unwrap_or_else(|err| {
warn!(log, "Failed to patch uninst.dat file");
warn!(log, "{}", err);
});
Ok(())
}