Example #1
0
 def array_copy__Array(space, self):
     w_a = mytype.w_class(self.space)
     w_a.setlen(self.len)
     rffi.c_memcpy(rffi.cast(rffi.VOIDP, w_a.buffer),
                   rffi.cast(rffi.VOIDP, self.buffer),
                   self.len * mytype.bytes)
     return w_a
Example #2
0
 def copy(self):
     array = NDimArray(self.size, self.shape[:], self.dtype, self.order)
     rffi.c_memcpy(
         rffi.cast(rffi.VOIDP, array.storage),
         rffi.cast(rffi.VOIDP, self.storage),
         self.size * self.dtype.num_bytes
     )
     return array
Example #3
0
 def array_copy__Array(space, self):
     w_a = mytype.w_class(self.space)
     w_a.setlen(self.len)
     rffi.c_memcpy(
         rffi.cast(rffi.VOIDP, w_a.buffer),
         rffi.cast(rffi.VOIDP, self.buffer),
         self.len * mytype.bytes
     )
     return w_a
Example #4
0
 def _fast_setslice(self, space, w_value):
     assert isinstance(w_value, ConcreteArray)
     itemsize = self.dtype.itemtype.get_element_size()
     shapelen = len(self.shape)
     if shapelen == 1:
         rffi.c_memcpy(
             rffi.ptradd(self.storage, self.start * itemsize),
             rffi.ptradd(w_value.storage, w_value.start * itemsize),
             self.size * itemsize)
     else:
         dest = SkipLastAxisIterator(self)
         source = SkipLastAxisIterator(w_value)
         while not dest.done:
             rffi.c_memcpy(
                 rffi.ptradd(self.storage, dest.offset * itemsize),
                 rffi.ptradd(w_value.storage, source.offset * itemsize),
                 self.shape[-1] * itemsize)
             source.next()
             dest.next()
Example #5
0
 def _fast_setslice(self, space, w_value):
     assert isinstance(w_value, ConcreteArray)
     itemsize = self.dtype.itemtype.get_element_size()
     shapelen = len(self.shape)
     if shapelen == 1:
         rffi.c_memcpy(
             rffi.ptradd(self.storage, self.start * itemsize),
             rffi.ptradd(w_value.storage, w_value.start * itemsize),
             self.size * itemsize
         )
     else:
         dest = SkipLastAxisIterator(self)
         source = SkipLastAxisIterator(w_value)
         while not dest.done:
             rffi.c_memcpy(
                 rffi.ptradd(self.storage, dest.offset * itemsize),
                 rffi.ptradd(w_value.storage, source.offset * itemsize),
                 self.shape[-1] * itemsize
             )
             source.next()
             dest.next()
Example #6
0
 def handle_struct(self, w_ffitype, w_structinstance):
     rawmem = rffi.cast(rffi.CCHARP, self.rawmem)
     dst = rffi.cast(rffi.VOIDP, rffi.ptradd(rawmem, self.offset))
     src = w_structinstance.rawmem
     length = w_ffitype.sizeof()
     rffi.c_memcpy(dst, src, length)
Example #7
0
 def handle_struct(self, w_ffitype, w_structinstance):
     rawmem = rffi.cast(rffi.CCHARP, self.rawmem)
     dst = rffi.cast(rffi.VOIDP, rffi.ptradd(rawmem, self.offset))
     src = w_structinstance.rawmem
     length = w_ffitype.sizeof()
     rffi.c_memcpy(dst, src, length)