From d6aa225ca7990fde1eac09e28078e71b73d113ce Mon Sep 17 00:00:00 2001 From: Tavian Barnes Date: Sun, 18 Sep 2011 17:02:26 -0400 Subject: Fix --disable-png behaviour in the Python module. --- libdimension-python/dimension.pyx | 16 +++++++++++++--- libdimension-python/tests/canvas.py | 4 ++-- libdimension-python/tests/demo.py | 1 + 3 files changed, 16 insertions(+), 5 deletions(-) (limited to 'libdimension-python') diff --git a/libdimension-python/dimension.pyx b/libdimension-python/dimension.pyx index b8855fe..dffa8fa 100644 --- a/libdimension-python/dimension.pyx +++ b/libdimension-python/dimension.pyx @@ -569,9 +569,19 @@ cdef class Canvas: if fclose(file) != 0: _raise_OSError() - progress = _Progress(dmnsn_png_write_canvas_async(self._canvas, file)) - progress._finalizer = finalize - return progress + cdef dmnsn_progress *progress = dmnsn_png_write_canvas_async(self._canvas, + file) + + try: + if progress == NULL: + _raise_OSError() + + ret = _Progress(progress) + ret._finalizer = finalize + return ret + except: + finalize() + raise def draw_GL(self): """Export the canvas to the current OpenGL context.""" diff --git a/libdimension-python/tests/canvas.py b/libdimension-python/tests/canvas.py index 3b2057e..239a548 100755 --- a/libdimension-python/tests/canvas.py +++ b/libdimension-python/tests/canvas.py @@ -19,8 +19,8 @@ # along with this program. If not, see . # ######################################################################### -from dimension import * import errno +from dimension import * # Treat warnings as errors for tests die_on_warnings(True) @@ -35,7 +35,7 @@ try: canvas.optimize_PNG() except OSError as e: if e.errno == errno.ENOSYS: - havePNG = False + have_PNG = False else: raise diff --git a/libdimension-python/tests/demo.py b/libdimension-python/tests/demo.py index fe3518c..a9774bc 100755 --- a/libdimension-python/tests/demo.py +++ b/libdimension-python/tests/demo.py @@ -21,6 +21,7 @@ import os import os.path +import errno from math import * from dimension import * -- cgit v1.2.3