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 }