1From d734d03862d7dcc776bd2fa3ba662cdd5879b32e Mon Sep 17 00:00:00 2001
2From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
3Date: Wed, 12 Jul 2023 17:55:27 +0200
4Subject: [PATCH] Adapt to perl 5.37.1
5
6Perl 5.37.1 removed a deprecated sv_nv() macro and SDL fails to build
7with Perl 5.38.0:
8
9lib/SDLx/Controller/Interface.xs:60:26: error: implicit declaration of function 'sv_nv'
10 60 | out->dv_x = sv_nv(temp);
11 | ^~~~~
12
13Users are advised to use SvNVx() macro instead. SvNVx() seems to have been
14available all the time (it predates a commit from 1993-10-07).
15
16This patch does that.
17
18https://github.com/PerlGameDev/SDL/issues/303
19---
20 src/SDLx/Controller/Interface.xs | 12 ++++++------
21 1 file changed, 6 insertions(+), 6 deletions(-)
22
23diff --git a/src/SDLx/Controller/Interface.xs b/src/SDLx/Controller/Interface.xs
24index 3dc202b7..d326c885 100644
25--- a/src/SDLx/Controller/Interface.xs
26+++ b/src/SDLx/Controller/Interface.xs
27@@ -57,15 +57,15 @@ void evaluate(SDLx_Interface *obj, SDLx_Derivative *out, SDLx_State *initial, fl
28
29 SV *temp;
30 temp = av_pop(accel);
31- out->dv_x = sv_nv(temp);
32+ out->dv_x = SvNVx(temp);
33 SvREFCNT_dec(temp);
34
35 temp = av_pop(accel);
36- out->dv_y = sv_nv(temp);
37+ out->dv_y = SvNVx(temp);
38 SvREFCNT_dec(temp);
39
40 temp = av_pop(accel);
41- out->dang_v = sv_nv(temp);
42+ out->dang_v = SvNVx(temp);
43 SvREFCNT_dec(temp);
44
45 SvREFCNT_dec((SV *)accel);
46@@ -90,15 +90,15 @@ void evaluate_dt(SDLx_Interface *obj, SDLx_Derivative *out, SDLx_State *initial,
47
48 SV *temp;
49 temp = av_pop(accel);
50- out->dv_x = sv_nv(temp);
51+ out->dv_x = SvNVx(temp);
52 SvREFCNT_dec(temp);
53
54 temp = av_pop(accel);
55- out->dv_y = sv_nv(temp);
56+ out->dv_y = SvNVx(temp);
57 SvREFCNT_dec(temp);
58
59 temp = av_pop(accel);
60- out->dang_v = sv_nv(temp);
61+ out->dang_v = SvNVx(temp);
62 SvREFCNT_dec(temp);
63
64 SvREFCNT_dec((SV *)accel);