raster pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=4192137ba9853c798e830acaa68c46f1afff0505
commit 4192137ba9853c798e830acaa68c46f1afff0505 Author: Carsten Haitzler (Rasterman) <ras...@rasterman.com> Date: Mon Oct 14 12:14:26 2019 +0100 eet - fix loading eet files that do not have dicts my performance fix for locking around the eet dict breaks if there is no dict in the eet file. this causes a segv. fixes T8368 @fix --- src/lib/eet/eet_data.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/lib/eet/eet_data.c b/src/lib/eet/eet_data.c index f8293ed896..5bcf65f9d6 100644 --- a/src/lib/eet/eet_data.c +++ b/src/lib/eet/eet_data.c @@ -2283,11 +2283,11 @@ eet_data_read_cipher(Eet_File *ef, return NULL; } - eet_dictionary_lock_read(ed); // XXX: get manual eet_dictionary lock + if (ed) eet_dictionary_lock_read(ed); // XXX: get manual eet_dictionary lock eet_free_context_init(&context); data_dec = _eet_data_descriptor_decode(&context, ed, edd, data, size, NULL, 0); eet_free_context_shutdown(&context); - eet_dictionary_unlock(ed); // XXX: release manual eet_dictionary lock + if (ed) eet_dictionary_unlock(ed); // XXX: release manual eet_dictionary lock if (required_free) free((void *)data); @@ -2324,11 +2324,11 @@ eet_data_read_cipher_buffer(Eet_File *ef, return NULL; } - eet_dictionary_lock_read(ed); // XXX: get manual eet_dictionary lock + if (ed) eet_dictionary_lock_read(ed); // XXX: get manual eet_dictionary lock eet_free_context_init(&context); data_dec = _eet_data_descriptor_decode(&context, ed, edd, data, size, buffer, buffer_size); eet_free_context_shutdown(&context); - eet_dictionary_unlock(ed); // XXX: release manual eet_dictionary lock + if (ed) eet_dictionary_unlock(ed); // XXX: release manual eet_dictionary lock if (required_free) free((void *)data); @@ -2361,11 +2361,11 @@ eet_data_node_read_cipher(Eet_File *ef, return NULL; } - eet_dictionary_lock_read(ed); // XXX: get manual eet_dictionary lock + if (ed) eet_dictionary_lock_read(ed); // XXX: get manual eet_dictionary lock eet_free_context_init(&context); result = _eet_data_descriptor_decode(&context, ed, NULL, data, size, NULL, 0); eet_free_context_shutdown(&context); - eet_dictionary_unlock(ed); // XXX: release manual eet_dictionary lock + if (ed) eet_dictionary_unlock(ed); // XXX: release manual eet_dictionary lock if (required_free) free((void *)data); @@ -4839,11 +4839,11 @@ eet_data_dump_cipher(Eet_File *ef, return 0; } - eet_dictionary_lock_read(ed); // XXX: get manual eet_dictionary lock + if (ed) eet_dictionary_lock_read(ed); // XXX: get manual eet_dictionary lock eet_free_context_init(&context); result = _eet_data_descriptor_decode(&context, ed, NULL, data, size, NULL, 0); eet_free_context_shutdown(&context); - eet_dictionary_unlock(ed); // XXX: release manual eet_dictionary lock + if (ed) eet_dictionary_unlock(ed); // XXX: release manual eet_dictionary lock eet_node_dump(result, 0, dumpfunc, dumpdata); --