From b2ee804e0bef8a82030438e1bc6dd25d0257e213 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Malte=20K=C3=B6gel?= <koegel@vr.rwth-aachen.de>
Date: Wed, 11 Oct 2023 14:50:26 +0200
Subject: [PATCH] Added workaround for the invalid object problem described in
 #98

---
 .../Private/Logging/SFLogObject.cpp               | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/Source/StudyFrameworkPlugin/Private/Logging/SFLogObject.cpp b/Source/StudyFrameworkPlugin/Private/Logging/SFLogObject.cpp
index 7516213..caf7358 100644
--- a/Source/StudyFrameworkPlugin/Private/Logging/SFLogObject.cpp
+++ b/Source/StudyFrameworkPlugin/Private/Logging/SFLogObject.cpp
@@ -90,7 +90,20 @@ void USFLogObject::WritePositionLogToFile() {
 	{
 		USFGameInstance::Get()->GetLogObject()->CreatePositionLogFile();
 	}
-	
+
+	int i = 0;
+	while(i < LogObject->ComponentLoggingInfoArray.Num()) {
+		if (i >= LogObject->ComponentLoggingInfoArray.Num()) {
+			break;
+		}
+		if(!LogObject->ComponentLoggingInfoArray[i].ComponentToLog->IsValidLowLevelFast())
+		{
+			LogObject->ComponentLoggingInfoArray.RemoveAt(i);
+			continue;
+		}
+		i++;
+	}
+
 	for (auto& ComponentLoggingInfo : LogObject->ComponentLoggingInfoArray) {
 		if (ComponentLoggingInfo.LogNextTick == true) {
 			ComponentLoggingInfo.LogNextTick = false;
-- 
GitLab