summaryrefslogtreecommitdiff
path: root/compiler/cclasses.pas
diff options
context:
space:
mode:
authorpaul <paul@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-11-23 01:43:42 +0000
committerpaul <paul@3ad0048d-3df7-0310-abae-a5850022a9f2>2009-11-23 01:43:42 +0000
commitb53663faf360c3d31022ff457ad05609b8629e16 (patch)
treea7c28d999d5a0d8994be06b2f09f443be6e07bf3 /compiler/cclasses.pas
parent0c974663852c74db2380e3c5636091f41fa8d6de (diff)
downloadfpc-b53663faf360c3d31022ff457ad05609b8629e16.tar.gz
compiler: revert r14244
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@14257 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'compiler/cclasses.pas')
-rw-r--r--compiler/cclasses.pas38
1 files changed, 18 insertions, 20 deletions
diff --git a/compiler/cclasses.pas b/compiler/cclasses.pas
index e700de8c7b..e9c3322e33 100644
--- a/compiler/cclasses.pas
+++ b/compiler/cclasses.pas
@@ -2498,19 +2498,18 @@ end;
begin
p:=pchar(@d);
while (len>0) do
- with FPosnblock^ do
begin
- i:=FPosn-pos;
- if i+len>=size then
+ i:=FPosn-FPosnblock^.pos;
+ if i+len>=FPosnblock^.size then
begin
- j:=size-i;
- move(p^,data[i],j);
+ j:=FPosnblock^.size-i;
+ move(p^,FPosnblock^.data[i],j);
inc(p,j);
inc(FPosn,j);
dec(len,j);
- used:=size;
- if assigned(Next) then
- FPosnblock:=Next
+ FPosnblock^.used:=FPosnblock^.size;
+ if assigned(FPosnblock^.Next) then
+ FPosnblock:=FPosnblock^.Next
else
begin
grow;
@@ -2519,12 +2518,12 @@ end;
end
else
begin
- move(p^,data[i],len);
+ move(p^,FPosnblock^.data[i],len);
inc(p,len);
inc(FPosn,len);
- i:=FPosn-pos;
- if i>used then
- used:=i;
+ i:=FPosn-FPosnblock^.pos;
+ if i>FPosnblock^.used then
+ FPosnblock^.used:=i;
len:=0;
end;
end;
@@ -2545,25 +2544,24 @@ end;
res:=0;
p:=pchar(@d);
while (len>0) do
- with FPosnblock^ do
begin
- i:=FPosn-pos;
- if i+len>=used then
+ i:=FPosn-FPosnblock^.pos;
+ if i+len>=FPosnblock^.used then
begin
- j:=used-i;
- move(data[i],p^,j);
+ j:=FPosnblock^.used-i;
+ move(FPosnblock^.data[i],p^,j);
inc(p,j);
inc(FPosn,j);
inc(res,j);
dec(len,j);
- if assigned(Next) then
- FPosnblock:=Next
+ if assigned(FPosnblock^.Next) then
+ FPosnblock:=FPosnblock^.Next
else
break;
end
else
begin
- move(data[i],p^,len);
+ move(FPosnblock^.data[i],p^,len);
inc(p,len);
inc(FPosn,len);
inc(res,len);