diff --git a/libmacos/SerGetBuf.c b/libmacos/SerGetBuf.c index f775833..de9dc37 100644 --- a/libmacos/SerGetBuf.c +++ b/libmacos/SerGetBuf.c @@ -21,7 +21,7 @@ OSErr SerGetBuf(short refNum, long *count) res = PBStatusSync((ParmBlkPtr)¶m); - *count = *(long*)param.csParam; + *count = param.csParamLong; return res; } diff --git a/libmacos/macos/files.h b/libmacos/macos/files.h index 8ddf2bb..576df36 100644 --- a/libmacos/macos/files.h +++ b/libmacos/macos/files.h @@ -48,7 +48,11 @@ struct CntrlParam { COMMON_PARAMS int16_t ioCRefNum; int16_t csCode; - int16_t csParam[11]; + union { + int16_t csParam[11]; + long csParamLong; + void * csParamPtr; + }; }; typedef struct CntrlParam CntrlParam; typedef CntrlParam* CntrlParamPtr; diff --git a/libmacos/macos/video.h b/libmacos/macos/video.h index 54015f5..2f4c85c 100644 --- a/libmacos/macos/video.h +++ b/libmacos/macos/video.h @@ -83,7 +83,7 @@ static inline OSErr GetCurrentMode(short refNum, VDSwitchInfoRec *hwMode) param.csCode = cscGetCurMode; param.ioCRefNum = refNum; - *((VDSwitchInfoRec **)¶m.csParam[0]) = hwMode; + param.csParamPtr = hwMode; return PBStatusSync((ParmBlkPtr)¶m); }