Преглед на файлове

Make sure line limit isn't exceeded when buffer has multiple lines

Jordan Russell преди 1 година
родител
ревизия
4591f4e1a4
променени са 1 файла, в които са добавени 4 реда и са изтрити 3 реда
  1. 4 3
      Projects/Src/CmnFunc2.pas

+ 4 - 3
Projects/Src/CmnFunc2.pas

@@ -1786,14 +1786,15 @@ begin
         SetLength(Buffer, TotalBytesHave+BytesRead);
 
         { Check for completed lines thanks to the new data }
-        var P := FindNewLine(Buffer, LastRead);
-        while P <> 0 do begin
+        while FTotalLinesRead < FMaxTotalLinesToRead do begin
+          var P := FindNewLine(Buffer, LastRead);
+          if P = 0 then
+            Break;
           LogLine(Copy(Buffer, 1, P-1));
           Inc(FTotalLinesRead);
           if (Buffer[P] = #13) and (P < Length(Buffer)) and (Buffer[P+1] = #10) then
             Inc(P);
           Delete(Buffer, 1, P);
-          P := FindNewLine(Buffer, LastRead);
         end;
 
         Inc(FTotalBytesRead, BytesRead);