瀏覽代碼

fcl-passrc: fixed releasing modules of a package

mattias 3 年之前
父節點
當前提交
43444ab7f0
共有 1 個文件被更改,包括 7 次插入1 次删除
  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;