txlyre преди 5 часа
родител
ревизия
4261a5703c
променени са 1 файла, в които са добавени 8 реда и са изтрити 3 реда
  1. 8 3
      qirt.c

+ 8 - 3
qirt.c

@@ -282,12 +282,12 @@ qi_list_t *qi_list_copy(qi_list_t *list)
   return newlist;
 }
 
-qi_table_t *qi_table_make(void)
+static qi_table_t *qi_table_make_n(qi_size_t cap)
 {
   qi_table_t *table = qi_malloc(sizeof(qi_table_t));
 
   table->used = 0;
-  table->capacity = QI_TABLE_MIN_CAP;
+  table->capacity = cap;
 
   table->entries = qi_calloc(table->capacity, sizeof(qi_table_entry_t));
 
@@ -297,6 +297,11 @@ qi_table_t *qi_table_make(void)
   return table;
 }
 
+qi_table_t *qi_table_make(void)
+{
+  return qi_table_make_n(QI_TABLE_MIN_CAP);
+}
+
 static qi_table_t *qi_table_make_root(void)
 {
   qi_table_t *table = qi_malloc_root(sizeof(qi_table_t));
@@ -706,7 +711,7 @@ qi_bool qi_table_delete(qi_table_t *table, char *key)
 
 qi_table_t *qi_table_copy(qi_table_t *table)
 {
-  qi_table_t *newtable = qi_table_make();
+  qi_table_t *newtable = qi_table_make_n(table->capacity);
   qi_table_iterate(table, { qi_table_set(newtable, entry.key, entry.value); });
 
   return newtable;