From 433ff9be16fffb5ef70ae6e0800960085a6cb0e0 Mon Sep 17 00:00:00 2001 From: Aaron Schulz Date: Fri, 22 May 2015 16:39:05 -0700 Subject: [PATCH] Cleaned up CAS check in RevDelLogItem::setBits for recentchanges Change-Id: I6c29653361a0937489c27891739a9dc626c20167 --- includes/revisiondelete/RevDelLogItem.php | 25 ++++++++++++------- .../revisiondelete/RevDelRevisionItem.php | 2 +- 2 files changed, 17 insertions(+), 10 deletions(-) diff --git a/includes/revisiondelete/RevDelLogItem.php b/includes/revisiondelete/RevDelLogItem.php index 49adf204a8..5c831072fe 100644 --- a/includes/revisiondelete/RevDelLogItem.php +++ b/includes/revisiondelete/RevDelLogItem.php @@ -53,6 +53,21 @@ class RevDelLogItem extends RevDelItem { public function setBits( $bits ) { $dbw = wfGetDB( DB_MASTER ); + + $dbw->update( 'logging', + array( 'log_deleted' => $bits ), + array( + 'log_id' => $this->row->log_id, + 'log_deleted' => $this->getBits() // cas + ), + __METHOD__ + ); + + if ( !$dbw->affectedRows() ) { + // Concurrent fail! + return false; + } + $dbw->update( 'recentchanges', array( 'rc_deleted' => $bits, @@ -64,16 +79,8 @@ class RevDelLogItem extends RevDelItem { ), __METHOD__ ); - $dbw->update( 'logging', - array( 'log_deleted' => $bits ), - array( - 'log_id' => $this->row->log_id, - 'log_deleted' => $this->getBits() - ), - __METHOD__ - ); - return (bool)$dbw->affectedRows(); + return true; } public function getHTML() { diff --git a/includes/revisiondelete/RevDelRevisionItem.php b/includes/revisiondelete/RevDelRevisionItem.php index 300ce6adb7..17e1fd18ed 100644 --- a/includes/revisiondelete/RevDelRevisionItem.php +++ b/includes/revisiondelete/RevDelRevisionItem.php @@ -67,7 +67,7 @@ class RevDelRevisionItem extends RevDelItem { array( 'rev_id' => $this->revision->getId(), 'rev_page' => $this->revision->getPage(), - 'rev_deleted' => $this->getBits() + 'rev_deleted' => $this->getBits() // cas ), __METHOD__ ); -- 2.20.1