From b3ae4f794788628ffa62f15db78d14564cc8c21d Mon Sep 17 00:00:00 2001 From: Fan WenJie Date: Thu, 9 Mar 2023 22:03:59 +0800 Subject: [PATCH] opengl32: Fix missing conversion of glUnmapNamedBuffer_params from 32bit to 64bit. Signed-off-by: Fan WenJie --- dlls/opengl32/unix_wgl.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index a410321994d..6c3379b90a2 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -2080,14 +2080,20 @@ static NTSTATUS wow64_gl_unmap_named_buffer( void *args, NTSTATUS (*gl_unmap_nam GLint buffer; GLboolean ret; } *params32 = args; + struct glUnmapNamedBuffer_params params = + { + .teb = get_teb64(params32->teb), + .buffer = params32->buffer, + .ret = TRUE, + }; NTSTATUS status; - TEB *teb = get_teb64( params32->teb ); - if (!(ptr = get_named_buffer_pointer( teb, params32->buffer ))) return STATUS_SUCCESS; + if (!(ptr = get_named_buffer_pointer( params.teb, params.buffer ))) return STATUS_SUCCESS; - status = wow64_unmap_buffer( ptr, get_named_buffer_param( teb, params32->buffer, GL_BUFFER_MAP_LENGTH ), - get_named_buffer_param( teb, params32->buffer, GL_BUFFER_ACCESS_FLAGS ) ); - gl_unmap_named_buffer64( args ); + status = wow64_unmap_buffer( ptr, get_named_buffer_param( params.teb, params.buffer, GL_BUFFER_MAP_LENGTH ), + get_named_buffer_param( params.teb, params.buffer, GL_BUFFER_ACCESS_FLAGS ) ); + gl_unmap_named_buffer64( ¶ms ); + params32->ret = params.ret; return status; }