@@ -46,7 +46,7 @@ struct apply_pyobject_kernel : dynd::nd::base_strided_kernel<apply_pyobject_kern
4646 pydynd::array_to_cpp_ref (item).debug_print (ss);
4747 // Set all the args' data pointers to NULL as a precaution
4848 for (i = 0 ; i != nsrc; ++i) {
49- pydynd::array_to_cpp_ref (item).get ()->data = NULL ;
49+ pydynd::array_to_cpp_ref (item).get ()->set_data ( NULL ) ;
5050 }
5151 throw std::runtime_error (ss.str ());
5252 }
@@ -76,9 +76,9 @@ struct apply_pyobject_kernel : dynd::nd::base_strided_kernel<apply_pyobject_kern
7676 pydynd::pyobject_ownref args (PyTuple_New (nsrc));
7777 for (intptr_t i = 0 ; i != nsrc; ++i) {
7878 dynd::ndt::type tp = src_tp[i];
79- dynd::nd::array n = dynd::nd::make_array_memory_block (tp, tp.get_arrmeta_size ());
79+ dynd::nd::array n = dynd::nd::make_array_memory_block (tp, tp.get_arrmeta_size (), const_cast <char *>(src[i]),
80+ dynd::nd::memory_block ());
8081 n.get ()->flags = dynd::nd::read_access_flag;
81- n.get ()->data = const_cast <char *>(src[i]);
8282 if (src_tp[i].get_arrmeta_size () > 0 ) {
8383 src_tp[i].extended ()->arrmeta_copy_construct (n.get ()->metadata (), m_src_arrmeta[i], dynd::nd::memory_block ());
8484 }
@@ -107,9 +107,9 @@ struct apply_pyobject_kernel : dynd::nd::base_strided_kernel<apply_pyobject_kern
107107 pydynd::pyobject_ownref args (PyTuple_New (nsrc));
108108 for (intptr_t i = 0 ; i != nsrc; ++i) {
109109 dynd::ndt::type tp = src_tp[i];
110- dynd::nd::array n = dynd::nd::make_array_memory_block (tp, tp.get_arrmeta_size ());
110+ dynd::nd::array n = dynd::nd::make_array_memory_block (tp, tp.get_arrmeta_size (), const_cast <char *>(src[i]),
111+ dynd::nd::memory_block ());
111112 n.get ()->flags = dynd::nd::read_access_flag;
112- n.get ()->data = const_cast <char *>(src[i]);
113113 if (src_tp[i].get_arrmeta_size () > 0 ) {
114114 src_tp[i].extended ()->arrmeta_copy_construct (n.get ()->metadata (), m_src_arrmeta[i], dynd::nd::memory_block ());
115115 }
@@ -132,7 +132,7 @@ struct apply_pyobject_kernel : dynd::nd::base_strided_kernel<apply_pyobject_kern
132132 dst += dst_stride;
133133 for (intptr_t i = 0 ; i != nsrc; ++i) {
134134 const dynd::nd::array &n = pydynd::array_to_cpp_ref (PyTuple_GET_ITEM (args.get (), i));
135- n. get ()-> data += src_stride[i];
135+ n-> set_data (n-> get_data () + src_stride[i]) ;
136136 }
137137 }
138138 }
0 commit comments