$dbw->update( 'image',
array(
+ 'img_size' => $this->size, // sanity
'img_width' => $this->width,
'img_height' => $this->height,
'img_bits' => $this->bits,
/**
* Fix thumbnail files from 1.4 or before, with extreme prejudice
+ * @TODO: do we still care about this? Perhaps a maintenance script
+ * can be made instead. Enabling this code results in a serious
+ * RTT regression for wikis without 404 handling.
*/
function migrateThumbFile( $thumbName ) {
$thumbDir = $this->getThumbPath();
}
*/
+ /*
if ( $this->repo->fileExists( $thumbDir ) ) {
// Delete file where directory should be
$this->repo->cleanupBatch( array( $thumbDir ) );
}
+ */
}
/** getHandler inherited */
* @return array first element is the base dir, then files in that base dir.
*/
function getThumbnails( $archiveName = false ) {
- $this->load();
-
if ( $archiveName ) {
$dir = $this->getArchiveThumbPath( $archiveName );
} else {
*/
function purgeOldThumbnails( $archiveName ) {
global $wgUseSquid;
+ wfProfileIn( __METHOD__ );
+
// Get a list of old thumbnails and URLs
$files = $this->getThumbnails( $archiveName );
$dir = array_shift( $files );
}
SquidUpdate::purge( $urls );
}
+
+ wfProfileOut( __METHOD__ );
}
/**
*/
function purgeThumbnails( $options = array() ) {
global $wgUseSquid;
+ wfProfileIn( __METHOD__ );
// Delete thumbnails
$files = $this->getThumbnails();
}
SquidUpdate::purge( $urls );
}
+
+ wfProfileOut( __METHOD__ );
}
/**
function recordUpload2(
$oldver, $comment, $pageText, $props = false, $timestamp = false, $user = null
) {
+ wfProfileIn( __METHOD__ );
+
if ( is_null( $user ) ) {
global $wgUser;
$user = $wgUser;
$dbw->begin( __METHOD__ );
if ( !$props ) {
+ wfProfileIn( __METHOD__ . '-getProps' );
$props = $this->repo->getFileProps( $this->getVirtualUrl() );
+ wfProfileOut( __METHOD__ . -'getProps' );
}
if ( $timestamp === false ) {
$props['timestamp'] = wfTimestamp( TS_MW, $timestamp ); // DB -> TS_MW
$this->setProps( $props );
- # Delete thumbnails
- $this->purgeThumbnails();
-
- # The file is already on its final location, remove it from the squid cache
- SquidUpdate::purge( array( $this->getURL() ) );
-
# Fail now if the file isn't there
if ( !$this->fileExists ) {
wfDebug( __METHOD__ . ": File " . $this->getRel() . " went missing!\n" );
+ wfProfileOut( __METHOD__ );
return false;
}
__METHOD__,
'IGNORE'
);
-
if ( $dbw->affectedRows() == 0 ) {
# (bug 34993) Note: $oldver can be empty here, if the previous
# version of the file was broken. Allow registration of the new
$action = $reupload ? 'overwrite' : 'upload';
$log->addEntry( $action, $descTitle, $comment, array(), $user );
+ wfProfileIn( __METHOD__ . '-edit' );
if ( $descTitle->exists() ) {
# Create a null revision
$latest = $descTitle->getLatestRevID();
# Squid and file cache for the description page are purged by doEdit.
$wikiPage->doEdit( $pageText, $comment, EDIT_NEW | EDIT_SUPPRESS_RC, false, $user );
}
+ wfProfileOut( __METHOD__ . '-edit' );
# Commit the transaction now, in case something goes wrong later
# The most important thing is that files don't get lost, especially archives
# which in fact doesn't really exist (bug 24978)
$this->saveToCache();
+ if ( $reupload ) {
+ # Delete old thumbnails
+ wfProfileIn( __METHOD__ . '-purge' );
+ $this->purgeThumbnails();
+ wfProfileOut( __METHOD__ . '-purge' );
+
+ # Remove the old file from the squid cache
+ SquidUpdate::purge( array( $this->getURL() ) );
+ }
+
# Hooks, hooks, the magic of hooks...
+ wfProfileIn( __METHOD__ . '-hooks' );
wfRunHooks( 'FileUpload', array( $this, $reupload, $descTitle->exists() ) );
+ wfProfileOut( __METHOD__ . '-hooks' );
# Invalidate cache for all pages using this file
$update = new HTMLCacheUpdate( $this->getTitle(), 'imagelinks' );
$update->doUpdate();
}
+ wfProfileOut( __METHOD__ );
return true;
}
* @return FileRepoStatus
*/
function execute() {
- global $wgUseSquid;
wfProfileIn( __METHOD__ );
$this->file->lock();