File: src/BTrees/BucketTemplate.c
Function: bucket__p_deactivate
Error: returning (PyObject*)NULL without setting an exception
1034 static PyObject *
1035 bucket__p_deactivate(Bucket *self, PyObject *args, PyObject *keywords)
1036 {
1037     int ghostify = 1;
1038     PyObject *force = NULL;
1039 
1040     if (args && PyTuple_GET_SIZE(args) > 0) {
taking True path
when considering range: -0x8000000000000000 <= value <= 0
taking False path
1041 	PyErr_SetString(PyExc_TypeError,
1042 			"_p_deactivate takes not positional arguments");
1043 	return NULL;
1044     }
1045     if (keywords) {
taking True path
1046 	int size = PyDict_Size(keywords);
when PyDict_Size() returns ma_used
1047 	force = PyDict_GetItemString(keywords, "force");
PyDict_GetItemString does not find string
1048 	if (force)
taking False path
1049 	    size--;
1050 	if (size) {
when considering value == (int)0 from src/BTrees/BucketTemplate.c:1046
taking False path
1051 	    PyErr_SetString(PyExc_TypeError,
1052 			    "_p_deactivate only accepts keyword arg force");
1053 	    return NULL;
1054 	}
1055     }
1056 
1057     if (self->jar && self->oid) {
when treating unknown struct PyObject * from src/BTrees/BucketTemplate.c:1057 as non-NULL
taking True path
when treating unknown struct PyObject * from src/BTrees/BucketTemplate.c:1057 as non-NULL
taking True path
1058 	ghostify = self->state == cPersistent_UPTODATE_STATE;
when considering value == (signed char)0 from src/BTrees/BucketTemplate.c:1058
1059 	if (!ghostify && force) {
taking False path
1060 	    if (PyObject_IsTrue(force))
1061 		ghostify = 1;
1062 	    if (PyErr_Occurred())
1063 		return NULL;
1064 	}
1065 	if (ghostify) {
taking True path
1066 	    if (_bucket_clear(self) < 0)
when considering range: -0x80000000 <= value <= -1
taking True path
1067 		return NULL;
1068 	    PER_GHOSTIFY(self);
1069 	}
1070     }
1071     Py_INCREF(Py_None);
1072     return Py_None;
1073 }
returning (PyObject*)NULL without setting an exception
found 3 similar trace(s) to this