Neal Becker, 27.08.2010 17:04:
> boost::python is not a code generator.  Is is (some of the most twisted,
> obfuscated ever!) native c++ code.

Ah, right. It actually seems to have dedicated code for that in

libs/python/src/object/class.cpp


       static PyObject* instance_get_dict(PyObject* op, void*)
       {
           instance<>* inst = downcast<instance<> >(op);
           if (inst->dict == 0)
               inst->dict = PyDict_New();
           return python::xincref(inst->dict);
       }

       static int instance_set_dict(PyObject* op, PyObject* dict, void*)
       {
           instance<>* inst = downcast<instance<> >(op);
           python::xdecref(inst->dict);
           inst->dict = python::incref(dict);
           return 0;
       }

   }


   static PyGetSetDef instance_getsets[] = {
       {const_cast<char*>("__dict__"),  instance_get_dict, 
instance_set_dict, NULL, 0},
       {0, 0, 0, 0, 0}
   };


Stefan
_______________________________________________
Cython-dev mailing list
[email protected]
http://codespeak.net/mailman/listinfo/cython-dev

Reply via email to