Skip to content

Commit 9a5d473

Browse files
committed
Moved the detachment of clients to TPythonEngine.Destroy
1 parent 0816040 commit 9a5d473

File tree

1 file changed

+4
-16
lines changed

1 file changed

+4
-16
lines changed

Source/PythonEngine.pas

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -4319,11 +4319,15 @@ constructor TPythonEngine.Create(AOwner: TComponent);
43194319
end;
43204320

43214321
destructor TPythonEngine.Destroy;
4322+
var
4323+
I: Integer;
43224324
begin
43234325
LocalVars := nil;
43244326
GlobalVars := nil;
43254327
Destroying;
43264328
Finalize;
4329+
for I := 0 to ClientCount - 1 do
4330+
Clients[I].ClearEngine;
43274331
FClients.Free;
43284332
FInitScript.Free;
43294333
FTraceback.Free;
@@ -4333,7 +4337,6 @@ destructor TPythonEngine.Destroy;
43334337
procedure TPythonEngine.Finalize;
43344338
var
43354339
i: integer;
4336-
canDetachClients : Boolean;
43374340
begin
43384341
// switch off redirection when the component is destroying,
43394342
// because the form or datamodule is beeing closed, and
@@ -4368,21 +4371,6 @@ procedure TPythonEngine.Finalize;
43684371
except
43694372
end;
43704373
end;
4371-
// Detach our clients, when engine is being destroyed or one of its clients.
4372-
canDetachClients := csDestroying in ComponentState;
4373-
if not canDetachClients then
4374-
for i := 0 to ClientCount - 1 do
4375-
if csDestroying in Clients[i].ComponentState then
4376-
begin
4377-
canDetachClients := True;
4378-
Break;
4379-
end;
4380-
if canDetachClients then
4381-
begin
4382-
for i := 0 to ClientCount - 1 do
4383-
Clients[i].ClearEngine;
4384-
FClients.Clear;
4385-
end;
43864374
// Free our reference
43874375
gPythonEngine := nil;
43884376
FTimeStruct := nil;

0 commit comments

Comments
 (0)