diff --git a/src/bin/evas/evas_cserve2_cache.c b/src/bin/evas/evas_cserve2_cache.c index 0c2a5bee73..7acf201d98 100644 --- a/src/bin/evas/evas_cserve2_cache.c +++ b/src/bin/evas/evas_cserve2_cache.c @@ -1712,6 +1712,7 @@ _file_changed_cb(const char *path EINA_UNUSED, Eina_Bool deleted EINA_UNUSED, vo if (fd) { fd->changed = EINA_TRUE; + fd->valid = EINA_FALSE; _file_id_free(fd); eina_hash_set(file_entries, &fd->id, NULL); } diff --git a/src/lib/evas/cserve2/evas_cs2_client.c b/src/lib/evas/cserve2/evas_cs2_client.c index 3591d22914..33b073c907 100644 --- a/src/lib/evas/cserve2/evas_cs2_client.c +++ b/src/lib/evas/cserve2/evas_cs2_client.c @@ -2735,7 +2735,9 @@ _shared_image_entry_file_data_find(Image_Entry *ie) if (fe->server_file_id) { if ((fdata = _shared_file_data_get_by_id(fe->server_file_id)) != NULL) - return fdata; + if (!fdata->changed) + return fdata; + fe->server_file_id = 0; } // Check hash @@ -2757,6 +2759,7 @@ _shared_image_entry_file_data_find(Image_Entry *ie) fd = &(_index.files.entries.filedata[k]); if (!fd->id) break; if (!fd->refcount) continue; + if (fd->changed) continue; key = _shared_string_safe_get(fd->key); file = _shared_string_safe_get(fd->path); @@ -3106,6 +3109,7 @@ _shared_image_entry_image_data_find(Image_Entry *ie) continue; } + if (fd->changed || !fd->valid) continue; key = _shared_string_safe_get(fd->key); file = _shared_string_safe_get(fd->path); if (!file)