resourceloader: De-duplicate $files in ResourceLoaderFileModule::getModifiedTime()
authorTimo Tijhof <krinklemail@gmail.com>
Tue, 31 Mar 2015 18:01:15 +0000 (19:01 +0100)
committerTimo Tijhof <krinklemail@gmail.com>
Tue, 31 Mar 2015 18:28:44 +0000 (19:28 +0100)
lessc::allParsedFiles() always includes the main file we already
know about. As such needlessly causing it to be queried multiple
times.

Change-Id: Icd2c11d93d6491664fcf58a18bfe6e2932689774

includes/resourceloader/ResourceLoaderFileModule.php

index db10b2c..671098e 100644 (file)
@@ -573,6 +573,10 @@ class ResourceLoaderFileModule extends ResourceLoaderModule {
                $files = array_map( array( $this, 'getLocalPath' ), $files );
                // File deps need to be treated separately because they're already prefixed
                $files = array_merge( $files, $this->getFileDependencies( $context->getSkin() ) );
+               // Filter out any duplicates from getFileDependencies() and others.
+               // Most commonly introduced by compileLessFile(), which always includes the
+               // entry point Less file we already know about.
+               $files = array_values( array_unique( $files ) );
 
                // If a module is nothing but a list of dependencies, we need to avoid
                // giving max() an empty array