Browse Source

* Fix bug #26954

git-svn-id: trunk@30292 -
michael 10 years ago
parent
commit
5f5883695d
1 changed files with 7 additions and 4 deletions
  1. 7 4
      rtl/objpas/classes/streams.inc

+ 7 - 4
rtl/objpas/classes/streams.inc

@@ -192,7 +192,7 @@ end;
     repeat
       r:=Read(PByte(@Buffer)[t],Count);
       inc(t,r);
-    until (t=Count) or (r=0);
+    until (t=Count) or (r<=0);
     if (t<Count) then
       Raise EReadError.Create(SReadError);
   end;
@@ -207,7 +207,7 @@ end;
       Repeat
          r:=Write(PByte(@Buffer)[t],Count);
          inc(t,r);
-      Until (t=count) or (r=0);
+      Until (t=count) or (r<=0);
       if (t<Count) then
          Raise EWriteError.Create(SWriteError);
     end;
@@ -833,8 +833,11 @@ begin
   Result:=Length(FDataString)-FPosition;
   If Result>Count then Result:=Count;
   // This supposes FDataString to be of type AnsiString !
-  Move (Pchar(FDataString)[FPosition],Buffer,Result);
-  FPosition:=FPosition+Result;
+  if Result>0 then
+   begin
+   Move (Pchar(FDataString)[FPosition],Buffer,Result);
+   FPosition:=FPosition+Result;
+   end;
 end;