Commit d01287ad authored by Dag Sverre Seljebotn's avatar Dag Sverre Seljebotn

refnanny: Remove dead exception raising code

parent 4d5d3045
...@@ -921,13 +921,8 @@ class CCodeWriter(object): ...@@ -921,13 +921,8 @@ class CCodeWriter(object):
def put_setup_refcount_context(self, name): def put_setup_refcount_context(self, name):
self.putln('__Pyx_SetupRefcountContext("%s");' % name) self.putln('__Pyx_SetupRefcountContext("%s");' % name)
def put_finish_refcount_context(self, pos, name, retval_cname, err_val): def put_finish_refcount_context(self):
self.putln('if (__Pyx_FinishRefcountContext() == -1) {') self.putln("__Pyx_FinishRefcountContext();")
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('}')
class PyrexCodeWriter: class PyrexCodeWriter:
......
...@@ -1651,8 +1651,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode): ...@@ -1651,8 +1651,7 @@ class ModuleNode(Nodes.Node, Nodes.BlockNode):
code.putln("%s = NULL;" % Naming.retval_cname) code.putln("%s = NULL;" % Naming.retval_cname)
code.put_label(code.return_label) code.put_label(code.return_label)
# Disabled because of confusion with refcount of global variables -- run ass2cglobal testcase to see # Disabled because of confusion with refcount of global variables -- run ass2cglobal testcase to see
#code.put_finish_refcount_context(self.pos, env.qualified_name, #code.put_finish_refcount_context()
# Naming.retval_cname, "NULL")
code.putln("#if CYTHON_REFNANNY") code.putln("#if CYTHON_REFNANNY")
code.putln("if (__pyx_refchk) {};") code.putln("if (__pyx_refchk) {};")
code.putln("#endif") code.putln("#endif")
...@@ -2339,7 +2338,7 @@ typedef struct { ...@@ -2339,7 +2338,7 @@ typedef struct {
void (*GOTREF)(void*, PyObject*, int); void (*GOTREF)(void*, PyObject*, int);
void (*GIVEREF)(void*, PyObject*, int); void (*GIVEREF)(void*, PyObject*, int);
void* (*NewContext)(const char*, int, const char*); void* (*NewContext)(const char*, int, const char*);
int (*FinishContext)(void**); void (*FinishContext)(void**);
} __Pyx_RefnannyAPIStruct; } __Pyx_RefnannyAPIStruct;
static __Pyx_RefnannyAPIStruct *__Pyx_Refnanny = NULL; static __Pyx_RefnannyAPIStruct *__Pyx_Refnanny = NULL;
#define __Pyx_ImportRefcountAPI(name) \ #define __Pyx_ImportRefcountAPI(name) \
......
...@@ -1195,10 +1195,7 @@ class FuncDefNode(StatNode, BlockNode): ...@@ -1195,10 +1195,7 @@ class FuncDefNode(StatNode, BlockNode):
if self.return_type.is_pyobject: if self.return_type.is_pyobject:
code.put_xgiveref(self.return_type.as_pyobject(Naming.retval_cname)) code.put_xgiveref(self.return_type.as_pyobject(Naming.retval_cname))
code.put_finish_refcount_context(self.pos, code.put_finish_refcount_context()
self.entry.qualified_name,
Naming.retval_cname,
err_val)
if acquire_gil: if acquire_gil:
code.putln("PyGILState_Release(_save);") code.putln("PyGILState_Release(_save);")
......
...@@ -115,7 +115,7 @@ cdef void DECREF(PyObject* ctx, PyObject* obj, int lineno): ...@@ -115,7 +115,7 @@ cdef void DECREF(PyObject* ctx, PyObject* obj, int lineno):
GIVEREF(ctx, obj, lineno) GIVEREF(ctx, obj, lineno)
if obj is not NULL: Py_DECREF(<object>obj) 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 cdef PyObject* type = NULL, *value = NULL, *tb = NULL
if ctx == NULL: assert False if ctx == NULL: assert False
if ctx[0] == NULL: assert False # XXX What to do here? if ctx[0] == NULL: assert False # XXX What to do here?
...@@ -129,17 +129,12 @@ cdef int FinishContext(PyObject** ctx) except -1: ...@@ -129,17 +129,12 @@ cdef int FinishContext(PyObject** ctx) except -1:
Py_XDECREF(<object>type) Py_XDECREF(<object>type)
Py_XDECREF(<object>value) Py_XDECREF(<object>value)
Py_XDECREF(<object>tb) Py_XDECREF(<object>tb)
raise
finally: finally:
Py_XDECREF(<object>ctx[0]) Py_XDECREF(<object>ctx[0])
ctx[0] = NULL ctx[0] = NULL
if errors: if errors:
print u"%s: %s()" % pos print u"%s: %s()" % pos
print errors # raise Error(errors) print errors # raise Error(errors)
return 0
cdef extern from "Python.h": cdef extern from "Python.h":
object PyCObject_FromVoidPtr(void*, void (*)(void*)) object PyCObject_FromVoidPtr(void*, void (*)(void*))
...@@ -150,7 +145,7 @@ ctypedef struct RefnannyAPIStruct: ...@@ -150,7 +145,7 @@ ctypedef struct RefnannyAPIStruct:
void (*GOTREF)(PyObject*, PyObject*, int) void (*GOTREF)(PyObject*, PyObject*, int)
void (*GIVEREF)(PyObject*, PyObject*, int) void (*GIVEREF)(PyObject*, PyObject*, int)
PyObject* (*NewContext)(char*, int, char*) except NULL PyObject* (*NewContext)(char*, int, char*) except NULL
int (*FinishContext)(PyObject**) except -1 void (*FinishContext)(PyObject**)
cdef RefnannyAPIStruct api cdef RefnannyAPIStruct api
api.INCREF = INCREF api.INCREF = INCREF
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment