[multiple changes]
2009-09-18 Thomas Quinot <quinot@adacore.com> * g-socket.adb (Is_Open): New function indicating whether a Selector_Type object is open. 2009-09-18 Vincent Celier <celier@adacore.com> * osint-c.adb (Create_Output_Library_Info): Make sure that the ALI file is deleted before creating it. 2009-09-18 Robert Dewar <dewar@adacore.com> * bindgen.adb: Minor reformatting From-SVN: r151842
This commit is contained in:
parent
658cea5b3e
commit
f5e976a5b5
4 changed files with 51 additions and 24 deletions
|
@ -1,3 +1,17 @@
|
|||
2009-09-18 Thomas Quinot <quinot@adacore.com>
|
||||
|
||||
* g-socket.adb (Is_Open): New function indicating whether a
|
||||
Selector_Type object is open.
|
||||
|
||||
2009-09-18 Vincent Celier <celier@adacore.com>
|
||||
|
||||
* osint-c.adb (Create_Output_Library_Info): Make sure that the ALI file
|
||||
is deleted before creating it.
|
||||
|
||||
2009-09-18 Robert Dewar <dewar@adacore.com>
|
||||
|
||||
* bindgen.adb: Minor reformatting
|
||||
|
||||
2009-09-18 Arnaud Charlet <charlet@adacore.com>
|
||||
|
||||
* s-taprop-tru64.adb, s-taprop-linux.adb, s-taprop-solaris.adb,
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
-- --
|
||||
-- B o d y --
|
||||
-- --
|
||||
-- Copyright (C) 1992-2008, Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 1992-2009, Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- GNAT is free software; you can redistribute it and/or modify it under --
|
||||
-- terms of the GNU General Public License as published by the Free Soft- --
|
||||
|
@ -198,7 +198,6 @@ package body Bindgen is
|
|||
|
||||
-- Zero_Cost_Exceptions is set to one if zero cost exceptions are used for
|
||||
-- this partition, and to zero if longjmp/setjmp exceptions are used.
|
||||
-- the use of zero
|
||||
|
||||
-- Detect_Blocking indicates whether pragma Detect_Blocking is active or
|
||||
-- not. A value of zero indicates that the pragma is not present, while a
|
||||
|
|
|
@ -265,6 +265,10 @@ package body GNAT.Sockets is
|
|||
-- fd_set component is actually cleared. Note that the case where it is
|
||||
-- not can occur for an uninitialized Socket_Set_Type object.
|
||||
|
||||
function Is_Open (S : Selector_Type) return Boolean;
|
||||
-- Return True for an "open" Selector_Type object, i.e. one for which
|
||||
-- Create_Selector has been called and Close_Selector has not been called.
|
||||
|
||||
---------
|
||||
-- "+" --
|
||||
---------
|
||||
|
@ -282,9 +286,7 @@ package body GNAT.Sockets is
|
|||
Res : C.int;
|
||||
|
||||
begin
|
||||
if Selector.R_Sig_Socket = No_Socket
|
||||
or else Selector.W_Sig_Socket = No_Socket
|
||||
then
|
||||
if not Is_Open (Selector) then
|
||||
raise Program_Error with "closed selector";
|
||||
end if;
|
||||
|
||||
|
@ -336,11 +338,7 @@ package body GNAT.Sockets is
|
|||
Status : out Selector_Status)
|
||||
is
|
||||
begin
|
||||
if Selector /= null
|
||||
and then (Selector.R_Sig_Socket = No_Socket
|
||||
or else
|
||||
Selector.W_Sig_Socket = No_Socket)
|
||||
then
|
||||
if Selector /= null and then not Is_Open (Selector.all) then
|
||||
raise Program_Error with "closed selector";
|
||||
end if;
|
||||
|
||||
|
@ -492,9 +490,7 @@ package body GNAT.Sockets is
|
|||
TPtr : Timeval_Access;
|
||||
|
||||
begin
|
||||
if Selector.R_Sig_Socket = No_Socket
|
||||
or else Selector.W_Sig_Socket = No_Socket
|
||||
then
|
||||
if not Is_Open (Selector) then
|
||||
raise Program_Error with "closed selector";
|
||||
end if;
|
||||
|
||||
|
@ -583,9 +579,10 @@ package body GNAT.Sockets is
|
|||
|
||||
procedure Close_Selector (Selector : in out Selector_Type) is
|
||||
begin
|
||||
if Selector.R_Sig_Socket = No_Socket
|
||||
or else Selector.W_Sig_Socket = No_Socket
|
||||
then
|
||||
if not Is_Open (Selector) then
|
||||
|
||||
-- Selector already in closed state: nothing to do
|
||||
|
||||
return;
|
||||
end if;
|
||||
|
||||
|
@ -662,10 +659,7 @@ package body GNAT.Sockets is
|
|||
-- Used to set Socket to non-blocking I/O
|
||||
|
||||
begin
|
||||
if Selector /= null and then
|
||||
(Selector.R_Sig_Socket = No_Socket
|
||||
or else Selector.W_Sig_Socket = No_Socket)
|
||||
then
|
||||
if Selector /= null and then not Is_Open (Selector.all) then
|
||||
raise Program_Error with "closed selector";
|
||||
end if;
|
||||
|
||||
|
@ -760,9 +754,9 @@ package body GNAT.Sockets is
|
|||
Res : C.int;
|
||||
|
||||
begin
|
||||
if Selector.R_Sig_Socket /= No_Socket
|
||||
or else Selector.W_Sig_Socket /= No_Socket
|
||||
then
|
||||
if Is_Open (Selector) then
|
||||
-- Raise exception to prevent socket descriptor leak
|
||||
|
||||
raise Program_Error with "selector already open";
|
||||
end if;
|
||||
|
||||
|
@ -1392,6 +1386,22 @@ package body GNAT.Sockets is
|
|||
return True;
|
||||
end Is_IP_Address;
|
||||
|
||||
-------------
|
||||
-- Is_Open --
|
||||
-------------
|
||||
|
||||
function Is_Open (S : Selector_Type) return Boolean is
|
||||
begin
|
||||
-- Either both controlling socket descriptors are valid (case of an
|
||||
-- open selector) or neither (case of a closed selector).
|
||||
|
||||
pragma Assert ((S.R_Sig_Socket /= No_Socket)
|
||||
=
|
||||
(S.W_Sig_Socket /= No_Socket));
|
||||
|
||||
return S.R_Sig_Socket /= No_Socket;
|
||||
end Is_Open;
|
||||
|
||||
------------
|
||||
-- Is_Set --
|
||||
------------
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
-- --
|
||||
-- B o d y --
|
||||
-- --
|
||||
-- Copyright (C) 2001-2008, Free Software Foundation, Inc. --
|
||||
-- Copyright (C) 2001-2009, Free Software Foundation, Inc. --
|
||||
-- --
|
||||
-- GNAT is free software; you can redistribute it and/or modify it under --
|
||||
-- terms of the GNU General Public License as published by the Free Soft- --
|
||||
|
@ -202,8 +202,12 @@ package body Osint.C is
|
|||
--------------------------------
|
||||
|
||||
procedure Create_Output_Library_Info is
|
||||
Dummy : Boolean;
|
||||
pragma Unreferenced (Dummy);
|
||||
|
||||
begin
|
||||
Set_Library_Info_Name;
|
||||
Delete_File (Name_Buffer (1 .. Name_Len), Dummy);
|
||||
Create_File_And_Check (Output_FD, Text);
|
||||
end Create_Output_Library_Info;
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue