public function setBits($bits) { # Queue the file op # @todo FIXME: Move to LocalFile.php if ($this->isDeleted()) { if ($bits & File::DELETED_FILE) { # Still deleted } else { # Newly undeleted $key = $this->file->getStorageKey(); $srcRel = $this->file->repo->getDeletedHashPath($key) . $key; $this->list->storeBatch[] = [$this->file->repo->getVirtualUrl('deleted') . '/' . $srcRel, 'public', $this->file->getRel()]; $this->list->cleanupBatch[] = $key; } } elseif ($bits & File::DELETED_FILE) { # Newly deleted $key = $this->file->getStorageKey(); $dstRel = $this->file->repo->getDeletedHashPath($key) . $key; $this->list->deleteBatch[] = [$this->file->getRel(), $dstRel]; } # Do the database operations $dbw = wfGetDB(DB_MASTER); $dbw->update('oldimage', ['oi_deleted' => $bits], ['oi_name' => $this->row->oi_name, 'oi_timestamp' => $this->row->oi_timestamp, 'oi_deleted' => $this->getBits()], __METHOD__); return (bool) $dbw->affectedRows(); }