Selaa lähdekoodia

* use local buffer for seek mantis #38930 patch by Hendi.

git-svn-id: trunk@49490 -
marco 4 vuotta sitten
vanhempi
commit
09290da51e
2 muutettua tiedostoa jossa 5 lisäystä ja 4 poistoa
  1. 1 1
      packages/fcl-db/src/base/db.pas
  2. 4 3
      packages/paszlib/src/zstream.pp

+ 1 - 1
packages/fcl-db/src/base/db.pas

@@ -2554,7 +2554,7 @@ end;
 procedure TIndexDef.SetDescFields(const AValue: string);
 procedure TIndexDef.SetDescFields(const AValue: string);
 begin
 begin
   if FDescFields=AValue then exit;
   if FDescFields=AValue then exit;
-  if AValue <> '' then FOptions:=FOptions + [ixDescending];
+  if AValue <> '' then FOptions[A:=FOptions + [ixDescending];
   FDescFields:=AValue;
   FDescFields:=AValue;
 end;
 end;
 
 

+ 4 - 3
packages/paszlib/src/zstream.pp

@@ -325,6 +325,7 @@ end;
 function Tdecompressionstream.Seek(const Offset: Int64; Origin: TSeekOrigin): Int64;
 function Tdecompressionstream.Seek(const Offset: Int64; Origin: TSeekOrigin): Int64;
 
 
 var c,off: int64;
 var c,off: int64;
+    buf: array[0..8191] of Byte;
 
 
 begin
 begin
   off:=Offset;
   off:=Offset;
@@ -344,9 +345,9 @@ begin
   while off>0 do
   while off>0 do
     begin
     begin
       c:=off;
       c:=off;
-      if c>bufsize then
-        c:=bufsize;
-      if read(Fbuffer^,c)<>c then
+      if c>SizeOf(buf) then
+        c:=SizeOf(buf);
+      if read(buf,c)<>c then
         raise Edecompressionerror.create(Sseek_failed);
         raise Edecompressionerror.create(Sseek_failed);
       dec(off,c);
       dec(off,c);
     end;
     end;