int PyCell_Set(PyObject *op, PyObject *obj) { if (!PyCell_Check(op)) { PyErr_BadInternalCall(); return -1; } else { PyObject* oldobj; JyObject* jy; oldobj = PyCell_GET(op); Py_XINCREF(obj); PyCell_SET(op, obj); updateJyGCHeadLink(op, AS_JY_WITH_GC(op), 0, obj, obj ? AS_JY(obj) : NULL); Py_XDECREF(oldobj); jy = AS_JY_WITH_GC(op); if (JyObject_IS_INITIALIZED(jy)) { env(-1); (*env)->SetObjectField(env, jy->jy, pyCell_ob_refField, JyNI_JythonPyObject_FromPyObject(obj)); } return 0; } }
static void slice_dealloc(PySliceObject *r) { JyObject* jy = AS_JY_NO_GC(r); if (JyObject_IS_INITIALIZED(jy)) { env(); Py_DECREF(JyNI_PyObject_FromJythonPyObject((*env)->CallObjectMethod(env, jy->jy, pySliceGetStart))); Py_DECREF(JyNI_PyObject_FromJythonPyObject((*env)->CallObjectMethod(env, jy->jy, pySliceGetStop))); Py_DECREF(JyNI_PyObject_FromJythonPyObject((*env)->CallObjectMethod(env, jy->jy, pySliceGetStep))); // Py_DECREF(r->step); // Py_DECREF(r->start); // Py_DECREF(r->stop); // PyObject_Del(r); } JyNI_CleanUp_JyObject(jy); //PyObject_Del(jy); PyObject_RawFree(jy); }