Replace cast-as-char* byte access of multibyte variables with proper shifts and masks...
authorDean Camera <dean@fourwalledcubicle.com>
Wed, 13 Apr 2011 06:12:52 +0000 (06:12 +0000)
committerDean Camera <dean@fourwalledcubicle.com>
Wed, 13 Apr 2011 06:12:52 +0000 (06:12 +0000)
LUFA/Drivers/USB/Class/Device/RNDIS.c
Projects/AVRISP-MKII/Lib/XPROG/TINYNVM.c
Projects/AVRISP-MKII/Lib/XPROG/XMEGANVM.c
Projects/MIDIToneGenerator/MIDIToneGenerator.c

index 3ade4af..616af5f 100644 (file)
@@ -279,8 +279,8 @@ void RNDIS_Device_ProcessRNDISControlMessage(USB_ClassInfo_RNDIS_Device_t* const
                        RNDIS_Query_Complete_t* QUERY_Response = (RNDIS_Query_Complete_t*)&RNDISInterfaceInfo->State.RNDISMessageBuffer;
                        uint32_t                Query_Oid      = QUERY_Message->Oid;
 
-                       void*     QueryData = &RNDISInterfaceInfo->State.RNDISMessageBuffer[sizeof(RNDIS_Message_Header_t) +
-                                                                                           QUERY_Message->InformationBufferOffset];
+                       void*     QueryData    = &RNDISInterfaceInfo->State.RNDISMessageBuffer[sizeof(RNDIS_Message_Header_t) +
+                                                                                              QUERY_Message->InformationBufferOffset];
                        void*     ResponseData = &RNDISInterfaceInfo->State.RNDISMessageBuffer[sizeof(RNDIS_Query_Complete_t)];
                        uint16_t  ResponseSize;
 
index 49d5766..891ae8d 100644 (file)
@@ -43,9 +43,9 @@ static void TINYNVM_SendPointerAddress(const uint16_t AbsoluteAddress)
 {
        /* Send the given 16-bit address to the target, LSB first */
        XPROGTarget_SendByte(TPI_CMD_SSTPR | 0);
-       XPROGTarget_SendByte(((uint8_t*)&AbsoluteAddress)[0]);
+       XPROGTarget_SendByte(AbsoluteAddress & 0xFF);
        XPROGTarget_SendByte(TPI_CMD_SSTPR | 1);
-       XPROGTarget_SendByte(((uint8_t*)&AbsoluteAddress)[1]);
+       XPROGTarget_SendByte(AbsoluteAddress >> 8);
 }
 
 /** Sends a SIN command to the target with the specified I/O address, ready for the data byte to be written.
index b1fea59..e4f1186 100644 (file)
 static void XMEGANVM_SendAddress(const uint32_t AbsoluteAddress)
 {
        /* Send the given 32-bit address to the target, LSB first */
-       XPROGTarget_SendByte(((uint8_t*)&AbsoluteAddress)[0]);
-       XPROGTarget_SendByte(((uint8_t*)&AbsoluteAddress)[1]);
-       XPROGTarget_SendByte(((uint8_t*)&AbsoluteAddress)[2]);
-       XPROGTarget_SendByte(((uint8_t*)&AbsoluteAddress)[3]);
+       XPROGTarget_SendByte(AbsoluteAddress &  0xFF);
+       XPROGTarget_SendByte(AbsoluteAddress >> 8);
+       XPROGTarget_SendByte(AbsoluteAddress >> 16);
+       XPROGTarget_SendByte(AbsoluteAddress >> 24);
 }
 
 /** Sends the given NVM register address to the target.
index a4e2764..e1008a7 100644 (file)
@@ -166,7 +166,7 @@ ISR(TIMER0_COMPA_vect, ISR_BLOCK)
                if (NoteData[i].Pitch)\r
                {\r
                        /* Use the top 8 bits of the table position as the sample table index */\r
-                       uint8_t TableIndex = ((uint8_t*)&NoteData[i].TablePosition)[3];\r
+                       uint8_t TableIndex = (NoteData[i].TablePosition >> 24);\r
                        \r
                        /* Add the new tone sample to the accumulator and increment the table position */\r
                        MixedSample += SineTable[TableIndex];\r