Sometimes the compiler cannot save you…

When I was trying to understand why the matchbox-keyboard always presents window decoration under E (it doesn’t do it under Gnome and KDE), I found this code and noticed a strange thing…

if (!cfdata->border->remember)
    cfdata->border->remember = e_remember_new();
{
    if (cfdata->border->remember)
        e_remember_use(cfdata->border->remember);
}

(e17/apps/e/src/modules/conf_borders/e_int_config_borders.c function _basic_apply_border)

The second and third lines are switched, "cfdata->border->remember = e_remember_new();" should be inside the next context created ( {} ).

This small mistake couldn’t be noticed by the compiler as the syntax is actually right (you can create new contexts anytime). Functionally speaking, it sounds the the e_remember_use function should be called just when the new “remember” is created instead of every time.

This bug won’t be noticed because the code is already patched ;)

There are no comments on this post

Leave a Reply