diff --git a/src/data_provider.rs b/src/data_provider.rs index fe449a2..10d9cb1 100644 --- a/src/data_provider.rs +++ b/src/data_provider.rs @@ -9,21 +9,21 @@ use core_foundation::base::{CFRelease, CFRetain, CFTypeID, CFTypeRef, TCFType}; -use libc::{c_void, size_t}; +use libc::{c_void, size_t, off_t}; use std::mem; use std::ptr; -pub type CGDataProviderGetBytesCallback = *const u8; -pub type CGDataProviderReleaseInfoCallback = *const u8; -pub type CGDataProviderRewindCallback = *const u8; -pub type CGDataProviderSkipBytesCallback = *const u8; -pub type CGDataProviderSkipForwardCallback = *const u8; +pub type CGDataProviderGetBytesCallback = Option size_t>; +pub type CGDataProviderReleaseInfoCallback = Option; +pub type CGDataProviderRewindCallback = Option; +pub type CGDataProviderSkipBytesCallback = Option; +pub type CGDataProviderSkipForwardCallback = Option off_t>; -pub type CGDataProviderGetBytePointerCallback = *const u8; -pub type CGDataProviderGetBytesAtOffsetCallback = *const u8; -pub type CGDataProviderReleaseBytePointerCallback = *const u8; -pub type CGDataProviderReleaseDataCallback = *const u8; -pub type CGDataProviderGetBytesAtPositionCallback = *const u8; +pub type CGDataProviderGetBytePointerCallback = Option *mut c_void>; +pub type CGDataProviderGetBytesAtOffsetCallback = Option; +pub type CGDataProviderReleaseBytePointerCallback = Option; +pub type CGDataProviderReleaseDataCallback = Option; +pub type CGDataProviderGetBytesAtPositionCallback = Option; #[repr(C)] pub struct __CGDataProvider; @@ -82,7 +82,7 @@ impl CGDataProvider { let result = CGDataProviderCreateWithData(ptr::null_mut(), buffer.as_ptr() as *const c_void, buffer.len() as size_t, - ptr::null()); + None); TCFType::wrap_under_create_rule(result) } }