func BlobToGo(ptr unsafe.Pointer) []byte { blob := (*C.cfish_Blob)(ptr) if blob == nil { return nil } class := C.cfish_Obj_get_class((*C.cfish_Obj)(ptr)) if class != C.CFISH_BLOB { mess := "Not a Blob: " + StringToGo(unsafe.Pointer(C.CFISH_Class_Get_Name(class))) panic(NewErr(mess)) } data := C.CFISH_Blob_Get_Buf(blob) size := C.CFISH_Blob_Get_Size(blob) if size > C.size_t(C.INT_MAX) { panic(fmt.Sprintf("Overflow: %d > %d", size, C.INT_MAX)) } return C.GoBytes(unsafe.Pointer(data), C.int(size)) }
func (b *BlobIMP) GetBuf() uintptr { self := (*C.cfish_Blob)(Unwrap(b, "b")) return uintptr(unsafe.Pointer(C.CFISH_Blob_Get_Buf(self))) }