diff --git a/Qwilight/Compute/DefaultCompute.cs b/Qwilight/Compute/DefaultCompute.cs index 6b39b90..2563f71 100644 --- a/Qwilight/Compute/DefaultCompute.cs +++ b/Qwilight/Compute/DefaultCompute.cs @@ -4421,16 +4421,22 @@ try { DB.Instance.SaveComment(date, default, eventNoteID, commentID, AvatarName, TotallyLevyingMultiplier, TotallyLevyingAudioMultiplier, ModeComponentValue, Stand.TargetValue, HighestBand, IsBand1, Point.TargetValue, IsPaused, _inputFlags); + + var rmses = _comments.Select(comment => PoolSystem.Instance.GetDataFlow(comment.CalculateSize())).ToArray(); using (var zipFile = ZipArchive.Create()) { for (var i = _comments.Count - 1; i >= 0; --i) { - using var rms = PoolSystem.Instance.GetDataFlow(_comments[i].CalculateSize()); + var rms = rmses[i]; _comments[i].WriteTo(rms); rms.Position = 0; zipFile.AddEntry(i.ToString(), rms); - zipFile.SaveTo(Path.Combine(QwilightComponent.CommentEntryPath, Path.ChangeExtension(commentID, ".zip")), new(CompressionType.Deflate)); } + zipFile.SaveTo(Path.Combine(QwilightComponent.CommentEntryPath, Path.ChangeExtension(commentID, ".zip")), new(CompressionType.Deflate)); + } + foreach (var rms in rmses) + { + rms.Dispose(); } } catch (Exception e) diff --git a/Qwilight/ViewModel/MainViewModel.cs b/Qwilight/ViewModel/MainViewModel.cs index ea76692..235e236 100644 --- a/Qwilight/ViewModel/MainViewModel.cs +++ b/Qwilight/ViewModel/MainViewModel.cs @@ -3791,6 +3791,7 @@ void HandleImpl() { + ModeValue = Mode.NoteFile; if (Computer.DefaultModeComponentValue != null) { ModeComponentValue.CopyAs(Computer.DefaultModeComponentValue, Computer); @@ -3798,8 +3799,6 @@ } ModeComponentValue.CanModifyMultiplier = true; ModeComponentValue.CanModifyAudioMultiplier = true; - ModeValue = Mode.NoteFile; - Computer.AtNoteFileMode(); EntryItemValue = null; Want(); if (!string.IsNullOrEmpty(faultText)) @@ -3827,11 +3826,11 @@ void HandleImpl() { var defaultComputer = Computer; + Computer = targetMigrateComputer; + ModeValue = Mode.Computing; (AutoComputer ?? defaultComputer)?.Migrate(targetMigrateComputer); targetMigrateComputer.NoteFile.SetConfigure(); - Computer = targetMigrateComputer; - Computer.HandleCompiler(); - ModeValue = Mode.Computing; + targetMigrateComputer.HandleCompiler(); defaultComputer?.Close(); CloseAutoComputer(); } @@ -3854,11 +3853,11 @@ void HandleImpl() { + Computer = defaultComputer; + ModeValue = Mode.Quit; defaultComputer.SetJudgmentMillis(); defaultComputer.AtQuitMode(); defaultComputer.NotifyCompute(); - Computer = defaultComputer; - ModeValue = Mode.Quit; } }