> 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