Browse Source

* bugfix of assigning to external filename output

carl 23 years ago
parent
commit
302c977a8b
1 changed files with 21 additions and 14 deletions
  1. 21 14
      rtl/inc/heaptrc.pp

+ 21 - 14
rtl/inc/heaptrc.pp

@@ -88,6 +88,9 @@ const
   display_extra_info_proc : TDisplayExtraInfoProc = nil;
   display_extra_info_proc : TDisplayExtraInfoProc = nil;
   error_in_heap : boolean = false;
   error_in_heap : boolean = false;
   inside_trace_getmem : boolean = false;
   inside_trace_getmem : boolean = false;
+  { indicates where the output will be redirected }
+  { only set using environment variables          }
+  outputstr : shortstring = '';
 
 
 type
 type
   pheap_extra_info = ^theap_extra_info;
   pheap_extra_info = ^theap_extra_info;
@@ -182,7 +185,7 @@ var
    crc : longword;
    crc : longword;
    pl : plongint;
    pl : plongint;
 begin
 begin
-   crc:=longword($ffffffff);
+   crc:=cardinal($ffffffff);
    crc:=UpdateCrc32(crc,p^.size,sizeof(longint));
    crc:=UpdateCrc32(crc,p^.size,sizeof(longint));
    crc:=UpdateCrc32(crc,p^.calls,tracesize*sizeof(longint));
    crc:=UpdateCrc32(crc,p^.calls,tracesize*sizeof(longint));
    if p^.extra_info_size>0 then
    if p^.extra_info_size>0 then
@@ -702,9 +705,9 @@ end;
 
 
 {$ifdef go32v2}
 {$ifdef go32v2}
 var
 var
-   __stklen : cardinal;external name '__stklen';
-   __stkbottom : cardinal;external name '__stkbottom';
-   edata : cardinal; external name 'edata';
+   __stklen : longword;external name '__stklen';
+   __stkbottom : longword;external name '__stkbottom';
+   edata : longword; external name 'edata';
    heap_at_init : pointer;
    heap_at_init : pointer;
 {$endif go32v2}
 {$endif go32v2}
 
 
@@ -714,16 +717,16 @@ var
    { I found no symbol for start of text section :(
    { I found no symbol for start of text section :(
      so we usee the _mainCRTStartup which should be
      so we usee the _mainCRTStartup which should be
      in wprt0.ow or wdllprt0.ow PM }
      in wprt0.ow or wdllprt0.ow PM }
-   text_begin : cardinal;external name '_mainCRTStartup';
-   data_end : cardinal;external name '__data_end__';
+   text_begin : longword;external name '_mainCRTStartup';
+   data_end : longword;external name '__data_end__';
 {$endif}
 {$endif}
 
 
 procedure CheckPointer(p : pointer);[saveregisters,public, alias : 'FPC_CHECKPOINTER'];
 procedure CheckPointer(p : pointer);[saveregisters,public, alias : 'FPC_CHECKPOINTER'];
 var
 var
   i  : longint;
   i  : longint;
   pp : pheap_mem_info;
   pp : pheap_mem_info;
-  get_ebp,stack_top : cardinal;
-  data_end : cardinal;
+  get_ebp,stack_top : longword;
+  data_end : longword;
 label
 label
   _exit;
   _exit;
 begin
 begin
@@ -999,6 +1002,8 @@ begin
   MakeCRC32Tbl;
   MakeCRC32Tbl;
   SetMemoryManager(TraceManager);
   SetMemoryManager(TraceManager);
   ptext:=@stderr;
   ptext:=@stderr;
+  if outputstr <> '' then
+     SetHeapTraceOutput(outputstr);
 {$ifdef EXTRA}
 {$ifdef EXTRA}
   Assign(error_file,'heap.err');
   Assign(error_file,'heap.err');
   Rewrite(error_file);
   Rewrite(error_file);
@@ -1124,12 +1129,11 @@ begin
   i:=pos('log=',s);
   i:=pos('log=',s);
   if i>0 then
   if i>0 then
    begin
    begin
-     hs:=copy(s,i+4,255);
-     j:=pos(' ',hs);
+     outputstr:=copy(s,i+4,255);
+     j:=pos(' ',outputstr);
      if j=0 then
      if j=0 then
-      j:=length(hs)+1;
-     delete(hs,j,255);
-     SetHeapTraceOutput(hs);
+      j:=length(outputstr)+1;
+     delete(outputstr,j,255);
    end;
    end;
 end;
 end;
 
 
@@ -1145,7 +1149,10 @@ finalization
 end.
 end.
 {
 {
   $Log$
   $Log$
-  Revision 1.18  2002-09-09 15:45:49  jonas
+  Revision 1.19  2002-10-05 15:19:46  carl
+     * bugfix of assigning to external filename output
+
+  Revision 1.18  2002/09/09 15:45:49  jonas
     * made result type of calculate_release_sig() a longword instead of a
     * made result type of calculate_release_sig() a longword instead of a
       longint
       longint