diff --git a/issue.patch b/issue.patch index 536caa2..427aa90 100644 --- a/issue.patch +++ b/issue.patch @@ -41,55 +41,9 @@ index 4dca804..7c8cd86 100644 // @todo Replace below lines with the commented out block below it when it's // performant to do so: http://drupal.org/node/1706064. -diff --git a/core/lib/Drupal/Core/FileUsage/AbstractFileUsage.php b/core/lib/Drupal/Core/FileUsage/AbstractFileUsage.php -new file mode 100644 -index 0000000..74495fe ---- /dev/null -+++ b/core/lib/Drupal/Core/FileUsage/AbstractFileUsage.php -@@ -0,0 +1,40 @@ -+status != FILE_STATUS_PERMANENT) { -+ $file->status = FILE_STATUS_PERMANENT; -+ $file->save(); -+ } -+ } -+ -+ /** -+ * Implements Drupal\Core\FileUsage\FileUsageInterface::delete(). -+ */ -+ function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1) { -+ // If there are no more remaining usages of this file, mark it as temporary, -+ // which result in a delete through system_cron(). -+ $usage = file_usage()->list_usage($file); -+ if (empty($usage)) { -+ $file->status = 0; -+ $file->save(); -+ } -+ } -+} diff --git a/core/lib/Drupal/Core/FileUsage/DatabaseFileUsageBackend.php b/core/lib/Drupal/Core/FileUsage/DatabaseFileUsageBackend.php new file mode 100644 -index 0000000..95bf308 +index 0000000..217cee1 --- /dev/null +++ b/core/lib/Drupal/Core/FileUsage/DatabaseFileUsageBackend.php @@ -0,0 +1,86 @@ @@ -108,7 +62,7 @@ index 0000000..95bf308 +/** + * Defines the database file usage backend. This is the default Drupal backend. + */ -+class DatabaseFileUsageBackend extends AbstractFileUsage { ++class DatabaseFileUsageBackend extends FileUsageBase { + + /** + * Implements Drupal\Core\FileUsage\FileUsageInterface::add(). @@ -179,6 +133,52 @@ index 0000000..95bf308 + return $references; + } +} +diff --git a/core/lib/Drupal/Core/FileUsage/FileUsageBase.php b/core/lib/Drupal/Core/FileUsage/FileUsageBase.php +new file mode 100644 +index 0000000..a4774bd +--- /dev/null ++++ b/core/lib/Drupal/Core/FileUsage/FileUsageBase.php +@@ -0,0 +1,40 @@ ++status != FILE_STATUS_PERMANENT) { ++ $file->status = FILE_STATUS_PERMANENT; ++ $file->save(); ++ } ++ } ++ ++ /** ++ * Implements Drupal\Core\FileUsage\FileUsageInterface::delete(). ++ */ ++ function delete(File $file, $module, $type = NULL, $id = NULL, $count = 1) { ++ // If there are no more remaining usages of this file, mark it as temporary, ++ // which result in a delete through system_cron(). ++ $usage = file_usage()->list_usage($file); ++ if (empty($usage)) { ++ $file->status = 0; ++ $file->save(); ++ } ++ } ++} diff --git a/core/lib/Drupal/Core/FileUsage/FileUsageInterface.php b/core/lib/Drupal/Core/FileUsage/FileUsageInterface.php new file mode 100644 index 0000000..11eb8ab @@ -680,7 +680,7 @@ index 768a1b0..97b79c1 100644 $container->get('dispatcher')->addSubscriber($container->get('bundle_test_class')); diff --git a/core/modules/system/tests/modules/bundle_test/lib/Drupal/bundle_test/TestFileUsage.php b/core/modules/system/tests/modules/bundle_test/lib/Drupal/bundle_test/TestFileUsage.php new file mode 100644 -index 0000000..c1e15c7 +index 0000000..aec6385 --- /dev/null +++ b/core/modules/system/tests/modules/bundle_test/lib/Drupal/bundle_test/TestFileUsage.php @@ -0,0 +1,31 @@ @@ -695,7 +695,7 @@ index 0000000..c1e15c7 + +use Drupal\file\File as File; + -+class TestFileUsage extends AbstractFileUsage { ++class TestFileUsage extends FileUsageBase { + + /** + * Implements Drupal\Core\FileUsage\FileUsageInterface::add().