From 4efac8e26fe0c28d903ce8c9a257f8fd2e39c2a1 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jos=C3=A9=20Fonseca?= Date: Mon, 16 Apr 2012 10:59:25 +0100 Subject: [PATCH] tracediff2: Handle variations in number of arguments. --- scripts/tracediff2.py | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/scripts/tracediff2.py b/scripts/tracediff2.py index 3872071..0f59d87 100755 --- a/scripts/tracediff2.py +++ b/scripts/tracediff2.py @@ -166,16 +166,24 @@ class SDiffer: a_call = self.a[alo + i] b_call = self.b[blo + i] assert a_call.functionName == b_call.functionName - assert len(a_call.args) == len(b_call.args) self.dumpCallNos(a_call.no, b_call.no) self.highlighter.bold(True) self.highlighter.write(b_call.functionName) self.highlighter.bold(False) self.highlighter.write('(') sep = '' - for j in xrange(len(b_call.args)): + numArgs = max(len(a_call.args), len(b_call.args)) + for j in xrange(numArgs): self.highlighter.write(sep) - self.replace_value(a_call.args[j], b_call.args[j]) + try: + a_arg = a_call.args[j] + except IndexError: + pass + try: + b_arg = b_call.args[j] + except IndexError: + pass + self.replace_value(a_arg, b_arg) sep = ', ' self.highlighter.write(')') if a_call.ret is not None or b_call.ret is not None: -- 2.7.4