From debbugs-submit-bounces@debbugs.gnu.org Sat Aug 27 20:11:03 2011 Received: (at submit) by debbugs.gnu.org; 28 Aug 2011 00:11:03 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QxSxq-0005r8-TQ for submit@debbugs.gnu.org; Sat, 27 Aug 2011 20:11:03 -0400 Received: from eggs.gnu.org ([140.186.70.92]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1QxSxo-0005qk-IW for submit@debbugs.gnu.org; Sat, 27 Aug 2011 20:11:01 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QxSv0-0002ae-RO for submit@debbugs.gnu.org; Sat, 27 Aug 2011 20:08:07 -0400 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on eggs.gnu.org X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=unavailable version=3.3.1 Received: from lists.gnu.org ([140.186.70.17]:37390) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QxSv0-0002aa-Q4 for submit@debbugs.gnu.org; Sat, 27 Aug 2011 20:08:06 -0400 Received: from eggs.gnu.org ([140.186.70.92]:35759) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QxSuz-0002pT-Rs for bug-gnu-emacs@gnu.org; Sat, 27 Aug 2011 20:08:06 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QxSuy-0002aQ-Jf for bug-gnu-emacs@gnu.org; Sat, 27 Aug 2011 20:08:05 -0400 Received: from msa103.auone-net.jp ([61.117.18.163]:55780) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QxSuy-0002aK-0z for bug-gnu-emacs@gnu.org; Sat, 27 Aug 2011 20:08:04 -0400 Received: from GUNGNIR.med.osaka-cu.ac.jp (121-87-117-132f1.nar1.eonet.ne.jp [121.87.117.132]) by msa103.auone-net.jp (au one net msa) with ESMTP id B9D1B34803A; Sun, 28 Aug 2011 09:08:02 +0900 (JST) Date: Sun, 28 Aug 2011 09:07:25 +0900 To: bug-gnu-emacs@gnu.org Subject: 23.3.50; unencodable-char-position has buffer relocation problem From: Kazuhiro Ito User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 EasyPG/1.0.0 Emacs/23.3.50 (i386-mingw-nt6.1.7601) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Message-Id: <20110828000802.B9D1B34803A@msa103.auone-net.jp> X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6, seldom 2.4 (older, 4) X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6 (newer, 3) X-Received-From: 140.186.70.17 X-Spam-Score: -5.1 (-----) X-Debbugs-Envelope-To: submit X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -5.1 (-----) When I start precompiled Windows binary with -Q and evaluate below code, I have unexpected result. (with-temp-buffer (insert (make-string 16 ?A)) (insert #x80) (unencodable-char-position 1 18 'ctext-unix)) -> 13 (Emacs 23.1) -> 5 (Emacs 23.3) If I evaluate it twice, it returns expected result (17). I think the cause of the problem is similar to bug#9318. unencodable-char-position uses char_charset(), which could cause a relocation of buffes. After using it, pointers must be updated as needed. === modified file 'src/coding.c' --- src/coding.c 2011-05-09 09:59:23 +0000 +++ src/coding.c 2011-08-27 04:29:23 +0000 @@ -8861,7 +8924,7 @@ Lisp_Object attrs, charset_list, translation_table; Lisp_Object positions; int from, to; - const unsigned char *p, *stop, *pend; + const unsigned char *p, *stop, *pend, *orig; int ascii_compatible; setup_coding_system (Fcheck_coding_system (coding_system), &coding); @@ -8881,7 +8944,7 @@ || (ascii_compatible && (to - from) == (CHAR_TO_BYTE (to) - (CHAR_TO_BYTE (from))))) return Qnil; - p = CHAR_POS_ADDR (from); + p = orig = CHAR_POS_ADDR (from); pend = CHAR_POS_ADDR (to); if (from < GPT && to >= GPT) stop = GPT_ADDR; @@ -8918,6 +8981,7 @@ while (1) { int c; + struct charset *charset; if (ascii_compatible) while (p < stop && ASCII_BYTE_P (*p)) @@ -8931,9 +8995,21 @@ } c = STRING_CHAR_ADVANCE (p); + + charset_map_loaded = 0; + charset = char_charset (translate_char (translation_table, c), + charset_list, NULL); + if (charset_map_loaded && NILP (string)) + { + EMACS_INT offset = CHAR_POS_ADDR (from) - orig; + orig += offset; + p += offset; + pend += offset; + stop += offset; + } + if (! (ASCII_CHAR_P (c) && ascii_compatible) - && ! char_charset (translate_char (translation_table, c), - charset_list, NULL)) + && ! charset) { positions = Fcons (make_number (from), positions); n--; -- Kazuhiro Ito From debbugs-submit-bounces@debbugs.gnu.org Sun Sep 11 00:21:35 2011 Received: (at control) by debbugs.gnu.org; 11 Sep 2011 04:21:35 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R2bXy-00064K-So for submit@debbugs.gnu.org; Sun, 11 Sep 2011 00:21:35 -0400 Received: from hermes.netfonds.no ([80.91.224.195]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1R2bXw-000648-M9 for control@debbugs.gnu.org; Sun, 11 Sep 2011 00:21:33 -0400 Received: from cm-84.215.51.58.getinternet.no ([84.215.51.58] helo=stories.gnus.org) by hermes.netfonds.no with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.72) (envelope-from ) id 1R2bTl-0000v7-IH for control@debbugs.gnu.org; Sun, 11 Sep 2011 06:17:13 +0200 Date: Sun, 11 Sep 2011 06:14:13 +0200 Message-Id: To: control@debbugs.gnu.org From: Lars Magne Ingebrigtsen Subject: control message for bug #9389 X-MailScanner-ID: 1R2bTl-0000v7-IH X-Netfonds-MailScanner: Found to be clean X-Netfonds-MailScanner-From: larsi@gnus.org MailScanner-NULL-Check: 1316319433.63655@Yz6gJvN5MH16gYyze2mPcA X-Spam-Status: No X-Spam-Score: -2.7 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.7 (--) tags 9389 patch From debbugs-submit-bounces@debbugs.gnu.org Sun Dec 11 07:28:58 2011 Received: (at 9389) by debbugs.gnu.org; 11 Dec 2011 12:28:58 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RZiWX-0007es-QU for submit@debbugs.gnu.org; Sun, 11 Dec 2011 07:28:58 -0500 Received: from mx1.aist.go.jp ([150.29.246.133]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RZiWU-0007eh-PV for 9389@debbugs.gnu.org; Sun, 11 Dec 2011 07:28:56 -0500 Received: from rqsmtp2.aist.go.jp (rqsmtp2.aist.go.jp [150.29.254.123]) by mx1.aist.go.jp with ESMTP id pBBCRhkS027049; Sun, 11 Dec 2011 21:27:43 +0900 (JST) env-from (handa@m17n.org) Received: from smtp2.aist.go.jp by rqsmtp2.aist.go.jp with ESMTP id pBBCRhwY008238; Sun, 11 Dec 2011 21:27:43 +0900 (JST) env-from (handa@m17n.org) Received: by smtp2.aist.go.jp with ESMTP id pBBCRgTo010504; Sun, 11 Dec 2011 21:27:42 +0900 (JST) env-from (handa@m17n.org) From: Kenichi Handa To: Kazuhiro Ito Subject: Re: bug#9389: 23.3.50; unencodable-char-position has buffer relocation problem In-Reply-To: <20110828000802.B9D1B34803A@msa103.auone-net.jp> (message from Kazuhiro Ito on Sun, 28 Aug 2011 09:07:25 +0900) Date: Sun, 11 Dec 2011 21:27:22 +0900 Message-ID: <87d3bv5m51.fsf@m17n.org> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.8 (--) X-Debbugs-Envelope-To: 9389 Cc: 9389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.8 (--) In article <20110828000802.B9D1B34803A@msa103.auone-net.jp>, Kazuhiro Ito writes: > When I start precompiled Windows binary with -Q and evaluate below > code, I have unexpected result. > (with-temp-buffer > (insert (make-string 16 ?A)) > (insert #x80) > (unencodable-char-position 1 18 'ctext-unix)) > -> 13 (Emacs 23.1) > -> 5 (Emacs 23.3) > If I evaluate it twice, it returns expected result (17). > I think the cause of the problem is similar to bug#9318. > unencodable-char-position uses char_charset(), which could cause a > relocation of buffes. After using it, pointers must be updated as > needed. You are right. I've just installed the attached patch (which is a little bit different from yours). --- Kenichi Handa handa@m17n.org === modified file 'src/coding.c' --- src/coding.c 2011-12-08 05:54:20 +0000 +++ src/coding.c 2011-12-11 11:14:15 +0000 @@ -8756,6 +8756,7 @@ } positions = Qnil; + charset_map_loaded = 0; while (1) { int c; @@ -8783,6 +8784,16 @@ } from++; + if (charset_map_loaded && NILP (string)) + { + p = CHAR_POS_ADDR (from); + pend = CHAR_POS_ADDR (to); + if (from < GPT && to >= GPT) + stop = GPT_ADDR; + else + stop = pend; + charset_map_loaded = 0; + } } return (NILP (count) ? Fcar (positions) : Fnreverse (positions)); From debbugs-submit-bounces@debbugs.gnu.org Thu Dec 15 07:31:49 2011 Received: (at 9389) by debbugs.gnu.org; 15 Dec 2011 12:31:49 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RbATV-0007Xu-2I for submit@debbugs.gnu.org; Thu, 15 Dec 2011 07:31:49 -0500 Received: from msa106.auone-net.jp ([61.117.18.166]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RbATR-0007Xk-Rl for 9389@debbugs.gnu.org; Thu, 15 Dec 2011 07:31:48 -0500 Received: from GUNGNIR.med.osaka-cu.ac.jp (112-68-163-114f1.nar1.eonet.ne.jp [112.68.163.114]) by msa106.auone-net.jp (au one net msa) with ESMTP id 145554B803A; Thu, 15 Dec 2011 21:30:12 +0900 (JST) Date: Thu, 15 Dec 2011 21:30:06 +0900 From: Kazuhiro Ito To: Kenichi Handa Subject: Re: bug#9389: 23.3.50; unencodable-char-position has buffer relocation problem In-Reply-To: <87d3bv5m51.fsf@m17n.org> References: <20110828000802.B9D1B34803A@msa103.auone-net.jp> <87d3bv5m51.fsf@m17n.org> User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 EasyPG/1.0.0 Emacs/23.3.50 (i386-mingw-nt6.1.7601) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII Message-Id: <20111215123014.145554B803A@msa106.auone-net.jp> X-Spam-Score: -2.6 (--) X-Debbugs-Envelope-To: 9389 Cc: 9389@debbugs.gnu.org X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -2.6 (--) > > When I start precompiled Windows binary with -Q and evaluate below > > code, I have unexpected result. > > > (with-temp-buffer > > (insert (make-string 16 ?A)) > > (insert #x80) > > (unencodable-char-position 1 18 'ctext-unix)) > > > -> 13 (Emacs 23.1) > > -> 5 (Emacs 23.3) > > > If I evaluate it twice, it returns expected result (17). > > > I think the cause of the problem is similar to bug#9318. > > unencodable-char-position uses char_charset(), which could cause a > > relocation of buffes. After using it, pointers must be updated as > > needed. > > You are right. I've just installed the attached patch > (which is a little bit different from yours). I confirmed the problem was fixed. Thank you. -- Kazuhiro Ito From debbugs-submit-bounces@debbugs.gnu.org Fri Dec 16 18:46:56 2011 Received: (at control) by debbugs.gnu.org; 16 Dec 2011 23:46:56 +0000 Received: from localhost ([127.0.0.1] helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RbhUN-0001aZ-Ks for submit@debbugs.gnu.org; Fri, 16 Dec 2011 18:46:56 -0500 Received: from fencepost.gnu.org ([140.186.70.10]) by debbugs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1RbhUL-0001aS-JL for control@debbugs.gnu.org; Fri, 16 Dec 2011 18:46:54 -0500 Received: from rgm by fencepost.gnu.org with local (Exim 4.71) (envelope-from ) id 1RbhSl-0001p7-J4 for control@debbugs.gnu.org; Fri, 16 Dec 2011 18:45:15 -0500 Date: Fri, 16 Dec 2011 18:45:15 -0500 Message-Id: Subject: control message for bug 9389 To: X-Mailer: mail (GNU Mailutils 2.1) From: Glenn Morris X-Spam-Score: -6.4 (------) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.11 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: debbugs-submit-bounces@debbugs.gnu.org Errors-To: debbugs-submit-bounces@debbugs.gnu.org X-Spam-Score: -6.4 (------) close 9389 24.0.93 From unknown Tue Sep 09 22:28:59 2025 Received: (at fakecontrol) by fakecontrolmessage; To: internal_control@debbugs.gnu.org From: Debbugs Internal Request Subject: Internal Control Message-Id: bug archived. Date: Sat, 14 Jan 2012 12:24:04 +0000 User-Agent: Fakemail v42.6.9 # This is a fake control message. # # The action: # bug archived. thanks # This fakemail brought to you by your local debbugs # administrator