From cd78bcee3a43c92cc9755d3d06fcc9dc479b1f3b Mon Sep 17 00:00:00 2001 From: Guo Xiang Tan Date: Fri, 11 Sep 2020 15:51:11 +0800 Subject: [PATCH] DEV: Avoid creating the same object repeatedly. Less objects created per request means less objects for the GC to collect. --- app/serializers/listable_topic_serializer.rb | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/app/serializers/listable_topic_serializer.rb b/app/serializers/listable_topic_serializer.rb index de03718fd36..184a2ca4744 100644 --- a/app/serializers/listable_topic_serializer.rb +++ b/app/serializers/listable_topic_serializer.rb @@ -35,12 +35,13 @@ class ListableTopicSerializer < BasicTopicSerializer end def thumbnails - extra_sizes = ThemeModifierHelper.new(request: scope.request).topic_thumbnail_sizes + extra_sizes = theme_modifier_helper.topic_thumbnail_sizes object.thumbnail_info(enqueue_if_missing: true, extra_sizes: extra_sizes) end def include_thumbnails? - ThemeModifierHelper.new(request: scope.request).topic_thumbnail_sizes.present? || DiscoursePluginRegistry.topic_thumbnail_sizes.present? + theme_modifier_helper.topic_thumbnail_sizes.present? || + DiscoursePluginRegistry.topic_thumbnail_sizes.present? end def include_unicode_title? @@ -125,7 +126,7 @@ class ListableTopicSerializer < BasicTopicSerializer alias :include_new_posts? :has_user_data def include_excerpt? - pinned || SiteSetting.always_include_topic_excerpts || ThemeModifierHelper.new(request: scope.request).serialize_topic_excerpts + pinned || SiteSetting.always_include_topic_excerpts || theme_modifier_helper.serialize_topic_excerpts end def pinned @@ -154,4 +155,10 @@ class ListableTopicSerializer < BasicTopicSerializer @unread_helper ||= Unread.new(object, object.user_data, scope) end + private + + def theme_modifier_helper + @theme_modifier_helper ||= ThemeModifierHelper.new(request: scope.request) + end + end