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