Re: Crash in pango_context_list_families



I forgot to add, that the same code works on other platforms and even on
Mac OS X with different GTK versions (2.8.17 on linux, 2.6 on mac)

Jann RÃder wrote:
Hello,
I'm trying to run the now open sourced EiffelStudio on MacOSX, it uses
GTK2 as GUI toolkit. Compilation went well howeever I'm getting strange
crashes when trying to launch in GUI mode. I've tracked down the crash
to the pango_context_list_families function which is called from the C
code below (don't wonder about the $ signs, they are used to replace the
variable names when the C code is finally compiled). Strange thing is:
the stack backtrace in GDB only shows a Fontconfig function:

#0  FcFontSetList (config=0xbfff9e68, sets=0xbfffdf28, nsets=2,
p=0x652c380, os=0x652c300) at fclist.c:421
#1  0x00000000 in ?? ()
Cannot access memory at address 0x0
Cannot access memory at address 0x0
Cannot access memory at address 0x0
#2  0x06379ecc in FcFontSetList (config=Cannot access memory at address 0x0
Cannot access memory at address 0x0
0xbfff9e68, sets=0x0, nsets=0, p=0x0, os=0x0) at fclist.c:307
Cannot access memory at address 0x0
#3  0x018012c0 in Fj7mxiy_body (Current=0x70084fc "") at
/home/dfurrer/build/EIFGEN/F_code/C11/ev1050.x:940

The function #3 is a call to the function below. I'm running Mac OS X
10.4.6 on PPC with GTK 2.8.17, pango 1.12.1, fontconfig 2.3.2 .

I have no idea why it crashes, since the crash seems to be in the
library. I hope someone can give me a hint.

Jann


retrieve_available_fonts (a_widget: POINTER; name_array: TYPED_POINTER
[POINTER]; number_elements: TYPED_POINTER [INTEGER]) is
                      -- Retrieve all available fonts present on the system
              external
                      "C inline use <gtk/gtk.h>"
              alias
                      "[
                      {
                              PangoFontFamily **families;
                              gchar **l_name_array = NULL;
                              gint i;
                              pango_context_list_families (gtk_widget_get_pango_context
((GtkWidget*) $a_widget), &families, $number_elements);

                              
                              l_name_array = malloc (*$number_elements * sizeof (gchar*));
                              
                              for (i=0; i < *$number_elements; i++)
                              {
                                       l_name_array [i] = (gchar *) pango_font_family_get_name 
(families[i]);
                              }
                              
                              g_free (families);
                              
                              *(EIF_POINTER *) $name_array = (EIF_POINTER *) l_name_array;
                      }
                      ]"
              end





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]