| 76 | } |
| 77 | |
| 78 | void * |
| 79 | F2PyGetThreadLocalCallbackPtr(char *key) |
| 80 | { |
| 81 | PyObject *local_dict, *value; |
| 82 | void *prev; |
| 83 | |
| 84 | local_dict = PyThreadState_GetDict(); |
| 85 | if (local_dict == NULL) { |
| 86 | Py_FatalError( |
| 87 | "F2PyGetThreadLocalCallbackPtr: PyThreadState_GetDict failed"); |
| 88 | } |
| 89 | |
| 90 | value = PyDict_GetItemString(local_dict, key); |
| 91 | if (value != NULL) { |
| 92 | prev = PyLong_AsVoidPtr(value); |
| 93 | if (PyErr_Occurred()) { |
| 94 | Py_FatalError( |
| 95 | "F2PyGetThreadLocalCallbackPtr: PyLong_AsVoidPtr failed"); |
| 96 | } |
| 97 | } |
| 98 | else { |
| 99 | prev = NULL; |
| 100 | } |
| 101 | |
| 102 | return prev; |
| 103 | } |
| 104 | |
| 105 | static PyArray_Descr * |
| 106 | get_descr_from_type_and_elsize(const int type_num, const int elsize) { |
nothing calls this directly
no outgoing calls
no test coverage detected