[Spice-devel] [PATCH spice-common RFC] Fix linearization of several marshallers with one item
Javier Celaya
javier.celaya at flexvdi.com
Mon Jul 27 04:27:14 PDT 2015
The linearization optimization that avoids copying only one item must
check that there are no further marshallers in the chain.
---
common/marshaller.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/common/marshaller.c b/common/marshaller.c
index bd012d7..0c6680e 100644
--- a/common/marshaller.c
+++ b/common/marshaller.c
@@ -419,7 +419,7 @@ uint8_t *spice_marshaller_linearize(SpiceMarshaller *m, size_t skip_bytes,
/* Only supported for root marshaller */
assert(m->data->marshallers == m);
- if (m->n_items == 1) {
+ if (m->n_items == 1 && m->next == NULL) {
*free_res = FALSE;
if (m->items[0].len <= skip_bytes) {
*len = 0;
--
2.4.3
More information about the Spice-devel
mailing list