> On Jul 1, 2016, at 05:42 , Dan Loewenherz <d...@lionheartsw.com> wrote:
> 
> What’s the Swift type signature on GDALOpen? My guess is that it’s returning 
> a UnsafePointer<Void> or UnsafeMutablePointer<Void> type. Swift doesn’t 
> currently handle nullability for C pointers (hence the “Unsafe” prefix). 
> You’ll need to check the value at the pointer’s location manually.

It looks like this:

typealias GDALDatasetH = UnsafeMutablePointer<Void>
@warn_unused_result func GDALOpen(pszFilename: UnsafePointer<Int8>, _ eAccess: 
GDALAccess) -> GDALDatasetH

Thanks for the clarification. It sure seems like Swift could easily check for 
Unsafe Pointers with value == 0.

> 
> Dan
> 
> On Fri, Jul 1, 2016 at 2:59 AM, Rick Mann via swift-users 
> <swift-users@swift.org> wrote:
> I have some Swift code (in Xcode 7.3) that's calling a C function in the GDAL 
> library. It's declared like this:
> 
> typedef void *GDALDatasetH;
> GDALDatasetH CPL_DLL CPL_STDCALL
> GDALOpen( const char *pszFilename, GDALAccess eAccess ) 
> CPL_WARN_UNUSED_RESULT;
> 
> I'm calling it with code like this:
> 
> class
> MyClass
> {
>     func foo()
>     {
>         self.dataset = GDALOpen(path, GA_ReadOnly)
>     }
> 
>     var dataset: GDALDatasetH?
> }
> 
> But later code
> 
>     if let ds = self.dataset
>     {
>         print("dataset: \(ds)")
>     }
> 
> outputs this to the console:
> 
>     dataset: 0x0000000000000000
> 
> This seems very broken.
> 
> --
> Rick Mann
> rm...@latencyzero.com
> 
> 
> _______________________________________________
> swift-users mailing list
> swift-users@swift.org
> https://lists.swift.org/mailman/listinfo/swift-users
> 


-- 
Rick Mann
rm...@latencyzero.com


_______________________________________________
swift-users mailing list
swift-users@swift.org
https://lists.swift.org/mailman/listinfo/swift-users

Reply via email to