]> git.lizzy.rs Git - go-anidb.git/commitdiff
anidb: Fix crash when MyListAdd/MyListEdit get a nil MyListSet
authorDiogo Franco (Kovensky) <diogomfranco@gmail.com>
Fri, 26 Jul 2013 04:28:49 +0000 (01:28 -0300)
committerDiogo Franco (Kovensky) <diogomfranco@gmail.com>
Fri, 26 Jul 2013 04:28:49 +0000 (01:28 -0300)
It's meant to be nillable.

mylistmanip.go

index 213a30195697214d72c6977ac4feb5f6baf32a8f..beca6bb02d5f39d53458dbfe0acf49f85ffdf4c4 100644 (file)
@@ -67,22 +67,25 @@ func (set *MyListSet) update(uid UID, f *File, lid LID) {
        eg.Add(f.EpisodeNumber)
        mla.EpisodesPerGroup[f.GID] = eg
 
-       if set.State != nil {
-               es := mla.EpisodesWithState[*set.State]
-               es.Add(f.EpisodeNumber)
-               mla.EpisodesWithState[*set.State] = es
-       }
+       if set != nil {
+               if set.State != nil {
+                       es := mla.EpisodesWithState[*set.State]
+                       es.Add(f.EpisodeNumber)
+                       mla.EpisodesWithState[*set.State] = es
+               }
 
-       if set.Watched != nil && *set.Watched ||
-               set.ViewDate != nil && !set.ViewDate.IsZero() {
-               mla.WatchedEpisodes.Add(f.EpisodeNumber)
+               if set.Watched != nil && *set.Watched ||
+                       set.ViewDate != nil && !set.ViewDate.IsZero() {
+                       mla.WatchedEpisodes.Add(f.EpisodeNumber)
+               }
        }
 
        Cache.Set(mla, "mylist-anime", uid, f.AID)
        Cache.Chtime(mla.Cached, "mylist-anime", uid, f.AID)
 
-       if set.ViewDate == nil && set.Watched == nil && set.State == nil &&
-               set.Source == nil && set.Storage == nil && set.Other == nil {
+       if set == nil ||
+               (set.ViewDate == nil && set.Watched == nil && set.State == nil &&
+                       set.Source == nil && set.Storage == nil && set.Other == nil) {
                return
        }