Signed-off-by: Nikolay Sivov nsivov@codeweavers.com ---
Fixes the crash reported as https://bugs.winehq.org/show_bug.cgi?id=44265.
There is another patch attached to this bug that allows to manually test creation/destruction sequence.
dlls/oleaut32/olepropframe.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/dlls/oleaut32/olepropframe.c b/dlls/oleaut32/olepropframe.c index 73af7451f1..1a89024885 100644 --- a/dlls/oleaut32/olepropframe.c +++ b/dlls/oleaut32/olepropframe.c @@ -308,10 +308,8 @@ HRESULT WINAPI OleCreatePropertyFrameIndirect(LPOCPFIPARAMS lpParams) PropertySheetW(&property_sheet);
for(i=0; i<lpParams->cPages; i++) { - if(property_page[i]) { - IPropertyPage_SetPageSite(property_page[i], NULL); + if(property_page[i]) IPropertyPage_Release(property_page[i]); - } }
HeapFree(GetProcessHeap(), 0, dialogs);
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/oleaut32/olepropframe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/oleaut32/olepropframe.c b/dlls/oleaut32/olepropframe.c index 1a89024885..98d2e8fffc 100644 --- a/dlls/oleaut32/olepropframe.c +++ b/dlls/oleaut32/olepropframe.c @@ -186,7 +186,7 @@ HRESULT WINAPI OleCreatePropertyFrameIndirect(LPOCPFIPARAMS lpParams) lpParams->lplpUnk, lpParams->cPages, lpParams->lpPages, lpParams->lcid, lpParams->dispidInitialProperty);
- if(!lpParams->lplpUnk || !lpParams->lpPages) + if(!lpParams->lpPages) return E_POINTER;
if(lpParams->cbStructSize != sizeof(OCPFIPARAMS)) {
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/oleaut32/olepropframe.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/dlls/oleaut32/olepropframe.c b/dlls/oleaut32/olepropframe.c index 98d2e8fffc..ecffdc9218 100644 --- a/dlls/oleaut32/olepropframe.c +++ b/dlls/oleaut32/olepropframe.c @@ -288,7 +288,7 @@ HRESULT WINAPI OleCreatePropertyFrameIndirect(LPOCPFIPARAMS lpParams) res = IPropertyPage_SetObjects(property_page[i], lpParams->cObjects, lpParams->lplpUnk); if(FAILED(res)) - continue; + WARN("SetObjects() failed, hr %#x.\n", res);
res = IPropertyPage_GetPageInfo(property_page[i], &page_info); if(FAILED(res))