Author: Hakan Ardo <ha...@debian.org> Branch: jit-multilabel Changeset: r50459:e2479d8f3ce5 Date: 2011-12-13 10:52 +0100 http://bitbucket.org/pypy/pypy/changeset/e2479d8f3ce5/
Log: Translation fix. Why am I not allowed to use a default value on the lengthbox argument? diff --git a/pypy/jit/metainterp/optimizeopt/vstring.py b/pypy/jit/metainterp/optimizeopt/vstring.py --- a/pypy/jit/metainterp/optimizeopt/vstring.py +++ b/pypy/jit/metainterp/optimizeopt/vstring.py @@ -44,7 +44,7 @@ class __extend__(optimizer.OptValue): """New methods added to the base class OptValue for this file.""" - def getstrlen(self, string_optimizer, mode, lengthbox=None): + def getstrlen(self, string_optimizer, mode, lengthbox): if mode is mode_string: s = self.get_constant_string_spec(mode_string) if s is not None: @@ -74,7 +74,7 @@ # Copies the pointer-to-string 'self' into the target string # given by 'targetbox', at the specified offset. Returns the offset # at the end of the copy. - lengthbox = self.getstrlen(string_optimizer, mode) + lengthbox = self.getstrlen(string_optimizer, mode, None) srcbox = self.force_box(string_optimizer) return copy_str_content(string_optimizer, srcbox, targetbox, CONST_0, offsetbox, lengthbox, mode) @@ -103,7 +103,7 @@ return assert self.source_op is not None self.box = box = self.source_op.result - lengthbox = self.getstrlen(optforce, self.mode) + lengthbox = self.getstrlen(optforce, self.mode, None) op = ResOperation(self.mode.NEWSTR, [lengthbox], box) if not we_are_translated(): op.name = 'FORCE' @@ -136,7 +136,7 @@ self._chars = longerlist[start:stop] # slice the 'longerlist', which may also contain Nones - def getstrlen(self, _, mode, lengthbox=None): + def getstrlen(self, _, mode, lengthbox): if self._lengthbox is None: self._lengthbox = ConstInt(len(self._chars)) return self._lengthbox @@ -217,12 +217,12 @@ self.left = left self.right = right - def getstrlen(self, string_optimizer, mode, lengthbox=None): + def getstrlen(self, string_optimizer, mode, lengthbox): if self.lengthbox is None: - len1box = self.left.getstrlen(string_optimizer, mode) + len1box = self.left.getstrlen(string_optimizer, mode, None) if len1box is None: return None - len2box = self.right.getstrlen(string_optimizer, mode) + len2box = self.right.getstrlen(string_optimizer, mode, None) if len2box is None: return None self.lengthbox = _int_add(string_optimizer, len1box, len2box) @@ -269,7 +269,7 @@ self.vstart = vstart self.vlength = vlength - def getstrlen(self, optforce, mode, lengthbox=None): + def getstrlen(self, optforce, mode, lengthbox): return self.vlength.force_box(optforce) @specialize.arg(1) @@ -286,7 +286,7 @@ return None def string_copy_parts(self, string_optimizer, targetbox, offsetbox, mode): - lengthbox = self.getstrlen(string_optimizer, mode) + lengthbox = self.getstrlen(string_optimizer, mode, None) return copy_str_content(string_optimizer, self.vstr.force_box(string_optimizer), targetbox, self.vstart.force_box(string_optimizer), offsetbox, @@ -459,7 +459,7 @@ return result # if isinstance(value, VStringConcatValue) and vindex.is_constant(): - len1box = value.left.getstrlen(self, mode) + len1box = value.left.getstrlen(self, mode, None) if isinstance(len1box, ConstInt): index = vindex.box.getint() len1 = len1box.getint() @@ -602,8 +602,8 @@ v1 = self.getvalue(op.getarg(1)) v2 = self.getvalue(op.getarg(2)) # - l1box = v1.getstrlen(None, mode) - l2box = v2.getstrlen(None, mode) + l1box = v1.getstrlen(None, mode, None) + l2box = v2.getstrlen(None, mode, None) if (l1box is not None and l2box is not None and isinstance(l1box, ConstInt) and isinstance(l2box, ConstInt) and @@ -632,15 +632,15 @@ return False def handle_str_equal_level1(self, v1, v2, resultbox, mode): - l2box = v2.getstrlen(None, mode) + l2box = v2.getstrlen(None, mode, None) if isinstance(l2box, ConstInt): if l2box.value == 0: - lengthbox = v1.getstrlen(self, mode) + lengthbox = v1.getstrlen(self, mode, None) seo = self.optimizer.send_extra_operation seo(ResOperation(rop.INT_EQ, [lengthbox, CONST_0], resultbox)) return True if l2box.value == 1: - l1box = v1.getstrlen(None, mode) + l1box = v1.getstrlen(None, mode, None) if isinstance(l1box, ConstInt) and l1box.value == 1: # comparing two single chars vchar1 = self.strgetitem(v1, optimizer.CVAL_ZERO, mode) @@ -676,7 +676,7 @@ return False def handle_str_equal_level2(self, v1, v2, resultbox, mode): - l2box = v2.getstrlen(None, mode) + l2box = v2.getstrlen(None, mode, None) if isinstance(l2box, ConstInt): if l2box.value == 1: vchar = self.strgetitem(v2, optimizer.CVAL_ZERO, mode) _______________________________________________ pypy-commit mailing list pypy-commit@python.org http://mail.python.org/mailman/listinfo/pypy-commit