Fix flip-ee DFU build target accidentally erasing the target FLASH memory space.
[pub/USBasp.git] / LUFA / Drivers / USB / Class / Common / HIDParser.c
index d3e7d02..4b4667b 100644 (file)
@@ -53,7 +53,7 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
        while (ReportSize)
        {
                uint8_t  HIDReportItem  = *ReportData;
        while (ReportSize)
        {
                uint8_t  HIDReportItem  = *ReportData;
-               uint32_t ReportItemData = 0;
+               uint32_t ReportItemData;
 
                ReportData++;
                ReportSize--;
 
                ReportData++;
                ReportSize--;
@@ -61,20 +61,27 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
                switch (HIDReportItem & HID_RI_DATA_SIZE_MASK)
                {
                        case HID_RI_DATA_BITS_32:
                switch (HIDReportItem & HID_RI_DATA_SIZE_MASK)
                {
                        case HID_RI_DATA_BITS_32:
-                               ReportItemData  = le32_to_cpu(*((uint32_t*)ReportData));
+                               ReportItemData  = (((uint32_t)ReportData[3] << 24) | ((uint32_t)ReportData[2] << 16) |
+                                              ((uint16_t)ReportData[1] << 8)  | ReportData[0]);
                                ReportSize     -= 4;
                                ReportData     += 4;
                                break;
                                ReportSize     -= 4;
                                ReportData     += 4;
                                break;
+
                        case HID_RI_DATA_BITS_16:
                        case HID_RI_DATA_BITS_16:
-                               ReportItemData  = le16_to_cpu(*((uint16_t*)ReportData));
+                               ReportItemData  = (((uint16_t)ReportData[1] << 8) | (ReportData[0]));
                                ReportSize     -= 2;
                                ReportData     += 2;
                                break;
                                ReportSize     -= 2;
                                ReportData     += 2;
                                break;
+
                        case HID_RI_DATA_BITS_8:
                        case HID_RI_DATA_BITS_8:
-                               ReportItemData  = *((uint8_t*)ReportData);
+                               ReportItemData  = ReportData[0];
                                ReportSize     -= 1;
                                ReportData     += 1;
                                break;
                                ReportSize     -= 1;
                                ReportData     += 1;
                                break;
+
+                       default:
+                               ReportItemData  = 0;
+                               break;
                }
 
                switch (HIDReportItem & (HID_RI_TYPE_MASK | HID_RI_TAG_MASK))
                }
 
                switch (HIDReportItem & (HID_RI_TYPE_MASK | HID_RI_TAG_MASK))
@@ -268,6 +275,9 @@ uint8_t USB_ProcessHIDReport(const uint8_t* ReportData,
                                }
 
                                break;
                                }
 
                                break;
+                       
+                       default:
+                               break;
                }
 
                if ((HIDReportItem & HID_RI_TYPE_MASK) == HID_RI_TYPE_MAIN)
                }
 
                if ((HIDReportItem & HID_RI_TYPE_MASK) == HID_RI_TYPE_MAIN)