All,

I'm jumping lists with this; my apologies, but it's definitely a gtk bug 
and so want to followup to gtk-list.

If I try to print a denormalized float with a specific format string, 
e.g. "%6.2f\n", using g_string_sprintf(), the program crashes with an 
error about allocating a negative number of bytes.

An example program is below, showing the error when compiled and run 
under Linux.  I believe that the problem is present in both 1.2.9 and 
1.2.10.

If I change the format string to "%g\n", I get an answer that is 
"something e-44", which is why I think that the denormalized is the 
problem.  On Solaris, I get "0.000", which is I believe the correct 
response.

I think that I can work around this with additional testing, but I have 
two questions:
1) Is there ongoing bugfix developement on 1.2.x GTK+?
2) Is this bug fixed in Gtk+ 2.0.x?

Eric Monsler


#include <gtk/gtk.h>
int main (int argc, char *argv[])
{
   GString  *pGStr;

   union {
     int   i_val;
     float f_val;
   } the_data;

   gtk_set_locale();
   gtk_init(&argc,&argv);

   the_data.i_val = 1;
   pGStr = g_string_new("");
   g_string_sprintf(pGStr,"%6.2f\n",the_data.f_val);

   printf(pGStr->str);
}




Eric M. Monsler wrote:

> All,
> 
> I am seeing a crash, although with GLib error message, when printing a 
> floating point number.
> 
> The error message is that GLib is unable to allocate -7 bytes.  Which 
> seems reasonable enough.
> 
> The problem is that the data I am trying to print does not seem to be a 
> valid floating point number.  My program needs to be crash-proof in this 
> case, as bad data is going to be encountered.  I see that the value that 
> is bad is typically something like "6.0245e-44", which is not valid.
> 
> The fact that I can read the value means that ddd/gdb is handling it 
> properly, but not g_string_sprintf.
> 
> Any clues?  Any suggestions as to how to clamp the floating point value? 
>  I have tried to do so with comparisons to MAX_FLT and MIN_FLT, without 
> success.
> 
> As an aside, the problem has never been observed when using the Solaris 
> version of the program, just the Linux one.
> 
> Thanks in advance,
> 


_______________________________________________
gtk-list mailing list
[EMAIL PROTECTED]
http://mail.gnome.org/mailman/listinfo/gtk-list

Reply via email to