mirror of
git://source.winehq.org/git/wine.git
synced 2024-10-06 08:54:05 +00:00
Revert "oleaut32/tests: Get_test_recordinfo shouldn't point into a specific VARIANT.".
This reverts commit 27f417eb93
.
It breaks the tests.
This commit is contained in:
parent
02ce1008b7
commit
dbaa642717
|
@ -246,10 +246,10 @@ typedef struct IRecordInfoImpl
|
|||
{
|
||||
IRecordInfo IRecordInfo_iface;
|
||||
LONG ref;
|
||||
void *validsrc;
|
||||
unsigned int recordclear;
|
||||
unsigned int getsize;
|
||||
unsigned int recordcopy;
|
||||
struct __tagBRECORD *rec;
|
||||
} IRecordInfoImpl;
|
||||
|
||||
static inline IRecordInfoImpl *impl_from_IRecordInfo(IRecordInfo *iface)
|
||||
|
@ -299,8 +299,7 @@ static HRESULT WINAPI RecordInfo_RecordClear(IRecordInfo *iface, void *data)
|
|||
{
|
||||
IRecordInfoImpl* This = impl_from_IRecordInfo(iface);
|
||||
This->recordclear++;
|
||||
if(data == This->validsrc)
|
||||
This->validsrc = NULL; /* not valid anymore, now that it's been cleared */
|
||||
This->rec->pvRecord = NULL;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
@ -308,7 +307,7 @@ static HRESULT WINAPI RecordInfo_RecordCopy(IRecordInfo *iface, void *src, void
|
|||
{
|
||||
IRecordInfoImpl* This = impl_from_IRecordInfo(iface);
|
||||
This->recordcopy++;
|
||||
ok(This->validsrc && (src == This->validsrc), "wrong src pointer %p\n", src);
|
||||
ok(src == (void*)0xdeadbeef, "wrong src pointer %p\n", src);
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
@ -431,7 +430,6 @@ static IRecordInfoImpl *get_test_recordinfo(void)
|
|||
rec->recordclear = 0;
|
||||
rec->getsize = 0;
|
||||
rec->recordcopy = 0;
|
||||
rec->validsrc = (void *)0xdeadbeef;
|
||||
|
||||
return rec;
|
||||
}
|
||||
|
@ -769,6 +767,7 @@ static test_VariantClearImpl test_myVariantClearImpl = {{&test_VariantClear_vtbl
|
|||
|
||||
static void test_VariantClear(void)
|
||||
{
|
||||
struct __tagBRECORD *rec;
|
||||
IRecordInfoImpl *recinfo;
|
||||
HRESULT hres;
|
||||
VARIANTARG v;
|
||||
|
@ -893,12 +892,15 @@ static void test_VariantClear(void)
|
|||
/* RECORD */
|
||||
recinfo = get_test_recordinfo();
|
||||
V_VT(&v) = VT_RECORD;
|
||||
V_RECORDINFO(&v) = &recinfo->IRecordInfo_iface;
|
||||
V_RECORD(&v) = recinfo->validsrc;
|
||||
rec = &V_UNION(&v, brecVal);
|
||||
rec->pRecInfo = &recinfo->IRecordInfo_iface;
|
||||
rec->pvRecord = (void*)0xdeadbeef;
|
||||
recinfo->recordclear = 0;
|
||||
recinfo->ref = 2;
|
||||
recinfo->rec = rec;
|
||||
hres = VariantClear(&v);
|
||||
ok(hres == S_OK, "ret %08lx\n", hres);
|
||||
ok(rec->pvRecord == NULL, "got %p\n", rec->pvRecord);
|
||||
ok(recinfo->recordclear == 1, "got %d\n", recinfo->recordclear);
|
||||
ok(recinfo->ref == 1, "got %ld\n", recinfo->ref);
|
||||
IRecordInfo_Release(&recinfo->IRecordInfo_iface);
|
||||
|
@ -906,6 +908,7 @@ static void test_VariantClear(void)
|
|||
|
||||
static void test_VariantCopy(void)
|
||||
{
|
||||
struct __tagBRECORD *rec;
|
||||
IRecordInfoImpl *recinfo;
|
||||
VARIANTARG vSrc, vDst;
|
||||
VARTYPE vt;
|
||||
|
@ -1030,17 +1033,20 @@ static void test_VariantCopy(void)
|
|||
V_VT(&vDst) = VT_EMPTY;
|
||||
|
||||
V_VT(&vSrc) = VT_RECORD;
|
||||
V_RECORDINFO(&vSrc) = &recinfo->IRecordInfo_iface;
|
||||
V_RECORD(&vSrc) = recinfo->validsrc;
|
||||
rec = &V_UNION(&vSrc, brecVal);
|
||||
rec->pRecInfo = &recinfo->IRecordInfo_iface;
|
||||
rec->pvRecord = (void*)0xdeadbeef;
|
||||
|
||||
recinfo->recordclear = 0;
|
||||
recinfo->recordcopy = 0;
|
||||
recinfo->getsize = 0;
|
||||
recinfo->rec = rec;
|
||||
hres = VariantCopy(&vDst, &vSrc);
|
||||
ok(hres == S_OK, "ret %08lx\n", hres);
|
||||
|
||||
ok(V_RECORD(&vDst) != recinfo->validsrc && V_RECORD(&vDst) != NULL, "got %p\n", V_RECORD(&vDst));
|
||||
ok(V_RECORDINFO(&vDst) == &recinfo->IRecordInfo_iface, "got %p\n", V_RECORDINFO(&vDst));
|
||||
rec = &V_UNION(&vDst, brecVal);
|
||||
ok(rec->pvRecord != (void*)0xdeadbeef && rec->pvRecord != NULL, "got %p\n", rec->pvRecord);
|
||||
ok(rec->pRecInfo == &recinfo->IRecordInfo_iface, "got %p\n", rec->pRecInfo);
|
||||
ok(recinfo->getsize == 1, "got %d\n", recinfo->recordclear);
|
||||
ok(recinfo->recordcopy == 1, "got %d\n", recinfo->recordclear);
|
||||
|
||||
|
|
Loading…
Reference in a new issue