Skip to content

Commit d3d815e

Browse files
authored
Merge pull request #2974 from Starbuck5/use-callmethod-in-resource-loaders
Use PyObject_CallMethod in resource loaders
2 parents c570480 + 05ed1ad commit d3d815e

File tree

4 files changed

+13
-45
lines changed

4 files changed

+13
-45
lines changed

src_c/_freetype.c

Lines changed: 3 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -231,7 +231,6 @@ load_font_res(const char *filename)
231231
{
232232
PyObject *load_basicfunc = 0;
233233
PyObject *pkgdatamodule = 0;
234-
PyObject *resourcefunc = 0;
235234
PyObject *result = 0;
236235
PyObject *tmp;
237236

@@ -240,13 +239,9 @@ load_font_res(const char *filename)
240239
goto font_resource_end;
241240
}
242241

243-
resourcefunc = PyObject_GetAttrString(pkgdatamodule, RESOURCE_FUNC_NAME);
244-
if (!resourcefunc) {
245-
goto font_resource_end;
246-
}
247-
248-
result = PyObject_CallFunction(resourcefunc, "s", filename);
249-
if (!result) {
242+
result =
243+
PyObject_CallMethod(pkgdatamodule, RESOURCE_FUNC_NAME, "s", filename);
244+
if (result == NULL) {
250245
goto font_resource_end;
251246
}
252247

@@ -270,7 +265,6 @@ load_font_res(const char *filename)
270265

271266
font_resource_end:
272267
Py_XDECREF(pkgdatamodule);
273-
Py_XDECREF(resourcefunc);
274268
Py_XDECREF(load_basicfunc);
275269
return result;
276270
}

src_c/display.c

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -126,9 +126,7 @@ static PyObject *
126126
pg_display_resource(char *filename)
127127
{
128128
PyObject *imagemodule = NULL;
129-
PyObject *load_basicfunc = NULL;
130129
PyObject *pkgdatamodule = NULL;
131-
PyObject *resourcefunc = NULL;
132130
PyObject *fresult = NULL;
133131
PyObject *result = NULL;
134132
PyObject *name = NULL;
@@ -137,19 +135,12 @@ pg_display_resource(char *filename)
137135
if (!pkgdatamodule)
138136
goto display_resource_end;
139137

140-
resourcefunc = PyObject_GetAttrString(pkgdatamodule, resourcefunc_name);
141-
if (!resourcefunc)
142-
goto display_resource_end;
143-
144138
imagemodule = PyImport_ImportModule(imagemodule_name);
145139
if (!imagemodule)
146140
goto display_resource_end;
147141

148-
load_basicfunc = PyObject_GetAttrString(imagemodule, load_basicfunc_name);
149-
if (!load_basicfunc)
150-
goto display_resource_end;
151-
152-
fresult = PyObject_CallFunction(resourcefunc, "s", filename);
142+
fresult =
143+
PyObject_CallMethod(pkgdatamodule, resourcefunc_name, "s", filename);
153144
if (!fresult)
154145
goto display_resource_end;
155146

@@ -166,15 +157,14 @@ pg_display_resource(char *filename)
166157
PyErr_Clear();
167158
}
168159

169-
result = PyObject_CallFunction(load_basicfunc, "O", fresult);
160+
result =
161+
PyObject_CallMethod(imagemodule, load_basicfunc_name, "O", fresult);
170162
if (!result)
171163
goto display_resource_end;
172164

173165
display_resource_end:
174166
Py_XDECREF(pkgdatamodule);
175-
Py_XDECREF(resourcefunc);
176167
Py_XDECREF(imagemodule);
177-
Py_XDECREF(load_basicfunc);
178168
Py_XDECREF(fresult);
179169
Py_XDECREF(name);
180170
return result;

src_c/font.c

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,6 @@ static PyObject *
8484
font_resource(const char *filename)
8585
{
8686
PyObject *pkgdatamodule = NULL;
87-
PyObject *resourcefunc = NULL;
8887
PyObject *result = NULL;
8988
PyObject *tmp;
9089

@@ -93,14 +92,9 @@ font_resource(const char *filename)
9392
return NULL;
9493
}
9594

96-
resourcefunc = PyObject_GetAttrString(pkgdatamodule, resourcefunc_name);
95+
result =
96+
PyObject_CallMethod(pkgdatamodule, resourcefunc_name, "s", filename);
9797
Py_DECREF(pkgdatamodule);
98-
if (resourcefunc == NULL) {
99-
return NULL;
100-
}
101-
102-
result = PyObject_CallFunction(resourcefunc, "s", filename);
103-
Py_DECREF(resourcefunc);
10498
if (result == NULL) {
10599
return NULL;
106100
}

src_c/window.c

Lines changed: 4 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -40,9 +40,7 @@ static PyObject *
4040
pg_display_resource(char *filename)
4141
{
4242
PyObject *imagemodule = NULL;
43-
PyObject *load_basicfunc = NULL;
4443
PyObject *pkgdatamodule = NULL;
45-
PyObject *resourcefunc = NULL;
4644
PyObject *fresult = NULL;
4745
PyObject *result = NULL;
4846
PyObject *name = NULL;
@@ -51,19 +49,12 @@ pg_display_resource(char *filename)
5149
if (!pkgdatamodule)
5250
goto display_resource_end;
5351

54-
resourcefunc = PyObject_GetAttrString(pkgdatamodule, resourcefunc_name);
55-
if (!resourcefunc)
56-
goto display_resource_end;
57-
5852
imagemodule = PyImport_ImportModule(imagemodule_name);
5953
if (!imagemodule)
6054
goto display_resource_end;
6155

62-
load_basicfunc = PyObject_GetAttrString(imagemodule, load_basicfunc_name);
63-
if (!load_basicfunc)
64-
goto display_resource_end;
65-
66-
fresult = PyObject_CallFunction(resourcefunc, "s", filename);
56+
fresult =
57+
PyObject_CallMethod(pkgdatamodule, resourcefunc_name, "s", filename);
6758
if (!fresult)
6859
goto display_resource_end;
6960

@@ -80,15 +71,14 @@ pg_display_resource(char *filename)
8071
PyErr_Clear();
8172
}
8273

83-
result = PyObject_CallFunction(load_basicfunc, "O", fresult);
74+
result =
75+
PyObject_CallMethod(imagemodule, load_basicfunc_name, "O", fresult);
8476
if (!result)
8577
goto display_resource_end;
8678

8779
display_resource_end:
8880
Py_XDECREF(pkgdatamodule);
89-
Py_XDECREF(resourcefunc);
9081
Py_XDECREF(imagemodule);
91-
Py_XDECREF(load_basicfunc);
9282
Py_XDECREF(fresult);
9383
Py_XDECREF(name);
9484
return result;

0 commit comments

Comments
 (0)