File: | src/lib/fm-pyfontutils.c |
Function: | FT_Get_File_Info |
Error: | ob_refcnt of PyStringObject is 1 too high |
175 static PyObject *
176 FT_Get_File_Info(PyObject *self, PyObject *args)
177 {
178 FT_Error error;
179 int index = 0;
180 char *filepath = NULL;
181 PyObject *fileinfo = PyDict_New();
when PyDict_New() succeeds
182 FontInfo *fontinfo, f;
183
184 if (!PyArg_ParseTuple(args, "s|i:FT_Get_File_Info", &filepath, &index))
when PyArg_ParseTuple() succeeds
taking False path
185 return NULL;
186
187 fontinfo = &f;
188 fontinfo_init(fontinfo);
189
190 error = FT_Get_Font_Info(fontinfo, filepath, index);
191 if (error)
when considering value == (FT_Error)0 from src/lib/fm-pyfontutils.c:190
taking False path
192 {
193 char *err;
194 err = g_strdup_printf("Failed to load font! : '%s'", filepath);
195 PyErr_SetString(PyExc_EnvironmentError, err);
196 g_free_and_nullify(err);
197 fontinfo_destroy(fontinfo);
198 return NULL;
199 }
200
201 /* A for loop would have been nice... */
202 PyDict_SetStringItem(fileinfo, "owner", fontinfo->owner);
when treating unknown char * from src/lib/fm-pyfontutils.c:202 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
PyStringObject allocated at: PyDict_SetStringItem(fileinfo, "owner", fontinfo->owner);
ob_refcnt is now refs: 1 + N where N >= 0
ob_refcnt is now refs: 1 + N where N >= 1
203 PyDict_SetStringItem(fileinfo, "filepath", fontinfo->filepath);
when treating unknown char * from src/lib/fm-pyfontutils.c:203 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
204 PyDict_SetStringItem(fileinfo, "filetype", fontinfo->filetype);
when treating unknown char * from src/lib/fm-pyfontutils.c:204 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
205 PyDict_SetStringItem(fileinfo, "filesize", fontinfo->filesize);
when treating unknown char * from src/lib/fm-pyfontutils.c:205 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
206 PyDict_SetStringItem(fileinfo, "checksum", fontinfo->checksum);
when treating unknown char * from src/lib/fm-pyfontutils.c:206 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
207 PyDict_SetStringItem(fileinfo, "psname", fontinfo->psname);
when treating unknown char * from src/lib/fm-pyfontutils.c:207 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
208 PyDict_SetStringItem(fileinfo, "family", fontinfo->family);
when treating unknown char * from src/lib/fm-pyfontutils.c:208 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
209 PyDict_SetStringItem(fileinfo, "style", fontinfo->style);
when treating unknown char * from src/lib/fm-pyfontutils.c:209 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
210 PyDict_SetStringItem(fileinfo, "foundry", fontinfo->foundry);
when treating unknown char * from src/lib/fm-pyfontutils.c:210 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
211 PyDict_SetStringItem(fileinfo, "copyright", fontinfo->copyright);
when treating unknown char * from src/lib/fm-pyfontutils.c:211 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
212 PyDict_SetStringItem(fileinfo, "version", fontinfo->version);
when treating unknown char * from src/lib/fm-pyfontutils.c:212 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
213 PyDict_SetStringItem(fileinfo, "description", fontinfo->description);
when treating unknown char * from src/lib/fm-pyfontutils.c:213 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
214 PyDict_SetStringItem(fileinfo, "license", fontinfo->license);
when treating unknown char * from src/lib/fm-pyfontutils.c:214 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
215 PyDict_SetStringItem(fileinfo, "license_url", fontinfo->license_url);
when treating unknown char * from src/lib/fm-pyfontutils.c:215 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
216 PyDict_SetStringItem(fileinfo, "panose", fontinfo->panose);
when treating unknown char * from src/lib/fm-pyfontutils.c:216 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
217 PyDict_SetStringItem(fileinfo, "face", fontinfo->face);
when treating unknown char * from src/lib/fm-pyfontutils.c:217 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
218 PyDict_SetStringItem(fileinfo, "pfamily", fontinfo->pfamily);
when treating unknown char * from src/lib/fm-pyfontutils.c:218 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
219 PyDict_SetStringItem(fileinfo, "pstyle", fontinfo->pstyle);
when treating unknown char * from src/lib/fm-pyfontutils.c:219 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
220 PyDict_SetStringItem(fileinfo, "pvariant", fontinfo->pvariant);
when treating unknown char * from src/lib/fm-pyfontutils.c:220 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
221 PyDict_SetStringItem(fileinfo, "pweight", fontinfo->pweight);
when treating unknown char * from src/lib/fm-pyfontutils.c:221 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() fails
222 PyDict_SetStringItem(fileinfo, "pstretch", fontinfo->pstretch);
when treating unknown char * from src/lib/fm-pyfontutils.c:222 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
223 PyDict_SetStringItem(fileinfo, "pdescr", fontinfo->pdescr);
when treating unknown char * from src/lib/fm-pyfontutils.c:223 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
224
225 fontinfo_destroy(fontinfo);
226
227 return fileinfo;
228 }
ob_refcnt of PyStringObject is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1
found 263 similar trace(s) to this
File: | src/lib/fm-pyfontutils.c |
Function: | FT_Get_File_Info |
Error: | calling PyDict_SetItem with NULL as argument 2 (D.25555) at src/lib/fm-pyfontutils.c:223 |
175 static PyObject *
176 FT_Get_File_Info(PyObject *self, PyObject *args)
177 {
178 FT_Error error;
179 int index = 0;
180 char *filepath = NULL;
181 PyObject *fileinfo = PyDict_New();
when PyDict_New() succeeds
182 FontInfo *fontinfo, f;
183
184 if (!PyArg_ParseTuple(args, "s|i:FT_Get_File_Info", &filepath, &index))
when PyArg_ParseTuple() succeeds
taking False path
185 return NULL;
186
187 fontinfo = &f;
188 fontinfo_init(fontinfo);
189
190 error = FT_Get_Font_Info(fontinfo, filepath, index);
191 if (error)
when considering value == (FT_Error)0 from src/lib/fm-pyfontutils.c:190
taking False path
192 {
193 char *err;
194 err = g_strdup_printf("Failed to load font! : '%s'", filepath);
195 PyErr_SetString(PyExc_EnvironmentError, err);
196 g_free_and_nullify(err);
197 fontinfo_destroy(fontinfo);
198 return NULL;
199 }
200
201 /* A for loop would have been nice... */
202 PyDict_SetStringItem(fileinfo, "owner", fontinfo->owner);
when treating unknown char * from src/lib/fm-pyfontutils.c:202 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
203 PyDict_SetStringItem(fileinfo, "filepath", fontinfo->filepath);
when treating unknown char * from src/lib/fm-pyfontutils.c:203 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
204 PyDict_SetStringItem(fileinfo, "filetype", fontinfo->filetype);
when treating unknown char * from src/lib/fm-pyfontutils.c:204 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
205 PyDict_SetStringItem(fileinfo, "filesize", fontinfo->filesize);
when treating unknown char * from src/lib/fm-pyfontutils.c:205 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
206 PyDict_SetStringItem(fileinfo, "checksum", fontinfo->checksum);
when treating unknown char * from src/lib/fm-pyfontutils.c:206 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
207 PyDict_SetStringItem(fileinfo, "psname", fontinfo->psname);
when treating unknown char * from src/lib/fm-pyfontutils.c:207 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
208 PyDict_SetStringItem(fileinfo, "family", fontinfo->family);
when treating unknown char * from src/lib/fm-pyfontutils.c:208 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
209 PyDict_SetStringItem(fileinfo, "style", fontinfo->style);
when treating unknown char * from src/lib/fm-pyfontutils.c:209 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
210 PyDict_SetStringItem(fileinfo, "foundry", fontinfo->foundry);
when treating unknown char * from src/lib/fm-pyfontutils.c:210 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
211 PyDict_SetStringItem(fileinfo, "copyright", fontinfo->copyright);
when treating unknown char * from src/lib/fm-pyfontutils.c:211 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
212 PyDict_SetStringItem(fileinfo, "version", fontinfo->version);
when treating unknown char * from src/lib/fm-pyfontutils.c:212 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
213 PyDict_SetStringItem(fileinfo, "description", fontinfo->description);
when treating unknown char * from src/lib/fm-pyfontutils.c:213 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
214 PyDict_SetStringItem(fileinfo, "license", fontinfo->license);
when treating unknown char * from src/lib/fm-pyfontutils.c:214 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
215 PyDict_SetStringItem(fileinfo, "license_url", fontinfo->license_url);
when treating unknown char * from src/lib/fm-pyfontutils.c:215 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
216 PyDict_SetStringItem(fileinfo, "panose", fontinfo->panose);
when treating unknown char * from src/lib/fm-pyfontutils.c:216 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
217 PyDict_SetStringItem(fileinfo, "face", fontinfo->face);
when treating unknown char * from src/lib/fm-pyfontutils.c:217 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
218 PyDict_SetStringItem(fileinfo, "pfamily", fontinfo->pfamily);
when treating unknown char * from src/lib/fm-pyfontutils.c:218 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
219 PyDict_SetStringItem(fileinfo, "pstyle", fontinfo->pstyle);
when treating unknown char * from src/lib/fm-pyfontutils.c:219 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
220 PyDict_SetStringItem(fileinfo, "pvariant", fontinfo->pvariant);
when treating unknown char * from src/lib/fm-pyfontutils.c:220 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
221 PyDict_SetStringItem(fileinfo, "pweight", fontinfo->pweight);
when treating unknown char * from src/lib/fm-pyfontutils.c:221 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() fails
222 PyDict_SetStringItem(fileinfo, "pstretch", fontinfo->pstretch);
when treating unknown char * from src/lib/fm-pyfontutils.c:222 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
223 PyDict_SetStringItem(fileinfo, "pdescr", fontinfo->pdescr);
when treating unknown char * from src/lib/fm-pyfontutils.c:223 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() fails
calling PyDict_SetItem with NULL as argument 2 (D.25555) at src/lib/fm-pyfontutils.c:223
PyDict_SetItem() invokes Py_TYPE() on the pointer via the PyString_CheckExact() macro, thus accessing (NULL)->ob_type
found 4 similar trace(s) to this
224
225 fontinfo_destroy(fontinfo);
226
227 return fileinfo;
228 }
File: | src/lib/fm-pyfontutils.c |
Function: | FT_Get_File_Info |
Error: | calling PyDict_SetItem with NULL as argument 3 (D.25554) at src/lib/fm-pyfontutils.c:223 |
175 static PyObject *
176 FT_Get_File_Info(PyObject *self, PyObject *args)
177 {
178 FT_Error error;
179 int index = 0;
180 char *filepath = NULL;
181 PyObject *fileinfo = PyDict_New();
when PyDict_New() succeeds
182 FontInfo *fontinfo, f;
183
184 if (!PyArg_ParseTuple(args, "s|i:FT_Get_File_Info", &filepath, &index))
when PyArg_ParseTuple() succeeds
taking False path
185 return NULL;
186
187 fontinfo = &f;
188 fontinfo_init(fontinfo);
189
190 error = FT_Get_Font_Info(fontinfo, filepath, index);
191 if (error)
when considering value == (FT_Error)0 from src/lib/fm-pyfontutils.c:190
taking False path
192 {
193 char *err;
194 err = g_strdup_printf("Failed to load font! : '%s'", filepath);
195 PyErr_SetString(PyExc_EnvironmentError, err);
196 g_free_and_nullify(err);
197 fontinfo_destroy(fontinfo);
198 return NULL;
199 }
200
201 /* A for loop would have been nice... */
202 PyDict_SetStringItem(fileinfo, "owner", fontinfo->owner);
when treating unknown char * from src/lib/fm-pyfontutils.c:202 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
203 PyDict_SetStringItem(fileinfo, "filepath", fontinfo->filepath);
when treating unknown char * from src/lib/fm-pyfontutils.c:203 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
204 PyDict_SetStringItem(fileinfo, "filetype", fontinfo->filetype);
when treating unknown char * from src/lib/fm-pyfontutils.c:204 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
205 PyDict_SetStringItem(fileinfo, "filesize", fontinfo->filesize);
when treating unknown char * from src/lib/fm-pyfontutils.c:205 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
206 PyDict_SetStringItem(fileinfo, "checksum", fontinfo->checksum);
when treating unknown char * from src/lib/fm-pyfontutils.c:206 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
207 PyDict_SetStringItem(fileinfo, "psname", fontinfo->psname);
when treating unknown char * from src/lib/fm-pyfontutils.c:207 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
208 PyDict_SetStringItem(fileinfo, "family", fontinfo->family);
when treating unknown char * from src/lib/fm-pyfontutils.c:208 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
209 PyDict_SetStringItem(fileinfo, "style", fontinfo->style);
when treating unknown char * from src/lib/fm-pyfontutils.c:209 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
210 PyDict_SetStringItem(fileinfo, "foundry", fontinfo->foundry);
when treating unknown char * from src/lib/fm-pyfontutils.c:210 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
211 PyDict_SetStringItem(fileinfo, "copyright", fontinfo->copyright);
when treating unknown char * from src/lib/fm-pyfontutils.c:211 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
212 PyDict_SetStringItem(fileinfo, "version", fontinfo->version);
when treating unknown char * from src/lib/fm-pyfontutils.c:212 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
213 PyDict_SetStringItem(fileinfo, "description", fontinfo->description);
when treating unknown char * from src/lib/fm-pyfontutils.c:213 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
214 PyDict_SetStringItem(fileinfo, "license", fontinfo->license);
when treating unknown char * from src/lib/fm-pyfontutils.c:214 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
215 PyDict_SetStringItem(fileinfo, "license_url", fontinfo->license_url);
when treating unknown char * from src/lib/fm-pyfontutils.c:215 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
216 PyDict_SetStringItem(fileinfo, "panose", fontinfo->panose);
when treating unknown char * from src/lib/fm-pyfontutils.c:216 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
217 PyDict_SetStringItem(fileinfo, "face", fontinfo->face);
when treating unknown char * from src/lib/fm-pyfontutils.c:217 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
218 PyDict_SetStringItem(fileinfo, "pfamily", fontinfo->pfamily);
when treating unknown char * from src/lib/fm-pyfontutils.c:218 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
219 PyDict_SetStringItem(fileinfo, "pstyle", fontinfo->pstyle);
when treating unknown char * from src/lib/fm-pyfontutils.c:219 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
220 PyDict_SetStringItem(fileinfo, "pvariant", fontinfo->pvariant);
when treating unknown char * from src/lib/fm-pyfontutils.c:220 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
221 PyDict_SetStringItem(fileinfo, "pweight", fontinfo->pweight);
when treating unknown char * from src/lib/fm-pyfontutils.c:221 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
222 PyDict_SetStringItem(fileinfo, "pstretch", fontinfo->pstretch);
when treating unknown char * from src/lib/fm-pyfontutils.c:222 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
223 PyDict_SetStringItem(fileinfo, "pdescr", fontinfo->pdescr);
when treating unknown char * from src/lib/fm-pyfontutils.c:223 as non-NULL
when PyString_FromString() fails
when PyString_FromString() succeeds
calling PyDict_SetItem with NULL as argument 3 (D.25554) at src/lib/fm-pyfontutils.c:223
PyDict_SetItem() invokes Py_INCREF() on the pointer, thus accessing (NULL)->ob_refcnt
found 1 similar trace(s) to this
224
225 fontinfo_destroy(fontinfo);
226
227 return fileinfo;
228 }
File: | src/lib/fm-pyfontutils.c |
Function: | FT_Get_File_Info |
Error: | calling PyDict_SetItem with NULL as argument 2 (D.25552) at src/lib/fm-pyfontutils.c:222 |
175 static PyObject *
176 FT_Get_File_Info(PyObject *self, PyObject *args)
177 {
178 FT_Error error;
179 int index = 0;
180 char *filepath = NULL;
181 PyObject *fileinfo = PyDict_New();
when PyDict_New() succeeds
182 FontInfo *fontinfo, f;
183
184 if (!PyArg_ParseTuple(args, "s|i:FT_Get_File_Info", &filepath, &index))
when PyArg_ParseTuple() succeeds
taking False path
185 return NULL;
186
187 fontinfo = &f;
188 fontinfo_init(fontinfo);
189
190 error = FT_Get_Font_Info(fontinfo, filepath, index);
191 if (error)
when considering value == (FT_Error)0 from src/lib/fm-pyfontutils.c:190
taking False path
192 {
193 char *err;
194 err = g_strdup_printf("Failed to load font! : '%s'", filepath);
195 PyErr_SetString(PyExc_EnvironmentError, err);
196 g_free_and_nullify(err);
197 fontinfo_destroy(fontinfo);
198 return NULL;
199 }
200
201 /* A for loop would have been nice... */
202 PyDict_SetStringItem(fileinfo, "owner", fontinfo->owner);
when treating unknown char * from src/lib/fm-pyfontutils.c:202 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
203 PyDict_SetStringItem(fileinfo, "filepath", fontinfo->filepath);
when treating unknown char * from src/lib/fm-pyfontutils.c:203 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
204 PyDict_SetStringItem(fileinfo, "filetype", fontinfo->filetype);
when treating unknown char * from src/lib/fm-pyfontutils.c:204 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
205 PyDict_SetStringItem(fileinfo, "filesize", fontinfo->filesize);
when treating unknown char * from src/lib/fm-pyfontutils.c:205 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
206 PyDict_SetStringItem(fileinfo, "checksum", fontinfo->checksum);
when treating unknown char * from src/lib/fm-pyfontutils.c:206 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
207 PyDict_SetStringItem(fileinfo, "psname", fontinfo->psname);
when treating unknown char * from src/lib/fm-pyfontutils.c:207 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
208 PyDict_SetStringItem(fileinfo, "family", fontinfo->family);
when treating unknown char * from src/lib/fm-pyfontutils.c:208 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
209 PyDict_SetStringItem(fileinfo, "style", fontinfo->style);
when treating unknown char * from src/lib/fm-pyfontutils.c:209 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
210 PyDict_SetStringItem(fileinfo, "foundry", fontinfo->foundry);
when treating unknown char * from src/lib/fm-pyfontutils.c:210 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
211 PyDict_SetStringItem(fileinfo, "copyright", fontinfo->copyright);
when treating unknown char * from src/lib/fm-pyfontutils.c:211 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
212 PyDict_SetStringItem(fileinfo, "version", fontinfo->version);
when treating unknown char * from src/lib/fm-pyfontutils.c:212 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
213 PyDict_SetStringItem(fileinfo, "description", fontinfo->description);
when treating unknown char * from src/lib/fm-pyfontutils.c:213 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
214 PyDict_SetStringItem(fileinfo, "license", fontinfo->license);
when treating unknown char * from src/lib/fm-pyfontutils.c:214 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
215 PyDict_SetStringItem(fileinfo, "license_url", fontinfo->license_url);
when treating unknown char * from src/lib/fm-pyfontutils.c:215 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
216 PyDict_SetStringItem(fileinfo, "panose", fontinfo->panose);
when treating unknown char * from src/lib/fm-pyfontutils.c:216 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
217 PyDict_SetStringItem(fileinfo, "face", fontinfo->face);
when treating unknown char * from src/lib/fm-pyfontutils.c:217 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
218 PyDict_SetStringItem(fileinfo, "pfamily", fontinfo->pfamily);
when treating unknown char * from src/lib/fm-pyfontutils.c:218 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
219 PyDict_SetStringItem(fileinfo, "pstyle", fontinfo->pstyle);
when treating unknown char * from src/lib/fm-pyfontutils.c:219 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
220 PyDict_SetStringItem(fileinfo, "pvariant", fontinfo->pvariant);
when treating unknown char * from src/lib/fm-pyfontutils.c:220 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
221 PyDict_SetStringItem(fileinfo, "pweight", fontinfo->pweight);
when treating unknown char * from src/lib/fm-pyfontutils.c:221 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
222 PyDict_SetStringItem(fileinfo, "pstretch", fontinfo->pstretch);
when treating unknown char * from src/lib/fm-pyfontutils.c:222 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() fails
calling PyDict_SetItem with NULL as argument 2 (D.25552) at src/lib/fm-pyfontutils.c:222
PyDict_SetItem() invokes Py_TYPE() on the pointer via the PyString_CheckExact() macro, thus accessing (NULL)->ob_type
found 1 similar trace(s) to this
223 PyDict_SetStringItem(fileinfo, "pdescr", fontinfo->pdescr);
224
225 fontinfo_destroy(fontinfo);
226
227 return fileinfo;
228 }
File: | src/lib/fm-pyfontutils.c |
Function: | FT_Get_File_Info |
Error: | calling PyDict_SetItem with NULL as argument 3 (D.25551) at src/lib/fm-pyfontutils.c:222 |
175 static PyObject *
176 FT_Get_File_Info(PyObject *self, PyObject *args)
177 {
178 FT_Error error;
179 int index = 0;
180 char *filepath = NULL;
181 PyObject *fileinfo = PyDict_New();
when PyDict_New() succeeds
182 FontInfo *fontinfo, f;
183
184 if (!PyArg_ParseTuple(args, "s|i:FT_Get_File_Info", &filepath, &index))
when PyArg_ParseTuple() succeeds
taking False path
185 return NULL;
186
187 fontinfo = &f;
188 fontinfo_init(fontinfo);
189
190 error = FT_Get_Font_Info(fontinfo, filepath, index);
191 if (error)
when considering value == (FT_Error)0 from src/lib/fm-pyfontutils.c:190
taking False path
192 {
193 char *err;
194 err = g_strdup_printf("Failed to load font! : '%s'", filepath);
195 PyErr_SetString(PyExc_EnvironmentError, err);
196 g_free_and_nullify(err);
197 fontinfo_destroy(fontinfo);
198 return NULL;
199 }
200
201 /* A for loop would have been nice... */
202 PyDict_SetStringItem(fileinfo, "owner", fontinfo->owner);
when treating unknown char * from src/lib/fm-pyfontutils.c:202 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
203 PyDict_SetStringItem(fileinfo, "filepath", fontinfo->filepath);
when treating unknown char * from src/lib/fm-pyfontutils.c:203 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
204 PyDict_SetStringItem(fileinfo, "filetype", fontinfo->filetype);
when treating unknown char * from src/lib/fm-pyfontutils.c:204 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
205 PyDict_SetStringItem(fileinfo, "filesize", fontinfo->filesize);
when treating unknown char * from src/lib/fm-pyfontutils.c:205 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
206 PyDict_SetStringItem(fileinfo, "checksum", fontinfo->checksum);
when treating unknown char * from src/lib/fm-pyfontutils.c:206 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
207 PyDict_SetStringItem(fileinfo, "psname", fontinfo->psname);
when treating unknown char * from src/lib/fm-pyfontutils.c:207 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
208 PyDict_SetStringItem(fileinfo, "family", fontinfo->family);
when treating unknown char * from src/lib/fm-pyfontutils.c:208 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
209 PyDict_SetStringItem(fileinfo, "style", fontinfo->style);
when treating unknown char * from src/lib/fm-pyfontutils.c:209 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
210 PyDict_SetStringItem(fileinfo, "foundry", fontinfo->foundry);
when treating unknown char * from src/lib/fm-pyfontutils.c:210 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
211 PyDict_SetStringItem(fileinfo, "copyright", fontinfo->copyright);
when treating unknown char * from src/lib/fm-pyfontutils.c:211 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
212 PyDict_SetStringItem(fileinfo, "version", fontinfo->version);
when treating unknown char * from src/lib/fm-pyfontutils.c:212 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
213 PyDict_SetStringItem(fileinfo, "description", fontinfo->description);
when treating unknown char * from src/lib/fm-pyfontutils.c:213 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
214 PyDict_SetStringItem(fileinfo, "license", fontinfo->license);
when treating unknown char * from src/lib/fm-pyfontutils.c:214 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
215 PyDict_SetStringItem(fileinfo, "license_url", fontinfo->license_url);
when treating unknown char * from src/lib/fm-pyfontutils.c:215 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
216 PyDict_SetStringItem(fileinfo, "panose", fontinfo->panose);
when treating unknown char * from src/lib/fm-pyfontutils.c:216 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
217 PyDict_SetStringItem(fileinfo, "face", fontinfo->face);
when treating unknown char * from src/lib/fm-pyfontutils.c:217 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
218 PyDict_SetStringItem(fileinfo, "pfamily", fontinfo->pfamily);
when treating unknown char * from src/lib/fm-pyfontutils.c:218 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
219 PyDict_SetStringItem(fileinfo, "pstyle", fontinfo->pstyle);
when treating unknown char * from src/lib/fm-pyfontutils.c:219 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
220 PyDict_SetStringItem(fileinfo, "pvariant", fontinfo->pvariant);
when treating unknown char * from src/lib/fm-pyfontutils.c:220 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
221 PyDict_SetStringItem(fileinfo, "pweight", fontinfo->pweight);
when treating unknown char * from src/lib/fm-pyfontutils.c:221 as non-NULL
when PyString_FromString() succeeds
when PyString_FromString() succeeds
when PyDict_SetItem() succeeds
222 PyDict_SetStringItem(fileinfo, "pstretch", fontinfo->pstretch);
when treating unknown char * from src/lib/fm-pyfontutils.c:222 as non-NULL
when PyString_FromString() fails
when PyString_FromString() succeeds
calling PyDict_SetItem with NULL as argument 3 (D.25551) at src/lib/fm-pyfontutils.c:222
PyDict_SetItem() invokes Py_INCREF() on the pointer, thus accessing (NULL)->ob_refcnt
223 PyDict_SetStringItem(fileinfo, "pdescr", fontinfo->pdescr);
224
225 fontinfo_destroy(fontinfo);
226
227 return fileinfo;
228 }
File: | src/lib/fm-pyfontutils.c |
Function: | FT_Get_File_Info |
Error: | ob_refcnt of '*fileinfo' is 1 too high |
175 static PyObject *
176 FT_Get_File_Info(PyObject *self, PyObject *args)
177 {
178 FT_Error error;
179 int index = 0;
180 char *filepath = NULL;
181 PyObject *fileinfo = PyDict_New();
when PyDict_New() succeeds
PyDictObject allocated at: PyObject *fileinfo = PyDict_New();
ob_refcnt is now refs: 1 + N where N >= 0
182 FontInfo *fontinfo, f;
183
184 if (!PyArg_ParseTuple(args, "s|i:FT_Get_File_Info", &filepath, &index))
when PyArg_ParseTuple() succeeds
taking False path
185 return NULL;
186
187 fontinfo = &f;
188 fontinfo_init(fontinfo);
189
190 error = FT_Get_Font_Info(fontinfo, filepath, index);
191 if (error)
when considering range: -0x80000000 <= value <= -1
taking True path
192 {
193 char *err;
194 err = g_strdup_printf("Failed to load font! : '%s'", filepath);
195 PyErr_SetString(PyExc_EnvironmentError, err);
calling PyErr_SetString()
196 g_free_and_nullify(err);
197 fontinfo_destroy(fontinfo);
198 return NULL;
199 }
200
201 /* A for loop would have been nice... */
202 PyDict_SetStringItem(fileinfo, "owner", fontinfo->owner);
203 PyDict_SetStringItem(fileinfo, "filepath", fontinfo->filepath);
204 PyDict_SetStringItem(fileinfo, "filetype", fontinfo->filetype);
205 PyDict_SetStringItem(fileinfo, "filesize", fontinfo->filesize);
206 PyDict_SetStringItem(fileinfo, "checksum", fontinfo->checksum);
207 PyDict_SetStringItem(fileinfo, "psname", fontinfo->psname);
208 PyDict_SetStringItem(fileinfo, "family", fontinfo->family);
209 PyDict_SetStringItem(fileinfo, "style", fontinfo->style);
210 PyDict_SetStringItem(fileinfo, "foundry", fontinfo->foundry);
211 PyDict_SetStringItem(fileinfo, "copyright", fontinfo->copyright);
212 PyDict_SetStringItem(fileinfo, "version", fontinfo->version);
213 PyDict_SetStringItem(fileinfo, "description", fontinfo->description);
214 PyDict_SetStringItem(fileinfo, "license", fontinfo->license);
215 PyDict_SetStringItem(fileinfo, "license_url", fontinfo->license_url);
216 PyDict_SetStringItem(fileinfo, "panose", fontinfo->panose);
217 PyDict_SetStringItem(fileinfo, "face", fontinfo->face);
218 PyDict_SetStringItem(fileinfo, "pfamily", fontinfo->pfamily);
219 PyDict_SetStringItem(fileinfo, "pstyle", fontinfo->pstyle);
220 PyDict_SetStringItem(fileinfo, "pvariant", fontinfo->pvariant);
221 PyDict_SetStringItem(fileinfo, "pweight", fontinfo->pweight);
222 PyDict_SetStringItem(fileinfo, "pstretch", fontinfo->pstretch);
223 PyDict_SetStringItem(fileinfo, "pdescr", fontinfo->pdescr);
224
225 fontinfo_destroy(fontinfo);
226
227 return fileinfo;
228 }
ob_refcnt of '*fileinfo' is 1 too high
was expecting final ob_refcnt to be N + 0 (for some unknown N)
but final ob_refcnt is N + 1