about summary refs log tree commit diff
path: root/app/models/status.rb
diff options
context:
space:
mode:
authorThibG <thib@sitedethib.com>2018-08-18 18:22:54 +0200
committerGitHub <noreply@github.com>2018-08-18 18:22:54 +0200
commit44e31c3e531e5c206003b7ed83ee1d6fdd3b2b53 (patch)
treee9d1366c30b94df21ec767276fbde175428399fb /app/models/status.rb
parent7423c0c1308555db3072ae64141250fdd33ce235 (diff)
parentbfeac6747a58b660f0d1b3766c7cfb3ea2655fce (diff)
Merge pull request #649 from ThibG/glitch-soc/merge-upstream
Merge upstream changes
Diffstat (limited to 'app/models/status.rb')
-rw-r--r--app/models/status.rb10
1 files changed, 6 insertions, 4 deletions
diff --git a/app/models/status.rb b/app/models/status.rb
index 01615c876..8cd6d3862 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -416,6 +416,8 @@ class Status < ApplicationRecord
   private
 
   def update_status_stat!(attrs)
+    return if marked_for_destruction? || destroyed?
+
     record = status_stat || build_status_stat
     record.update(attrs)
   end
@@ -482,8 +484,8 @@ class Status < ApplicationRecord
       Account.where(id: account_id).update_all('statuses_count = COALESCE(statuses_count, 0) + 1')
     end
 
-    reblog.increment_count!(:reblogs_count) if reblog?
-    thread.increment_count!(:replies_count) if in_reply_to_id.present? && (public_visibility? || unlisted_visibility?)
+    reblog&.increment_count!(:reblogs_count) if reblog?
+    thread&.increment_count!(:replies_count) if in_reply_to_id.present? && (public_visibility? || unlisted_visibility?)
   end
 
   def decrement_counter_caches
@@ -495,7 +497,7 @@ class Status < ApplicationRecord
       Account.where(id: account_id).update_all('statuses_count = GREATEST(COALESCE(statuses_count, 0) - 1, 0)')
     end
 
-    reblog.decrement_count!(:reblogs_count) if reblog?
-    thread.decrement_count!(:replies_count) if in_reply_to_id.present? && (public_visibility? || unlisted_visibility?)
+    reblog&.decrement_count!(:reblogs_count) if reblog?
+    thread&.decrement_count!(:replies_count) if in_reply_to_id.present? && (public_visibility? || unlisted_visibility?)
   end
 end