all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
* Commit "Omit unused frame argument of font API's close function." breaks build and segfaults
@ 2013-10-25  8:57 Claudio Bley
  2013-10-25  9:56 ` Eli Zaretskii
  0 siblings, 1 reply; 3+ messages in thread
From: Claudio Bley @ 2013-10-25  8:57 UTC (permalink / raw)
  To: emacs-devel

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=<optimized out>)
    at ../../../src/emacs/src/alloc.c:2850
#3  cleanup_vector (vector=<optimized out>)
    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=<optimized out>, 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




^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: Commit "Omit unused frame argument of font API's close function." breaks build and segfaults
  2013-10-25  8:57 Commit "Omit unused frame argument of font API's close function." breaks build and segfaults Claudio Bley
@ 2013-10-25  9:56 ` Eli Zaretskii
  2013-10-25 12:40   ` Claudio Bley
  0 siblings, 1 reply; 3+ messages in thread
From: Eli Zaretskii @ 2013-10-25  9:56 UTC (permalink / raw)
  To: Claudio Bley; +Cc: emacs-devel

> From: claudio.bley@gmail.com (Claudio Bley)
> Date: Fri, 25 Oct 2013 10:57:36 +0200
> 
> 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;

Please try again, I hope I fixed these problems now.



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: Commit "Omit unused frame argument of font API's close function." breaks build and segfaults
  2013-10-25  9:56 ` Eli Zaretskii
@ 2013-10-25 12:40   ` Claudio Bley
  0 siblings, 0 replies; 3+ messages in thread
From: Claudio Bley @ 2013-10-25 12:40 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: emacs-devel

At Fri, 25 Oct 2013 12:56:52 +0300,
Eli Zaretskii wrote:
> 
> > From: claudio.bley@gmail.com (Claudio Bley)
> > Date: Fri, 25 Oct 2013 10:57:36 +0200
> > 
> > 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;
> 
> Please try again, I hope I fixed these problems now.

Thanks, it's fixed indeed.
-- 
Claudio



^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2013-10-25 12:40 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-10-25  8:57 Commit "Omit unused frame argument of font API's close function." breaks build and segfaults Claudio Bley
2013-10-25  9:56 ` Eli Zaretskii
2013-10-25 12:40   ` Claudio Bley

Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.