forked from enlightenment/efl
fix ret_size used unitialized
Threshold is fallback for type calc min/max dir size for threshold only once SVN revision: 48923
This commit is contained in:
parent
fa5fa3c7e7
commit
3ac99ef29b
|
@ -673,7 +673,7 @@ efreet_icon_lookup_icon(Efreet_Icon_Theme *theme, const char *icon_name,
|
|||
char *icon = NULL, *tmp = NULL;
|
||||
Efreet_Icon_Theme_Directory *dir;
|
||||
double minimal_distance = INT_MAX;
|
||||
unsigned int ret_size;
|
||||
unsigned int ret_size = 0;
|
||||
|
||||
if (!theme || (theme->paths == NULL) || !icon_name || !size)
|
||||
return NULL;
|
||||
|
@ -762,13 +762,10 @@ efreet_icon_directory_size_match(Efreet_Icon_Theme_Directory *dir,
|
|||
if (dir->type == EFREET_ICON_SIZE_TYPE_FIXED)
|
||||
return (dir->size.normal == size);
|
||||
|
||||
if (dir->type == EFREET_ICON_SIZE_TYPE_SCALABLE)
|
||||
if ((dir->type == EFREET_ICON_SIZE_TYPE_SCALABLE) ||
|
||||
(dir->type == EFREET_ICON_SIZE_TYPE_THRESHOLD))
|
||||
return ((dir->size.min < size) && (size < dir->size.max));
|
||||
|
||||
if (dir->type == EFREET_ICON_SIZE_TYPE_THRESHOLD)
|
||||
return (((dir->size.normal - dir->size.threshold) < size)
|
||||
&& (size < (dir->size.normal + dir->size.threshold)));
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -786,31 +783,21 @@ efreet_icon_directory_size_distance(Efreet_Icon_Theme_Directory *dir,
|
|||
if (dir->type == EFREET_ICON_SIZE_TYPE_FIXED)
|
||||
return (abs(dir->size.normal - size));
|
||||
|
||||
if (dir->type == EFREET_ICON_SIZE_TYPE_SCALABLE)
|
||||
{
|
||||
if (size < dir->size.min)
|
||||
return dir->size.min - size;
|
||||
if (dir->size.max < size)
|
||||
return size - dir->size.max;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (dir->type == EFREET_ICON_SIZE_TYPE_THRESHOLD)
|
||||
if ((dir->type == EFREET_ICON_SIZE_TYPE_SCALABLE) ||
|
||||
(dir->type == EFREET_ICON_SIZE_TYPE_THRESHOLD))
|
||||
{
|
||||
#ifdef STRICT_SPEC
|
||||
if (size < (dir->size.normal - dir->size.threshold))
|
||||
return (dir->size.min - size);
|
||||
if ((dir->size.normal + dir->size.threshold) < size)
|
||||
return (size - dir->size.max);
|
||||
if (size < dir->size.min)
|
||||
return (dir->size.min - size);
|
||||
if (dir->size.max < size)
|
||||
return (size - dir->size.max);
|
||||
#else
|
||||
if (size < (dir->size.normal - dir->size.threshold))
|
||||
return (dir->size.min / (double)size);
|
||||
if ((dir->size.normal + dir->size.threshold) < size)
|
||||
return (size / (double)dir->size.max);
|
||||
if (size < dir->size.min)
|
||||
return (dir->size.min / (double)size);
|
||||
if (dir->size.max < size)
|
||||
return (size / (double)dir->size.max);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
@ -1513,33 +1500,39 @@ efreet_icon_theme_directory_new(Efreet_Ini *ini, const char *name)
|
|||
dir->context = EFREET_ICON_THEME_CONTEXT_MIMETYPES;
|
||||
}
|
||||
|
||||
/* Threshold is fallback */
|
||||
dir->type = EFREET_ICON_SIZE_TYPE_THRESHOLD;
|
||||
|
||||
tmp = efreet_ini_string_get(ini, "Type");
|
||||
if (tmp)
|
||||
{
|
||||
{
|
||||
if (!strcasecmp(tmp, "Fixed"))
|
||||
dir->type = EFREET_ICON_SIZE_TYPE_FIXED;
|
||||
|
||||
else if (!strcasecmp(tmp, "Scalable"))
|
||||
dir->type = EFREET_ICON_SIZE_TYPE_SCALABLE;
|
||||
|
||||
else if (!strcasecmp(tmp, "Threshold"))
|
||||
dir->type = EFREET_ICON_SIZE_TYPE_THRESHOLD;
|
||||
}
|
||||
|
||||
dir->size.normal = efreet_ini_int_get(ini, "Size");
|
||||
|
||||
val = efreet_ini_int_get(ini, "MinSize");
|
||||
if (val < 0) dir->size.min = dir->size.normal;
|
||||
else dir->size.min = val;
|
||||
|
||||
val = efreet_ini_int_get(ini, "MaxSize");
|
||||
if (val < 0) dir->size.max = dir->size.normal;
|
||||
else dir->size.max = val;
|
||||
|
||||
val = efreet_ini_int_get(ini, "Threshold");
|
||||
if (val < 0) dir->size.threshold = 2;
|
||||
else dir->size.threshold = val;
|
||||
if (dir->type == EFREET_ICON_SIZE_TYPE_THRESHOLD)
|
||||
{
|
||||
val = efreet_ini_int_get(ini, "Threshold");
|
||||
if (val < 0) val = 2;
|
||||
dir->size.max = dir->size.normal + val;
|
||||
dir->size.min = dir->size.normal - val;
|
||||
}
|
||||
else
|
||||
{
|
||||
val = efreet_ini_int_get(ini, "MinSize");
|
||||
if (val < 0) dir->size.min = dir->size.normal;
|
||||
else dir->size.min = val;
|
||||
|
||||
val = efreet_ini_int_get(ini, "MaxSize");
|
||||
if (val < 0) dir->size.max = dir->size.normal;
|
||||
else dir->size.max = val;
|
||||
}
|
||||
|
||||
return dir;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue