• R/O
  • SSH

Referencing: Commit

Reference counting smart pointers library for Ada

Enables inner tagged types operations to accept and return references wrapping these types' accesses by using special tricks. This way naked unsafe access values can mostly be eliminated, something that other smart pointers fail to provide.


Commit MetaInfo

Revision6c8c0919929496e1150b65d38d28013c3e4f6bdc (tree)
Time2019-09-10 13:58:44
AuthorSergey Dukov <dukov54@live...>
CommiterSergey Dukov

Log Message

#32744 Изменение атрибутов Inline

Change Summary

Incremental Difference

diff -r 63238e5ad7d6 -r 6c8c09199294 Source/Referencing.References.ads
--- a/Source/Referencing.References.ads Tue Sep 10 08:07:17 2019 +0400
+++ b/Source/Referencing.References.ads Tue Sep 10 08:58:44 2019 +0400
@@ -42,25 +42,31 @@
4242 new Ada.Unchecked_Conversion (System.Address, Reference_Ptr);
4343
4444 function Assigned (Object : Reference'Class) return Boolean;
45+ pragma Inline_Always (Assigned);
4546
4647 procedure Assign
4748 (Target : in out Reference'Class;
4849 Source : Reference'Class);
50+ pragma Inline_Always (Assign);
4951
5052 procedure Move
5153 (Target : in out Reference'Class;
5254 Source : in out Reference'Class);
55+ pragma Inline_Always (Move);
5356
5457 function Get (Object : in Reference'Class) return Classwide_Access;
58+ pragma Inline_Always (Get);
5559
5660 procedure Set
5761 (Object : in out Reference'Class;
5862 Item : Classwide_Access);
63+ pragma Inline_Always (Set);
5964
6065 procedure Set_And_Retain
6166 (Object : in out Reference'Class;
6267 Item : Classwide_Access);
63-
68+ pragma Inline_Always (Set_And_Retain);
69+
6470 -------------------
6571 -- AUX_Reference --
6672 -------------------
@@ -69,12 +75,11 @@
6975 (Data : Reference_Ptr := null) is private;
7076
7177 function Create_AUX_Reference return AUX_Reference_Base;
78+ pragma Inline_Always (Create_AUX_Reference);
7279
7380 function Create_And_Retain (Object : Classwide_Access)
7481 return AUX_Reference_Base;
75-
76- pragma Inline_Always(Assigned, Assign, Move, Get, Set, Set_And_Retain,
77- Create_AUX_Reference, Create_And_Retain);
82+ pragma Inline_Always (Create_And_Retain);
7883
7984 private
8085 type AUX_Reference_Base
diff -r 63238e5ad7d6 -r 6c8c09199294 Source/Referencing.Types.Operations.ads
--- a/Source/Referencing.Types.Operations.ads Tue Sep 10 08:07:17 2019 +0400
+++ b/Source/Referencing.Types.Operations.ads Tue Sep 10 08:58:44 2019 +0400
@@ -28,10 +28,10 @@
2828 new Ada.Unchecked_Conversion (Referenced_Access, System.Address);
2929
3030 function Is_Unique (Object : Referenced'Class) return Boolean;
31- pragma Inline_Always(Is_Unique);
31+ pragma Inline(Is_Unique);
3232 procedure Retain (Object : in out Referenced'Class);
33--- pragma Inline_Always(Retain);
33+ pragma Inline(Retain);
3434 procedure Release (Object : in out Referenced'Class; Result : out Boolean);
35--- pragma Inline_Always(Release);
35+ pragma Inline(Release);
3636
3737 end Referencing.Types.Operations;
Show on old repository browser