|
@@ -635,7 +635,11 @@ BEGIN
|
|
|
CacheList := Cache; { Hold cache ptr }
|
|
|
Cache^.Size := Size; { Hold cache size }
|
|
|
Cache^.Master := @P; { Hold master ptr }
|
|
|
+{$ifdef fpc}
|
|
|
+ Inc(Pointer(Cache), SizeOf(TCache)); { Set cache offset }
|
|
|
+{$else fpc}
|
|
|
Inc(PtrRec(Cache).Ofs, SizeOf(TCache)); { Set cache offset }
|
|
|
+{$endif fpc}
|
|
|
End;
|
|
|
P := Cache; { Return pointer }
|
|
|
END;
|
|
@@ -700,8 +704,12 @@ END;
|
|
|
{$ELSE} { DPMI/WIN/NT/OS2 CODE }
|
|
|
VAR Cache, C: PCache;
|
|
|
BEGIN
|
|
|
+{$ifdef fpc}
|
|
|
+ Cache:=pointer(p)-SizeOf(TCache);
|
|
|
+{$else fpc}
|
|
|
PtrRec(Cache).Ofs := PtrRec(P).Ofs-SizeOf(TCache); { Previous cache }
|
|
|
PtrRec(Cache).Seg := PtrRec(P).Seg; { Segment }
|
|
|
+{$endif fpc}
|
|
|
C := CacheList; { Start at 1st cache }
|
|
|
While (C^.Next <> Cache) AND (C^.Next <> CacheList)
|
|
|
Do C := C^.Next; { Find previous }
|
|
@@ -729,10 +737,17 @@ BEGIN
|
|
|
Dec(PtrRec(P).Seg); { Segment prior }
|
|
|
GetBufferSize := PBuffer(P)^.Size; { Size of this buffer }
|
|
|
{$ELSE} { DPMI/WIN/NT/OS2 CODE }
|
|
|
- If (P <> Nil) Then Begin { Check pointer }
|
|
|
- Dec(PtrRec(P).Ofs,SizeOf(TBuffer)); { Correct to buffer }
|
|
|
- GetBufferSize := PBuffer(P)^.Size; { Return buffer size }
|
|
|
- End Else GetBufferSize := 0; { Invalid pointer }
|
|
|
+ If (P <> Nil) Then { Check pointer }
|
|
|
+ Begin
|
|
|
+{$ifdef fpc}
|
|
|
+ Dec(Pointer(P),SizeOf(TBuffer)); { Correct to buffer }
|
|
|
+{$else fpc}
|
|
|
+ Dec(PtrRec(P).Ofs,SizeOf(TBuffer)); { Correct to buffer }
|
|
|
+{$endif fpc}
|
|
|
+ GetBufferSize := PBuffer(P)^.Size; { Return buffer size }
|
|
|
+ End
|
|
|
+ Else
|
|
|
+ GetBufferSize := 0; { Invalid pointer }
|
|
|
{$ENDIF}
|
|
|
END;
|
|
|
|
|
@@ -768,7 +783,11 @@ BEGIN
|
|
|
Dec(PtrRec(P).Seg); { Prior segement }
|
|
|
SetBufSize(P, 0); { Release memory }
|
|
|
{$ELSE} { DPMI/WIN/NT/OS2 CODE }
|
|
|
+{$ifdef fpc}
|
|
|
+ Dec(Pointer(P), SizeOf(TBuffer)); { Actual buffer pointer }
|
|
|
+{$else fpc}
|
|
|
Dec(PtrRec(P).Ofs, SizeOf(TBuffer)); { Actual buffer pointer }
|
|
|
+{$endif fpc}
|
|
|
Buffer := BufferList; { Start on first }
|
|
|
PrevBuf := Nil; { Preset prevbuf to nil }
|
|
|
While (Buffer <> Nil) AND (P <> Buffer) Do Begin { Search for buffer }
|
|
@@ -808,7 +827,11 @@ BEGIN
|
|
|
Buffer^.Next := BufferList; { First part of chain }
|
|
|
BufferList := Buffer; { Complete the chain }
|
|
|
Buffer^.Size := BufSize; { Hold the buffer size }
|
|
|
+{$ifdef fpc}
|
|
|
+ Inc(Pointer(Buffer), SizeOf(TBuffer)); { Buffer to data area }
|
|
|
+{$else fpc}
|
|
|
Inc(PtrRec(Buffer).Ofs, SizeOf(TBuffer)); { Buffer to data area }
|
|
|
+{$endif fpc}
|
|
|
End;
|
|
|
P := Buffer; { Return the buffer ptr }
|
|
|
{$ENDIF}
|
|
@@ -848,7 +871,10 @@ END.
|
|
|
|
|
|
{
|
|
|
$Log$
|
|
|
- Revision 1.9 2004-11-06 17:08:48 peter
|
|
|
+ Revision 1.10 2004-12-19 13:05:56 florian
|
|
|
+ * fixed x86_64 compilation
|
|
|
+
|
|
|
+ Revision 1.9 2004/11/06 17:08:48 peter
|
|
|
* drawing of tview merged from old fv code
|
|
|
|
|
|
}
|