Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
| Comment: | s_expressions-atom_buffers: fix stream read |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA1: |
0e2f32ef014f259c3cc7c5c2e3c30695 |
| User & Date: | nat 2014-09-01 18:29:06.691 |
Context
|
2014-09-02
| ||
| 17:21 | time_statistics: new parent package for time statistics gathering check-in: 13debf8a9e user: nat tags: trunk | |
|
2014-09-01
| ||
| 18:29 | s_expressions-atom_buffers: fix stream read check-in: 0e2f32ef01 user: nat tags: trunk | |
|
2014-08-31
| ||
| 14:45 | s_expressions-atom_buffers-tests: add a test for the new stream interface check-in: 3c45cf38af user: nat tags: trunk | |
Changes
Changes to src/natools-s_expressions-atom_buffers.adb.
| ︙ | ︙ | |||
227 228 229 230 231 232 233 |
overriding procedure Read
(Buffer : in out Atom_Buffer;
Item : out Ada.Streams.Stream_Element_Array;
Last : out Ada.Streams.Stream_Element_Offset) is
begin
if Item'Length < Buffer.Used then
| > > > | | | > > > | 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 |
overriding procedure Read
(Buffer : in out Atom_Buffer;
Item : out Ada.Streams.Stream_Element_Array;
Last : out Ada.Streams.Stream_Element_Offset) is
begin
if Item'Length < Buffer.Used then
declare
Mutator : constant Atom_Refs.Mutator := Buffer.Ref.Update;
begin
Last := Item'Last;
Item := Mutator.Data.all (1 .. Item'Length);
Buffer.Used := Buffer.Used - Item'Length;
Mutator.Data.all (1 .. Buffer.Used) := Mutator.Data.all
(Item'Length + 1 .. Item'Length + Buffer.Used);
end;
else
Last := Item'First + Buffer.Used - 1;
Item (Item'First .. Last)
:= Buffer.Ref.Query.Data.all (1 .. Buffer.Used);
Buffer.Used := 0;
end if;
end Read;
|
| ︙ | ︙ |