[PATCH v5 0/3] MR2359: opengl32: fix bug abort missing convert of glUmapBuffer_params from 32bit to 64bit
Signed-off-by: Fan WenJie <fanwj(a)mail.ustc.edu.cn> -- v5: Apply 1 suggestion(s) to 1 file(s) https://gitlab.winehq.org/wine/wine/-/merge_requests/2359
From: Fan WenJie <fanwj(a)mail.ustc.edu.cn> Signed-off-by: Fan WenJie <fanwj(a)mail.ustc.edu.cn> --- dlls/opengl32/unix_wgl.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index 24bd904b068..ddc1af68d87 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -2045,12 +2045,13 @@ static NTSTATUS wow64_gl_unmap_buffer( void *args, NTSTATUS (*gl_unmap_buffer64) } *params32 = args; NTSTATUS status; TEB *teb = get_teb64( params32->teb ); + struct glUnmapBuffer_params params = { teb, params32->target, params32->ret }; if (!(ptr = get_buffer_pointer( teb, params32->target ))) return STATUS_SUCCESS; status = wow64_unmap_buffer( ptr, get_buffer_param( teb, params32->target, GL_BUFFER_MAP_LENGTH ), get_buffer_param( teb, params32->target, GL_BUFFER_ACCESS_FLAGS ) ); - gl_unmap_buffer64( args ); + gl_unmap_buffer64( ¶ms ); return status; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2359
From: Rémi Bernon <rbernon(a)codeweavers.com> --- dlls/opengl32/unix_wgl.c | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/dlls/opengl32/unix_wgl.c b/dlls/opengl32/unix_wgl.c index ddc1af68d87..a410321994d 100644 --- a/dlls/opengl32/unix_wgl.c +++ b/dlls/opengl32/unix_wgl.c @@ -2043,15 +2043,20 @@ static NTSTATUS wow64_gl_unmap_buffer( void *args, NTSTATUS (*gl_unmap_buffer64) GLenum target; GLboolean ret; } *params32 = args; + struct glUnmapBuffer_params params = + { + .teb = get_teb64(params32->teb), + .target = params32->target, + .ret = TRUE, + }; NTSTATUS status; - TEB *teb = get_teb64( params32->teb ); - struct glUnmapBuffer_params params = { teb, params32->target, params32->ret }; - if (!(ptr = get_buffer_pointer( teb, params32->target ))) return STATUS_SUCCESS; + if (!(ptr = get_buffer_pointer( params.teb, params.target ))) return STATUS_SUCCESS; - status = wow64_unmap_buffer( ptr, get_buffer_param( teb, params32->target, GL_BUFFER_MAP_LENGTH ), - get_buffer_param( teb, params32->target, GL_BUFFER_ACCESS_FLAGS ) ); + status = wow64_unmap_buffer( ptr, get_buffer_param( params.teb, params.target, GL_BUFFER_MAP_LENGTH ), + get_buffer_param( params.teb, params.target, GL_BUFFER_ACCESS_FLAGS ) ); gl_unmap_buffer64( ¶ms ); + params32->ret = params.ret; return status; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2359
From: Rémi Bernon <rbernon(a)codeweavers.com> --- 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; } -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/2359
Thanks, would you mind squashing the commits into a single one, and making sure the title matches the usual format? For instance `opengl32: Fix missing conversion of glUmapBuffer_params from 32bit to 64bit.` -- https://gitlab.winehq.org/wine/wine/-/merge_requests/2359#note_26601
On Fri Mar 10 06:27:14 2023 +0000, Rémi Bernon wrote:
Thanks, would you mind squashing the commits into a single one, and making sure the title matches the usual format? For instance `opengl32: Fix missing conversion of glUmapBuffer_params from 32bit to 64bit.` OK, Since I'm working, I can't deal with it immediately. Can you squash the commits into a single one?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2359#note_26602
On Fri Mar 10 06:27:14 2023 +0000, Fan WenJie wrote:
OK, Since I'm working, I can't deal with it immediately. Can you squash the commits into a single one? I can't force push to this MR, I opened https://gitlab.winehq.org/wine/wine/-/merge_requests/2366 instead.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/2359#note_26606
participants (3)
-
Fan WenJie -
Fan WenJie (@fanwenjie) -
Rémi Bernon