• R/O
  • SSH

Ada95FL: 提交

Ada 95 foundation library


Commit MetaInfo

修订版043aa2f37bbdc6501064f1ba82371be66d1ba3da (tree)
时间2019-09-30 02:16:02
作者Sergey Dukov <dukov54@live...>
CommiterSergey Dukov

Log Message

#32763 disable change counter for Empty_Referenced_Buffer

更改概述

差异

diff -r 310212231e60 -r 043aa2f37bbd Unbounded/unbounded_array.adb
--- a/Unbounded/unbounded_array.adb Sun Sep 29 20:46:10 2019 +0400
+++ b/Unbounded/unbounded_array.adb Sun Sep 29 21:16:02 2019 +0400
@@ -26,6 +26,9 @@
2626
2727 procedure Reference (Item : Referenced_Buffer_Access) is
2828 begin
29+ if Item = Empty_Referenced_Buffer'Access then
30+ return;
31+ end if;
2932 Atomic_Counters.Increment (Item.Counter);
3033 end Reference;
3134
@@ -40,17 +43,20 @@
4043 Aux : Referenced_Buffer_Access := Item;
4144 Release : Boolean;
4245 begin
46+ if Aux = Empty_Referenced_Buffer'Access then
47+ return;
48+ end if;
4349 Decrement (Aux.Counter, Release);
4450 if Release then
4551 -- Reference counter of Empty_Referenced_Buffer should never reach
4652 -- zero. We check here in case it wraps around.
47- if Aux /= Empty_Referenced_Buffer'Access then
53+-- if Aux /= Empty_Referenced_Buffer'Access then
4854 if not Is_One(Aux.Lock_Counter) then
4955 Raise_Exception(Buffer_Locked'Identity,
5056 "Buffer is locked for change");
5157 end if;
5258 Free (Aux);
53- end if;
59+-- end if;
5460 end if;
5561 end Unreference;
5662
@@ -145,6 +151,9 @@
145151 Length : Natural) return Boolean
146152 is
147153 begin
154+ if Item = Empty_Referenced_Buffer'Access then
155+ return False;
156+ end if;
148157 return
149158 Atomic_Counters.Is_One (Item.Counter)
150159 and then Item.Max_Length >= Length
Show on old repository browser