summaryrefslogtreecommitdiff
path: root/rtl/msdos/classes.pp
diff options
context:
space:
mode:
Diffstat (limited to 'rtl/msdos/classes.pp')
-rw-r--r--rtl/msdos/classes.pp17
1 files changed, 16 insertions, 1 deletions
diff --git a/rtl/msdos/classes.pp b/rtl/msdos/classes.pp
index cbd5d78c70..95fb6253c4 100644
--- a/rtl/msdos/classes.pp
+++ b/rtl/msdos/classes.pp
@@ -18,6 +18,14 @@
{ determine the type of the resource/form file }
{$define Win16Res}
+{$if defined(FPC_MM_TINY) or defined(FPC_MM_SMALL) or defined(FPC_MM_LARGE) or defined(FPC_MM_HUGE)}
+ { CodePointer = Pointer; nothing to define }
+{$elseif defined(FPC_MM_MEDIUM) or defined(FPC_MM_COMPACT)}
+ {$define FPC_CODEPOINTER_DIFFERENT_THAN_POINTER}
+{$else}
+ {$fatal Unknown i8086 memory model.}
+{$endif}
+
unit Classes;
interface
@@ -26,7 +34,7 @@ uses
typinfo,
rtlconsts,
types,
-{$ifdef FPC_TESTGENERICS}
+{$if defined(FPC_TESTGENERICS) or defined(FPC_CODEPOINTER_DIFFERENT_THAN_POINTER)}
fgl,
{$endif}
sysutils;
@@ -35,6 +43,13 @@ uses
implementation
+type
+{$ifdef FPC_CODEPOINTER_DIFFERENT_THAN_POINTER}
+ TCodePtrList = specialize TFPGList<CodePointer>;
+{$else FPC_CODEPOINTER_DIFFERENT_THAN_POINTER}
+ TCodePtrList = TList;
+{$endif FPC_CODEPOINTER_DIFFERENT_THAN_POINTER}
+
{ OS - independent class implementations are in /inc directory. }
{$i classes.inc}