[gtkada] GtkAda: Storage Error
Frode Tennebø
frode at tennebo.com
Fri Mar 14 23:46:56 CET 2003
On Monday 24 February 2003 22:46, Arnaud Charlet wrote:
> > Is this also the case for gate?
>
> After double checking, the cause is different. For gate, this is
> because apparently some incompatible change have been made in recent
> versions of Gtk that broke gate.
I just downloaded cvs of gtkada and gdb and tried my old project through
gate again. Apart from gtkada not compiling very nicely with
"src/.devel" and some tweaking needed to enable -g all over (see
separate post) I got the following result:
Starting program: /usr/bin/gate-in.exe gimdbob.glade
Breakpoint 1 at 0x4063694f: file a-except.adb, line 1048.
with Gtk; use Gtk;
with Gtk.Main;
with Gtk.Widget; use Gtk.Widget;
with Main_Window_Pkg; use Main_Window_Pkg;
with Search_Widget_Pkg; use Search_Widget_Pkg;
procedure Gimdbob is
Main_Window : Main_Window_Access;
Search_Widget : Search_Widget_Access;
begin
Gtk.Main.Set_Locale;
Gtk.Main.Init;
Gtk_New (Main_Window);
Show_All (Main_Window);
Gtk_New (Search_Widget);
Show_All (Search_Widget);
Gtk.Main.Main;
end Gimdbob;
Breakpoint 1, STORAGE_ERROR at 0x400eccb2 in glib.object.params
(q=@0xbfffe510) at ../glib-object.adb:362
Backtrace:
(gdb) back
#0 <__gnat_raise_nodefer_with_msg> (e=0x4072d160) at a-except.adb:1048
#1 0x40636bd1 in ada.exceptions.raise_with_location (e=0x4072d160,
f=0x40196e1c, l=365) at a-except.adb:1223
#2 0x40636c3e in <__gnat_raise_storage_error> (file=0x40196e1c,
line=365) at a-except.adb:1253
#3 0x400eccb2 in glib.object.params (q=@0xbfffe510) at
../glib-object.adb:362
#4 0x400e23cf in glib.glade.gen_signal (n=0x806d098, file=0x8081010,
widget_class=0x806336c) at ../glib-glade.adb:889
#5 0x08056730 in gtk_generates.toolbar_generate (n=0x806cc38,
file=0x8081010) at gtk_generates.adb:1445
#6 0x0805a851 in gtk.glade.print_initialize_procedure (n=0x806cc38,
file=0x8081010) at gtk-glade.adb:124
#7 0x0805a8f1 in gtk.glade.print_initialize_procedure (n=0x8069148,
file=0x8081010) at gtk-glade.adb:135
#8 0x0805a8f1 in gtk.glade.print_initialize_procedure (n=0x8068bb0,
file=0x8081010) at gtk-glade.adb:135
#9 0x0805dbdb in gtk.glade.generate (n=0x8065178) at gtk-glade.adb:499
#10 0x0806027c in gate () at gate.adb:122
#11 0x0804cea6 in main (argc=2, argv=(system.address) 0xbffff974,
envp=(system.address) 0xbffff980) at b~gate.adb:336
#12 0x420158d4 in __libc_start_main () from /lib/i686/libc.so.6
The offending function in srg/glib-object.adb:
------------
-- Params --
------------
function Params (Q : Signal_Query) return GType_Array is
type Flat_GType_Array is array (Guint) of GType;
type Flat_GType_Array_Access is access Flat_GType_Array;
type Guint_Access is access all Guint;
function Internal
(Q : Signal_Query;
N_Ids : Guint_Access) return Flat_GType_Array_Access;
pragma Import (C, Internal, "ada_gsignal_query_params");
N_Ids : aliased Guint;
Result : constant Flat_GType_Array_Access := Internal (Q,
N_Ids'Access);
begin
if N_Ids = 0 then
return (1 .. 0 => GType_Invalid); -- line 362, exception here
else
declare
Res : constant GType_Array (0 .. N_Ids - 1) :=
GType_Array (Result (0 .. N_Ids - 1));
begin
return Res;
end;
end if;
end Params;
OK. I don't have my RM or textbooks at home, but exatly how is this
supposed to work?
-Frode
--
^ Frode Tennebø | email: frode at tennebo.com | Frode at IRC ^
| with Standard.Disclaimer; use Standard.Disclaimer; |
More information about the gtkada
mailing list