def unmarshal_pycode(space, u, tc): w_codeobj = objectmodel.instantiate(PyCode) u.save_ref(tc, w_codeobj) argcount = u.get_int() kwonlyargcount = u.get_int() nlocals = u.get_int() stacksize = u.get_int() flags = u.get_int() code = space.bytes_w(u.load_w_obj()) consts_w = _unmarshal_tuple_w(u) names = _unmarshal_strlist(u) varnames = _unmarshal_strlist(u) freevars = _unmarshal_strlist(u) cellvars = _unmarshal_strlist(u) filename = space.utf8_0_w(u.load_w_obj()) name = space.utf8_w(u.load_w_obj()) firstlineno = u.get_int() lnotab = space.bytes_w(u.load_w_obj()) filename = assert_str0(filename) PyCode.__init__(w_codeobj, space, argcount, kwonlyargcount, nlocals, stacksize, flags, code, consts_w[:], names, varnames, filename, name, firstlineno, lnotab, freevars, cellvars) return w_codeobj