mirror of
https://github.com/wassname/scikit-image.git
synced 2026-07-03 10:19:30 +08:00
b9a7445296
I have moved the freeimage error handler callback function to the module namespace to prevent it being garbage collected. See the following for more info on this quirk of ctypes: http://stackoverflow.com/questions/12995925/how-to-prevent-functype-from-being-collected https://github.com/JohannesBuchner/PyMultiNest/issues/5 This also changes the way FreeImage errors are handled. If an exception is raised in a callback, it will not propagate beyond ctypes internals. Now, we use a callback that sets a global variable to indicate error. We then check for error and reset the error string to NULL every time the C api is called. This is the only way we can both: a) Not segfault on freeimage error b) Pass the freeimage error to the user c) raise RuntimeError()