From 405fb3065221094bb5233cf4e49c2f7936488fd2 Mon Sep 17 00:00:00 2001 From: Jonas Maebe Date: Sun, 7 Nov 2004 18:02:47 +0000 Subject: [PATCH] * fixed pointer arithmetic errors --- rtl/inc/dynarr.inc | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/rtl/inc/dynarr.inc b/rtl/inc/dynarr.inc index df1d913d40..e5efcf37f3 100644 --- a/rtl/inc/dynarr.inc +++ b/rtl/inc/dynarr.inc @@ -86,7 +86,7 @@ procedure fpc_dynarray_clear_internal(p : pointer;ti : pointer); {$endif FPC_ALIGNSRTTI} elesize:=psizeint(ti)^; - eletype:=pdynarraytypeinfo(ti+sizeof(sizeint)); + eletype:=pdynarraytypeinfo(pointer(ti)+sizeof(sizeint)); { finalize all data } int_finalizearray(p+sizeof(tdynarray),eletype,pdynarray(p)^.high+1, @@ -187,7 +187,7 @@ procedure fpc_dynarray_setlength(var p : pointer;pti : pointer; {$endif FPC_ALIGNSRTTI} elesize:=psizeint(ti)^; - eletype:=pdynarraytypeinfo(ti+sizeof(sizeint)); + eletype:=pdynarraytypeinfo(pointer(ti)+sizeof(sizeint)); { determine new memory size } { dims[dimcount-1] because the dimensions are in reverse order! (JM) } @@ -325,7 +325,7 @@ procedure fpc_dynarray_copy(var pdest : pointer;psrc : pointer;ti : pointer; {$endif FPC_ALIGNSRTTI} elesize:=psizeint(ti)^; - eletype:=pdynarraytypeinfo(ti+sizeof(sizeint)); + eletype:=pdynarraytypeinfo(pointer(ti)+sizeof(sizeint)); { -1, -1 (highidx=lowidx-1-1=-3) is used to copy the whole array like a:=copy(b);, so update the lowidx and highidx with the values from psrc } @@ -355,7 +355,10 @@ procedure fpc_dynarray_copy(var pdest : pointer;psrc : pointer;ti : pointer; { $Log$ - Revision 1.32 2004-11-06 15:29:19 florian + Revision 1.33 2004-11-07 18:02:47 jonas + * fixed pointer arithmetic errors + + Revision 1.32 2004/11/06 15:29:19 florian * fixed fpc_dynarry_copy for arm/sparc Revision 1.31 2004/11/03 10:54:36 florian