@@ -172,6 +172,14 @@ private static unsafe HResult LaunchGameFromGameManagerAsync(nint gameManage
172172 InstanceLogger . LogError ( ex , "An error has occurred while trying to call LaunchGameFromGameManagerCoreAsync() from the plugin!" ) ;
173173 return Marshal . GetHRForException ( ex ) ;
174174 }
175+ #if ! MANUALCOM
176+ finally
177+ {
178+ ComInterfaceMarshaller < IPlugin > . Free ( ( void * ) pluginP ) ;
179+ ComInterfaceMarshaller < IGameManager > . Free ( ( void * ) gameManagerP ) ;
180+ ComInterfaceMarshaller < IPluginPresetConfig > . Free ( ( void * ) presetConfigP ) ;
181+ }
182+ #endif
175183 }
176184
177185 /// <summary>
@@ -223,6 +231,13 @@ private static unsafe HResult IsGameRunning(nint gameManagerP, nint presetConfig
223231 InstanceLogger . LogError ( ex , "An error has occurred while trying to call IsGameRunningCore() from the plugin!" ) ;
224232 return Marshal . GetHRForException ( ex ) ;
225233 }
234+ #if ! MANUALCOM
235+ finally
236+ {
237+ ComInterfaceMarshaller < IGameManager > . Free ( ( void * ) gameManagerP ) ;
238+ ComInterfaceMarshaller < IPluginPresetConfig > . Free ( ( void * ) presetConfigP ) ;
239+ }
240+ #endif
226241 }
227242
228243 /// <summary>
@@ -290,6 +305,14 @@ private static unsafe HResult WaitRunningGameAsync(nint gameManagerP, nint plugi
290305 InstanceLogger . LogError ( ex , "An error has occurred while trying to call WaitRunningGameCoreAsync() from the plugin!" ) ;
291306 return Marshal . GetHRForException ( ex ) ;
292307 }
308+ #if ! MANUALCOM
309+ finally
310+ {
311+ ComInterfaceMarshaller < IPlugin > . Free ( ( void * ) pluginP ) ;
312+ ComInterfaceMarshaller < IGameManager > . Free ( ( void * ) gameManagerP ) ;
313+ ComInterfaceMarshaller < IPluginPresetConfig > . Free ( ( void * ) presetConfigP ) ;
314+ }
315+ #endif
293316 }
294317
295318 /// <summary>
@@ -340,6 +363,13 @@ private static unsafe HResult KillRunningGame(nint gameManagerP, nint presetConf
340363 InstanceLogger . LogError ( ex , "An error has occurred while trying to call KillRunningGameCore() from the plugin!" ) ;
341364 return Marshal . GetHRForException ( ex ) ;
342365 }
366+ #if ! MANUALCOM
367+ finally
368+ {
369+ ComInterfaceMarshaller < IGameManager > . Free ( ( void * ) gameManagerP ) ;
370+ ComInterfaceMarshaller < IPluginPresetConfig > . Free ( ( void * ) presetConfigP ) ;
371+ }
372+ #endif
343373 }
344374 #endregion
345375
0 commit comments