Просмотр исходного кода

Call Errno2noutres if system call to close the handle fails in do_close for win and unix

git-svn-id: trunk@29095 -
pierre 10 лет назад
Родитель
Сommit
90537e94a0
4 измененных файлов с 14 добавлено и 7 удалено
  1. 5 3
      rtl/java/Makefile
  2. 5 3
      rtl/java/Makefile.fpc
  3. 2 0
      rtl/unix/sysfile.inc
  4. 2 1
      rtl/win/sysfile.inc

+ 5 - 3
rtl/java/Makefile

@@ -2197,13 +2197,15 @@ SYSCPUDEPS=$(addprefix $(PROCINC)/,$(CPUINCNAMES))
 SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
 	$(COMPILER) -Us -Sg $(SYSTEMUNIT).pp $(REDIR)
-uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
-objpas$(PPUEXT): objpas.pp
+uuchar$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+	$(COMPILER) $(INC)/uuchar.pp $(REDIR)
+objpas$(PPUEXT) : objpas.pp
 	$(COMPILER) objpas.pp $(REDIR)
 strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
 		   $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
 		   $(SYSTEMUNIT)$(PPUEXT)
-jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas 
+	$(COMPILER) $(INC)/strings.pp $(REDIR)
+jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas
 dos$(PPUEXT) : dos.pp $(INC)/filerec.inc $(INC)/textrec.inc strings$(PPUEXT) \
 	       $(SYSTEMUNIT)$(PPUEXT)
 objects$(PPUEXT) : $(INC)/objects.pp dos$(PPUEXT) $(SYSTEMUNIT)$(PPUEXT)

+ 5 - 3
rtl/java/Makefile.fpc

@@ -84,16 +84,18 @@ SYSDEPS=$(SYSINCDEPS) $(SYSCPUDEPS)
 $(SYSTEMUNIT)$(PPUEXT) : $(SYSTEMUNIT).pp $(SYSDEPS)
         $(COMPILER) -Us -Sg $(SYSTEMUNIT).pp $(REDIR)
 
-uuchar$(PPUEXT): $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+uuchar$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) $(INC)/uuchar.pp
+        $(COMPILER) $(INC)/uuchar.pp $(REDIR)
 
-objpas$(PPUEXT): objpas.pp
+objpas$(PPUEXT) : objpas.pp
         $(COMPILER) objpas.pp $(REDIR)
 
 strings$(PPUEXT) : $(INC)/strings.pp $(INC)/stringsi.inc \
                    $(PROCINC)/strings.inc $(PROCINC)/stringss.inc \
                    $(SYSTEMUNIT)$(PPUEXT)
+        $(COMPILER) $(INC)/strings.pp $(REDIR)
 
-jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas 
+jdk15$(PPUEXT) : $(SYSTEMUNIT)$(PPUEXT) objpas$(PPUEXT) jdk15.inc jdk15.pas
 
 #
 # System Dependent Units

+ 2 - 0
rtl/unix/sysfile.inc

@@ -20,6 +20,8 @@ Begin
   repeat
     res:=Fpclose(cint(Handle));
   until (res<>-1) or (geterrno<>ESysEINTR);
+  if res<>0 then
+    Errno2Inoutres;
 End;
 
 Procedure Do_Erase(p: pchar; pchangeable: boolean);

+ 2 - 1
rtl/win/sysfile.inc

@@ -28,7 +28,8 @@ procedure do_close(h : thandle);
 begin
   if do_isdevice(h) then
    exit;
-  CloseHandle(h);
+  if CloseHandle(h)=0 then
+    Errno2InOutRes(GetLastError);
 end;