Explorar el Código

* InitNearHeap procedure renamed InitDosHeap and added support for a huge heap.
Startup code still needs to be updated in order to enable >64kb heap.

git-svn-id: trunk@28334 -

nickysn hace 11 años
padre
commit
ace28a3552
Se han modificado 1 ficheros con 9 adiciones y 3 borrados
  1. 9 3
      rtl/msdos/system.pp

+ 9 - 3
rtl/msdos/system.pp

@@ -309,10 +309,16 @@ end;
                          SystemUnit Initialization
 *****************************************************************************}
 
-procedure InitNearHeap;
+procedure InitDosHeap;
+type
+{$if defined(FPC_X86_FAR_DATA) or defined(FPC_X86_HUGE_DATA)}
+  TPointerArithmeticType = HugePointer;
+{$else}
+  TPointerArithmeticType = Pointer;
+{$endif}
 begin
   SetMemoryManager(TinyHeapMemoryManager);
-  RegisterTinyHeapBlock(__nearheap_start, ptruint(__nearheap_end) - ptruint(__nearheap_start));
+  RegisterTinyHeapBlock(__nearheap_start, TPointerArithmeticType(__nearheap_end) - TPointerArithmeticType(__nearheap_start));
 end;
 
 function CheckLFN:boolean;
@@ -366,7 +372,7 @@ begin
   { To be set if this is a library and not a program  }
   IsLibrary := FALSE;
 { Setup heap }
-  InitNearHeap;
+  InitDosHeap;
   SysInitExceptions;
   initunicodestringmanager;
 { Setup stdin, stdout and stderr }