File: src/BTrees/BTreeTemplate.c
Function: BTree__p_deactivate
Error: returning (PyObject*)NULL without setting an exception
867 static PyObject *
868 BTree__p_deactivate(BTree *self, PyObject *args, PyObject *keywords)
869 {
870   int ghostify = 1;
871   PyObject *force = NULL;
872 
873   if (args && PyTuple_GET_SIZE(args) > 0) {
taking True path
when considering range: -0x8000000000000000 <= value <= 0
taking False path
874     PyErr_SetString(PyExc_TypeError,
875                     "_p_deactivate takes not positional arguments");
876     return NULL;
877   }
878   if (keywords) {
taking True path
879     int size = PyDict_Size(keywords);
when PyDict_Size() returns ma_used
880     force = PyDict_GetItemString(keywords, "force");
PyDict_GetItemString does not find string
881     if (force)
taking False path
882       size--;
883     if (size) {
when considering value == (int)0 from src/BTrees/BTreeTemplate.c:879
taking False path
884       PyErr_SetString(PyExc_TypeError,
885                       "_p_deactivate only accepts keyword arg force");
886       return NULL;
887     }
888   }
889 
890   if (self->jar && self->oid) {
when treating unknown struct PyObject * from src/BTrees/BTreeTemplate.c:890 as non-NULL
taking True path
when treating unknown struct PyObject * from src/BTrees/BTreeTemplate.c:890 as non-NULL
taking True path
891     ghostify = self->state == cPersistent_UPTODATE_STATE;
when considering value == (signed char)0 from src/BTrees/BTreeTemplate.c:891
892     if (!ghostify && force) {
taking False path
893       if (PyObject_IsTrue(force))
894         ghostify = 1;
895       if (PyErr_Occurred())
896         return NULL;
897     }
898     if (ghostify) {
taking True path
899       if (_BTree_clear(self) < 0)
when considering range: -0x80000000 <= value <= -1
taking True path
900         return NULL;
901       PER_GHOSTIFY(self);
902     }
903   }
904 
905   Py_INCREF(Py_None);
906   return Py_None;
907 }
returning (PyObject*)NULL without setting an exception
found 3 similar trace(s) to this