quartz: Casts-qual warnings fix (2 of 2)
Andrew Talbot
Andrew.Talbot at talbotville.com
Sat Nov 11 05:04:40 CST 2006
Changelog:
quartz: Casts-qual warning fix.
diff -urN a/dlls/quartz/regsvr.c b/dlls/quartz/regsvr.c
--- a/dlls/quartz/regsvr.c 2006-10-25 17:34:31.000000000 +0100
+++ b/dlls/quartz/regsvr.c 2006-11-11 10:26:46.000000000 +0000
@@ -582,6 +582,7 @@
for (; SUCCEEDED(hr) && list->clsid; ++list) {
REGFILTER2 rf2;
REGFILTERPINS2* prfp2;
+ REGPINTYPES** media_type;
int i;
for (i = 0; list->pins[i].flags != 0xFFFFFFFF; i++) ;
@@ -593,23 +594,27 @@
hr = E_OUTOFMEMORY;
break;
}
+ media_type = CoTaskMemAlloc(i*sizeof(REGPINTYPES*));
+ if (!media_type) {
+ hr = E_OUTOFMEMORY;
+ break;
+ }
for (i = 0; list->pins[i].flags != 0xFFFFFFFF; i++) {
- REGPINTYPES* lpMediatype;
CLSID* lpClsid;
int j, nbmt;
-
+
for (nbmt = 0; list->pins[i].mediatypes[nbmt].majortype; nbmt++) ;
/* Allocate a single buffer for regpintypes struct and clsids */
- lpMediatype = (REGPINTYPES*) CoTaskMemAlloc(nbmt*(sizeof(REGPINTYPES) + 2*sizeof(CLSID)));
- if (!lpMediatype) {
+ media_type[i] = (REGPINTYPES*) CoTaskMemAlloc(nbmt*(sizeof(REGPINTYPES) + 2*sizeof(CLSID)));
+ if (!media_type[i]) {
hr = E_OUTOFMEMORY;
break;
}
- lpClsid = (CLSID*) (lpMediatype + nbmt);
+ lpClsid = (CLSID*) (media_type[i] + nbmt);
for (j = 0; j < nbmt; j++) {
- (lpMediatype + j)->clsMajorType = lpClsid + j*2;
+ (media_type[i] + j)->clsMajorType = lpClsid + j*2;
memcpy(lpClsid + j*2, list->pins[i].mediatypes[j].majortype, sizeof(CLSID));
- (lpMediatype + j)->clsMinorType = lpClsid + j*2 + 1;
+ (media_type[i] + j)->clsMinorType = lpClsid + j*2 + 1;
if (list->pins[i].mediatypes[j].subtype)
memcpy(lpClsid + j*2 + 1, list->pins[i].mediatypes[j].subtype, sizeof(CLSID));
else {
@@ -621,7 +626,7 @@
prfp2[i].dwFlags = list->pins[i].flags;
prfp2[i].cInstances = 0;
prfp2[i].nMediaTypes = j;
- prfp2[i].lpMediaType = lpMediatype;
+ prfp2[i].lpMediaType = media_type[i];
prfp2[i].nMediums = 0;
prfp2[i].lpMedium = NULL;
prfp2[i].clsPinCategory = NULL;
@@ -636,9 +641,10 @@
hr = IFilterMapper2_RegisterFilter(pFM2, list->clsid, list->name, NULL, list->category, NULL, &rf2);
while (i) {
- CoTaskMemFree((REGPINTYPES*)prfp2[i-1].lpMediaType);
+ CoTaskMemFree(media_type[i-1]);
i--;
}
+ CoTaskMemFree(media_type);
CoTaskMemFree(prfp2);
}
}
More information about the wine-patches
mailing list