From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: claudio.bley@gmail.com (Claudio Bley) Newsgroups: gmane.emacs.devel Subject: Commit "Omit unused frame argument of font API's close function." breaks build and segfaults Date: Fri, 25 Oct 2013 10:57:36 +0200 Message-ID: <87txg5683j.wl%claudio.bley@gmail.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 (generated by SEMI 1.14.6 - "Maruoka") Content-Type: text/plain; charset=US-ASCII X-Trace: ger.gmane.org 1382691483 11621 80.91.229.3 (25 Oct 2013 08:58:03 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Fri, 25 Oct 2013 08:58:03 +0000 (UTC) To: emacs-devel@gnu.org Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Fri Oct 25 10:58:06 2013 Return-path: Envelope-to: ged-emacs-devel@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1VZdDa-00010S-Bx for ged-emacs-devel@m.gmane.org; Fri, 25 Oct 2013 10:58:06 +0200 Original-Received: from localhost ([::1]:58206 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VZdDZ-0004jf-UY for ged-emacs-devel@m.gmane.org; Fri, 25 Oct 2013 04:58:05 -0400 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:35114) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VZdDO-0004iV-VK for emacs-devel@gnu.org; Fri, 25 Oct 2013 04:58:02 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VZdDF-00040P-Nt for emacs-devel@gnu.org; Fri, 25 Oct 2013 04:57:54 -0400 Original-Received: from plane.gmane.org ([80.91.229.3]:42176) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VZdDF-00040I-CX for emacs-devel@gnu.org; Fri, 25 Oct 2013 04:57:45 -0400 Original-Received: from list by plane.gmane.org with local (Exim 4.69) (envelope-from ) id 1VZdDD-0000e0-QB for emacs-devel@gnu.org; Fri, 25 Oct 2013 10:57:43 +0200 Original-Received: from 178-24-125-95-dynip.superkabel.de ([178.24.125.95]) by main.gmane.org with esmtp (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 25 Oct 2013 10:57:43 +0200 Original-Received: from claudio.bley by 178-24-125-95-dynip.superkabel.de with local (Gmexim 0.1 (Debian)) id 1AlnuQ-0007hv-00 for ; Fri, 25 Oct 2013 10:57:43 +0200 X-Injected-Via-Gmane: http://gmane.org/ Original-Lines: 103 Original-X-Complaints-To: usenet@ger.gmane.org X-Gmane-NNTP-Posting-Host: 178-24-125-95-dynip.superkabel.de User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI/1.14.6 (Maruoka) FLIM/1.14.9 (=?UTF-8?B?R29qxY0=?=) APEL/10.8 Emacs/24.3.50 (i686-pc-mingw32) MULE/6.0 (HANACHIRUSATO) X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-Received-From: 80.91.229.3 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.14 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.devel:164530 Archived-At: Hi. Since commit dmantipov@yandex.ru-20131025065536-4bf73h8m47vb0irs I receive these build failures: gcc -std=gnu99 -c -mtune=pentium4 -I/c/Users/Claudio/src/emacs-dep/stage/include -DUSE_CRT_DLL=1 -I /c/Users/Claudio/build/emacs-w32/../../src/emacs/nt/inc -Demacs -I. -I../../../src/emacs/src -I../lib -I../../../src/emacs/src/../lib -mtune=pentium4 -Ic:/Users/Claudio/src/emacs-dep/stage/include/libxml2 -MMD -MF deps/w32font.d -MP -Ic:/Users/Claudio/src/emacs-dep/stage/include -IC:/Users/Claudio/src/emacs-dep/stage/include -g3 -O2 -gdwarf-2 ../../../src/emacs/src/w32font.c ../../../src/emacs/src/w32font.c:381:1: error: conflicting types for 'w32font_close' In file included from ../../../src/emacs/src/w32font.c:35:0: ../../../src/emacs/src/w32font.h:75:6: note: previous declaration of 'w32font_close' was here ../../../src/emacs/src/w32font.c: In function 'w32font_close': ../../../src/emacs/src/w32font.c:394:9: error: 'i' undeclared (first use in this function) ../../../src/emacs/src/w32font.c:394:9: note: each undeclared identifier is reported only once for each function it appears in make[1]: *** [w32font.o] Error 1 gcc -std=gnu99 -c -mtune=pentium4 -I/c/Users/Claudio/src/emacs-dep/stage/include -DUSE_CRT_DLL=1 -I /c/Users/Claudio/build/emacs-w32/../../src/emacs/nt/inc -Demacs -I. -I../../../src/emacs/src -I../lib -I../../../src/emacs/src/../lib -mtune=pentium4 -Ic:/Users/Claudio/src/emacs-dep/stage/include/libxml2 -MMD -MF deps/w32term.d -MP -Ic:/Users/Claudio/src/emacs-dep/stage/include -IC:/Users/Claudio/src/emacs-dep/stage/include -g3 -O2 -gdwarf-2 ../../../src/emacs/src/w32term.c gcc -std=gnu99 -c -mtune=pentium4 -I/c/Users/Claudio/src/emacs-dep/stage/include -DUSE_CRT_DLL=1 -I /c/Users/Claudio/build/emacs-w32/../../src/emacs/nt/inc -Demacs -I. -I../../../src/emacs/src -I../lib -I../../../src/emacs/src/../lib -mtune=pentium4 -Ic:/Users/Claudio/src/emacs-dep/stage/include/libxml2 -MMD -MF deps/w32uniscribe.d -MP -Ic:/Users/Claudio/src/emacs-dep/stage/include -IC:/Users/Claudio/src/emacs-dep/stage/include -g3 -O2 -gdwarf-2 ../../../src/emacs/src/w32uniscribe.c ../../../src/emacs/src/w32uniscribe.c:975:5: warning: initialization from incompatible pointer type [enabled by default] ../../../src/emacs/src/w32uniscribe.c:975:5: warning: (near initialization for 'uniscribe_font_driver.sys_close') [enabled by default] After fixing it that way: ---- 8< ----------------------- >8 -----------------------------------1 diff --git a/src/w32font.c b/src/w32font.c index dd21aca..d308a09 100644 --- a/src/w32font.c +++ b/src/w32font.c @@ -391,6 +391,7 @@ w32font_close (struct font *font) /* Free all the cached metrics. */ if (w32_font->cached_metrics) { + int i; for (i = 0; i < w32_font->n_cache_blocks; i++) xfree (w32_font->cached_metrics[i]); xfree (w32_font->cached_metrics); diff --git a/src/w32font.h b/src/w32font.h index 5622086..1991492 100644 --- a/src/w32font.h +++ b/src/w32font.h @@ -72,7 +72,7 @@ Lisp_Object w32font_match_internal (struct frame *f, int opentype_only); int w32font_open_internal (struct frame *f, Lisp_Object font_entity, int pixel_size, Lisp_Object font_object); -void w32font_close (struct frame *f, struct font *font); +void w32font_close (struct font *font); int w32font_has_char (Lisp_Object entity, int c); int w32font_text_extents (struct font *font, unsigned *code, int nglyphs, struct font_metrics *metrics); diff --git a/src/w32uniscribe.c b/src/w32uniscribe.c index b31baa0..d8873da 100644 --- a/src/w32uniscribe.c +++ b/src/w32uniscribe.c @@ -143,7 +143,7 @@ uniscribe_close (struct frame *f, struct font *font) if (uniscribe_font->cache) ScriptFreeCache (&(uniscribe_font->cache)); - w32font_close (f, font); + w32font_close (font); } /* Return a list describing which scripts/languages FONT supports by ------ 8< ----------------------- >8 --------------------------------- "emacs -Q" segfaults when starting: Program received signal SIGSEGV, Segmentation fault. _free_internal_nolock (ptr=0x39b4) at ../../../src/emacs/src/gmalloc.c:1056 1056 _heapinfo[block].free.size = _heapinfo[block].busy.info.size; (gdb) bt #0 _free_internal_nolock (ptr=0x39b4) at ../../../src/emacs/src/gmalloc.c:1056 #1 0x011515c6 in w32font_close ( font=0x3c52de0 <_Jv_RegisterClasses+63253984>) at ../../../src/emacs/src/w32font.c:396 #2 0x010da0fa in cleanup_vector (vector=) at ../../../src/emacs/src/alloc.c:2850 #3 cleanup_vector (vector=) at ../../../src/emacs/src/alloc.c:2845 #4 0x010de0de in sweep_vectors () at ../../../src/emacs/src/alloc.c:2899 #5 gc_sweep () at ../../../src/emacs/src/alloc.c:6591 #6 Fgarbage_collect () at ../../../src/emacs/src/alloc.c:5514 #7 0x010f28af in maybe_gc () at ../../../src/emacs/src/lisp.h:4385 #8 eval_sub (form=form@entry=61675694) at ../../../src/emacs/src/eval.c:2058 #9 0x01112662 in readevalloop (readcharfun=61379210, stream=stream@entry=0x75fb2960, sourcename=62442305, sourcename@entry=62420225, printflag=printflag@entry=false, unibyte=61261850, readfun=61261850, start=61261850, end=61261850) at ../../../src/emacs/src/lread.c:1876 #10 0x01113282 in Fload (file=18899409, noerror=noerror@entry=61261850, nomessage=nomessage@entry=61261874, nosuffix=61261850, must_suffix=, must_suffix@entry=61261874) at ../../../src/emacs/src/lread.c:1352 #11 0x010f4c6a in Fautoload_do_load (fundef=18899470, funname=funname@entry=63858002, macro_only=61261850) at ../../../src/emacs/src/eval.c:1944 #12 0x010f34ac in Ffuncall (nargs=2, args=0x88f12c) at ../../../src/emacs/src/eval.c:2853 #13 0x01123b63 in exec_byte_code (bytestr=1231, vector=68055616, maxdepth=20, args_template=61261850, nargs=0, args=0x2) at ../../../src/emacs/src/bytecode.c:919 #14 0x010f3225 in funcall_lambda (fun=19172141, nargs=nargs@entry=3, arg_vector=arg_vector@entry=0x88f2b8) [43 frames omitted] -- Claudio