Author: Amaury Forgeot d'Arc <[email protected]>
Branch: py3k
Changeset: r48183:63ea3ff98f1e
Date: 2011-10-18 01:26 +0200
http://bitbucket.org/pypy/pypy/changeset/63ea3ff98f1e/
Log: Unbound methods are gone now :-)
diff --git a/pypy/interpreter/baseobjspace.py b/pypy/interpreter/baseobjspace.py
--- a/pypy/interpreter/baseobjspace.py
+++ b/pypy/interpreter/baseobjspace.py
@@ -871,15 +871,10 @@
# start of hack for performance
from pypy.interpreter.function import Function, Method
if isinstance(w_func, Method):
- w_inst = w_func.w_instance
- if w_inst is not None:
- if nargs < 4:
- func = w_func.w_function
- if isinstance(func, Function):
- return func.funccall(w_inst, *args_w)
- elif args_w and (
- self.abstract_isinstance_w(args_w[0], w_func.w_class)):
- w_func = w_func.w_function
+ if nargs < 4:
+ func = w_func.w_function
+ if isinstance(func, Function):
+ return func.funccall(w_func.w_instance, *args_w)
if isinstance(w_func, Function):
return w_func.funccall(*args_w)
@@ -899,16 +894,10 @@
if not self.config.objspace.disable_call_speedhacks:
# start of hack for performance
if isinstance(w_func, Method):
- w_inst = w_func.w_instance
- if w_inst is not None:
- w_func = w_func.w_function
- # reuse callable stack place for w_inst
- frame.settopvalue(w_inst, nargs)
- nargs += 1
- elif nargs > 0 and (
- self.abstract_isinstance_w(frame.peekvalue(nargs-1), #
:-(
- w_func.w_class)):
- w_func = w_func.w_function
+ # reuse callable stack place for w_inst
+ frame.settopvalue(w_func.w_instance, nargs)
+ nargs += 1
+ w_func = w_func.w_function
if isinstance(w_func, Function):
return w_func.funccall_valuestack(nargs, frame)
diff --git a/pypy/interpreter/typedef.py b/pypy/interpreter/typedef.py
--- a/pypy/interpreter/typedef.py
+++ b/pypy/interpreter/typedef.py
@@ -783,7 +783,6 @@
__func__ = interp_attrproperty_w('w_function', cls=Method),
im_self = interp_attrproperty_w('w_instance', cls=Method),
__self__ = interp_attrproperty_w('w_instance', cls=Method),
- im_class = interp_attrproperty_w('w_class', cls=Method),
__getattribute__ = interp2app(Method.descr_method_getattribute),
__eq__ = interp2app(Method.descr_method_eq),
__ne__ = descr_generic_ne,
_______________________________________________
pypy-commit mailing list
[email protected]
http://mail.python.org/mailman/listinfo/pypy-commit