Index: fpdfsdk/pdfwindow/PWL_ScrollBar.cpp |
diff --git a/fpdfsdk/pdfwindow/PWL_ScrollBar.cpp b/fpdfsdk/pdfwindow/PWL_ScrollBar.cpp |
index 1789d15764ccbdebf852a049be4923cc5b7a751d..17f62f58d69cff34545cf6d0f3d74405d1a72004 100644 |
--- a/fpdfsdk/pdfwindow/PWL_ScrollBar.cpp |
+++ b/fpdfsdk/pdfwindow/PWL_ScrollBar.cpp |
@@ -818,15 +818,14 @@ void CPWL_ScrollBar::OnNotify(CPWL_Wnd* pWnd, |
} |
break; |
case PNM_SETSCROLLINFO: { |
- if (PWL_SCROLL_INFO* pInfo = (PWL_SCROLL_INFO*)lParam) { |
- if (FXSYS_memcmp(&m_OriginInfo, pInfo, sizeof(PWL_SCROLL_INFO)) != 0) { |
- m_OriginInfo = *pInfo; |
- FX_FLOAT fMax = |
- pInfo->fContentMax - pInfo->fContentMin - pInfo->fPlateWidth; |
- fMax = fMax > 0.0f ? fMax : 0.0f; |
- SetScrollRange(0, fMax, pInfo->fPlateWidth); |
- SetScrollStep(pInfo->fBigStep, pInfo->fSmallStep); |
- } |
+ PWL_SCROLL_INFO* pInfo = reinterpret_cast<PWL_SCROLL_INFO*>(lParam); |
+ if (pInfo && *pInfo != m_OriginInfo) { |
+ m_OriginInfo = *pInfo; |
+ FX_FLOAT fMax = |
+ pInfo->fContentMax - pInfo->fContentMin - pInfo->fPlateWidth; |
+ fMax = fMax > 0.0f ? fMax : 0.0f; |
+ SetScrollRange(0, fMax, pInfo->fPlateWidth); |
+ SetScrollStep(pInfo->fBigStep, pInfo->fSmallStep); |
} |
} break; |
case PNM_SETSCROLLPOS: { |
@@ -1183,13 +1182,12 @@ void CPWL_ScrollBar::CreateChildWnd(const PWL_CREATEPARAM& cp) { |
void CPWL_ScrollBar::TimerProc() { |
PWL_SCROLL_PRIVATEDATA sTemp = m_sData; |
- |
if (m_bMinOrMax) |
m_sData.SubSmall(); |
else |
m_sData.AddSmall(); |
- if (FXSYS_memcmp(&m_sData, &sTemp, sizeof(PWL_SCROLL_PRIVATEDATA)) != 0) { |
+ if (sTemp != m_sData) { |
MovePosButton(TRUE); |
NotifyScrollWindow(); |
} |