bug-gnubg
[Top][All Lists]
Advanced

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

Re: [Bug-gnubg] Assertion fail with progress bar


From: Jonathan Kinsey
Subject: Re: [Bug-gnubg] Assertion fail with progress bar
Date: Fri, 9 Apr 2010 08:18:35 +0000

Looks like ProgressEnd() is being called, probably in another thread. Changing
GtkProgressValue to have something like:

gdouble frac = (iMax == 0) ? 1 : (double)iValue / iMax;

Jon

On 09/04/2010 06:46, 保坂範行 wrote:
> Hi.
>
> I see assertion fail when analysis of game/match done.
> Such as
> (gnubg:30806): Gtk-CRITICAL **: gtk_progress_set_percentage: assertion
> `percentage>= 0 && percentage <= 1.0' failed
>
>
> To find out, I inserted old printf as follow:
>
> gtkgame.c
> extern void GTKProgressValue ( int iValue, int iMax )
> {
> gchar *gsz;
> gdouble frac = 1.0 * iValue / (1.0 * iMax );
> gsz = g_strdup_printf("%d/%d (%.0f%%)", iValue, iMax, 100 * frac);
> gtk_progress_bar_set_text( GTK_PROGRESS_BAR( pwProgress ), gsz);
> printf("%d, %d, %f\n", iValue, iMax, frac);
> gtk_progress_bar_set_fraction( GTK_PROGRESS_BAR( pwProgress ), frac);
> g_free(gsz);
>
> ProcessEvents();
> }
>
>
> And got:
>
> (Game over) analyse match
> 1, 61, 0.016393
> 3, 61, 0.049180
> 6, 61, 0.098361
> 9, 61, 0.147541
> 12, 61, 0.196721
> 15, 61, 0.245902
> 19, 61, 0.311475
> 28, 61, 0.459016
> 43, 61, 0.704918
> 47, 61, 0.770492
> 49, 61, 0.803279
> 51, 61, 0.836066
> 53, 61, 0.868852
> 55, 61, 0.901639
> 57, 61, 0.934426
> 60, 0, inf
> (gnubg:30806): Gtk-CRITICAL **: gtk_progress_set_percentage: assertion
> `percentage>= 0 && percentage <= 1.0' failed
>
>
> This means GTKProgressValue got iMax =0.
>
> By using ddd/gdb, I found that it happend via
>
> static gboolean UpdateProgressBar(gpointer unused)
> {
> ProgressValue(MT_GetDoneTasks());
> return TRUE;
> }
>
> Some how iMax in ProgressValue has changed to 0.
>
>
> Nori
>
>
> _______________________________________________
> Bug-gnubg mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/bug-gnubg
>
>





Get a free e-mail account with Hotmail. Sign-up now.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]