Author: tross
Date: Wed Oct 15 20:01:16 2014
New Revision: 1632169

URL: http://svn.apache.org/r1632169
Log:
NO-JIRA - Use empty-list encoding for zero-length lists from Python.

Modified:
    qpid/dispatch/trunk/src/python_embedded.c

Modified: qpid/dispatch/trunk/src/python_embedded.c
URL: 
http://svn.apache.org/viewvc/qpid/dispatch/trunk/src/python_embedded.c?rev=1632169&r1=1632168&r2=1632169&view=diff
==============================================================================
--- qpid/dispatch/trunk/src/python_embedded.c (original)
+++ qpid/dispatch/trunk/src/python_embedded.c Wed Oct 15 20:01:16 2014
@@ -150,22 +150,30 @@ qd_error_t qd_py_to_composed(PyObject *v
 
     else if (PyList_Check(value)) {
         Py_ssize_t count = PyList_Size(value);
-        qd_compose_start_list(field);
-        for (Py_ssize_t idx = 0; idx < count; idx++) {
-            PyObject *item = PyList_GetItem(value, idx); QD_ERROR_PY_RET();
-            qd_py_to_composed(item, field); QD_ERROR_RET();
+        if (count == 0)
+            qd_compose_empty_list(field);
+        else {
+            qd_compose_start_list(field);
+            for (Py_ssize_t idx = 0; idx < count; idx++) {
+                PyObject *item = PyList_GetItem(value, idx); QD_ERROR_PY_RET();
+                qd_py_to_composed(item, field); QD_ERROR_RET();
+            }
+            qd_compose_end_list(field);
         }
-        qd_compose_end_list(field);
     }
 
     else if (PyTuple_Check(value)) {
         Py_ssize_t count = PyTuple_Size(value);
-        qd_compose_start_list(field);
-        for (Py_ssize_t idx = 0; idx < count; idx++) {
-            PyObject *item = PyTuple_GetItem(value, idx); QD_ERROR_PY_RET();
-            qd_py_to_composed(item, field); QD_ERROR_RET();
+        if (count == 0)
+            qd_compose_empty_list(field);
+        else {
+            qd_compose_start_list(field);
+            for (Py_ssize_t idx = 0; idx < count; idx++) {
+                PyObject *item = PyTuple_GetItem(value, idx); 
QD_ERROR_PY_RET();
+                qd_py_to_composed(item, field); QD_ERROR_RET();
+            }
+            qd_compose_end_list(field);
         }
-        qd_compose_end_list(field);
     }
     else {
         PyObject *type=0, *typestr=0, *repr=0;



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

Reply via email to