- if( GetUInt32( regEntry, gIODTInterruptParentKey, &phandle))
- parent = FindPHandle( phandle );
+ if( (data = OSDynamicCast( OSData, regEntry->getProperty( gIODTInterruptParentKey )))
+ && (sizeof(UInt32) <= (len = data->getLength()))) {
+ if (((index + 1) * sizeof(UInt32)) > len)
+ index = 0;
+ phandle = ((UInt32 *) data->getBytesNoCopy())[index];
+ parent = FindPHandle( phandle );