Author: Maciej Fijalkowski <fij...@gmail.com> Branch: Changeset: r71483:77c627036259 Date: 2014-05-13 11:18 +0200 http://bitbucket.org/pypy/pypy/changeset/77c627036259/
Log: merge diff --git a/lib_pypy/gdbm.py b/lib_pypy/gdbm.py --- a/lib_pypy/gdbm.py +++ b/lib_pypy/gdbm.py @@ -1,4 +1,3 @@ - import cffi, os ffi = cffi.FFI() @@ -16,8 +15,8 @@ void gdbm_close(void*); typedef struct { - char *dptr; - int dsize; + char *dptr; + int dsize; } datum; datum gdbm_fetch(void*, datum); @@ -49,13 +48,13 @@ class gdbm(object): ll_dbm = None - + def __init__(self, filename, iflags, mode): res = lib.gdbm_open(filename, 0, iflags, mode, ffi.NULL) if not res: self._raise_from_errno() self.ll_dbm = res - + def close(self): if self.ll_dbm: lib.gdbm_close(self.ll_dbm) diff --git a/rpython/rlib/rweakref.py b/rpython/rlib/rweakref.py --- a/rpython/rlib/rweakref.py +++ b/rpython/rlib/rweakref.py @@ -104,7 +104,7 @@ return _rweakvaldict.WeakValueDictRepr(rtyper, rtyper.getrepr(self.s_key)) - def rtyper_makekey_ex(self, rtyper): + def rtyper_makekey(self): return self.__class__, def method_get(self, s_key): @@ -164,7 +164,7 @@ from rpython.rlib import _rweakkeydict return _rweakkeydict.WeakKeyDictRepr(rtyper) - def rtyper_makekey_ex(self, rtyper): + def rtyper_makekey(self): return self.__class__, def method_get(self, s_key): diff --git a/rpython/rtyper/controllerentry.py b/rpython/rtyper/controllerentry.py --- a/rpython/rtyper/controllerentry.py +++ b/rpython/rtyper/controllerentry.py @@ -220,8 +220,8 @@ from rpython.rtyper.rcontrollerentry import ControlledInstanceRepr return ControlledInstanceRepr(rtyper, self.s_real_obj, self.controller) - def rtyper_makekey_ex(self, rtyper): - real_key = rtyper.makekey(self.s_real_obj) + def rtyper_makekey(self): + real_key = self.s_real_obj.rtyper_makekey() return self.__class__, real_key, self.controller _make_none_union("SomeControlledInstance", "obj.s_real_obj, obj.controller", globals()) diff --git a/rpython/rtyper/module/ll_os_stat.py b/rpython/rtyper/module/ll_os_stat.py --- a/rpython/rtyper/module/ll_os_stat.py +++ b/rpython/rtyper/module/ll_os_stat.py @@ -81,7 +81,7 @@ from rpython.rtyper.module import r_os_stat return r_os_stat.StatResultRepr(rtyper) - def rtyper_makekey_ex(self, rtyper): + def rtyper_makekey(self): return self.__class__, def getattr(self, s_attr): @@ -115,7 +115,7 @@ from rpython.rtyper.module import r_os_stat return r_os_stat.StatvfsResultRepr(rtyper) - def rtyper_makekey_ex(self, rtyper): + def rtyper_makekey(self): return self.__class__, def getattr(self, s_attr): diff --git a/rpython/rtyper/rmodel.py b/rpython/rtyper/rmodel.py --- a/rpython/rtyper/rmodel.py +++ b/rpython/rtyper/rmodel.py @@ -268,8 +268,8 @@ return EnumerateIteratorRepr(r_baseiter) return r_container.make_iterator_repr(*self.variant) - def rtyper_makekey_ex(self, rtyper): - return self.__class__, rtyper.makekey(self.s_container), self.variant + def rtyper_makekey(self): + return self.__class__, self.s_container.rtyper_makekey(), self.variant class __extend__(annmodel.SomeImpossibleValue): diff --git a/rpython/rtyper/rtuple.py b/rpython/rtyper/rtuple.py --- a/rpython/rtyper/rtuple.py +++ b/rpython/rtyper/rtuple.py @@ -18,9 +18,9 @@ def rtyper_makerepr(self, rtyper): return TupleRepr(rtyper, [rtyper.getrepr(s_item) for s_item in self.items]) - def rtyper_makekey_ex(self, rtyper): - keys = [rtyper.makekey(s_item) for s_item in self.items] - return tuple([self.__class__]+keys) + def rtyper_makekey(self): + keys = [s_item.rtyper_makekey() for s_item in self.items] + return tuple([self.__class__] + keys) _gen_eq_function_cache = {} diff --git a/rpython/rtyper/rtyper.py b/rpython/rtyper/rtyper.py --- a/rpython/rtyper/rtyper.py +++ b/rpython/rtyper/rtyper.py @@ -135,14 +135,9 @@ return key._as_ptr() raise KeyError(search) - def makekey(self, s_obj): - if hasattr(s_obj, "rtyper_makekey_ex"): - return s_obj.rtyper_makekey_ex(self) - return s_obj.rtyper_makekey() - def getrepr(self, s_obj): # s_objs are not hashable... try hard to find a unique key anyway - key = self.makekey(s_obj) + key = s_obj.rtyper_makekey() assert key[0] is s_obj.__class__ try: result = self.reprs[key] @@ -589,8 +584,6 @@ classdef = hop.s_result.classdef return rclass.rtype_new_instance(self, classdef, hop.llops) - generic_translate_operation = None - def default_translate_operation(self, hop): raise TyperError("unimplemented operation: '%s'" % hop.spaceop.opname) @@ -688,13 +681,8 @@ def dispatch(self): rtyper = self.rtyper - generic = rtyper.generic_translate_operation - if generic is not None: - res = generic(self) - if res is not None: - return res opname = self.forced_opname or self.spaceop.opname - translate_meth = getattr(rtyper, 'translate_op_'+opname, + translate_meth = getattr(rtyper, 'translate_op_' + opname, rtyper.default_translate_operation) return translate_meth(self) diff --git a/rpython/rtyper/test/test_rtyper.py b/rpython/rtyper/test/test_rtyper.py --- a/rpython/rtyper/test/test_rtyper.py +++ b/rpython/rtyper/test/test_rtyper.py @@ -22,9 +22,8 @@ annmodel.SomeInteger())) stup2 = annmodel.SomeTuple((annmodel.SomeString(), annmodel.SomeInteger())) - rtyper = RPythonTyper(annrpython.RPythonAnnotator(None)) - key1 = rtyper.makekey(stup1) - key2 = rtyper.makekey(stup2) + key1 = stup1.rtyper_makekey() + key2 = stup2.rtyper_makekey() assert key1 != key2 def test_simple(): _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit