Browse Source

fcl-passrc: fixed releasing modules of a package

mattias 3 years ago
parent
commit
43444ab7f0
1 changed files with 7 additions and 1 deletions
  1. 7 1
      packages/fcl-passrc/src/pastree.pp

+ 7 - 1
packages/fcl-passrc/src/pastree.pp

@@ -3365,9 +3365,15 @@ end;
 destructor TPasPackage.Destroy;
 var
   i: Integer;
+  aModule: TPasModule;
 begin
   for i := 0 to Modules.Count - 1 do
-    TPasModule(Modules[i]).Release{$IFDEF CheckPasTreeRefCount}('TPasPackage.Modules'){$ENDIF};
+    begin
+    aModule:=TPasModule(Modules[i]);
+    if aModule.Parent=Self then
+      aModule.Parent:=nil;
+    aModule.Release{$IFDEF CheckPasTreeRefCount}('TPasPackage.Modules'){$ENDIF};
+    end;
   FreeAndNil(Modules);
   inherited Destroy;
 end;