|
@@ -23,6 +23,7 @@ program ppudump;
|
|
{$mode objfpc}
|
|
{$mode objfpc}
|
|
{$H+}
|
|
{$H+}
|
|
|
|
|
|
|
|
+{$define IN_PPUDUMP}
|
|
uses
|
|
uses
|
|
{ do NOT add symconst or globtype to make merging easier }
|
|
{ do NOT add symconst or globtype to make merging easier }
|
|
{ do include symconst and globtype now before splitting 2.5 PM 2011-06-15 }
|
|
{ do include symconst and globtype now before splitting 2.5 PM 2011-06-15 }
|
|
@@ -530,6 +531,16 @@ begin
|
|
ppufile.getdata(derefdata^,derefdatalen);
|
|
ppufile.getdata(derefdata^,derefdatalen);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+Procedure FreeDerefdata;
|
|
|
|
+begin
|
|
|
|
+ if assigned(derefdata) then
|
|
|
|
+ begin
|
|
|
|
+ FreeMem(derefdata);
|
|
|
|
+ derefdata:=nil;
|
|
|
|
+ derefdatalen:=0;
|
|
|
|
+ end;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
|
|
Procedure ReadWpoFileInfo;
|
|
Procedure ReadWpoFileInfo;
|
|
begin
|
|
begin
|
|
@@ -656,12 +667,6 @@ end;
|
|
|
|
|
|
|
|
|
|
procedure readderef(const derefspace: string);
|
|
procedure readderef(const derefspace: string);
|
|
-type
|
|
|
|
- tdereftype = (deref_nil,
|
|
|
|
- deref_unit,
|
|
|
|
- deref_symid,
|
|
|
|
- deref_defid
|
|
|
|
- );
|
|
|
|
var
|
|
var
|
|
b : tdereftype;
|
|
b : tdereftype;
|
|
first : boolean;
|
|
first : boolean;
|
|
@@ -1444,6 +1449,7 @@ var
|
|
startnewline : boolean;
|
|
startnewline : boolean;
|
|
i,j,len : longint;
|
|
i,j,len : longint;
|
|
guid : tguid;
|
|
guid : tguid;
|
|
|
|
+ realvalue : extended;
|
|
tempbuf : array[0..127] of char;
|
|
tempbuf : array[0..127] of char;
|
|
pw : pcompilerwidestring;
|
|
pw : pcompilerwidestring;
|
|
varoptions : tvaroptions;
|
|
varoptions : tvaroptions;
|
|
@@ -1516,7 +1522,18 @@ begin
|
|
freemem(pc,len+1);
|
|
freemem(pc,len+1);
|
|
end;
|
|
end;
|
|
constreal :
|
|
constreal :
|
|
- writeln(space,' Value : ',getreal);
|
|
|
|
|
|
+ begin
|
|
|
|
+ if entryleft=sizeof(extended) then
|
|
|
|
+ realvalue:=getrealsize(sizeof(extended))
|
|
|
|
+ else if entryleft=sizeof(double) then
|
|
|
|
+ realvalue:=getrealsize(sizeof(double))
|
|
|
|
+ else
|
|
|
|
+ begin
|
|
|
|
+ realvalue:=0.0;
|
|
|
|
+ has_errors:=true;
|
|
|
|
+ end;
|
|
|
|
+ writeln(space,' Value : ',realvalue);
|
|
|
|
+ end;
|
|
constset :
|
|
constset :
|
|
begin
|
|
begin
|
|
write (space,' Set Type : ');
|
|
write (space,' Set Type : ');
|
|
@@ -2490,6 +2507,7 @@ begin
|
|
ppufile.skipuntilentry(ibendsyms);
|
|
ppufile.skipuntilentry(ibendsyms);
|
|
end;
|
|
end;
|
|
ReadCreatedObjTypes;
|
|
ReadCreatedObjTypes;
|
|
|
|
+ FreeDerefdata;
|
|
{shutdown ppufile}
|
|
{shutdown ppufile}
|
|
ppufile.closefile;
|
|
ppufile.closefile;
|
|
ppufile.free;
|
|
ppufile.free;
|