void zbar_image_set_data (zbar_image_t *img, const void *data, unsigned long len, zbar_image_cleanup_handler_t *cleanup) { zbar_image_free_data(img); img->data = data; img->datalen = len; img->cleanup = cleanup; }
static int image_set_data (zbarImage *self, PyObject *value, void *closure) { if(!value) { zbar_image_free_data(self->zimg); return(0); } char *data; Py_ssize_t datalen; if(PyString_AsStringAndSize(value, &data, &datalen)) return(-1); Py_INCREF(value); zbar_image_set_data(self->zimg, data, datalen, image_cleanup); assert(!self->data); self->data = value; zbar_image_set_userdata(self->zimg, self); return(0); }