From f09d030fd36cfddc88a8bf79170b286c155edfd5 Mon Sep 17 00:00:00 2001 From: Alexandre Mutel Date: Sat, 23 Apr 2022 14:05:26 +0200 Subject: [PATCH] Cleanup code after #632 --- src/Markdig/Renderers/RendererBase.cs | 38 +++++++++++++-------------- 1 file changed, 19 insertions(+), 19 deletions(-) diff --git a/src/Markdig/Renderers/RendererBase.cs b/src/Markdig/Renderers/RendererBase.cs index 469f644f..bff0a0a2 100644 --- a/src/Markdig/Renderers/RendererBase.cs +++ b/src/Markdig/Renderers/RendererBase.cs @@ -27,23 +27,6 @@ namespace Markdig.Renderers /// protected RendererBase() { } - private IMarkdownObjectRenderer? GetRendererInstance(MarkdownObject obj) - { - var key = obj.GetType(); - for (int i = 0; i < ObjectRenderers.Count; i++) - { - var renderer = ObjectRenderers[i]; - if (renderer.Accept(this, key)) - { - _renderersPerType[key] = renderer; - return renderer; - } - } - - _renderersPerType[key] = null; - return null; - } - public ObjectRendererCollection ObjectRenderers { get; } = new(); public abstract object Render(MarkdownObject markdownObject); @@ -141,9 +124,10 @@ namespace Markdig.Renderers // Calls before writing an object ObjectWriteBefore?.Invoke(this, obj); - if (!_renderersPerType.TryGetValue(obj.GetType(), out IMarkdownObjectRenderer? renderer)) + var objectType = obj.GetType(); + if (!_renderersPerType.TryGetValue(objectType, out IMarkdownObjectRenderer? renderer)) { - renderer = GetRendererInstance(obj); + renderer = GetRendererInstance(objectType); } if (renderer is not null) @@ -162,5 +146,21 @@ namespace Markdig.Renderers // Calls after writing an object ObjectWriteAfter?.Invoke(this, obj); } + + private IMarkdownObjectRenderer? GetRendererInstance(Type objectType) + { + var renderers = ObjectRenderers; + foreach (var renderer in renderers) + { + if (renderer.Accept(this, objectType)) + { + _renderersPerType[objectType] = renderer; + return renderer; + } + } + + _renderersPerType[objectType] = null; + return null; + } } } \ No newline at end of file