فهرست منبع

* Don't access tcfilestream.size 3 times in sequence, as each access costs two seeks (syscalls).
+ made size of tobjectreader data available via property.

git-svn-id: trunk@21905 -

sergei 13 سال پیش
والد
کامیت
e5ee1c9f67
1فایلهای تغییر یافته به همراه3 افزوده شده و 2 حذف شده
  1. 3 2
      compiler/owbase.pas

+ 3 - 2
compiler/owbase.pas

@@ -72,6 +72,7 @@ type
     function  read(out b;len:longint):boolean;virtual;
     function  readarray(a:TDynamicArray;len:longint):boolean;
     property filename : string read getfilename;
+    property size:longint read bufmax;
   end;
 
 implementation
@@ -240,9 +241,9 @@ begin
        exit;
     end;
   ffilename:=fn;
-  getmem(buf,f.Size);
-  f.read(buf^,f.Size);
   bufmax:=f.Size;
+  getmem(buf,bufmax);
+  f.read(buf^,bufmax);
   f.free;
   bufidx:=0;
   opened:=true;