@@ -458,22 +458,12 @@ uop_optimize(
458
458
return 1 ;
459
459
}
460
460
461
- static PyObject *
462
- uop_get_traces (PyObject * self , PyObject * args )
463
- {
464
- return PyLong_FromLongLong (((UOpOptimizerObject * )self )-> traces_executed );
465
- }
466
-
467
- static PyObject *
468
- uop_get_instrs (PyObject * self , PyObject * args )
469
- {
470
- return PyLong_FromLongLong (((UOpOptimizerObject * )self )-> instrs_executed );
471
- }
472
-
473
- static PyMethodDef uop_methods [] = {
474
- { "get_traces" , uop_get_traces , METH_NOARGS , NULL },
475
- { "get_instrs" , uop_get_instrs , METH_NOARGS , NULL },
476
- { NULL , NULL },
461
+ static PyMemberDef uop_members [] = {
462
+ {"traces_executed" , Py_T_INT , offsetof(UOpOptimizerObject , traces_executed ), 0 ,
463
+ "Total number of traces executed since inception" },
464
+ {"instrs_executed" , Py_T_INT , offsetof(UOpOptimizerObject , instrs_executed ), 0 ,
465
+ "Total number of instructions executed since inception" },
466
+ {NULL }
477
467
};
478
468
479
469
static PyTypeObject UOpOptimizer_Type = {
@@ -482,12 +472,15 @@ static PyTypeObject UOpOptimizer_Type = {
482
472
.tp_basicsize = sizeof (UOpOptimizerObject ),
483
473
.tp_itemsize = 0 ,
484
474
.tp_flags = Py_TPFLAGS_DEFAULT | Py_TPFLAGS_DISALLOW_INSTANTIATION ,
485
- .tp_methods = uop_methods ,
475
+ .tp_members = uop_members ,
486
476
};
487
477
488
478
PyObject *
489
479
PyUnstable_Optimizer_NewUOpOptimizer (void )
490
480
{
481
+ if (PyType_Ready (& UOpOptimizer_Type ) < 0 ) {
482
+ return NULL ;
483
+ }
491
484
UOpOptimizerObject * opt = (UOpOptimizerObject * )_PyObject_New (& UOpOptimizer_Type );
492
485
if (opt == NULL ) {
493
486
return NULL ;
0 commit comments