Natools

Check-in [215f7beb0c]
Login
Overview
Comment:cron: fix fusion of even list
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1: 215f7beb0cc73fd47aaa8472d91f4f6fad22cee9
User & Date: nat on 2017-06-23 20:00:04
Other Links: manifest | tags
Context
2017-06-24
21:03
smaz_tests: new test showing a bug in multiblock base-64 encoding check-in: 84e2f2a874 user: nat tags: trunk
2017-06-23
20:00
cron: fix fusion of even list check-in: 215f7beb0c user: nat tags: trunk
2017-06-22
21:10
cron-tests: add a test showing a bug in event list fusion check-in: 908d0e14c9 user: nat tags: trunk
Changes

Modified src/natools-cron.adb from [e86553a260] to [ef3067335b].

198
199
200
201
202
203
204
205
206
207
208













209
210
211
212
213
214
215
198
199
200
201
202
203
204




205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224







-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+







            Previous : Callback_Refs.Reference;
         begin
            Map.Insert (Actual_Time, Callback, Position, Inserted);

            if not Inserted then
               Previous := Entry_Maps.Element (Position);

               if Previous.Update.Data.all in Event_List then
                  Append
                    (Event_List (Previous.Update.Data.all),
                     Callback);
               if Previous.Query.Data.all in Event_List then
                  if Callback.Query.Data.all in Event_List then
                     for I of Event_List (Callback.Query.Data.all).List loop
                        Append (Event_List (Previous.Update.Data.all), I);
                     end loop;
                  else
                     Append
                       (Event_List (Previous.Update.Data.all),
                        Callback);
                  end if;
               elsif Callback.Query.Data.all in Event_List then
                  Append (Event_List (Callback.Update.Data.all), Previous);
                  Map.Replace_Element (Position, Callback);
               else
                  Map.Replace_Element
                    (Position,
                     Create_Event_List (Previous, Callback));
               end if;
            end if;
         end;