X-Git-Url: http://git.osdn.jp/view?a=blobdiff_plain;f=macosx%2FHBDVDDetector.m;h=588d32d81e367381158353f54075bd9b9d8e0914;hb=44946a6f8be82a70e65ca534541183a26fdb804b;hp=966e812ca4ac16515236a09f552c0e12601cd7bc;hpb=e736a43c897969f97c24cb9d6f3f39daebc91a6c;p=handbrake-jp%2Fhandbrake-jp-git.git
diff --git a/macosx/HBDVDDetector.m b/macosx/HBDVDDetector.m
index 966e812c..588d32d8 100644
--- a/macosx/HBDVDDetector.m
+++ b/macosx/HBDVDDetector.m
@@ -3,7 +3,7 @@
* 8/17/2007
*
* This file is part of the HandBrake source code.
- * Homepage: .
+ * Homepage: .
* It may be used under the terms of the GNU General Public License.
*/
@@ -83,10 +83,10 @@
- (NSString *)bsdNameForPath
{
OSStatus err;
- FSRef ref;
- err = FSPathMakeRef( (const UInt8 *) [path fileSystemRepresentation],
+ FSRef ref;
+ err = FSPathMakeRef( (const UInt8 *) [path fileSystemRepresentation],
&ref, NULL );
- if( err != noErr )
+ if( err != noErr )
{
return nil;
}
@@ -101,29 +101,29 @@
}
FSVolumeRefNum volRefNum = catalogInfo.volume;
- // Now let's get the device name
- GetVolParmsInfoBuffer volumeParms;
- // PBHGetVolParmsSync is deprecated, but still needed for 10.4 compatibility
- #if MAC_OS_X_VERSION_MAX_ALLOWED <= MAC_OS_X_VERSION_10_4
- HParamBlockRec pb;
- pb.ioParam.ioNamePtr = NULL;
- pb.ioParam.ioVRefNum = volRefNum;
- pb.ioParam.ioBuffer = (Ptr) &volumeParms;
- pb.ioParam.ioReqCount = sizeof( volumeParms );
- err = PBHGetVolParmsSync( &pb );
- #else
- // Let's use FSGetVolumeParms
+ // Now let's get the device name
+ GetVolParmsInfoBuffer volumeParms;
err = FSGetVolumeParms ( volRefNum, &volumeParms, sizeof( volumeParms ) );
- #endif
if( err != noErr )
{
return nil;
}
- // A version 4 GetVolParmsInfoBuffer contains the BSD node name in the vMDeviceID field.
- // It is actually a char * value. This is mentioned in the header CoreServices/CarbonCore/Files.h.
- return [NSString stringWithCString:(char *)volumeParms.vMDeviceID];
+ // A version 4 GetVolParmsInfoBuffer contains the BSD node name in the vMDeviceID field.
+ // It is actually a char * value. This is mentioned in the header CoreServices/CarbonCore/Files.h.
+ if( volumeParms.vMVersion < 4 )
+ {
+ return nil;
+ }
+
+ // vMDeviceID might be zero as is reported with experimental ZFS (zfs-119) support in Leopard.
+ if( !volumeParms.vMDeviceID )
+ {
+ return nil;
+ }
+
+ return [NSString stringWithCString:(const char *)volumeParms.vMDeviceID];
}