fix: crash when create image from a empty stream

This commit is contained in:
leo 2024-04-08 10:24:28 +08:00
parent 75f6087447
commit 8adf11b64c
3 changed files with 5 additions and 5 deletions

View file

@ -17,9 +17,9 @@ namespace SourceGit.Commands
starter.WindowStyle = ProcessWindowStyle.Hidden; starter.WindowStyle = ProcessWindowStyle.Hidden;
starter.RedirectStandardOutput = true; starter.RedirectStandardOutput = true;
var stream = new MemoryStream();
try try
{ {
var stream = new MemoryStream();
var proc = new Process() { StartInfo = starter }; var proc = new Process() { StartInfo = starter };
proc.Start(); proc.Start();
proc.StandardOutput.BaseStream.CopyTo(stream); proc.StandardOutput.BaseStream.CopyTo(stream);
@ -27,13 +27,13 @@ namespace SourceGit.Commands
proc.Close(); proc.Close();
stream.Position = 0; stream.Position = 0;
return stream;
} }
catch (Exception e) catch (Exception e)
{ {
App.RaiseException(repo, $"Failed to query file content: {e}"); App.RaiseException(repo, $"Failed to query file content: {e}");
return null; }
}
return stream;
} }
} }
} }

View file

@ -475,7 +475,7 @@ namespace SourceGit.ViewModels
if (IMG_EXTS.Contains(ext)) if (IMG_EXTS.Contains(ext))
{ {
var stream = Commands.QueryFileContent.Run(_repo, _commit.SHA, file.Path); var stream = Commands.QueryFileContent.Run(_repo, _commit.SHA, file.Path);
var bitmap = stream != null ? new Bitmap(stream) : null as Bitmap; var bitmap = stream.Length > 0 ? new Bitmap(stream) : null;
Dispatcher.UIThread.Invoke(() => Dispatcher.UIThread.Invoke(() =>
{ {
ViewRevisionFileContent = new Models.RevisionImageFile() { Image = bitmap }; ViewRevisionFileContent = new Models.RevisionImageFile() { Image = bitmap };

View file

@ -166,7 +166,7 @@ namespace SourceGit.ViewModels
private Bitmap BitmapFromRevisionFile(string repo, string revision, string file) private Bitmap BitmapFromRevisionFile(string repo, string revision, string file)
{ {
var stream = Commands.QueryFileContent.Run(repo, revision, file); var stream = Commands.QueryFileContent.Run(repo, revision, file);
return stream != null ? new Bitmap(stream) : null; return stream.Length > 0 ? new Bitmap(stream) : null;
} }
private static readonly HashSet<string> IMG_EXTS = new HashSet<string>() private static readonly HashSet<string> IMG_EXTS = new HashSet<string>()