refnanny: Remove dead exception raising code
authorDag Sverre Seljebotn <dagss@student.matnat.uio.no>
Sat, 21 Feb 2009 14:42:26 +0000 (15:42 +0100)
committerDag Sverre Seljebotn <dagss@student.matnat.uio.no>
Sat, 21 Feb 2009 14:42:26 +0000 (15:42 +0100)
Cython/Compiler/Code.py
Cython/Compiler/ModuleNode.py
Cython/Compiler/Nodes.py
Cython/Runtime/refnanny.pyx

index fcc05db80824b8966f0c7825827585aee215331a..55742e601dcaca8571630706e3335c3d6e8a1dd6 100644 (file)
@@ -921,13 +921,8 @@ class CCodeWriter(object):
     def put_setup_refcount_context(self, name):
         self.putln('__Pyx_SetupRefcountContext("%s");' % name)
 
-    def put_finish_refcount_context(self, pos, name, retval_cname, err_val):
-        self.putln('if (__Pyx_FinishRefcountContext() == -1) {')
-        self.putln(self.set_error_info(pos))
-        self.putln('__Pyx_AddTraceback("%s");' % name)
-        if err_val is not None:
-            self.putln('%s = %s;' % (retval_cname, err_val))
-        self.putln('}')
+    def put_finish_refcount_context(self):
+        self.putln("__Pyx_FinishRefcountContext();")
 
 
 class PyrexCodeWriter:
index c44802d9ea6c804b484a6f1817be6a76cf7e490f..c28b659335f7d601a46d70df598f99b8b5d3d315 100644 (file)
@@ -1651,8 +1651,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
         code.putln("%s = NULL;" % Naming.retval_cname)
         code.put_label(code.return_label)
         # Disabled because of confusion with refcount of global variables -- run ass2cglobal testcase to see
-        #code.put_finish_refcount_context(self.pos, env.qualified_name,
-        #                                 Naming.retval_cname, "NULL")
+        #code.put_finish_refcount_context()
         code.putln("#if CYTHON_REFNANNY")
         code.putln("if (__pyx_refchk) {};")
         code.putln("#endif")
@@ -2339,7 +2338,7 @@ typedef struct {
   void (*GOTREF)(void*, PyObject*, int);
   void (*GIVEREF)(void*, PyObject*, int);
   void* (*NewContext)(const char*, int, const char*);
-  int (*FinishContext)(void**);
+  void (*FinishContext)(void**);
 } __Pyx_RefnannyAPIStruct;
 static __Pyx_RefnannyAPIStruct *__Pyx_Refnanny = NULL;
 #define __Pyx_ImportRefcountAPI(name) \
index b2f8691c0eff33518493df34e0048a97d06db411..cb70b7444d94bd92087c644ff7d116da6b6477ee 100644 (file)
@@ -1195,10 +1195,7 @@ class FuncDefNode(StatNode, BlockNode):
             if self.return_type.is_pyobject:
                 code.put_xgiveref(self.return_type.as_pyobject(Naming.retval_cname))
 
-            code.put_finish_refcount_context(self.pos,
-                                             self.entry.qualified_name,
-                                             Naming.retval_cname,
-                                             err_val)
+            code.put_finish_refcount_context()
 
         if acquire_gil:
             code.putln("PyGILState_Release(_save);")
index d6e3403da5432dfe0569c08cd19127de5f6cf247..b3b3991ce6229cd407d22e406ca90acd39e59053 100644 (file)
@@ -115,7 +115,7 @@ cdef void DECREF(PyObject* ctx, PyObject* obj, int lineno):
     GIVEREF(ctx, obj, lineno)
     if obj is not NULL: Py_DECREF(<object>obj)
 
-cdef int FinishContext(PyObject** ctx) except -1:
+cdef void FinishContext(PyObject** ctx):
     cdef PyObject* type = NULL, *value = NULL, *tb = NULL
     if ctx == NULL: assert False
     if ctx[0] == NULL: assert False # XXX What to do here?
@@ -129,17 +129,12 @@ cdef int FinishContext(PyObject** ctx) except -1:
         Py_XDECREF(<object>type)
         Py_XDECREF(<object>value)
         Py_XDECREF(<object>tb)
-        raise
     finally:
         Py_XDECREF(<object>ctx[0])
         ctx[0] = NULL
     if errors:
         print u"%s: %s()" % pos
         print errors # raise Error(errors)
-    return 0
-
-
-
 
 cdef extern from "Python.h":
     object PyCObject_FromVoidPtr(void*, void (*)(void*))
@@ -150,7 +145,7 @@ ctypedef struct RefnannyAPIStruct:
   void (*GOTREF)(PyObject*, PyObject*, int)
   void (*GIVEREF)(PyObject*, PyObject*, int)
   PyObject* (*NewContext)(char*, int, char*) except NULL
-  int (*FinishContext)(PyObject**) except -1
+  void (*FinishContext)(PyObject**)
 
 cdef RefnannyAPIStruct api
 api.INCREF = INCREF