OSDN Git Service

TabModel.AddPostQueueメソッドで追加されるIDがPosts内に存在するかチェックを行う
authorKimura Youichi <kim.upsilon@bucyou.net>
Fri, 4 Nov 2016 11:59:14 +0000 (20:59 +0900)
committerKimura Youichi <kim.upsilon@bucyou.net>
Fri, 4 Nov 2016 12:00:18 +0000 (21:00 +0900)
OpenTween/Models/InternalStorageTabModel.cs
OpenTween/Models/TabModel.cs

index 298bcc8..3512dab 100644 (file)
@@ -50,10 +50,9 @@ namespace OpenTween.Models
             if (TabInformations.GetInstance().IsMuted(post, isHomeTimeline: false))
                 return;
 
-            base.AddPostQueue(post);
+            this.internalPosts.TryAdd(post.StatusId, post);
 
-            if (!this.internalPosts.TryAdd(post.StatusId, post))
-                return;
+            base.AddPostQueue(post);
         }
 
         public override void EnqueueRemovePost(long statusId, bool setIsDeleted)
index c6481dd..3cca9c0 100644 (file)
@@ -96,6 +96,9 @@ namespace OpenTween.Models
 
         public virtual void AddPostQueue(PostClass post)
         {
+            if (!this.Posts.ContainsKey(post.StatusId))
+                throw new ArgumentException("Specified post not exists in storage", nameof(post));
+
             this.addQueue.Enqueue(new TemporaryId(post.StatusId, post.IsRead));
         }