D3D8_GetCreationParameters fix
Christian Costa
titan.costa at wanadoo.fr
Thu Jul 8 18:45:43 CDT 2004
Andrei Barbu wrote:
>It doesn't have to return that memory, DX functions work by taking
>parameters they modify. In essence, that's the point, modifying
>pParameters and returning D3D_OK
>
Marcus is right.
Morover, according to the doc, a pointer to a valid area must be passed
as parameter (the prototype confirms that).
BTW, what is the problem you intend to fix?
>
>Andrei
>
>On Thu, 2004-07-08 at 15:50, Marcus Meissner wrote:
>
>
>>On Fri, Jul 09, 2004 at 04:39:31AM +0900, Mike McCormack wrote:
>>
>>
>>>You probably want to use a Windows method to allocate memory here, such
>>>as HeapAlloc() or CoTaskMemAlloc, as the caller is not going to use
>>>free() to free the memory...
>>>
>>>
>>>Mike
>>>
>>>Andrei Barbu wrote:
>>>
>>>
>>>>Changelog:
>>>>
>>>>Fixes a memory access fault inside of D3D8_GetCreationParameters.
>>>>
>>>>
>>>...
>>>
>>>
>>>>HRESULT WINAPI
>>>>IDirect3DDevice8Impl_GetCreationParameters(LPDIRECT3DDEVICE8 iface,
>>>>D3DDEVICE_CREATION_PARAMETERS *pParameters) {
>>>> ICOM_THIS(IDirect3DDevice8Impl,iface);
>>>> TRACE("(%p) copying to %p\n", This, pParameters);
>>>>+
>>>>+ pParameters = (D3DDEVICE_CREATION_PARAMETERS*) malloc( sizeof(
>>>>D3DDEVICE_CREATION_PARAMETERS ));
>>>> memcpy(pParameters, &This->CreateParms,
>>>> sizeof(D3DDEVICE_CREATION_PARAMETERS));
>>>> return D3D_OK;
>>>>}
>>>>
>>>>
>>
>>Its also wrong, because the patch just overwrites the pParameters argument
>>and does not return the allocated memory.
>>
>>Ciao, Marcus
>>
>>
>>
>
>
>
More information about the wine-devel
mailing list