Skip to content

Commit bf88cc7

Browse files
committed
Use goto
1 parent dc9cc60 commit bf88cc7

1 file changed

Lines changed: 13 additions & 15 deletions

File tree

src/encode.c

Lines changed: 13 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1244,8 +1244,7 @@ PyImaging_JpegEncoderNew(PyObject *self, PyObject *args) {
12441244
/* malloc check ok, length is from python parsearg */
12451245
char *p = malloc(comment_size); // Freed in JpegEncode, Case 6
12461246
if (!p) {
1247-
Py_DECREF(encoder);
1248-
return ImagingError_MemoryError();
1247+
goto memory_error;
12491248
}
12501249
memcpy(p, comment, comment_size);
12511250
comment = p;
@@ -1257,11 +1256,7 @@ PyImaging_JpegEncoderNew(PyObject *self, PyObject *args) {
12571256
/* malloc check ok, length is from python parsearg */
12581257
char *p = malloc(extra_size); // Freed in JpegEncode, Case 6
12591258
if (!p) {
1260-
Py_DECREF(encoder);
1261-
if (comment) {
1262-
free(comment);
1263-
}
1264-
return ImagingError_MemoryError();
1259+
goto memory_error;
12651260
}
12661261
memcpy(p, extra, extra_size);
12671262
extra = p;
@@ -1273,14 +1268,7 @@ PyImaging_JpegEncoderNew(PyObject *self, PyObject *args) {
12731268
/* malloc check ok, length is from python parsearg */
12741269
char *pp = malloc(rawExifLen); // Freed in JpegEncode, Case 6
12751270
if (!pp) {
1276-
Py_DECREF(encoder);
1277-
if (comment) {
1278-
free(comment);
1279-
}
1280-
if (extra) {
1281-
free(extra);
1282-
}
1283-
return ImagingError_MemoryError();
1271+
goto memory_error;
12841272
}
12851273
memcpy(pp, rawExif, rawExifLen);
12861274
rawExif = pp;
@@ -1313,6 +1301,16 @@ PyImaging_JpegEncoderNew(PyObject *self, PyObject *args) {
13131301
jpeg_encoder_state->rawExifLen = rawExifLen;
13141302

13151303
return (PyObject *)encoder;
1304+
1305+
memory_error:
1306+
Py_DECREF(encoder);
1307+
if (comment) {
1308+
free(comment);
1309+
}
1310+
if (extra) {
1311+
free(extra);
1312+
}
1313+
return ImagingError_MemoryError();
13161314
}
13171315

13181316
#endif

0 commit comments

Comments
 (0)