| Index: pkg/service/lib/struct.dart
|
| diff --git a/pkg/service/lib/struct.dart b/pkg/service/lib/struct.dart
|
| index 80a098315729cfdaddc40de56a8f2eed6214f686..417e60f843f67e99a7f1b84f4c8ee2346137f9c5 100644
|
| --- a/pkg/service/lib/struct.dart
|
| +++ b/pkg/service/lib/struct.dart
|
| @@ -8,7 +8,7 @@ import "dart:ffi";
|
|
|
| const int HEADER_SIZE = 56;
|
|
|
| -Reader getRoot(Reader reader, Foreign request) {
|
| +Reader getRoot(Reader reader, ForeignMemory request) {
|
| int segments = request.getInt32(HEADER_SIZE - 8);
|
| if (segments == 0) {
|
| MessageReader messageReader = new MessageReader();
|
| @@ -22,7 +22,7 @@ Reader getRoot(Reader reader, Foreign request) {
|
| }
|
| }
|
|
|
| -Reader getSegmentedRoot(Reader reader, Foreign request, int segments) {
|
| +Reader getSegmentedRoot(Reader reader, ForeignMemory request, int segments) {
|
| MessageReader messageReader = new MessageReader();
|
| int offset = HEADER_SIZE + 8;
|
| for (int i = 0; i < segments; i++) {
|
| @@ -30,7 +30,7 @@ Reader getSegmentedRoot(Reader reader, Foreign request, int segments) {
|
| ? request.getUint32(offset)
|
| : request.getUint64(offset);
|
| int size = request.getInt32(offset + 8);
|
| - Foreign memory = new Foreign.fromAddress(address, size);
|
| + ForeignMemory memory = new ForeignMemory.fromAddress(address, size);
|
| Segment segment = new Segment(messageReader, memory);
|
| messageReader.segments.add(segment);
|
| offset += 16;
|
| @@ -44,27 +44,27 @@ int getResultMessage(Builder builder) {
|
| BuilderSegment segment = builder._segment;
|
| if (segment._next == null) {
|
| // Mark result as being non-segmented.
|
| - Foreign memory = segment.memory;
|
| + ForeignMemory memory = segment.memory;
|
| memory.setInt32(0, 0);
|
| memory.setInt32(4, memory.length);
|
| - return memory.value;
|
| + return memory.address;
|
| }
|
|
|
| // The result is a segmented message. Build a memory block that
|
| // contains the addresses and sizes of all of them.
|
| int segments = segment._builder._segments;
|
| int size = 8 + (segments * 16);
|
| - Foreign buffer = new Foreign.allocated(size);
|
| + ForeignMemory buffer = new ForeignMemory.allocated(size);
|
| // Mark the result as being segmented.
|
| buffer.setInt32(0, segments);
|
| int offset = 8;
|
| do {
|
| - buffer.setInt64(offset, segment.memory.value);
|
| + buffer.setInt64(offset, segment.memory.address);
|
| buffer.setInt32(offset + 8, segment._used);
|
| segment = segment._next;
|
| offset += 16;
|
| } while (segment != null);
|
| - return buffer.value;
|
| + return buffer.address;
|
| }
|
|
|
| class MessageReader {
|
| @@ -76,7 +76,7 @@ class MessageReader {
|
|
|
| class Segment {
|
| final MessageReader reader;
|
| - final Foreign memory;
|
| + final ForeignMemory memory;
|
| Segment(this.reader, this.memory);
|
| }
|
|
|
| @@ -98,7 +98,7 @@ class Reader {
|
| Segment segment = _segment;
|
| offset += _offset;
|
| while (true) {
|
| - Foreign memory = segment.memory;
|
| + ForeignMemory memory = segment.memory;
|
| int lo = memory.getInt32(offset + 0);
|
| int hi = memory.getInt32(offset + 4);
|
| int tag = lo & 3;
|
| @@ -119,7 +119,7 @@ class Reader {
|
| Segment segment = _segment;
|
| offset += _offset;
|
| while (true) {
|
| - Foreign memory = segment.memory;
|
| + ForeignMemory memory = segment.memory;
|
| int lo = memory.getInt32(offset + 0);
|
| int hi = memory.getInt32(offset + 4);
|
| int tag = lo & 3;
|
| @@ -212,13 +212,13 @@ class ListReader extends Reader {
|
|
|
| class BuilderSegment {
|
| final MessageBuilder _builder;
|
| - final Foreign memory;
|
| + final ForeignMemory memory;
|
| int _id;
|
| int _used = 0;
|
| BuilderSegment _next;
|
|
|
| BuilderSegment(this._builder, this._id, int space)
|
| - : memory = new Foreign.allocated(space);
|
| + : memory = new ForeignMemory.allocated(space);
|
|
|
| bool HasSpaceForBytes(int bytes) => _used + bytes <= memory.length;
|
|
|
| @@ -276,7 +276,7 @@ class Builder {
|
| BuilderSegment segment = _segment;
|
| while (true) {
|
| int result = segment.Allocate(size);
|
| - Foreign memory = segment.memory;
|
| + ForeignMemory memory = segment.memory;
|
| if (result >= 0) {
|
| memory.setInt32(offset + 0, (result << 2) | 1);
|
| memory.setInt32(offset + 4, 0);
|
| @@ -305,7 +305,7 @@ class Builder {
|
| BuilderSegment segment = _segment;
|
| while (true) {
|
| int result = segment.Allocate(size);
|
| - Foreign memory = segment.memory;
|
| + ForeignMemory memory = segment.memory;
|
| if (result >= 0) {
|
| memory.setInt32(offset + 0, (result << 2) | 1);
|
| memory.setInt32(offset + 4, length);
|
|
|