Bläddra i källkod

* reuse generic align()

git-svn-id: trunk@4382 -
peter 19 år sedan
förälder
incheckning
16f121a8bc
2 ändrade filer med 8 tillägg och 7 borttagningar
  1. 3 3
      rtl/inc/dynarr.inc
  2. 5 4
      rtl/objpas/typinfo.pp

+ 3 - 3
rtl/inc/dynarr.inc

@@ -28,10 +28,10 @@ type
 function aligntoptr(p : pointer) : pointer;inline;
   begin
 {$ifdef FPC_REQUIRES_PROPER_ALIGNMENT}
-    if (ptrint(p) mod sizeof(ptrint))<>0 then
-      inc(ptrint(p),sizeof(ptrint)-ptrint(p) mod sizeof(ptrint));
-{$endif FPC_REQUIRES_PROPER_ALIGNMENT}
+    result:=align(p,sizeof(p));
+{$else FPC_REQUIRES_PROPER_ALIGNMENT}
     result:=p;
+{$endif FPC_REQUIRES_PROPER_ALIGNMENT}
   end;
 
 

+ 5 - 4
rtl/objpas/typinfo.pp

@@ -21,6 +21,7 @@ unit typinfo;
   interface
 
 {$MODE objfpc}
+{$inline on}
 {$h+}
 
   uses SysUtils;
@@ -310,13 +311,13 @@ type
   Auxiliary methods
   ---------------------------------------------------------------------}
 
-function aligntoptr(p : pointer) : pointer;
+function aligntoptr(p : pointer) : pointer;inline;
    begin
 {$ifdef FPC_REQUIRES_PROPER_ALIGNMENT}
-     if (ptruint(p) and (sizeof(ptruint)-1))<>0 then
-	  ptruint(p) := (ptruint(p) + sizeof(ptruint) - 1) and not (sizeof(ptruint) - 1);
+     result:=align(p,sizeof(p));
+{$else FPC_REQUIRES_PROPER_ALIGNMENT}
+     result:=p;
 {$endif FPC_REQUIRES_PROPER_ALIGNMENT}
-     aligntoptr:=p;
    end;