Author: Maciej Fijalkowski <[email protected]>
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
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit