You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by kp...@apache.org on 2020/07/01 16:17:46 UTC

[qpid-proton] branch array-of-lists-first-list-empty created (now a19cace)

This is an automated email from the ASF dual-hosted git repository.

kpvdr pushed a change to branch array-of-lists-first-list-empty
in repository https://gitbox.apache.org/repos/asf/qpid-proton.git.


      at a19cace  PROTON-2244: Fix for Array of lists with first list empty encoding

This branch includes the following new commits:

     new a19cace  PROTON-2244: Fix for Array of lists with first list empty encoding

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org


[qpid-proton] 01/01: PROTON-2244: Fix for Array of lists with first list empty encoding

Posted by kp...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

kpvdr pushed a commit to branch array-of-lists-first-list-empty
in repository https://gitbox.apache.org/repos/asf/qpid-proton.git

commit a19cace4db2c9ab8beceae00328620aee22ff168
Author: Kim van der Riet <kp...@apache.org>
AuthorDate: Wed Jul 1 12:15:04 2020 -0400

    PROTON-2244: Fix for Array of lists with first list empty encoding
---
 c/src/core/encoder.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/c/src/core/encoder.c b/c/src/core/encoder.c
index 2be808c..f38c24d 100644
--- a/c/src/core/encoder.c
+++ b/c/src/core/encoder.c
@@ -336,8 +336,10 @@ static int pni_encoder_exit(void *ctx, pn_data_t *data, pni_node_t *node)
   pn_encoder_t *encoder = (pn_encoder_t *) ctx;
   char *pos;
 
-  // Special case 0 length list
-  if (node->atom.type==PN_LIST && node->children-encoder->null_count==0) {
+  // Special case 0 length list, but not as first element in an array
+  pni_node_t *parent = pn_data_node(data, node->parent);
+  if (node->atom.type==PN_LIST && node->children-encoder->null_count==0 &&
+      !(pn_is_in_array(data, parent, node) && pn_is_first_in_array(data, parent, node))) {
     encoder->position = node->start-1; // position of list opcode
     pn_encoder_writef8(encoder, PNE_LIST0);
     encoder->null_count = 0;


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org