txlyre 1 day ago
parent
commit
073c3b6736
1 changed files with 6 additions and 14 deletions
  1. 6 14
      qirt.c

+ 6 - 14
qirt.c

@@ -2314,16 +2314,12 @@ static qi_bool _qi_guarded_equals(qi_state_t *state, qi_size_t depth,
     qi_list_push(tempstack, a);
     qi_list_push(tempstack, a);
     qi_list_push(tempstack, b);
     qi_list_push(tempstack, b);
 
 
+    if (a->value.list == b->value.list)
+      return true;
+
     qi_mutex_lock(a->mutex);
     qi_mutex_lock(a->mutex);
     qi_mutex_lock(b->mutex);
     qi_mutex_lock(b->mutex);
 
 
-    if (a->value.list == b->value.list) {
-      qi_mutex_unlock(a->mutex);
-      qi_mutex_unlock(b->mutex);
-
-      return true;
-    }
-
     if (qi_list_length(a->value.list) != qi_list_length(b->value.list)) {
     if (qi_list_length(a->value.list) != qi_list_length(b->value.list)) {
       qi_mutex_unlock(a->mutex);
       qi_mutex_unlock(a->mutex);
       qi_mutex_unlock(b->mutex);
       qi_mutex_unlock(b->mutex);
@@ -2368,16 +2364,12 @@ static qi_bool _qi_guarded_equals(qi_state_t *state, qi_size_t depth,
     qi_list_push(tempstack, a);
     qi_list_push(tempstack, a);
     qi_list_push(tempstack, b);
     qi_list_push(tempstack, b);
 
 
+    if (a->value.table.table == b->value.table.table)
+      return true;
+
     qi_mutex_lock(a->mutex);
     qi_mutex_lock(a->mutex);
     qi_mutex_lock(b->mutex);
     qi_mutex_lock(b->mutex);
 
 
-    if (a->value.table.table == b->value.table.table) {
-      qi_mutex_unlock(a->mutex);
-      qi_mutex_unlock(b->mutex);
-
-      return true;
-    }
-
     if (qi_table_length(a->value.table.table) !=
     if (qi_table_length(a->value.table.table) !=
         qi_table_length(b->value.table.table)) {
         qi_table_length(b->value.table.table)) {
       qi_mutex_unlock(a->mutex);
       qi_mutex_unlock(a->mutex);