edje_cc - dont try strip images that are unused at all

my previous disable didnt disable all the unused image stripping. this
now does. this code is buggy especially with image sets, to remove it
and let the warnings to the job for those compiling themes.
This commit is contained in:
Carsten Haitzler 2021-04-16 03:54:53 +01:00
parent 0c0d2c33bc
commit aef36c6e5b
2 changed files with 23 additions and 8 deletions

View File

@ -2494,6 +2494,7 @@ st_images_set_image_image(void)
set = edje_file->image_dir->sets + edje_file->image_dir->sets_count - 1; set = edje_file->image_dir->sets + edje_file->image_dir->sets_count - 1;
entry = eina_list_data_get(eina_list_last(set->entries)); entry = eina_list_data_get(eina_list_last(set->entries));
entry->id = 0;
/* Add the image to the global pool with the same syntax. */ /* Add the image to the global pool with the same syntax. */
st_images_image(); st_images_image();

View File

@ -1468,10 +1468,20 @@ data_image_sets_init(void)
set = edje_file->image_dir->sets + i; set = edje_file->image_dir->sets + i;
if (!set->entries) continue; if (!set->entries) continue;
EINA_LIST_FOREACH(set->entries, ll, set_entry) EINA_LIST_FOREACH(set->entries, ll, set_entry)
{
if (set_entry->id < (int)edje_file->image_dir->entries_count)
{ {
img = &edje_file->image_dir->entries[set_entry->id]; img = &edje_file->image_dir->entries[set_entry->id];
set_entry->name = img->entry; set_entry->name = img->entry;
} }
else
{
ERR("set %i / %i, entry %i / %i\n",
i, edje_file->image_dir->sets_count,
set_entry->id, edje_file->image_dir->entries_count);
abort();
}
}
} }
} }
@ -3606,6 +3616,7 @@ _data_image_sets_size_set(void)
} }
} }
/*
static void static void
_data_image_id_update(Eina_List *images_unused_list) _data_image_id_update(Eina_List *images_unused_list)
{ {
@ -3676,6 +3687,7 @@ _data_image_id_update(Eina_List *images_unused_list)
} }
} }
} }
*/
void void
data_process_lookups(void) data_process_lookups(void)
@ -3691,7 +3703,7 @@ data_process_lookups(void)
Eina_Hash *images_in_use; Eina_Hash *images_in_use;
char *group_name; char *group_name;
Eina_Bool is_lua = EINA_FALSE; Eina_Bool is_lua = EINA_FALSE;
Image_Unused_Ids *iui; // Image_Unused_Ids *iui;
/* remove all unreferenced Edje_Part_Collection */ /* remove all unreferenced Edje_Part_Collection */
EINA_LIST_FOREACH_SAFE(edje_collections, l, l2, pc) EINA_LIST_FOREACH_SAFE(edje_collections, l, l2, pc)
@ -4013,10 +4025,10 @@ free_group:
if (edje_file->image_dir && !is_lua) if (edje_file->image_dir && !is_lua)
{ {
Edje_Image_Directory_Entry *de, *de_last, *img; Edje_Image_Directory_Entry *de/*, *de_last, *img*/;
Edje_Image_Directory_Set *set; Edje_Image_Directory_Set *set;
Edje_Image_Directory_Set_Entry *set_e; Edje_Image_Directory_Set_Entry *set_e;
Eina_List *images_unused_list = NULL; // Eina_List *images_unused_list = NULL;
unsigned int i; unsigned int i;
for (i = 0; i < edje_file->image_dir->entries_count; ++i) for (i = 0; i < edje_file->image_dir->entries_count; ++i)
@ -4032,6 +4044,7 @@ free_group:
// so as not to write the unused images, moved last image in the // so as not to write the unused images, moved last image in the
// list to unused image position and check it // list to unused image position and check it
/*
free((void *)de->entry); free((void *)de->entry);
de->entry = NULL; de->entry = NULL;
de_last = edje_file->image_dir->entries + edje_file->image_dir->entries_count - 1; de_last = edje_file->image_dir->entries + edje_file->image_dir->entries_count - 1;
@ -4046,6 +4059,7 @@ free_group:
img = realloc(edje_file->image_dir->entries, img = realloc(edje_file->image_dir->entries,
sizeof (Edje_Image_Directory_Entry) * edje_file->image_dir->entries_count); sizeof (Edje_Image_Directory_Entry) * edje_file->image_dir->entries_count);
edje_file->image_dir->entries = img; edje_file->image_dir->entries = img;
*/
} }
for (i = 0; i < edje_file->image_dir->sets_count; ++i) for (i = 0; i < edje_file->image_dir->sets_count; ++i)
@ -4091,9 +4105,9 @@ free_group:
} }
/* update image id in parts */ /* update image id in parts */
if (images_unused_list) _data_image_id_update(images_unused_list); // if (images_unused_list) _data_image_id_update(images_unused_list);
EINA_LIST_FREE(images_unused_list, iui) // EINA_LIST_FREE(images_unused_list, iui)
free(iui); // free(iui);
_data_image_sets_size_set(); _data_image_sets_size_set();
} }