From 88b8195c19a0bbd5e1b9fe8aba0b70883ec416fe Mon Sep 17 00:00:00 2001 From: joost Date: Tue, 24 Jun 2008 22:06:13 +0000 Subject: [PATCH] * Align field-data when needed (bug 10957) * Fix for bookmark property git-svn-id: trunk@11276 - --- packages/fcl-db/src/memds/memds.pp | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/packages/fcl-db/src/memds/memds.pp b/packages/fcl-db/src/memds/memds.pp index 1cacda14f4..d109fd4547 100644 --- a/packages/fcl-db/src/memds/memds.pp +++ b/packages/fcl-db/src/memds/memds.pp @@ -255,6 +255,7 @@ begin FRecBufferSize:=0; FRecInfoOffset:=0; FCurrRecNo:=-1; + BookmarkSize := sizeof(TMTRecInfo); FIsOpen:=False; end; @@ -310,6 +311,9 @@ begin else RaiseError(SErrFieldTypeNotSupported,[FieldDefs.Items[FieldNo-1].Name]); end; +{$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT} + Result:=Align(Result,4); +{$ENDIF} end; function TMemDataset.MDSGetActiveBuffer(var Buffer: PChar): Boolean; @@ -842,7 +846,10 @@ begin FFieldOffsets:=getmem(Count*sizeof(integer)); FFieldSizes:=getmem(Count*sizeof(integer)); FRecSize:= (Count+7) div 8; //null mask - for i:= 0 to Count-1 do +{$IFDEF FPC_REQUIRES_PROPER_ALIGNMENT} + FRecSize:=Align(FRecSize,4); +{$ENDIF} + for i:= 0 to Count-1 do begin ffieldoffsets[i] := frecsize; ffieldsizes[i] := MDSGetbufferSize(i+1);