Author: Armin Rigo <[email protected]>
Branch: stmgc-c7
Changeset: r69901:8a001c675c7f
Date: 2014-03-12 17:18 +0100
http://bitbucket.org/pypy/pypy/changeset/8a001c675c7f/
Log: Another static=True missing
diff --git a/rpython/translator/c/database.py b/rpython/translator/c/database.py
--- a/rpython/translator/c/database.py
+++ b/rpython/translator/c/database.py
@@ -7,7 +7,7 @@
from rpython.rtyper.lltypesystem.rffi import CConstant
from rpython.rtyper.lltypesystem import llgroup
from rpython.tool.sourcetools import valid_identifier
-from rpython.translator.c.primitive import PrimitiveName, PrimitiveType
+from rpython.translator.c.primitive import PrimitiveName, PrimitiveType,
name_gcref
from rpython.translator.c.node import StructDefNode, ArrayDefNode
from rpython.translator.c.node import FixedSizeArrayDefNode,
BareBoneArrayDefNode
from rpython.translator.c.node import ContainerNodeFactory,
ExtTypeOpaqueDefNode
@@ -183,8 +183,10 @@
if isinstance(obj, CConstant):
return obj.c_name # without further checks
T = typeOf(obj)
- if isinstance(T, Primitive) or T == GCREF:
+ if isinstance(T, Primitive):
return PrimitiveName[T](obj, self)
+ elif T == GCREF:
+ return name_gcref(obj, self, static=static)
elif isinstance(T, Ptr):
if (isinstance(T.TO, OpaqueType) and
T.TO.hints.get('c_pointer_typedef') is not None):
diff --git a/rpython/translator/c/primitive.py
b/rpython/translator/c/primitive.py
--- a/rpython/translator/c/primitive.py
+++ b/rpython/translator/c/primitive.py
@@ -174,7 +174,7 @@
else:
return 'NULL'
-def name_gcref(value, db):
+def name_gcref(value, db, static=False):
if value:
obj = value._obj
if isinstance(obj, int):
@@ -184,7 +184,7 @@
if isinstance(realobj, int):
return _name_tagged(realobj, db)
realvalue = cast_opaque_ptr(Ptr(typeOf(realobj)), value)
- return db.get(realvalue)
+ return db.get(realvalue, static=static)
else:
return 'NULL'
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit