* fixing writing of setdefs

* fixed copying of setdefs
* increased ppu version

git-svn-id: trunk@6189 -
This commit is contained in:
florian 2007-01-25 19:29:54 +00:00
parent fae803869f
commit 1d3a9cd87a
2 changed files with 17 additions and 16 deletions

View File

@ -43,7 +43,7 @@ type
{$endif Test_Double_checksum} {$endif Test_Double_checksum}
const const
CurrentPPUVersion=74; CurrentPPUVersion=75;
{ buffer sizes } { buffer sizes }
maxentrysize = 1024; maxentrysize = 1024;

View File

@ -2033,23 +2033,21 @@ implementation
ppufile.getderef(elementdefderef); ppufile.getderef(elementdefderef);
settype:=tsettype(ppufile.getbyte); settype:=tsettype(ppufile.getbyte);
case settype of case settype of
normset : savesize:=ppufile.getaint; normset :
varset : savesize:=ppufile.getlongint; savesize:=ppufile.getaint;
smallset : savesize:=Sizeof(longint); varset,
smallset :
savesize:=ppufile.getlongint;
end; end;
end; end;
function tsetdef.getcopy : tstoreddef; function tsetdef.getcopy : tstoreddef;
begin begin
case settype of result:=tsetdef.create(elementdef,setmax);
smallset: { the copy might have been created with a different setalloc setting }
result:=tsetdef.create(elementdef,31); tsetdef(result).settype:=settype;
normset: tsetdef(result).savesize:=savesize;
result:=tsetdef.create(elementdef,255);
else
internalerror(2004121202);
end;
end; end;
@ -2058,10 +2056,13 @@ implementation
inherited ppuwrite(ppufile); inherited ppuwrite(ppufile);
ppufile.putderef(elementdefderef); ppufile.putderef(elementdefderef);
ppufile.putbyte(byte(settype)); ppufile.putbyte(byte(settype));
if settype=varset then case settype of
ppufile.putlongint(savesize); varset,
if settype=normset then smallset:
ppufile.putaint(savesize); ppufile.putlongint(savesize);
normset:
ppufile.putaint(savesize);
end;
ppufile.writeentry(ibsetdef); ppufile.writeentry(ibsetdef);
end; end;