@@ -1536,32 +1536,25 @@ static struct PyModuleDef moduledef = { PyModuleDef_HEAD_INIT, "ft2font" };
1536
1536
1537
1537
PyMODINIT_FUNC PyInit_ft2font (void )
1538
1538
{
1539
- PyObject *m;
1540
-
1541
1539
import_array ();
1542
1540
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" );
1547
1544
}
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) ||
1565
1558
PyModule_AddIntConstant (m, " FIXED_SIZES" , FT_FACE_FLAG_FIXED_SIZES) ||
1566
1559
PyModule_AddIntConstant (m, " FIXED_WIDTH" , FT_FACE_FLAG_FIXED_WIDTH) ||
1567
1560
PyModule_AddIntConstant (m, " SFNT" , FT_FACE_FLAG_SFNT) ||
@@ -1597,33 +1590,8 @@ PyMODINIT_FUNC PyInit_ft2font(void)
1597
1590
PyModule_AddIntConstant (m, " LOAD_TARGET_MONO" , (unsigned long )FT_LOAD_TARGET_MONO) ||
1598
1591
PyModule_AddIntConstant (m, " LOAD_TARGET_LCD" , (unsigned long )FT_LOAD_TARGET_LCD) ||
1599
1592
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);
1627
1595
return NULL ;
1628
1596
}
1629
1597
0 commit comments