File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -362,6 +362,8 @@ py::buffer_info toBufferInfo(BaseData& m)
362362
363363py::object convertToPython (BaseData* d)
364364{
365+ assert (d != nullptr );
366+
365367 const AbstractTypeInfo& nfo{ *(d->getValueTypeInfo ()) };
366368 if (hasArrayFor (d)){
367369 return getPythonArrayFor (d);
@@ -377,21 +379,28 @@ py::object convertToPython(BaseData* d)
377379 }
378380 else
379381 {
380- size_t dim0 = nfo.size (d->getValueVoidPtr ())/nfo.size ();
381- size_t dim1 = nfo.size ();
382- for (size_t i=0 ;i<dim0;i++)
382+ if (nfo.size () != 0 )
383383 {
384- py::list list1;
385- for (size_t j=0 ;j<dim1;j++)
384+ size_t dim0 = nfo.size (d->getValueVoidPtr ())/nfo.size ();
385+ size_t dim1 = nfo.size ();
386+ for (size_t i=0 ;i<dim0;i++)
386387 {
387- if (nfo.Integer ())
388- list1.append (nfo.getIntegerValue (d->getValueVoidPtr (),i*dim1+j));
389- else if (nfo.Scalar ())
390- list1.append (nfo.getScalarValue (d->getValueVoidPtr (),i*dim1+j));
391- else
392- throw py::type_error (" Invalid type" );
388+ py::list list1;
389+ for (size_t j=0 ;j<dim1;j++)
390+ {
391+ if (nfo.Integer ())
392+ list1.append (nfo.getIntegerValue (d->getValueVoidPtr (),i*dim1+j));
393+ else if (nfo.Scalar ())
394+ list1.append (nfo.getScalarValue (d->getValueVoidPtr (),i*dim1+j));
395+ else
396+ throw py::type_error (" Invalid type" );
397+ }
398+ list.append (list1);
393399 }
394- list.append (list1);
400+ }
401+ else
402+ {
403+ throw std::runtime_error (" Abstract type info corresponding to Data " + d->getName () + " is empty\n " );
395404 }
396405 }
397406 return std::move (list);
You can’t perform that action at this time.
0 commit comments