summarylogtreecommitdiffstats
path: root/gcc10.patch
blob: 698aa82d80fb25290f403ebe158bbdc45418554d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
From bd4820186751034c6b5acb9c71b1aeab03c56523 Mon Sep 17 00:00:00 2001
From: Andreas Henriksson <andreas@fatal.se>
Date: Mon, 11 May 2020 14:57:45 +0200
Subject: [PATCH] Fix build with gcc 10

Bug-Debian: https://bugs.debian.org/957578
Forwarded: https://gitlab.gnome.org/GNOME/nautilus-python/-/merge_requests/7
Last-Update: 2020-05-11
---
 src/nautilus-python-object.c | 10 +++++-----
 src/nautilus-python.c        | 13 +++++++++++++
 src/nautilus-python.h        | 22 +++++++++++-----------
 3 files changed, 29 insertions(+), 16 deletions(-)

diff --git a/src/nautilus-python-object.c b/src/nautilus-python-object.c
index f343070..da185ad 100644
--- a/src/nautilus-python-object.c
+++ b/src/nautilus-python-object.c
@@ -40,7 +40,7 @@ int __PyString_Check(PyObject *obj) {
 #endif
 }
 
-char* __PyString_AsString(PyObject *obj) {
+const char* __PyString_AsString(PyObject *obj) {
 #if PY_MAJOR_VERSION >= 3
     return PyUnicode_AsUTF8(obj);
 #else
@@ -389,7 +389,7 @@ beach:
 #define METHOD_NAME "update_file_info"
 static NautilusOperationResult
 nautilus_python_object_update_file_info (NautilusInfoProvider         *provider,
-                                         NautilusFile                 *file,
+                                         NautilusFileInfo             *file_info,
                                          GClosure                     *update_complete,
                                          NautilusOperationHandle   **handle) {
     NautilusPythonObject *object = (NautilusPythonObject*)provider;
@@ -408,12 +408,12 @@ nautilus_python_object_update_file_info (NautilusInfoProvider         *provider,
                                      pygobject_new((GObject*)provider),
                                      py_handle,
                                      pyg_boxed_new(G_TYPE_CLOSURE, update_complete, TRUE, TRUE),
-                                     pygobject_new((GObject*)file));
+                                     pygobject_new((GObject*)file_info));
     }
     else if (PyObject_HasAttrString(object->instance, "update_file_info")) {
         py_ret = PyObject_CallMethod(object->instance,
                                      METHOD_PREFIX METHOD_NAME, "(N)",
-                                     pygobject_new((GObject*)file));
+                                     pygobject_new((GObject*)file_info));
     }
     else {
         goto beach;
@@ -434,7 +434,7 @@ nautilus_python_object_update_file_info (NautilusInfoProvider         *provider,
 #endif
 
 beach:
-    free_pygobject_data(file, NULL);
+    free_pygobject_data(file_info, NULL);
     Py_XDECREF(py_ret);
     pyg_gil_state_release(state);
     return ret;
diff --git a/src/nautilus-python.c b/src/nautilus-python.c
index 843e3c6..510cdfb 100644
--- a/src/nautilus-python.c
+++ b/src/nautilus-python.c
@@ -22,6 +22,7 @@
 #endif
 
 #include <Python.h>
+#define NO_IMPORT_PYGOBJECT //To avoid a multiple definition, nautilus-python-object.c also includes and does the import.
 #include <pygobject.h>
 #include <gmodule.h>
 #include <gtk/gtk.h>
@@ -42,6 +43,18 @@ static gboolean nautilus_python_init_python(void);
 static GArray *all_types = NULL;
 
 
+PyTypeObject *_PyGtkWidget_Type;
+PyTypeObject *_PyNautilusColumn_Type;
+PyTypeObject *_PyNautilusColumnProvider_Type;
+PyTypeObject *_PyNautilusInfoProvider_Type;
+PyTypeObject *_PyNautilusLocationWidgetProvider_Type;
+PyTypeObject *_PyNautilusMenu_Type;
+PyTypeObject *_PyNautilusMenuItem_Type;
+PyTypeObject *_PyNautilusMenuProvider_Type;
+PyTypeObject *_PyNautilusPropertyPage_Type;
+PyTypeObject *_PyNautilusPropertyPageProvider_Type;
+PyTypeObject *_PyNautilusOperationHandle_Type;
+
 static inline gboolean 
 np_init_pygobject(void) {
     PyObject *gobject = pygobject_init (PYGOBJECT_MAJOR_VERSION, PYGOBJECT_MINOR_VERSION, PYGOBJECT_MICRO_VERSION);
diff --git a/src/nautilus-python.h b/src/nautilus-python.h
index 4c181f8..c940a06 100644
--- a/src/nautilus-python.h
+++ b/src/nautilus-python.h
@@ -43,37 +43,37 @@ extern NautilusPythonDebug nautilus_python_debug;
 #define debug_enter_args(x, y) { if (nautilus_python_debug & NAUTILUS_PYTHON_DEBUG_MISC) \
                                      g_printf("%s: entered " x "\n", __FUNCTION__, y); }
 
-PyTypeObject *_PyGtkWidget_Type;
+extern PyTypeObject *_PyGtkWidget_Type;
 #define PyGtkWidget_Type (*_PyGtkWidget_Type)
 
-PyTypeObject *_PyNautilusColumn_Type;
+extern PyTypeObject *_PyNautilusColumn_Type;
 #define PyNautilusColumn_Type (*_PyNautilusColumn_Type)
 
-PyTypeObject *_PyNautilusColumnProvider_Type;
+extern PyTypeObject *_PyNautilusColumnProvider_Type;
 #define PyNautilusColumnProvider_Type (*_PyNautilusColumnProvider_Type)
 
-PyTypeObject *_PyNautilusInfoProvider_Type;
+extern PyTypeObject *_PyNautilusInfoProvider_Type;
 #define PyNautilusInfoProvider_Type (*_PyNautilusInfoProvider_Type)
 
-PyTypeObject *_PyNautilusLocationWidgetProvider_Type;
+extern PyTypeObject *_PyNautilusLocationWidgetProvider_Type;
 #define PyNautilusLocationWidgetProvider_Type (*_PyNautilusLocationWidgetProvider_Type)
 
-PyTypeObject *_PyNautilusMenu_Type;
+extern PyTypeObject *_PyNautilusMenu_Type;
 #define PyNautilusMenu_Type (*_PyNautilusMenu_Type)
 
-PyTypeObject *_PyNautilusMenuItem_Type;
+extern PyTypeObject *_PyNautilusMenuItem_Type;
 #define PyNautilusMenuItem_Type (*_PyNautilusMenuItem_Type)
 
-PyTypeObject *_PyNautilusMenuProvider_Type;
+extern PyTypeObject *_PyNautilusMenuProvider_Type;
 #define PyNautilusMenuProvider_Type (*_PyNautilusMenuProvider_Type)
 
-PyTypeObject *_PyNautilusPropertyPage_Type;
+extern PyTypeObject *_PyNautilusPropertyPage_Type;
 #define PyNautilusPropertyPage_Type (*_PyNautilusPropertyPage_Type)
 
-PyTypeObject *_PyNautilusPropertyPageProvider_Type;
+extern PyTypeObject *_PyNautilusPropertyPageProvider_Type;
 #define PyNautilusPropertyPageProvider_Type (*_PyNautilusPropertyPageProvider_Type)
 
-PyTypeObject *_PyNautilusOperationHandle_Type;
+extern PyTypeObject *_PyNautilusOperationHandle_Type;
 #define PyNautilusOperationHandle_Type (*_PyNautilusOperationHandle_Type)
 
 #endif /* NAUTILUS_PYTHON_H */
-- 
GitLab