From 8f9e963cb028041bbd4b3e19f8c68d2a61be9cd8 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 17 Sep 2015 19:31:32 -0400 Subject: [PATCH] conversion from 'LRESULT' ... possible loss of data --- Source/RSP/breakpoint.c | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/Source/RSP/breakpoint.c b/Source/RSP/breakpoint.c index 3e7f0f6e9..b56bcecf1 100644 --- a/Source/RSP/breakpoint.c +++ b/Source/RSP/breakpoint.c @@ -138,12 +138,18 @@ void ShowBPPanel ( void ) void RefreshBpoints ( HWND hList ) { char Message[100]; - int count, location; + LRESULT location; + int count; for (count = 0; count < NoOfBpoints; count ++ ) { sprintf(Message," at 0x%03X (RSP)", BPoint[count].Location); - location = SendMessage(hList,LB_ADDSTRING,0,(LPARAM)Message); - SendMessage(hList,LB_SETITEMDATA,(WPARAM)location,(LPARAM)BPoint[count].Location); + location = SendMessage(hList, LB_ADDSTRING, 0, (LPARAM)Message); + SendMessage( + hList, + LB_SETITEMDATA, + (WPARAM)location, + (LPARAM)BPoint[count].Location + ); } } @@ -154,9 +160,18 @@ void RemoveAllBpoint ( void ) void RemoveBpoint ( HWND hList, int index ) { - DWORD location; - - location = SendMessage(hList,LB_GETITEMDATA,(WPARAM)index,0); + LRESULT response; + uint32_t location; + + response = SendMessage(hList, LB_GETITEMDATA, (WPARAM)index, 0); + if (response < 0 || response > 0x7FFFFFFFL) + { + DisplayError( + "LB_GETITEMDATA response for %i out of DWORD range.", + index + ); + } + location = (uint32_t)response; RemoveRSPBreakPoint(location); }