summaryrefslogtreecommitdiff
path: root/dev-python/gst-python/files/gst-python-1.18.4-avoid-treating-float-as-int.patch
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/gst-python/files/gst-python-1.18.4-avoid-treating-float-as-int.patch')
-rw-r--r--dev-python/gst-python/files/gst-python-1.18.4-avoid-treating-float-as-int.patch86
1 files changed, 0 insertions, 86 deletions
diff --git a/dev-python/gst-python/files/gst-python-1.18.4-avoid-treating-float-as-int.patch b/dev-python/gst-python/files/gst-python-1.18.4-avoid-treating-float-as-int.patch
deleted file mode 100644
index d9cc6bca086b..000000000000
--- a/dev-python/gst-python/files/gst-python-1.18.4-avoid-treating-float-as-int.patch
+++ /dev/null
@@ -1,86 +0,0 @@
-From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
-From: Thibault Saunier <tsaunier@igalia.com>
-Date: Tue, 16 Nov 2021 23:36:10 -0300
-Subject: [PATCH] python: Avoid treating float as int
-
-Since python 3.10 implicit conversion to integers using `__int__` as
-been completely removed (was deprecated behavior in 3.9) so we need
-to cleanly handle it now.
-
-See https://gitlab.gnome.org/GNOME/pitivi/-/issues/2589
-
-Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/1358>
----
- .../gst-python/gi/overrides/gstmodule.c | 54 ++++++++++++++++---
- 1 file changed, 47 insertions(+), 7 deletions(-)
-
-diff --git a/subprojects/gst-python/gi/overrides/gstmodule.c b/subprojects/gst-python/gi/overrides/gstmodule.c
-index 167a1c27539a..2308eb7dcde6 100644
---- a/gi/overrides/gstmodule.c
-+++ b/gi/overrides/gstmodule.c
-@@ -104,18 +104,58 @@ gi_gst_fraction_from_value (const GValue * value)
- static int
- gi_gst_fraction_to_value (GValue * value, PyObject * object)
- {
-- PyObject *numerator, *denominator;
-+ glong numerator, denominator;
-+ PyObject *numerator_obj, *denominator_obj, *is_integer;
-
-- numerator = PyObject_GetAttrString (object, "num");
-- if (numerator == NULL)
-+ numerator_obj = PyObject_GetAttrString (object, "num");
-+ if (numerator_obj == NULL)
- goto fail;
-
-- denominator = PyObject_GetAttrString (object, "denom");
-- if (denominator == NULL)
-+ is_integer = PyObject_CallMethod (numerator_obj, "is_integer", NULL);
-+ if (is_integer != Py_True) {
-+ PyErr_Format (PyExc_TypeError,
-+ "numerator %f is not an integer.", PyFloat_AsDouble (numerator_obj));
-+ Py_DECREF (is_integer);
-+ goto fail;
-+ }
-+ Py_DECREF (is_integer);
-+
-+ numerator = PyFloat_AsDouble (numerator_obj);
-+ if (numerator < -G_MAXINT || numerator > G_MAXINT) {
-+ PyErr_Format (PyExc_ValueError,
-+ "numerator %" G_GINT64_FORMAT " is out of bound. [-%d - %d]",
-+ numerator, G_MAXINT, G_MAXINT);
-+ goto fail;
-+ }
-+
-+ denominator_obj = PyObject_GetAttrString (object, "denom");
-+ if (denominator_obj == NULL)
- goto fail;
-
-- gst_value_set_fraction (value,
-- PyLong_AsLong (numerator), PyLong_AsLong (denominator));
-+ is_integer = PyObject_CallMethod (denominator_obj, "is_integer", NULL);
-+ if (is_integer != Py_True) {
-+ PyErr_Format (PyExc_TypeError,
-+ "denominator %f is not an integer.",
-+ PyFloat_AsDouble (denominator_obj));
-+ Py_DECREF (is_integer);
-+ goto fail;
-+ }
-+ Py_DECREF (is_integer);
-+
-+ denominator = PyFloat_AsDouble (denominator_obj);
-+ if (denominator == 0) {
-+ PyErr_SetString (PyExc_ValueError, "denominator is 0.");
-+ goto fail;
-+ }
-+
-+ if (denominator < -G_MAXINT || denominator > G_MAXINT) {
-+ PyErr_Format (PyExc_ValueError,
-+ "denominator %" G_GINT64_FORMAT " is out of bound. [-%d - %d]",
-+ denominator, G_MAXINT, G_MAXINT);
-+ goto fail;
-+ }
-+
-+ gst_value_set_fraction (value, numerator, denominator);
-
- return 0;
-