From 511b14d8f3899854591d1a14e10bd5e163e9cbf0 Mon Sep 17 00:00:00 2001 From: Stefan Behnel Date: Sun, 2 May 2010 18:10:39 +0200 Subject: [PATCH] reverted last commit, cast must happen to the value, not its pointer --- Cython/Compiler/ExprNodes.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) 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()) -- 2.26.2