瀏覽代碼

+ Fixed memory leak in TIPCCserver

git-svn-id: trunk@4212 -
michael 19 年之前
父節點
當前提交
9ecfcf0e09
共有 1 個文件被更改,包括 13 次插入6 次删除
  1. 13 6
      fcl/inc/simpleipc.pp

+ 13 - 6
fcl/inc/simpleipc.pp

@@ -242,6 +242,7 @@ end;
 destructor TSimpleIPCServer.destroy;
 begin
   Active:=False;
+  FreeAndNil(FMsgData);
   inherited destroy;
 end;
 
@@ -268,17 +269,23 @@ end;
 
 procedure TSimpleIPCServer.StartServer;
 begin
-  If (FServerID='') then
-    FServerID:=ApplicationName;
-  FIPCComm:=CommClass.Create(Self);
-  FIPCComm.StartServer;
+  if Not Assigned(FIPCComm) then
+    begin
+    If (FServerID='') then
+      FServerID:=ApplicationName;
+    FIPCComm:=CommClass.Create(Self);
+    FIPCComm.StartServer;
+    end;
   FActive:=True;
 end;
 
 procedure TSimpleIPCServer.StopServer;
 begin
-  FIPCComm.StopServer;
-  FreeAndNil(FIPCComm);
+  If Assigned(FIPCComm) then
+    begin
+    FIPCComm.StopServer;
+    FreeAndNil(FIPCComm);
+    end;
   FActive:=False;
 end;