8000 Merge pull request #21836 from anntzer/ft · matplotlib/matplotlib@67e69e9 · GitHub
[go: up one dir, main page]

Skip to content

Commit 67e69e9

Browse files
authored
Merge pull request #21836 from anntzer/ft
Slightly shorten ft2font init.
2 parents a1594e2 + 911eefd commit 67e69e9

File tree

1 file changed

+18
-50
lines changed

1 file changed

+18
-50
lines changed

src/ft2font_wrapper.cpp

Lines changed: 18 additions & 50 deletions
Original file line numberDiff line numberDiff line change
@@ -1536,32 +1536,25 @@ static struct PyModuleDef moduledef = { PyModuleDef_HEAD_INIT, "ft2font" };
15361536

15371537
PyMODINIT_FUNC PyInit_ft2font(void)
15381538
{
1539-
PyObject *m;
1540-
15411539
import_array();
15421540

1543-
m = PyModule_Create(&moduledef);
1544-
1545-
if (m == NULL) {
1546-
return NULL;
1541+
if (FT_Init_FreeType(&_ft2Library)) { // initialize library
1542+
return PyErr_Format(
1543+
PyExc_RuntimeError, "Could not initialize the freetype2 library");
15471544
}
1548-
1549-
if (!PyFT2Image_init_type(m, &PyFT2ImageType)) {
1550-
Py_DECREF(m);
1551-
return NULL;
1552-
}
1553-
1554-
if (!PyGlyph_init_type(m, &PyGlyphType)) {
1555-
Py_DECREF(m);
1556-
return NULL;
1557-
}
1558-
1559-
if (!PyFT2Font_init_type(m, &PyFT2FontType)) {
1560-
Py_DECREF(m);
1561-
return NULL;
1562-
}
1563-
1564-
if (PyModule_AddIntConstant(m, "SCALABLE", FT_FACE_FLAG_SCALABLE) ||
1545+
FT_Int major, minor, patch;
1546+
char version_string[64];
1547+
FT_Library_Version(_ft2Library, &major, &minor, &patch);
1548+
sprintf(version_string, "%d.%d.%d", major, minor, patch);
1549+
1550+
PyObject *m = PyModule_Create(&moduledef);
1551+
if (!m ||
1552+
!PyFT2Image_init_type(m, &PyFT2ImageType) ||
1553+
!PyGlyph_init_type(m, &PyGlyphType) ||
1554+
!PyFT2Font_init_type(m, &PyFT2FontType) ||
1555+
PyModule_AddStringConstant(m, "__freetype_version__", version_string) ||
1556+
PyModule_AddStringConstant(m, "__freetype_build_type__", STRINGIFY(FREETYPE_BUILD_TYPE)) ||
1557+
PyModule_AddIntConstant(m, "SCALABLE", FT_FACE_FLAG_SCALABLE) ||
15651558
PyModule_AddIntConstant(m, "FIXED_SIZES", FT_FACE_FLAG_FIXED_SIZES) ||
15661559
PyModule_AddIntConstant(m, "FIXED_WIDTH", FT_FACE_FLAG_FIXED_WIDTH) ||
15671560
PyModule_AddIntConstant(m, "SFNT", FT_FACE_FLAG_SFNT) ||
@@ -1597,33 +1590,8 @@ PyMODINIT_FUNC PyInit_ft2font(void)
15971590
PyModule_AddIntConstant(m, "LOAD_TARGET_MONO", (unsigned long)FT_LOAD_TARGET_MONO) ||
15981591
PyModule_AddIntConstant(m, "LOAD_TARGET_LCD", (unsigned long)FT_LOAD_TARGET_LCD) ||
15991592
PyModule_AddIntConstant(m, "LOAD_TARGET_LCD_V", (unsigned long)FT_LOAD_TARGET_LCD_V)) {
1600-
Py_DECREF(m);
1601-
return NULL;
1602-
}
1603-
1604-
// initialize library
1605-
int error = FT_Init_FreeType(&_ft2Library);
1606-
1607-
if (error) {
1608-
PyErr_SetString(PyExc_RuntimeError, "Could not initialize the freetype2 library");
1609-
Py_DECREF(m);
1610-
return NULL;
1611-
}
1612-
1613-
{
1614-
FT_Int major, minor, patch;
1615-
char version_string[64];
1616-
1617-
FT_Library_Version(_ft2Library, &major, &minor, &patch);
1618-
sprintf(version_string, "%d.%d.%d", major, minor, patch);
1619-
if (PyModule_AddStringConstant(m, "__freetype_version__", version_string)) {
1620-
Py_DECREF(m);
1621-
return NULL;
1622-
}
1623-
}
1624-
1625-
if (PyModule_AddStringConstant(m, "__freetype_build_type__", STRINGIFY(FREETYPE_BUILD_TYPE))) {
1626-
Py_DECREF(m);
1593+
FT_Done_FreeType(_ft2Library);
1594+
Py_XDECREF(m);
16271595
return NULL;
16281596
}
16291597

0 commit comments

Comments
 (0)
0