From: Rémi Bernon <rbernon@codeweavers.com> Making sure any side effect such as setting GL error is handled by the unix side. --- dlls/opengl32/make_opengl | 4 ++-- dlls/opengl32/thunks.c | 20 ++++++++++---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index 06e0f44eefb..7f1f36ce6eb 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -784,8 +784,8 @@ sub generate_win_thunk($$) $ret .= " " . get_func_trace( $name, $func, 1 ); $ret .= $checks; $ret .= $map_args; - $ret .= $get_integer ? " $get_integer\n else " : " "; - $ret .= "if ((status = UNIX_CALL( $name, &args ))) WARN( \"$name returned %#lx\\n\", status );\n"; + $ret .= " if ((status = UNIX_CALL( $name, &args ))) WARN( \"$name returned %#lx\\n\", status );\n"; + $ret .= " else $get_integer\n" if $get_integer; $ret .= $post_call; $ret .= " return args.ret;\n" unless is_void_func($func); $ret .= "}\n"; diff --git a/dlls/opengl32/thunks.c b/dlls/opengl32/thunks.c index 14deacbdc67..8c4a483de61 100644 --- a/dlls/opengl32/thunks.c +++ b/dlls/opengl32/thunks.c @@ -836,8 +836,8 @@ void WINAPI glGetBooleanv( GLenum pname, GLboolean *data ) NTSTATUS status; int integer; TRACE( "pname %d, data %p\n", pname, data ); - if (get_integer( pname, &integer )) *data = integer; - else if ((status = UNIX_CALL( glGetBooleanv, &args ))) WARN( "glGetBooleanv returned %#lx\n", status ); + if ((status = UNIX_CALL( glGetBooleanv, &args ))) WARN( "glGetBooleanv returned %#lx\n", status ); + else if (get_integer( pname, &integer )) *data = integer; } void WINAPI glGetClipPlane( GLenum plane, GLdouble *equation ) @@ -854,8 +854,8 @@ void WINAPI glGetDoublev( GLenum pname, GLdouble *data ) NTSTATUS status; int integer; TRACE( "pname %d, data %p\n", pname, data ); - if (get_integer( pname, &integer )) *data = integer; - else if ((status = UNIX_CALL( glGetDoublev, &args ))) WARN( "glGetDoublev returned %#lx\n", status ); + if ((status = UNIX_CALL( glGetDoublev, &args ))) WARN( "glGetDoublev returned %#lx\n", status ); + else if (get_integer( pname, &integer )) *data = integer; } GLenum WINAPI glGetError(void) @@ -873,8 +873,8 @@ void WINAPI glGetFloatv( GLenum pname, GLfloat *data ) NTSTATUS status; int integer; TRACE( "pname %d, data %p\n", pname, data ); - if (get_integer( pname, &integer )) *data = integer; - else if ((status = UNIX_CALL( glGetFloatv, &args ))) WARN( "glGetFloatv returned %#lx\n", status ); + if ((status = UNIX_CALL( glGetFloatv, &args ))) WARN( "glGetFloatv returned %#lx\n", status ); + else if (get_integer( pname, &integer )) *data = integer; } void WINAPI glGetIntegerv( GLenum pname, GLint *data ) @@ -883,8 +883,8 @@ void WINAPI glGetIntegerv( GLenum pname, GLint *data ) NTSTATUS status; int integer; TRACE( "pname %d, data %p\n", pname, data ); - if (get_integer( pname, &integer )) *data = integer; - else if ((status = UNIX_CALL( glGetIntegerv, &args ))) WARN( "glGetIntegerv returned %#lx\n", status ); + if ((status = UNIX_CALL( glGetIntegerv, &args ))) WARN( "glGetIntegerv returned %#lx\n", status ); + else if (get_integer( pname, &integer )) *data = integer; } void WINAPI glGetLightfv( GLenum light, GLenum pname, GLfloat *params ) @@ -8663,8 +8663,8 @@ static void WINAPI glGetInteger64v( GLenum pname, GLint64 *data ) NTSTATUS status; int integer; TRACE( "pname %d, data %p\n", pname, data ); - if (get_integer( pname, &integer )) *data = integer; - else if ((status = UNIX_CALL( glGetInteger64v, &args ))) WARN( "glGetInteger64v returned %#lx\n", status ); + if ((status = UNIX_CALL( glGetInteger64v, &args ))) WARN( "glGetInteger64v returned %#lx\n", status ); + else if (get_integer( pname, &integer )) *data = integer; } static void WINAPI glGetIntegerIndexedvEXT( GLenum target, GLuint index, GLint *data ) -- GitLab https://gitlab.winehq.org/wine/wine/-/merge_requests/11091