Author: Carl Friedrich Bolz <cfb...@gmx.de> Branch: typed-cells Changeset: r78924:8c68aa37e287 Date: 2015-08-11 18:53 +0200 http://bitbucket.org/pypy/pypy/changeset/8c68aa37e287/
Log: (cfbolz, arigo): small code simplification diff --git a/pypy/objspace/std/mapdict.py b/pypy/objspace/std/mapdict.py --- a/pypy/objspace/std/mapdict.py +++ b/pypy/objspace/std/mapdict.py @@ -306,24 +306,30 @@ from pypy.objspace.std.intobject import W_IntObject from pypy.objspace.std.floatobject import W_FloatObject assert not isinstance(w_cell, ObjectMutableCell) - if isinstance(w_cell, IntMutableCell) and type(w_value) is W_IntObject: - w_cell.intvalue = w_value.intval - return None - if isinstance(w_cell, FloatMutableCell) and type(w_value) is W_FloatObject: - w_cell.floatvalue = w_value.floatval - return None if type(w_value) is W_IntObject: - if not self.can_contain_mutable_cell: - self.can_contain_mutable_cell = True + if isinstance(w_cell, IntMutableCell): + w_cell.intvalue = w_value.intval + return None + check = self._ensure_can_contain_mutable_cell() + assert check if self.ever_mutated: return IntMutableCell(w_value.intval) if type(w_value) is W_FloatObject: - if not self.can_contain_mutable_cell: - self.can_contain_mutable_cell = True + if isinstance(w_cell, FloatMutableCell): + w_cell.floatvalue = w_value.floatval + return None + check = self._ensure_can_contain_mutable_cell() + assert check if self.ever_mutated: return FloatMutableCell(w_value.floatval) return w_value + @jit.elidable + def _ensure_can_contain_mutable_cell(self): + if not self.can_contain_mutable_cell: + self.can_contain_mutable_cell = True + return True + def _copy_attr(self, obj, new_obj): w_value = self.read(obj, self.selector) new_obj._get_mapdict_map().add_attr(new_obj, self.selector, w_value) _______________________________________________ pypy-commit mailing list pypy-commit@python.org https://mail.python.org/mailman/listinfo/pypy-commit