* a-tasatt.adb: Type Wrapper should be declared in comment instead
of already declared type Node_Access.
+ Use 'Access instead of 'Unchecked_Access when applicable. Local
+ lifetime is the one of the package.
+ (Set_Value): W is allocated on the heap.
+
+ * g-socket.adb: Use 'Access instead of 'Unchecked_Access when
+ applicable.
+ (Get_Socket_Option): Optlen formal of C_Getsockopt is of an anonymous
+ access type.
+ (Receive_Socket): Fromlen formal of C_Recvfrom is of an anonymous
+ access type.
+
+ * s-taasde.adb: Use 'Access instead of 'Unchecked_Access when
+ applicable.
+ (elaboration code): Timer_Queue lifetime is the one of the
+ package.
2007-11-07 Olivier Hainque <hainque@adacore.com>
POP.Lock_RTS;
while P /= null loop
- if P.Instance = Access_Instance'(Local'Unchecked_Access) then
+ if P.Instance = Access_Instance'(Local'Access) then
POP.Unlock_RTS;
Undefer_Abort (Self_Id);
return To_Access_Wrapper (P.Wrapper).Value'Access;
-- holding any other lock.
POP.Unlock_RTS;
- W := new Wrapper'
- ((null, Local'Unchecked_Access, null), Initial_Value);
+ W := new Wrapper'((null, Local'Access, null), Initial_Value);
POP.Lock_RTS;
- P := W.Dummy_Node'Unchecked_Access;
+ P := W.Dummy_Node'Access;
P.Wrapper := To_Access_Dummy_Wrapper (W);
P.Next := To_Access_Node (TT.Indirect_Attributes);
TT.Indirect_Attributes := To_Access_Address (P);
Q := To_Access_Node (TT.Indirect_Attributes);
while Q /= null loop
- if Q.Instance = Access_Instance'(Local'Unchecked_Access) then
+ if Q.Instance = Access_Instance'(Local'Access) then
if P = null then
TT.Indirect_Attributes := To_Access_Address (Q.Next);
else
while P /= null loop
- if P.Instance = Access_Instance'(Local'Unchecked_Access) then
+ if P.Instance = Access_Instance'(Local'Access) then
To_Access_Wrapper (P.Wrapper).Value := Val;
POP.Unlock_RTS;
Undefer_Abort (Self_Id);
-- from using new (i.e the Global_Lock) while holding any other lock.
POP.Unlock_RTS;
- W := new Wrapper'((null, Local'Unchecked_Access, null), Val);
+ W := new Wrapper'((null, Local'Access, null), Val);
POP.Lock_RTS;
- P := W.Dummy_Node'Unchecked_Access;
+ P := W.Dummy_Node'Access;
P.Wrapper := To_Access_Dummy_Wrapper (W);
P.Next := To_Access_Node (TT.Indirect_Attributes);
TT.Indirect_Attributes := To_Access_Address (P);
P := To_Access_Node (TT.Indirect_Attributes);
while P /= null loop
- if P.Instance = Access_Instance'(Local'Unchecked_Access) then
+ if P.Instance = Access_Instance'(Local'Access) then
Result := To_Access_Wrapper (P.Wrapper).Value;
POP.Unlock_RTS;
Undefer_Abort (Self_Id);
-- Add this instantiation to the list of all instantiations
Local.Next := System.Tasking.Task_Attributes.All_Attributes;
- System.Tasking.Task_Attributes.All_Attributes :=
- Local'Unchecked_Access;
+ System.Tasking.Task_Attributes.All_Attributes := Local'Access;
-- Try to find space for the attribute in the TCB
------------------------------
begin
- Timer_Queue.Succ := Timer_Queue'Unchecked_Access;
- Timer_Queue.Pred := Timer_Queue'Unchecked_Access;
+ Timer_Queue.Succ := Timer_Queue'Access;
+ Timer_Queue.Pred := Timer_Queue'Access;
Timer_Queue.Resume_Time := Duration'Last;
Timer_Server_ID := To_System (Timer_Server'Identity);
end System.Tasking.Async_Delays;