def _copy_from_same(self, cdata, w_ob): if isinstance(w_ob, cdataobj.W_CData): if w_ob.ctype is self and self.size >= 0: misc._raw_memcopy(w_ob._cdata, cdata, self.size) keepalive_until_here(w_ob) return True return False
def _copy_from_same(self, cdata, w_ob): if isinstance(w_ob, cdataobj.W_CData): if w_ob.ctype is self and self.size >= 0: with w_ob as ptr: misc._raw_memcopy(ptr, cdata, self.size) return True return False
def copy_and_convert_to_object(self, source): space = self.space self.check_complete() ob = cdataobj.W_CDataNewOwning(space, self.size, self) with ob as target: misc._raw_memcopy(source, target, self.size) return ob
def copy_and_convert_to_object(self, cdata): space = self.space self.check_complete() ob = cdataobj.W_CDataNewOwning(space, self.size, self) misc._raw_memcopy(cdata, ob._cdata, self.size) keepalive_until_here(ob) return ob
def copy_and_convert_to_object(self, source): space = self.space self.check_complete() ptr = lltype.malloc(rffi.CCHARP.TO, self.size, flavor='raw', zero=False) misc._raw_memcopy(source, ptr, self.size) return cdataobj.W_CDataNewStd(space, ptr, self)
def write_error_return_value(self, ll_res): fresult = self.getfunctype().ctitem if fresult.size > 0: misc._raw_memcopy(self.ll_error, ll_res, fresult.size) keepalive_until_here(self)
def write_error_return_value(self, ll_res): fresult = self.getfunctype().ctitem if fresult.size > 0: misc._raw_memcopy(self.ll_error, ll_res, fresult.size) keepalive_until_here(self) # to keep self.ll_error alive
def copy_and_convert_to_object(self, source): space = self.space self.check_complete() ptr = lltype.malloc(rffi.CCHARP.TO, self.size, flavor="raw", zero=False) misc._raw_memcopy(source, ptr, self.size) return cdataobj.W_CDataNewStd(space, ptr, self)