Explorar el Código

* fixed alignment issues with sparc/linux for pclose

git-svn-id: trunk@4369 -
Jonas Maebe hace 19 años
padre
commit
fa44b72c78
Se han modificado 1 ficheros con 8 adiciones y 2 borrados
  1. 8 2
      rtl/linux/unxfunc.inc

+ 8 - 2
rtl/linux/unxfunc.inc

@@ -35,11 +35,14 @@ Function PClose(Var F:text) :cint;
 var
   pl  : ^cint;
   res : cint;
+  pid : cint;
 begin
   fpclose(Textrec(F).Handle);
 { closed our side, Now wait for the other - this appears to be needed ?? }
   pl:=@(textrec(f).userdata[2]);
-  fpwaitpid(pl^,@res,0);
+  { avoid alignment error on sparc }
+  move(pl^,pid,sizeof(pid));
+  fpwaitpid(pid,@res,0);
   pclose:=res shr 8;
 end;
 
@@ -47,11 +50,14 @@ Function PClose(Var F:file) : cint;
 var
   pl : ^cint;
   res : cint;
+  pid : cint;
 begin
   fpclose(filerec(F).Handle);
 { closed our side, Now wait for the other - this appears to be needed ?? }
   pl:=@(filerec(f).userdata[2]);
-  fpwaitpid(pl^,@res,0);
+  { avoid alignment error on sparc }
+  move(pl^,pid,sizeof(pid));
+  fpwaitpid(pid,@res,0);
   pclose:=res shr 8;
 end;