From 61cc9800e6bbaaf4da24e573491f83ef1df53b15 Mon Sep 17 00:00:00 2001
From: Michael Krisper <michael.krisper@tugraz.at>
Date: Fri, 16 Jul 2021 14:05:04 +0200
Subject: [PATCH] cached Gears data to avoid reading it multiple times.

(cherry picked from commit 7e330f533f414947aeba00fbacb091c1757d8b2b)
---
 .../InputData/FileIO/JSON/JSONGearboxData.cs       | 14 +++++++++-----
 1 file changed, 9 insertions(+), 5 deletions(-)

diff --git a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs
index 87fdde345f..fb3a8be89a 100644
--- a/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs
+++ b/VectoCore/VectoCore/InputData/FileIO/JSON/JSONGearboxData.cs
@@ -46,6 +46,8 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 {
 	public class JSONGearboxDataV6 : JSONGearboxDataV5
 	{
+		private IList<ITransmissionInputData> resultGears;
+
 		public JSONGearboxDataV6(JObject data, string filename, bool tolerateMissing = false)
 			: base(data, filename, tolerateMissing) {}
 
@@ -54,12 +56,14 @@ namespace TUGraz.VectoCore.InputData.FileIO.JSON
 		public override IList<ITransmissionInputData> Gears
 		{
 			get {
-				var resultGears = new List<ITransmissionInputData>();
-				var gears = Body.GetEx(JsonKeys.Gearbox_Gears);
-				for (var i = 1; i < gears.Count(); i++) {
-					var gear = gears[i];
+				if (resultGears == null) { 
+					resultGears = new List<ITransmissionInputData>();
+					var gears = Body.GetEx(JsonKeys.Gearbox_Gears);
+					for (var i = 1; i < gears.Count(); i++) {
+						var gear = gears[i];
 
-					resultGears.Add(CreateGear(i, gear));
+						resultGears.Add(CreateGear(i, gear));
+					}
 				}
 				return resultGears;
 			}
-- 
GitLab