diff --git a/ChangeLog b/ChangeLog index f4cbd814d..7f97feea8 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-01-28 John Luke + + * glade/XML.custom : some null checking for crash prevention. + [Fixes #47017] + 2004-01-28 Mike Kestner * gtk/gtk-api.xml : regen diff --git a/glade/XML.custom b/glade/XML.custom index 6fcf89a77..8b15f3b15 100644 --- a/glade/XML.custom +++ b/glade/XML.custom @@ -30,7 +30,17 @@ /// public string Filename { get { - string ret = Marshal.PtrToStringAnsi (gtksharp_glade_xml_get_filename (Handle)); + string ret; + IntPtr ptr = gtksharp_glade_xml_get_filename (Handle); + if (ptr == IntPtr.Zero) + { + // from resource + ret = System.Reflection.Assembly.GetCallingAssembly ().Location; + } + else + { + ret = Marshal.PtrToStringAnsi (ptr); + } return ret; } } @@ -47,7 +57,12 @@ static extern IntPtr glade_get_widget_name (IntPtr widget); static public string GetWidgetName (Gtk.Widget w) { - string ret = Marshal.PtrToStringAnsi (glade_get_widget_name (w.Handle)); + string ret; + IntPtr ptr = glade_get_widget_name (w.Handle); + if (ptr == IntPtr.Zero) + ret = ""; + else + ret = Marshal.PtrToStringAnsi (ptr); return ret; }