Author: Antonio Cuni <anto.c...@gmail.com> Branch: ffistruct Changeset: r51274:5cd049bf9f55 Date: 2012-01-12 12:34 +0100 http://bitbucket.org/pypy/pypy/changeset/5cd049bf9f55/
Log: fully migrate the whole W__StructInstance.getfield to use GetFieldConverter diff --git a/pypy/module/_ffi/interp_struct.py b/pypy/module/_ffi/interp_struct.py --- a/pypy/module/_ffi/interp_struct.py +++ b/pypy/module/_ffi/interp_struct.py @@ -136,25 +136,7 @@ def getfield(self, space, name): w_ffitype, offset = self.structdescr.get_type_and_offset_for_field(name) converter = GetFieldConverter(space, self.rawmem, offset) - if w_ffitype.is_longlong(): - return converter.do_and_wrap(w_ffitype) - # - if w_ffitype.is_signed() or w_ffitype.is_unsigned() or w_ffitype.is_pointer(): - return converter.do_and_wrap(w_ffitype) - # - if w_ffitype.is_char(): - return converter.do_and_wrap(w_ffitype) - # - if w_ffitype.is_unichar(): - return converter.do_and_wrap(w_ffitype) - # - if w_ffitype.is_double(): - return converter.do_and_wrap(w_ffitype) - # - if w_ffitype.is_singlefloat(): - return converter.do_and_wrap(w_ffitype) - # - raise operationerrfmt(space.w_TypeError, 'Unknown type: %s', w_ffitype.name) + return converter.do_and_wrap(w_ffitype) @unwrap_spec(name=str) def setfield(self, space, name, w_value): diff --git a/pypy/module/_ffi/type_converter.py b/pypy/module/_ffi/type_converter.py --- a/pypy/module/_ffi/type_converter.py +++ b/pypy/module/_ffi/type_converter.py @@ -232,7 +232,7 @@ assert voidval is None return space.w_None else: - assert False, "Return value shape '%s' not supported" % w_ffitype + self.error(w_ffitype) def _longlong(self, w_ffitype): # a separate function, which can be seen by the jit or not, _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit