From 42ca7771772cb73b57af8c9661b003f6e483334f Mon Sep 17 00:00:00 2001
From: SomeRandomDeveloper <git@srd.dev>
Date: Thu, 19 Mar 2026 21:08:52 +0100
Subject: [PATCH] SECURITY: Always call engine destructor to fix memory leak

Bug: T419168
Change-Id: I68ffa6f1ff290f6d04c2bbc9d3f1d95edec64a27
---
 includes/EngineFactory.php | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/includes/EngineFactory.php b/includes/EngineFactory.php
index 14c4dfa..45ea23e 100644
--- a/includes/EngineFactory.php
+++ b/includes/EngineFactory.php
@@ -125,6 +125,11 @@ class EngineFactory {
 	}
 
 	public function destroyEngineForParser( Parser $parser ): void {
+		if ( isset( $this->engineForParser[$parser] ) ) {
+			// T419168: Call destroy() manually to prevent memory leaks
+			$this->engineForParser[$parser]->destroy();
+		}
+
 		unset( $this->engineForParser[$parser] );
 	}
 }
-- 
2.53.0

