From 8aa27c62542ba2414d3d14c9fb7df8845d0d3d17 Mon Sep 17 00:00:00 2001 From: joost Date: Fri, 30 May 2008 22:23:52 +0000 Subject: [PATCH] * Force 4-byte alignment of fields in record-buffers hwn necessary git-svn-id: trunk@11134 - --- packages/fcl-db/src/base/bufdataset.pas | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/packages/fcl-db/src/base/bufdataset.pas b/packages/fcl-db/src/base/bufdataset.pas index 668ca31752..69cdcab8dd 100644 --- a/packages/fcl-db/src/base/bufdataset.pas +++ b/packages/fcl-db/src/base/bufdataset.pas @@ -1807,12 +1807,20 @@ var x : longint; begin FNullmaskSize := 1+((FieldDefs.count-1) div 8); +{$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT} + if (FNullmaskSize and 3 <> 0) then + FNullmaskSize := (FNullmaskSize and not 3)+4; +{$ENDIF} FRecordSize := FNullmaskSize; SetLength(FFieldBufPositions,FieldDefs.count); for x := 0 to FieldDefs.count-1 do begin FFieldBufPositions[x] := FRecordSize; inc(FRecordSize, GetFieldSize(FieldDefs[x])); +{$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT} + if (FRecordSize and 3 <> 0) then + FRecordSize := (FRecordSize and not 3)+4; +{$ENDIF} end; end;