From 0204057261814fca018ee132fa1203f4b84e718f Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Mon, 30 Mar 2020 16:48:21 +0530 Subject: [PATCH 1/3] Reduce array allocations from `StaticFile#path` --- lib/jekyll/static_file.rb | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/lib/jekyll/static_file.rb b/lib/jekyll/static_file.rb index 9f988a7b0bd..d3a9b8591cd 100644 --- a/lib/jekyll/static_file.rb +++ b/lib/jekyll/static_file.rb @@ -40,11 +40,13 @@ def initialize(site, base, dir, name, collection = nil) # Returns source file path. def path - # Static file is from a collection inside custom collections directory - if !@collection.nil? && !@site.config["collections_dir"].empty? - File.join(*[@base, @site.config["collections_dir"], @dir, @name].compact) - else - File.join(*[@base, @dir, @name].compact) + @path ||= begin + # Static file is from a collection inside custom collections directory + if !@collection.nil? && !@site.config["collections_dir"].empty? + File.join(*[@base, @site.config["collections_dir"], @dir, @name].compact) + else + File.join(*[@base, @dir, @name].compact) + end end end From d042e7a94b674f0b791c9e9dd9b6fb416065919d Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Mon, 30 Mar 2020 18:11:21 +0530 Subject: [PATCH 2/3] Temporarily freeze the path attribute value --- lib/jekyll/static_file.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/jekyll/static_file.rb b/lib/jekyll/static_file.rb index d3a9b8591cd..bdc387fdc01 100644 --- a/lib/jekyll/static_file.rb +++ b/lib/jekyll/static_file.rb @@ -47,7 +47,7 @@ def path else File.join(*[@base, @dir, @name].compact) end - end + end.freeze end # Obtain destination path. From 1f745a12deb90354565e68345aa13f330de41bd2 Mon Sep 17 00:00:00 2001 From: Ashwin Maroli Date: Mon, 30 Mar 2020 18:46:26 +0530 Subject: [PATCH 3/3] Revert "Temporarily freeze the path attribute value" This reverts commit d042e7a94b674f0b791c9e9dd9b6fb416065919d. --- lib/jekyll/static_file.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/jekyll/static_file.rb b/lib/jekyll/static_file.rb index bdc387fdc01..d3a9b8591cd 100644 --- a/lib/jekyll/static_file.rb +++ b/lib/jekyll/static_file.rb @@ -47,7 +47,7 @@ def path else File.join(*[@base, @dir, @name].compact) end - end.freeze + end end # Obtain destination path.