From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:43528) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGdhT-0006mD-VX for qemu-devel@nongnu.org; Thu, 20 Feb 2014 19:10:52 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1WGdhH-0001ko-HZ for qemu-devel@nongnu.org; Thu, 20 Feb 2014 19:10:43 -0500 Received: from e23smtp07.au.ibm.com ([202.81.31.140]:36386) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1WGdhG-0001jV-P1 for qemu-devel@nongnu.org; Thu, 20 Feb 2014 19:10:31 -0500 Received: from /spool/local by e23smtp07.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Fri, 21 Feb 2014 10:10:25 +1000 Received: from d23relay03.au.ibm.com (d23relay03.au.ibm.com [9.190.235.21]) by d23dlp02.au.ibm.com (Postfix) with ESMTP id 31EB72BB0054 for ; Fri, 21 Feb 2014 11:10:24 +1100 (EST) Received: from d23av03.au.ibm.com (d23av03.au.ibm.com [9.190.234.97]) by d23relay03.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id s1L0AAKB10354998 for ; Fri, 21 Feb 2014 11:10:10 +1100 Received: from d23av03.au.ibm.com (localhost [127.0.0.1]) by d23av03.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s1L0ANq9012387 for ; Fri, 21 Feb 2014 11:10:23 +1100 Message-ID: <5306996C.2000709@linux.vnet.ibm.com> Date: Fri, 21 Feb 2014 08:10:20 +0800 From: Wenchao Xia MIME-Version: 1.0 References: <1392875695-15627-1-git-send-email-xiawenc@linux.vnet.ibm.com> <1392875695-15627-4-git-send-email-xiawenc@linux.vnet.ibm.com> <87eh2y0y9r.fsf@blackfin.pond.sub.org> In-Reply-To: <87eh2y0y9r.fsf@blackfin.pond.sub.org> Content-Type: text/plain; charset=GB2312 Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH V7 03/11] qapi-script: remember line number in schema parsing List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Markus Armbruster Cc: kwolf@redhat.com, lcapitulino@redhat.com, qemu-devel@nongnu.org, mdroth@linux.vnet.ibm.com ÓÚ 2014/2/20 20:22, Markus Armbruster дµÀ: > Wenchao Xia writes: > >> Before this patch, 'QAPISchemaError' scans whole input until 'pos' >> to get error line number. After this patch, the scan is avoided since >> line number is remembered in schema parsing. This patch also benefits >> other error report functions, which would be introduced later. > > Not sure avoiding the scan is worthwhile, but since you coded it > already... no objections. > >> >> Signed-off-by: Wenchao Xia >> --- >> scripts/qapi.py | 14 ++++++++------ >> 1 files changed, 8 insertions(+), 6 deletions(-) >> >> diff --git a/scripts/qapi.py b/scripts/qapi.py >> index 3732fe1..c504eb4 100644 >> --- a/scripts/qapi.py >> +++ b/scripts/qapi.py >> @@ -39,12 +39,10 @@ class QAPISchemaError(Exception): >> def __init__(self, schema, msg): >> self.fp = schema.fp >> self.msg = msg >> - self.line = self.col = 1 >> - for ch in schema.src[0:schema.pos]: >> - if ch == '\n': >> - self.line += 1 >> - self.col = 1 >> - elif ch == '\t': >> + self.col = 1 >> + self.line = schema.line >> + for ch in schema.src[schema.line_pos:schema.pos]: >> + if ch == '\t': >> self.col = (self.col + 7) % 8 + 1 > > Column computation is wrong. Should be something like > > self.col = ((self.col + 7) & ~7) + 1 > > Not your fault, of course, and you don't have to fix it to get my R-by. > If you want to fix it, separate patch, and please include suitable > tests. > Thanks for your quick review, I'll respin it next week.