"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "bindings/pyroot/cppyy/CPyCppyy/src/MemoryRegulator.cxx" between
root_v6.26.08.source.tar.gz and root_v6.26.10.source.tar.gz

About: The ROOT system is an object-oriented framework for large scale scientific data analysis and data mining. Latest pro(duction) version.

MemoryRegulator.cxx  (root_v6.26.08.source):MemoryRegulator.cxx  (root_v6.26.10.source)
skipping to change at line 46 skipping to change at line 46
struct InitCPyCppyy_NoneType_t { struct InitCPyCppyy_NoneType_t {
InitCPyCppyy_NoneType_t() { InitCPyCppyy_NoneType_t() {
// create a CPyCppyy NoneType (for references that went dodo) from NoneType // create a CPyCppyy NoneType (for references that went dodo) from NoneType
memset(&CPyCppyy_NoneType, 0, sizeof(CPyCppyy_NoneType)); memset(&CPyCppyy_NoneType, 0, sizeof(CPyCppyy_NoneType));
((PyObject&)CPyCppyy_NoneType).ob_type = &PyType_Type; ((PyObject&)CPyCppyy_NoneType).ob_type = &PyType_Type;
((PyObject&)CPyCppyy_NoneType).ob_refcnt = 1; ((PyObject&)CPyCppyy_NoneType).ob_refcnt = 1;
((PyVarObject&)CPyCppyy_NoneType).ob_size = 0; ((PyVarObject&)CPyCppyy_NoneType).ob_size = 0;
CPyCppyy_NoneType.tp_name = const_cast<char*>("CPyCppyy_NoneType" ); CPyCppyy_NoneType.tp_name = const_cast<char*>("CPyCppyy_NoneType" );
CPyCppyy_NoneType.tp_flags = Py_TPFLAGS_HAVE_RICHCOMPARE | Py_TPFL AGS_HAVE_GC; CPyCppyy_NoneType.tp_flags = Py_TPFLAGS_HAVE_RICHCOMPARE;
CPyCppyy_NoneType.tp_traverse = (traverseproc)0; CPyCppyy_NoneType.tp_traverse = (traverseproc)0;
CPyCppyy_NoneType.tp_clear = (inquiry)0; CPyCppyy_NoneType.tp_clear = (inquiry)0;
CPyCppyy_NoneType.tp_dealloc = (destructor)&InitCPyCppyy_NoneType_t: :DeAlloc; CPyCppyy_NoneType.tp_dealloc = (destructor)&InitCPyCppyy_NoneType_t: :DeAlloc;
CPyCppyy_NoneType.tp_repr = Py_TYPE(Py_None)->tp_repr; CPyCppyy_NoneType.tp_repr = Py_TYPE(Py_None)->tp_repr;
CPyCppyy_NoneType.tp_richcompare = (richcmpfunc)&InitCPyCppyy_NoneType_t ::RichCompare; CPyCppyy_NoneType.tp_richcompare = (richcmpfunc)&InitCPyCppyy_NoneType_t ::RichCompare;
#if PY_VERSION_HEX < 0x03000000 #if PY_VERSION_HEX < 0x03000000
// tp_compare has become tp_reserved (place holder only) in p3 // tp_compare has become tp_reserved (place holder only) in p3
CPyCppyy_NoneType.tp_compare = (cmpfunc)&InitCPyCppyy_NoneType_t::Co mpare; CPyCppyy_NoneType.tp_compare = (cmpfunc)&InitCPyCppyy_NoneType_t::Co mpare;
#endif #endif
skipping to change at line 134 skipping to change at line 134
// nullify the object // nullify the object
if (!CPyCppyy_NoneType.tp_traverse) { if (!CPyCppyy_NoneType.tp_traverse) {
// take a reference as we're copying its function pointers // take a reference as we're copying its function pointers
Py_INCREF(Py_TYPE(pyobj)); Py_INCREF(Py_TYPE(pyobj));
// all object that arrive here are expected to be of the same type ("ins tance") // all object that arrive here are expected to be of the same type ("ins tance")
CPyCppyy_NoneType.tp_traverse = Py_TYPE(pyobj)->tp_traverse; CPyCppyy_NoneType.tp_traverse = Py_TYPE(pyobj)->tp_traverse;
CPyCppyy_NoneType.tp_clear = Py_TYPE(pyobj)->tp_clear; CPyCppyy_NoneType.tp_clear = Py_TYPE(pyobj)->tp_clear;
CPyCppyy_NoneType.tp_free = Py_TYPE(pyobj)->tp_free; CPyCppyy_NoneType.tp_free = Py_TYPE(pyobj)->tp_free;
CPyCppyy_NoneType.tp_flags = Py_TYPE(pyobj)->tp_flags;
} else if (CPyCppyy_NoneType.tp_traverse != Py_TYPE(pyobj)->tp_traverse) { } else if (CPyCppyy_NoneType.tp_traverse != Py_TYPE(pyobj)->tp_traverse) {
// TODO: SystemError? // TODO: SystemError?
std::cerr << "in CPyCppyy::MemoryRegulater, unexpected object of typ e: " std::cerr << "in CPyCppyy::MemoryRegulater, unexpected object of typ e: "
<< Py_TYPE(pyobj)->tp_name << std::endl; << Py_TYPE(pyobj)->tp_name << std::endl;
// drop object and leave before too much damage is done // drop object and leave before too much damage is done
Py_DECREF(pyscope); Py_DECREF(pyscope);
return false; return false;
} }
 End of changes. 2 change blocks. 
1 lines changed or deleted 2 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)