fix #33, piping a pre or post build process leads to AV

This commit is contained in:
Basile Burg 2015-08-28 17:57:42 +02:00
parent ebebf27243
commit abdddf29c0
1 changed files with 7 additions and 5 deletions

View File

@ -744,24 +744,26 @@ end;
procedure TCENativeProject.runProcOutput(sender: TObject); procedure TCENativeProject.runProcOutput(sender: TObject);
var var
proc: TCEProcess;
lst: TStringList; lst: TStringList;
str: string; str: string;
msgs: ICEMessagesDisplay; msgs: ICEMessagesDisplay;
begin begin
proc := TCEProcess(sender);
lst := TStringList.Create; lst := TStringList.Create;
msgs := getMessageDisplay; msgs := getMessageDisplay;
try try
proc.getFullLines(lst); if (sender is TCEProcess) then
(sender as TCEProcess).getFullLines(lst)
else
processOutputToStrings(TProcess(sender), lst);
for str in lst do for str in lst do
msgs.message(str, Self, amcProj, amkBub); msgs.message(str, Self, amcProj, amkBub);
finally finally
lst.Free; lst.Free;
end; end;
// //
if not proc.Active then if not TProcess(sender).Active then
getprocInputHandler.removeProcess(proc); getprocInputHandler.removeProcess(TProcess(sender));
end; end;
procedure TCENativeProject.compProcOutput(proc: TProcess); procedure TCENativeProject.compProcOutput(proc: TProcess);