VepsrP,
I tried Unren v7.5.0 v1 today with Love & Sex: Second Base and I think there is a little issue (there's no error while decompiling, but some of the arguments are missing an asterisk) with reconstruct_arginfo.
extrapos and extrakw are deprecated and I see you've added a check for that, but the ArgumentInfo now has starred_indexes and doublestarred_indexes instead (
You must be registered to see the links
)
I changed in the util.py
Code:
def reconstruct_arginfo(arginfo):
if arginfo is None:
return ""
rv = ["("]
sep = First("", ", ")
for (name, val) in arginfo.arguments:
rv.append(sep())
if name is not None:
rv.append("%s=" % name)
rv.append(val)
if hasattr(arginfo, 'extrapos') and arginfo.extrapos:
rv.append(sep())
rv.append("*%s" % arginfo.extrapos)
if hasattr(arginfo, 'extrakw') and arginfo.extrakw:
rv.append(sep())
rv.append("**%s" % arginfo.extrakw)
rv.append(")")
return "".join(rv)
to
Code:
def reconstruct_arginfo(arginfo):
if arginfo is None:
return ""
rv = ["("]
sep = First("", ", ")
for i, (name, val) in enumerate(arginfo.arguments):
rv.append(sep())
if i in arginfo.starred_indexes:
rv.append("*%s" % val)
elif i in arginfo.doublestarred_indexes:
rv.append("**%s" % val)
elif name is not None:
rv.append("{}={}".format(name, val))
else:
rv.append(val)
if hasattr(arginfo, 'extrapos') and arginfo.extrapos:
rv.append(sep())
rv.append("*%s" % arginfo.extrapos)
if hasattr(arginfo, 'extrakw') and arginfo.extrakw:
rv.append(sep())
rv.append("**%s" % arginfo.extrakw)
rv.append(")")
return "".join(rv)
and now it works fine. (attached you can find my util.py)
Also wouldn't it make sense to add
set
as parameter to line 111 in unrpyc.rpy like this?
class_factory = magic.FakeClassFactory((frozenset, PyExpr, PyCode, RevertableList, RevertableDict, RevertableSet, Sentinel, set), magic.FakeStrict)
This way the check if there's an unpickling error in magic.rpy should work without uncommenting it.
Thanks for looking into it.