Author: Ronan Lamy <[email protected]>
Branch:
Changeset: r81362:d1769628ff5d
Date: 2015-12-16 16:21 +0000
http://bitbucket.org/pypy/pypy/changeset/d1769628ff5d/
Log: Add explicit casts to untranslated make_stat_result() and
make_statvfs_result()
diff --git a/rpython/rlib/rposix_stat.py b/rpython/rlib/rposix_stat.py
--- a/rpython/rlib/rposix_stat.py
+++ b/rpython/rlib/rposix_stat.py
@@ -169,10 +169,12 @@
def make_stat_result(tup):
"""Turn a tuple into an os.stat_result object."""
- positional = tup[:N_INDEXABLE_FIELDS]
+ positional = tuple(
+ lltype.cast_primitive(TYPE, value) for value, (name, TYPE) in
+ zip(tup, STAT_FIELDS)[:N_INDEXABLE_FIELDS])
kwds = {}
- for i, name in enumerate(STAT_FIELD_NAMES[N_INDEXABLE_FIELDS:]):
- kwds[name] = tup[N_INDEXABLE_FIELDS + i]
+ for value, (name, TYPE) in zip(tup, STAT_FIELDS)[N_INDEXABLE_FIELDS:]:
+ kwds[name] = lltype.cast_primitive(TYPE, value)
return os.stat_result(positional, kwds)
@@ -221,8 +223,6 @@
class StatvfsResultRepr(Repr):
def __init__(self, rtyper):
self.rtyper = rtyper
- self.statvfs_fields = STATVFS_FIELDS
-
self.statvfs_field_indexes = {}
for i, (name, TYPE) in enumerate(STATVFS_FIELDS):
self.statvfs_field_indexes[name] = i
@@ -261,10 +261,11 @@
return r_sta.redispatch_getfield(hop, index)
-
def make_statvfs_result(tup):
- return os.statvfs_result(tup)
-
+ args = tuple(
+ lltype.cast_primitive(TYPE, value) for value, (name, TYPE) in
+ zip(tup, STATVFS_FIELDS))
+ return os.statvfs_result(args)
class MakeStatvfsResultEntry(extregistry.ExtRegistryEntry):
_about_ = make_statvfs_result
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit