From: Stefan Behnel Date: Sun, 2 May 2010 16:10:39 +0000 (+0200) Subject: reverted last commit, cast must happen to the value, not its pointer X-Git-Tag: 0.13.beta0~116 X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=511b14d8f3899854591d1a14e10bd5e163e9cbf0;p=cython.git reverted last commit, cast must happen to the value, not its pointer --- diff --git a/Cython/Compiler/ExprNodes.py b/Cython/Compiler/ExprNodes.py index 8fa34fcf..eb164973 100755 --- a/Cython/Compiler/ExprNodes.py +++ b/Cython/Compiler/ExprNodes.py @@ -6252,10 +6252,17 @@ class CoerceIntToBytesNode(CoerceToPyTypeNode): '"value too large to pack into a byte"); %s' % ( code.error_goto(self.pos))) code.putln('}') - code.putln('%s = PyBytes_FromStringAndSize((const char*)&%s, 1); %s' % ( + temp = None + if arg.type is not PyrexTypes.c_char_type: + temp = code.funcstate.allocate_temp(PyrexTypes.c_char_type, manage_ref=False) + code.putln("%s = (char)%s;" % (temp, arg_result)) + arg_result = temp + code.putln('%s = PyBytes_FromStringAndSize(&%s, 1); %s' % ( self.result(), arg_result, code.error_goto_if_null(self.result(), self.pos))) + if temp is not None: + code.funcstate.release_temp(temp) code.put_gotref(self.py_result())