From: Michael Stefaniuc Subject: dsound/tests: Primary and secondary buffers use the same IDirectSoundBuffer vtbl. Message-Id: <20110828222850.GA31730@redhat.com> Date: Mon, 29 Aug 2011 00:28:50 +0200 There are broken programs that rely on this behavior. E.g. Caesar3 does: primary->lpVtbl.GetStatus(secondary, &status) And the refcount fix from 6d7c38256f25 changed the layout of the secondary buffer object which produced a regression: http://bugs.winehq.org/show_bug.cgi?id=28207 --- dlls/dsound/tests/dsound.c | 3 +++ dlls/dsound/tests/dsound8.c | 3 +++ 2 files changed, 6 insertions(+), 0 deletions(-) diff --git a/dlls/dsound/tests/dsound.c b/dlls/dsound/tests/dsound.c index 64b188c..be846df 100644 --- a/dlls/dsound/tests/dsound.c +++ b/dlls/dsound/tests/dsound.c @@ -627,6 +627,9 @@ static HRESULT test_primary_secondary(LPGUID lpGuid) "IDirectSound_CreateSoundBuffer() failed to create a secondary buffer %08x\n",rc); if (rc==DS_OK && secondary!=NULL) { + todo_wine ok(primary->lpVtbl==secondary->lpVtbl, + "Primary and secondary buffers have different vtbls.\n"); + test_buffer(dso,&secondary,0,FALSE,0,FALSE,0, winetest_interactive,1.0,0,NULL,0,0,FALSE,0); diff --git a/dlls/dsound/tests/dsound8.c b/dlls/dsound/tests/dsound8.c index 6406b47..87d9adb 100644 --- a/dlls/dsound/tests/dsound8.c +++ b/dlls/dsound/tests/dsound8.c @@ -639,6 +639,9 @@ static HRESULT test_primary_secondary8(LPGUID lpGuid) "buffer %08x\n",rc); if (rc==DS_OK && secondary!=NULL) { + todo_wine ok(primary->lpVtbl==secondary->lpVtbl, + "Primary and secondary buffers have different vtbls.\n"); + test_buffer8(dso,&secondary,0,FALSE,0,FALSE,0, winetest_interactive,1.0,0,NULL,0,0); -- 1.7.6.1