@@ -171,29 +171,33 @@ Status DeserializeTuple(std::shared_ptr<Array> array, int32_t start_idx, int32_t
171171
172172Status SerializeDict (std::vector<PyObject*> dicts, std::shared_ptr<Array>* out) {
173173 DictBuilder result;
174- std::vector<PyObject*> sublists, subtuples, subdicts , dummy;
174+ std::vector<PyObject*> key_tuples, val_lists, val_tuples, val_dicts , dummy;
175175 for (const auto & dict : dicts) {
176176 PyObject *key, *value;
177177 Py_ssize_t pos = 0 ;
178178 while (PyDict_Next (dict, &pos, &key, &value)) {
179- RETURN_NOT_OK (append (key, result.keys (), dummy, dummy , dummy));
179+ RETURN_NOT_OK (append (key, result.keys (), dummy, key_tuples , dummy));
180180 DCHECK (dummy.size () == 0 );
181- RETURN_NOT_OK (append (value, result.vals (), sublists, subtuples, subdicts ));
181+ RETURN_NOT_OK (append (value, result.vals (), val_lists, val_tuples, val_dicts ));
182182 }
183183 }
184- std::shared_ptr<Array> val_list ;
185- if (sublists .size () > 0 ) {
186- RETURN_NOT_OK (SerializeSequences (sublists , &val_list ));
184+ std::shared_ptr<Array> key_tuples_arr ;
185+ if (key_tuples .size () > 0 ) {
186+ RETURN_NOT_OK (SerializeSequences (key_tuples , &key_tuples_arr ));
187187 }
188- std::shared_ptr<Array> val_tuples ;
189- if (subtuples .size () > 0 ) {
190- RETURN_NOT_OK (SerializeSequences (subtuples , &val_tuples ));
188+ std::shared_ptr<Array> val_list_arr ;
189+ if (val_lists .size () > 0 ) {
190+ RETURN_NOT_OK (SerializeSequences (val_lists , &val_list_arr ));
191191 }
192- std::shared_ptr<Array> val_dict;
193- if (subdicts.size () > 0 ) {
194- RETURN_NOT_OK (SerializeDict (subdicts, &val_dict));
192+ std::shared_ptr<Array> val_tuples_arr;
193+ if (val_tuples.size () > 0 ) {
194+ RETURN_NOT_OK (SerializeSequences (val_tuples, &val_tuples_arr));
195+ }
196+ std::shared_ptr<Array> val_dict_arr;
197+ if (val_dicts.size () > 0 ) {
198+ RETURN_NOT_OK (SerializeDict (val_dicts, &val_dict_arr));
195199 }
196- *out = result.Finish (val_list, val_tuples, val_dict );
200+ *out = result.Finish (key_tuples_arr, val_list_arr, val_tuples_arr, val_dict_arr );
197201 return Status::OK ();
198202}
199203
0 commit comments