txlyre 1 dag geleden
bovenliggende
commit
9ccb9cbda4
3 gewijzigde bestanden met toevoegingen van 14 en 2 verwijderingen
  1. 11 1
      qirt.c
  2. 1 1
      qirt.h
  3. 2 0
      std.qi

+ 11 - 1
qirt.c

@@ -285,11 +285,15 @@ qi_list_t *qi_list_copy(qi_list_t *list)
 qi_table_t *qi_table_make(void)
 {
   qi_table_t *table = qi_malloc(sizeof(qi_table_t));
-  table->used = 0;
 
+  table->used = 0;
   table->capacity = QI_TABLE_MIN_CAP;
+
   table->entries = qi_calloc(table->capacity, sizeof(qi_table_entry_t));
 
+  table->llh = NULL;
+  table->llc = NULL;
+
   return table;
 }
 
@@ -2169,7 +2173,13 @@ qi_value_t *qi_del(qi_state_t *state, qi_value_t *value, qi_value_t *index)
 
         value->value.table.table->used = 0;
         value->value.table.table->capacity = QI_TABLE_MIN_CAP;
+        
         value->value.table.table->entries = qi_calloc(value->value.table.table->capacity, sizeof(qi_table_entry_t));
+
+        qi_linkedlist_destroy(value->value.table.table->llh);
+
+        value->value.table.table->llh = NULL;
+        value->value.table.table->llc = NULL;
       });
 
       return value;

+ 1 - 1
qirt.h

@@ -76,7 +76,7 @@ struct _qi_table_t
   qi_size_t capacity;
 };
 
-#define QI_TABLE_MIN_CAP 32
+#define QI_TABLE_MIN_CAP 128
 
 #define qi_table_length(table) ((table)->used)
 #define qi_table_empty(table) ((table)->used == 0)

+ 2 - 0
std.qi

@@ -423,6 +423,8 @@ func tuple_delete(t, x) {
 }
 set_pseudomethod("tuple.delete", tuple_delete)
 set_pseudomethod("tuple.__sub", tuple_delete)
+set_pseudomethod("list.at", func (l, i): l[i])
+set_pseudomethod("tuple.at", func (l, i): l[i])
 func str_index(s, w) {
   if s == "" || w == ""
     return -1