2016-02-13 0:21 GMT+01:00 Sebastian Lackner sebastian@fds-team.de:
Actually at the time there was only one version token listed for those functions. This weird thing with two functions (not sure why both 3.0 and 3.1 are specified) appeared in the XML shortly after our latest update IIRC.
I'm not a perl expert by any means but I guess it's fine. BTW I had tackled this in a slightly different way:
diff --git a/dlls/opengl32/make_opengl b/dlls/opengl32/make_opengl index 2b15f58..64e3bc6 100755 --- a/dlls/opengl32/make_opengl +++ b/dlls/opengl32/make_opengl @@ -698,7 +698,12 @@ sub parse_file($$) for my $req (@{$v->{require}}) { for (keys %{$req->{command}}) { if (!$norm_functions{$_}) { - $ext_functions{$_} = [ $functions{$_}[0], $functions{$_}[1], [ $k ] ]; + if (!$ext_functions{$_}) { + $ext_functions{$_} = [ $functions{$_}[0], $functions{$_}[1], [ $k ] ]; + } + else { + push @{$ext_functions{$_}->[2]}, $k; + } } } }
I.e. store all the versions in the table. I guess your version is a bit better in that it avoids multiple version tokens.
AFAICS there is another problem with make_opengl and the current XML files though: type GLint64 is not handled and that breaks the traces inside the wrapper functions. That's trivially fixed by adding an entry for GLint64 in the %debug_conv array.
FWIW I didn't send my version of the patch at the time I wrote it because I had in mind to send it together with a fix for bug 38402. Of course I never got around to complete it and well... I had a very quick look at your fix for that bug and it looks okay, thank you.