Skip to content

Commit 1bb55e5

Browse files
fixed attachments
1 parent f0c17b7 commit 1bb55e5

File tree

3 files changed

+15
-16
lines changed

3 files changed

+15
-16
lines changed

include/zenoh-pico/collections/bytes.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ typedef struct {
9696
} _z_bytes_iterator_t;
9797

9898
_z_bytes_iterator_t _z_bytes_get_iterator(const _z_bytes_t *bytes);
99-
_Bool _z_bytes_iterator_next(_z_bytes_iterator_t *iter, _z_bytes_t *b);
99+
int8_t _z_bytes_iterator_next(_z_bytes_iterator_t *iter, _z_bytes_t *b);
100100

101101
typedef struct {
102102
uint8_t *cache;

src/api/api.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -486,7 +486,7 @@ _Bool z_bytes_iterator_next(z_bytes_iterator_t *iter, z_owned_bytes_t *bytes) {
486486
z_bytes_null(bytes);
487487
bytes->_val = (z_loaned_bytes_t *)z_malloc(sizeof(z_loaned_bytes_t));
488488
if (bytes->_val == NULL) return false;
489-
if (!_z_bytes_iterator_next(iter, bytes->_val)) {
489+
if (_z_bytes_iterator_next(iter, bytes->_val) != _Z_RES_OK) {
490490
z_bytes_drop(bytes);
491491
return false;
492492
}

src/collections/bytes.c

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -140,23 +140,24 @@ int8_t _z_bytes_append_slice(_z_bytes_t *dst, _z_arc_slice_t *s) {
140140
}
141141

142142
int8_t _z_bytes_append_bytes(_z_bytes_t *dst, _z_bytes_t *src) {
143-
_Bool success = true;
143+
int8_t res = _Z_RES_OK;
144144
for (size_t i = 0; i < _z_bytes_num_slices(src); ++i) {
145-
_z_arc_slice_t *s = _z_bytes_get_slice(src, i);
146-
success = success && _z_bytes_append_slice(dst, s) == _Z_RES_OK;
147-
}
148-
if (!success) {
149-
return _Z_ERR_SYSTEM_OUT_OF_MEMORY;
145+
_z_arc_slice_t s;
146+
_z_arc_slice_move(&s, _z_bytes_get_slice(src, i));
147+
res = _z_bytes_append_slice(dst, &s);
148+
if (res != _Z_RES_OK) {
149+
break;
150+
}
150151
}
151152

152-
_z_svec_release(&src->_slices);
153-
return _Z_RES_OK;
153+
_z_bytes_drop(src);
154+
return res;
154155
}
155156

156157
int8_t _z_bytes_serialize_from_pair(_z_bytes_t *out, _z_bytes_t *first, _z_bytes_t *second) {
157158
*out = _z_bytes_null();
158159
_z_bytes_iterator_writer_t writer = _z_bytes_get_iterator_writer(out);
159-
_Z_RETURN_IF_ERR(_z_bytes_iterator_writer_write(&writer, first));
160+
_Z_CLEAN_RETURN_IF_ERR(_z_bytes_iterator_writer_write(&writer, first), _z_bytes_drop(second));
160161
_Z_CLEAN_RETURN_IF_ERR(_z_bytes_iterator_writer_write(&writer, second), _z_bytes_drop(out));
161162

162163
return _Z_RES_OK;
@@ -341,7 +342,6 @@ int64_t _z_bytes_reader_tell(const _z_bytes_reader_t *reader) { return reader->b
341342

342343
int8_t _z_bytes_reader_read(_z_bytes_reader_t *reader, uint8_t *buf, size_t len) {
343344
uint8_t *buf_start = buf;
344-
345345
for (size_t i = reader->slice_idx; i < _z_bytes_num_slices(reader->bytes); ++i) {
346346
_z_arc_slice_t *s = _z_bytes_get_slice(reader->bytes, i);
347347
size_t remaining = _z_arc_slice_len(s) - reader->in_slice_idx;
@@ -415,13 +415,12 @@ _z_bytes_iterator_t _z_bytes_get_iterator(const _z_bytes_t *bytes) {
415415
return (_z_bytes_iterator_t){._reader = _z_bytes_get_reader(bytes)};
416416
}
417417

418-
_Bool _z_bytes_iterator_next(_z_bytes_iterator_t *iter, _z_bytes_t *b) {
418+
int8_t _z_bytes_iterator_next(_z_bytes_iterator_t *iter, _z_bytes_t *b) {
419419
*b = _z_bytes_null();
420420
_z_zint_t len;
421421
if (_z_bytes_reader_read_zint(&iter->_reader, &len) != _Z_RES_OK) {
422422
return _Z_ERR_DID_NOT_READ;
423423
}
424-
425424
return _z_bytes_reader_read_slices(&iter->_reader, len, b);
426425
}
427426

@@ -454,7 +453,7 @@ int8_t _z_bytes_writer_ensure_cache(_z_bytes_writer_t *writer) {
454453
}
455454

456455
int8_t _z_bytes_writer_write(_z_bytes_writer_t *writer, const uint8_t *src, size_t len) {
457-
if (writer->cache_size == 0) { // no cache append data as a single slice
456+
if (writer->cache_size == 0) { // no cache - append data as a single slice
458457
_z_slice_t s = _z_slice_wrap_copy(src, len);
459458
if (s.len != len) return _Z_ERR_SYSTEM_OUT_OF_MEMORY;
460459
_z_arc_slice_t arc_s = _z_arc_slice_wrap(s, 0, len);
@@ -485,7 +484,7 @@ _z_bytes_iterator_writer_t _z_bytes_get_iterator_writer(_z_bytes_t *bytes) {
485484
int8_t _z_bytes_iterator_writer_write(_z_bytes_iterator_writer_t *writer, _z_bytes_t *src) {
486485
uint8_t l_buf[16];
487486
size_t l_len = _z_zsize_encode_buf(l_buf, _z_bytes_len(src));
488-
_Z_RETURN_IF_ERR(_z_bytes_writer_write(&writer->writer, l_buf, l_len));
487+
_Z_CLEAN_RETURN_IF_ERR(_z_bytes_writer_write(&writer->writer, l_buf, l_len), _z_bytes_drop(src));
489488
_Z_CLEAN_RETURN_IF_ERR(_z_bytes_append_bytes(writer->writer.bytes, src), _z_bytes_drop(src));
490489

491490
return _Z_RES_OK;

0 commit comments

Comments
 (0)