Author: Ronan Lamy <[email protected]>
Branch: 
Changeset: r71498:e0f339dd838e
Date: 2014-05-14 00:26 +0100
http://bitbucket.org/pypy/pypy/changeset/e0f339dd838e/

Log:    make hop.nb_args a property

diff --git a/rpython/rtyper/rbuiltin.py b/rpython/rtyper/rbuiltin.py
--- a/rpython/rtyper/rbuiltin.py
+++ b/rpython/rtyper/rbuiltin.py
@@ -54,7 +54,6 @@
         from rpython.rtyper.rtuple import TupleRepr
         if arguments.w_stararg != hop.nb_args - 3:
             raise TyperError("call pattern too complex")
-        hop.nb_args -= 1
         v_tuple = hop.args_v.pop()
         s_tuple = hop.args_s.pop()
         r_tuple = hop.args_r.pop()
@@ -62,7 +61,6 @@
             raise TyperError("*arg must be a tuple")
         for i in range(len(r_tuple.items_r)):
             v_item = r_tuple.getitem_internal(hop.llops, v_tuple, i)
-            hop.nb_args += 1
             hop.args_v.append(v_item)
             hop.args_s.append(s_tuple.items[i])
             hop.args_r.append(r_tuple.items_r[i])
@@ -177,7 +175,7 @@
             result.append(hop.inputarg(r, arg=i))
         else:
             result.append(None)
-    hop.nb_args -= len(lst)
+    del hop.args_v[hop.nb_args - len(lst):]
     return result
 
 def get_builtin_method_self(x):
@@ -367,8 +365,7 @@
         (i_zero, None),
         (i_track_allocation, None),
         (i_add_memory_pressure, None))
-    (v_flavor, v_zero, v_track_allocation,
-     v_add_memory_pressure) = kwds_v
+    (v_flavor, v_zero, v_track_allocation, v_add_memory_pressure) = kwds_v
     flags = {'flavor': 'gc'}
     if v_flavor is not None:
         flags['flavor'] = v_flavor.value
diff --git a/rpython/rtyper/rtyper.py b/rpython/rtyper/rtyper.py
--- a/rpython/rtyper/rtyper.py
+++ b/rpython/rtyper/rtyper.py
@@ -661,7 +661,6 @@
     def setup(self):
         rtyper = self.rtyper
         spaceop = self.spaceop
-        self.nb_args  = len(spaceop.args)
         self.args_v   = list(spaceop.args)
         self.args_s   = [rtyper.binding(a) for a in spaceop.args]
         self.s_result = rtyper.binding(spaceop.result)
@@ -669,6 +668,10 @@
         self.r_result = rtyper.getrepr(self.s_result)
         rtyper.call_all_setups()  # compute ForwardReferences now
 
+    @property
+    def nb_args(self):
+        return len(self.args_v)
+
     def copy(self):
         result = HighLevelOp(self.rtyper, self.spaceop,
                              self.exceptionlinks, self.llops)
@@ -726,7 +729,6 @@
 
     def r_s_pop(self, index=-1):
         "Return and discard the argument with index position."
-        self.nb_args -= 1
         self.args_v.pop(index)
         return self.args_r.pop(index), self.args_s.pop(index)
 
@@ -739,7 +741,6 @@
         self.args_v.insert(0, v_newfirstarg)
         self.args_r.insert(0, r_newfirstarg)
         self.args_s.insert(0, s_newfirstarg)
-        self.nb_args += 1
 
     def swap_fst_snd_args(self):
         self.args_v[0], self.args_v[1] = self.args_v[1], self.args_v[0]
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit

Reply via email to