[pypy-svn] pypy move-rfloat: Merge default
amauryfa
commits-noreply at bitbucket.org
Wed Mar 2 11:00:34 CET 2011
Author: Amaury Forgeot d'Arc <amauryfa at gmail.com>
Branch: move-rfloat
Changeset: r42379:70eb63c3f970
Date: 2011-03-02 10:41 +0100
http://bitbucket.org/pypy/pypy/changeset/70eb63c3f970/
Log: Merge default
diff --git a/pypy/translator/c/node.py b/pypy/translator/c/node.py
--- a/pypy/translator/c/node.py
+++ b/pypy/translator/c/node.py
@@ -337,12 +337,15 @@
self.varlength = varlength
self.dependencies = {}
contained_type = ARRAY.OF
- if ARRAY._hints.get("render_as_void"):
- contained_type = Void
+ # There is no such thing as an array of voids:
+ # we use a an array of chars instead; only the pointer can be void*.
self.itemtypename = db.gettype(contained_type, who_asks=self)
self.fulltypename = self.itemtypename.replace('@', '(@)[%d]' %
(self.varlength,))
- self.fullptrtypename = self.itemtypename.replace('@', '*@')
+ if ARRAY._hints.get("render_as_void"):
+ self.fullptrtypename = 'void *@'
+ else:
+ self.fullptrtypename = self.itemtypename.replace('@', '*@')
def setup(self):
"""Array loops are forbidden by ForwardReference.become() because
@@ -363,7 +366,10 @@
return self.itemindex_access_expr(baseexpr, index)
def itemindex_access_expr(self, baseexpr, indexexpr):
- return 'RPyBareItem(%s, %s)' % (baseexpr, indexexpr)
+ if self.ARRAY._hints.get("render_as_void"):
+ return 'RPyBareItem((char*)%s, %s)' % (baseexpr, indexexpr)
+ else:
+ return 'RPyBareItem(%s, %s)' % (baseexpr, indexexpr)
def definition(self):
return [] # no declaration is needed
More information about the Pypy-commit
mailing list