[PATCH] riched20: Handle NULL in ITextServices::{TxGetHScroll, TxGetVScroll}.
Jactry Zeng
jzeng at codeweavers.com
Fri Sep 7 03:01:26 CDT 2018
Wine-bug: https://bugs.winehq.org/show_bug.cgi?id=43488
Signed-off-by: Jactry Zeng <jzeng at codeweavers.com>
---
dlls/riched20/tests/txtsrv.c | 20 ++++++++++++++++++++
dlls/riched20/txtsrv.c | 30 ++++++++++++++++++++----------
2 files changed, 40 insertions(+), 10 deletions(-)
diff --git a/dlls/riched20/tests/txtsrv.c b/dlls/riched20/tests/txtsrv.c
index 4dee5fd269..a8cf6ff1ad 100644
--- a/dlls/riched20/tests/txtsrv.c
+++ b/dlls/riched20/tests/txtsrv.c
@@ -990,6 +990,25 @@ static void test_default_format(void)
ITextHost_Release(host);
}
+static void test_TxGetScroll(void)
+{
+ ITextServices *txtserv;
+ ITextHost *host;
+ HRESULT ret;
+
+ if (!init_texthost(&txtserv, &host))
+ return;
+
+ ret = ITextServices_TxGetHScroll(txtserv, NULL, NULL, NULL, NULL, NULL);
+ ok(ret == S_OK, "ITextSerHices_GetVScroll failed: 0x%08x.\n", ret);
+
+ ret = ITextServices_TxGetVScroll(txtserv, NULL, NULL, NULL, NULL, NULL);
+ ok(ret == S_OK, "ITextServices_GetVScroll failed: 0x%08x.\n", ret);
+
+ ITextServices_Release(txtserv);
+ ITextHost_Release(host);
+}
+
START_TEST( txtsrv )
{
ITextServices *txtserv;
@@ -1021,6 +1040,7 @@ START_TEST( txtsrv )
test_TxDraw();
test_QueryInterface();
test_default_format();
+ test_TxGetScroll();
}
if (wrapperCodeMem) VirtualFree(wrapperCodeMem, 0, MEM_RELEASE);
}
diff --git a/dlls/riched20/txtsrv.c b/dlls/riched20/txtsrv.c
index eb61e4eff6..ee65621b1d 100644
--- a/dlls/riched20/txtsrv.c
+++ b/dlls/riched20/txtsrv.c
@@ -182,11 +182,16 @@ DECLSPEC_HIDDEN HRESULT WINAPI fnTextSrv_TxGetHScroll(ITextServices *iface, LONG
{
ITextServicesImpl *This = impl_from_ITextServices(iface);
- *plMin = This->editor->horz_si.nMin;
- *plMax = This->editor->horz_si.nMax;
- *plPos = This->editor->horz_si.nPos;
- *plPage = This->editor->horz_si.nPage;
- *pfEnabled = (This->editor->styleFlags & WS_HSCROLL) != 0;
+ if (plMin)
+ *plMin = This->editor->horz_si.nMin;
+ if (plMax)
+ *plMax = This->editor->horz_si.nMax;
+ if (plPos)
+ *plPos = This->editor->horz_si.nPos;
+ if (plPage)
+ *plPage = This->editor->horz_si.nPage;
+ if (pfEnabled)
+ *pfEnabled = (This->editor->styleFlags & WS_HSCROLL) != 0;
return S_OK;
}
@@ -195,11 +200,16 @@ DECLSPEC_HIDDEN HRESULT WINAPI fnTextSrv_TxGetVScroll(ITextServices *iface, LONG
{
ITextServicesImpl *This = impl_from_ITextServices(iface);
- *plMin = This->editor->vert_si.nMin;
- *plMax = This->editor->vert_si.nMax;
- *plPos = This->editor->vert_si.nPos;
- *plPage = This->editor->vert_si.nPage;
- *pfEnabled = (This->editor->styleFlags & WS_VSCROLL) != 0;
+ if (plMin)
+ *plMin = This->editor->vert_si.nMin;
+ if (plMax)
+ *plMax = This->editor->vert_si.nMax;
+ if (plPos)
+ *plPos = This->editor->vert_si.nPos;
+ if (plPage)
+ *plPage = This->editor->vert_si.nPage;
+ if (pfEnabled)
+ *pfEnabled = (This->editor->styleFlags & WS_VSCROLL) != 0;
return S_OK;
}
--
2.18.0
More information about the wine-devel
mailing list