raster pushed a commit to branch efl-1.23.

http://git.enlightenment.org/core/efl.git/commit/?id=90f40e43ff704405a9408d650c628dee345429df

commit 90f40e43ff704405a9408d650c628dee345429df
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);
 

-- 


Reply via email to