File: python-virtkey.c
Function: report_key_info
Error: ob_refcnt of PyStringObject is 1 too high
439 static PyObject * 
440 report_key_info (virtkey * cvirt, XkbKeyPtr key, int col, int *x, int *y)
441 {
442     PyObject * keyObject = PyDict_New();
when PyDict_New() succeeds
443 
444     PyDict_SetItemString(keyObject,"name", 
when PyString_FromStringAndSize() succeeds
when PyDict_SetItemString() succeeds
PyStringObject allocated at:     PyDict_SetItemString(keyObject,"name",
ob_refcnt is now refs: 1 + N where N >= 0
ob_refcnt is now refs: 1 + N where N >= 1
445             PyString_FromStringAndSize(key->name.name,XkbKeyNameLength));
when treating unknown struct _XkbKey * from python-virtkey.c:440 as non-NULL
446 
447     int x1 = 0;
448     int x2 = 0;
449     int y1 = 0;
450     int y2 = 0;
451 
452 
453 
454     XkbGeometryPtr geom = cvirt->kbd->geom;
when treating unknown struct _XkbDesc * from python-virtkey.c:454 as non-NULL
455     char name[XkbKeyNameLength+1];
456     //XkbKeyAliasPtr aliases = cvirt->kbd->geom->key_aliases;
457     int k = cvirt->kbd->max_key_code  - cvirt->kbd->min_key_code;
when treating unknown struct _XkbDesc * from python-virtkey.c:457 as non-NULL
when treating unknown struct _XkbDesc * from python-virtkey.c:457 as non-NULL
458 
459 
460     // Above calculation is
461     // WORKAROUND FOR BUG in XFree86's XKB implementation, 
462     // which reports kbd->names->num_keys == 0! 
463     // In fact, num_keys should be max_key_code-1, and the names->keys
464     // array is indeed valid!
465     //
466     // [bug identified in XFree86 4.2.0]
467 
468 
469     strncpy (name, key->name.name, XkbKeyNameLength);
470     name[XkbKeyNameLength] = '\0';
471     *x += key->gap/10;
when treating unknown int * from python-virtkey.c:440 as non-NULL
472 
473 
474     PyObject * labelTuple = PyTuple_New(5);//del
when PyTuple_New() succeeds
475 
476     for (k = cvirt->kbd->min_key_code; k < cvirt->kbd->max_key_code; ++k) 
when treating unknown struct _XkbDesc * from python-virtkey.c:476 as non-NULL
when treating unknown struct _XkbDesc * from python-virtkey.c:476 as non-NULL
when taking True path
when treating unknown struct _XkbDesc * from python-virtkey.c:476 as non-NULL
when taking False path
477     {
478         if (!strncmp (name, cvirt->kbd->names->keys[k].name, XkbKeyNameLength))
when treating unknown struct _XkbDesc * from python-virtkey.c:478 as non-NULL
when treating unknown struct _XkbNamesRec * from python-virtkey.c:478 as non-NULL
when treating unknown struct _XkbKeyNameRec * from python-virtkey.c:478 as non-NULL
when considering range: -0x80000000 <= value <= -1
taking False path
479         { 
480 
481             labelTuple = virtkey_get_labels_from_keycode_internal(cvirt, k);
482 
483                
484             x1 = *x + geom->shapes[key->shape_ndx].bounds.x1/10;
485             y1 = *y + geom->shapes[key->shape_ndx].bounds.y1/10;
486             x2 = geom->shapes[key->shape_ndx].bounds.x2/10 - 
487                                 geom->shapes[key->shape_ndx].bounds.x1/10;
488 
489             y2 = geom->shapes[key->shape_ndx].bounds.y2/10 - 
490                                 geom->shapes[key->shape_ndx].bounds.y1/10;
491 
492             *x += geom->shapes[key->shape_ndx].bounds.x2/10;
493 
494             break;	        
495         }		   
496     }
497 
498     PyObject * x1ob = PyInt_FromLong(x1);
when PyInt_FromLong() succeeds
499     PyObject * y1ob = PyInt_FromLong(y1);
when PyInt_FromLong() succeeds
500     PyObject * x2ob = PyInt_FromLong(x2);
when PyInt_FromLong() succeeds
501     PyObject * y2ob = PyInt_FromLong(y2);
when PyInt_FromLong() succeeds
502                 
503                 
504     PyObject * shape = PyTuple_Pack(4, x1ob, y1ob, x2ob, y2ob);
when PyTuple_Pack() succeeds
505             
506     Py_DECREF(x1ob);
when taking True path
507     Py_DECREF(y1ob);	   		
when taking True path
508     Py_DECREF(x2ob);
when taking True path
509     Py_DECREF(y2ob);
when taking True path
510             
511     PyDict_SetItemString(keyObject,"shape",shape);
when PyDict_SetItemString() fails
512     Py_DECREF(shape);					
when taking True path
513        
514     PyObject * keycodeOb = PyInt_FromLong(k);
when PyInt_FromLong() succeeds
515     PyDict_SetItemString(keyObject, "keycode", keycodeOb);
when PyDict_SetItemString() fails
516     Py_DECREF(keycodeOb);
when taking True path
517 
518     /*
519     PyObject * keyOb = PyInt_FromLong(keysym);
520     PyDict_SetItemString(keyObject,"keysym", keyOb);
521     Py_DECREF(keyOb);
522     */
523 
524     PyDict_SetItemString(keyObject,"labels", labelTuple);
when PyDict_SetItemString() succeeds
525             
526     return keyObject;
returning
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 21 similar trace(s) to this
527 }

File: python-virtkey.c
Function: report_key_info
Error: ob_refcnt of '*labelTuple' is 1 too high
439 static PyObject * 
440 report_key_info (virtkey * cvirt, XkbKeyPtr key, int col, int *x, int *y)
441 {
442     PyObject * keyObject = PyDict_New();
when PyDict_New() succeeds
443 
444     PyDict_SetItemString(keyObject,"name", 
when PyString_FromStringAndSize() succeeds
when PyDict_SetItemString() succeeds
445             PyString_FromStringAndSize(key->name.name,XkbKeyNameLength));
when treating unknown struct _XkbKey * from python-virtkey.c:440 as non-NULL
446 
447     int x1 = 0;
448     int x2 = 0;
449     int y1 = 0;
450     int y2 = 0;
451 
452 
453 
454     XkbGeometryPtr geom = cvirt->kbd->geom;
when treating unknown struct _XkbDesc * from python-virtkey.c:454 as non-NULL
455     char name[XkbKeyNameLength+1];
456     //XkbKeyAliasPtr aliases = cvirt->kbd->geom->key_aliases;
457     int k = cvirt->kbd->max_key_code  - cvirt->kbd->min_key_code;
when treating unknown struct _XkbDesc * from python-virtkey.c:457 as non-NULL
when treating unknown struct _XkbDesc * from python-virtkey.c:457 as non-NULL
458 
459 
460     // Above calculation is
461     // WORKAROUND FOR BUG in XFree86's XKB implementation, 
462     // which reports kbd->names->num_keys == 0! 
463     // In fact, num_keys should be max_key_code-1, and the names->keys
464     // array is indeed valid!
465     //
466     // [bug identified in XFree86 4.2.0]
467 
468 
469     strncpy (name, key->name.name, XkbKeyNameLength);
470     name[XkbKeyNameLength] = '\0';
471     *x += key->gap/10;
when treating unknown int * from python-virtkey.c:440 as non-NULL
472 
473 
474     PyObject * labelTuple = PyTuple_New(5);//del
when PyTuple_New() succeeds
PyTupleObject allocated at:     PyObject * labelTuple = PyTuple_New(5);//del
ob_refcnt is now refs: 1 + N where N >= 0
475 
476     for (k = cvirt->kbd->min_key_code; k < cvirt->kbd->max_key_code; ++k) 
when treating unknown struct _XkbDesc * from python-virtkey.c:476 as non-NULL
when treating unknown struct _XkbDesc * from python-virtkey.c:476 as non-NULL
when taking True path
when treating unknown struct _XkbDesc * from python-virtkey.c:476 as non-NULL
when taking False path
477     {
478         if (!strncmp (name, cvirt->kbd->names->keys[k].name, XkbKeyNameLength))
when treating unknown struct _XkbDesc * from python-virtkey.c:478 as non-NULL
when treating unknown struct _XkbNamesRec * from python-virtkey.c:478 as non-NULL
when treating unknown struct _XkbKeyNameRec * from python-virtkey.c:478 as non-NULL
when considering range: -0x80000000 <= value <= -1
taking False path
479         { 
480 
481             labelTuple = virtkey_get_labels_from_keycode_internal(cvirt, k);
482 
483                
484             x1 = *x + geom->shapes[key->shape_ndx].bounds.x1/10;
485             y1 = *y + geom->shapes[key->shape_ndx].bounds.y1/10;
486             x2 = geom->shapes[key->shape_ndx].bounds.x2/10 - 
487                                 geom->shapes[key->shape_ndx].bounds.x1/10;
488 
489             y2 = geom->shapes[key->shape_ndx].bounds.y2/10 - 
490                                 geom->shapes[key->shape_ndx].bounds.y1/10;
491 
492             *x += geom->shapes[key->shape_ndx].bounds.x2/10;
493 
494             break;	        
495         }		   
496     }
497 
498     PyObject * x1ob = PyInt_FromLong(x1);
when PyInt_FromLong() succeeds
499     PyObject * y1ob = PyInt_FromLong(y1);
when PyInt_FromLong() succeeds
500     PyObject * x2ob = PyInt_FromLong(x2);
when PyInt_FromLong() succeeds
501     PyObject * y2ob = PyInt_FromLong(y2);
when PyInt_FromLong() succeeds
502                 
503                 
504     PyObject * shape = PyTuple_Pack(4, x1ob, y1ob, x2ob, y2ob);
when PyTuple_Pack() succeeds
505             
506     Py_DECREF(x1ob);
when taking True path
507     Py_DECREF(y1ob);	   		
when taking True path
508     Py_DECREF(x2ob);
when taking True path
509     Py_DECREF(y2ob);
when taking True path
510             
511     PyDict_SetItemString(keyObject,"shape",shape);
when PyDict_SetItemString() fails
512     Py_DECREF(shape);					
when taking True path
513        
514     PyObject * keycodeOb = PyInt_FromLong(k);
when PyInt_FromLong() succeeds
515     PyDict_SetItemString(keyObject, "keycode", keycodeOb);
when PyDict_SetItemString() fails
516     Py_DECREF(keycodeOb);
when taking True path
517 
518     /*
519     PyObject * keyOb = PyInt_FromLong(keysym);
520     PyDict_SetItemString(keyObject,"keysym", keyOb);
521     Py_DECREF(keyOb);
522     */
523 
524     PyDict_SetItemString(keyObject,"labels", labelTuple);
when PyDict_SetItemString() succeeds
ob_refcnt is now refs: 1 + N where N >= 1
525             
526     return keyObject;
returning
ob_refcnt of '*labelTuple' 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 21 similar trace(s) to this
527 }

File: python-virtkey.c
Function: report_key_info
Error: calling PyDict_SetItemString with NULL as argument 3 (keycodeOb) at python-virtkey.c:515
439 static PyObject * 
440 report_key_info (virtkey * cvirt, XkbKeyPtr key, int col, int *x, int *y)
441 {
442     PyObject * keyObject = PyDict_New();
when PyDict_New() succeeds
443 
444     PyDict_SetItemString(keyObject,"name", 
when PyString_FromStringAndSize() succeeds
when PyDict_SetItemString() succeeds
445             PyString_FromStringAndSize(key->name.name,XkbKeyNameLength));
when treating unknown struct _XkbKey * from python-virtkey.c:440 as non-NULL
446 
447     int x1 = 0;
448     int x2 = 0;
449     int y1 = 0;
450     int y2 = 0;
451 
452 
453 
454     XkbGeometryPtr geom = cvirt->kbd->geom;
when treating unknown struct _XkbDesc * from python-virtkey.c:454 as non-NULL
455     char name[XkbKeyNameLength+1];
456     //XkbKeyAliasPtr aliases = cvirt->kbd->geom->key_aliases;
457     int k = cvirt->kbd->max_key_code  - cvirt->kbd->min_key_code;
when treating unknown struct _XkbDesc * from python-virtkey.c:457 as non-NULL
when treating unknown struct _XkbDesc * from python-virtkey.c:457 as non-NULL
458 
459 
460     // Above calculation is
461     // WORKAROUND FOR BUG in XFree86's XKB implementation, 
462     // which reports kbd->names->num_keys == 0! 
463     // In fact, num_keys should be max_key_code-1, and the names->keys
464     // array is indeed valid!
465     //
466     // [bug identified in XFree86 4.2.0]
467 
468 
469     strncpy (name, key->name.name, XkbKeyNameLength);
470     name[XkbKeyNameLength] = '\0';
471     *x += key->gap/10;
when treating unknown int * from python-virtkey.c:440 as non-NULL
472 
473 
474     PyObject * labelTuple = PyTuple_New(5);//del
when PyTuple_New() succeeds
475 
476     for (k = cvirt->kbd->min_key_code; k < cvirt->kbd->max_key_code; ++k) 
when treating unknown struct _XkbDesc * from python-virtkey.c:476 as non-NULL
when treating unknown struct _XkbDesc * from python-virtkey.c:476 as non-NULL
when taking True path
when treating unknown struct _XkbDesc * from python-virtkey.c:476 as non-NULL
when taking False path
477     {
478         if (!strncmp (name, cvirt->kbd->names->keys[k].name, XkbKeyNameLength))
when treating unknown struct _XkbDesc * from python-virtkey.c:478 as non-NULL
when treating unknown struct _XkbNamesRec * from python-virtkey.c:478 as non-NULL
when treating unknown struct _XkbKeyNameRec * from python-virtkey.c:478 as non-NULL
when considering range: -0x80000000 <= value <= -1
taking False path
479         { 
480 
481             labelTuple = virtkey_get_labels_from_keycode_internal(cvirt, k);
482 
483                
484             x1 = *x + geom->shapes[key->shape_ndx].bounds.x1/10;
485             y1 = *y + geom->shapes[key->shape_ndx].bounds.y1/10;
486             x2 = geom->shapes[key->shape_ndx].bounds.x2/10 - 
487                                 geom->shapes[key->shape_ndx].bounds.x1/10;
488 
489             y2 = geom->shapes[key->shape_ndx].bounds.y2/10 - 
490                                 geom->shapes[key->shape_ndx].bounds.y1/10;
491 
492             *x += geom->shapes[key->shape_ndx].bounds.x2/10;
493 
494             break;	        
495         }		   
496     }
497 
498     PyObject * x1ob = PyInt_FromLong(x1);
when PyInt_FromLong() succeeds
499     PyObject * y1ob = PyInt_FromLong(y1);
when PyInt_FromLong() succeeds
500     PyObject * x2ob = PyInt_FromLong(x2);
when PyInt_FromLong() succeeds
501     PyObject * y2ob = PyInt_FromLong(y2);
when PyInt_FromLong() succeeds
502                 
503                 
504     PyObject * shape = PyTuple_Pack(4, x1ob, y1ob, x2ob, y2ob);
when PyTuple_Pack() succeeds
505             
506     Py_DECREF(x1ob);
when taking True path
507     Py_DECREF(y1ob);	   		
when taking True path
508     Py_DECREF(x2ob);
when taking True path
509     Py_DECREF(y2ob);
when taking True path
510             
511     PyDict_SetItemString(keyObject,"shape",shape);
when PyDict_SetItemString() succeeds
512     Py_DECREF(shape);					
when taking True path
513        
514     PyObject * keycodeOb = PyInt_FromLong(k);
when PyInt_FromLong() fails
515     PyDict_SetItemString(keyObject, "keycode", keycodeOb);
calling PyDict_SetItemString with NULL as argument 3 (keycodeOb) at python-virtkey.c:515
found 1 similar trace(s) to this
516     Py_DECREF(keycodeOb);
517 
518     /*
519     PyObject * keyOb = PyInt_FromLong(keysym);
520     PyDict_SetItemString(keyObject,"keysym", keyOb);
521     Py_DECREF(keyOb);
522     */
523 
524     PyDict_SetItemString(keyObject,"labels", labelTuple);
525             
526     return keyObject;
527 }