txlyre 1 dia atrás
pai
commit
12f37dd1d2
2 arquivos alterados com 186 adições e 307 exclusões
  1. 173 297
      qirt.c
  2. 13 10
      qirt.h

Diferenças do arquivo suprimidas por serem muito extensas
+ 173 - 297
qirt.c


+ 13 - 10
qirt.h

@@ -21,13 +21,16 @@ typedef long qi_ssize_t;
 typedef struct _qi_list_t qi_list_t;
 
 struct _qi_list_t {
-  void *value;
-  qi_list_t *next;
+  void **data;
+  qi_size_t length;
 };
 
-#define qi_list_empty(list) (!(list)->value)
-#define qi_list_first(list) ((list)->value)
-#define qi_list_last(list) (qi_list_index((list), -1))
+#define qi_list_make_n(size) (qi_list_resize(qi_list_make(), (size)))
+#define qi_list_data(list, index) ((list)->data[(index)])
+#define qi_list_length(list) ((list)->length)
+#define qi_list_empty(list) (!(list)->length)
+#define qi_list_first(list) ((list)->data[0])
+#define qi_list_last(list) ((list)->data[(list)->length - 1])
 
 typedef struct _qi_table_t qi_table_t;
 typedef struct _qi_table_entry_t qi_table_entry_t;
@@ -46,7 +49,7 @@ struct _qi_table_t {
   qi_size_t capacity;
 };
 
-#define QI_TABLE_MIN_SIZE 32
+#define QI_TABLE_MIN_CAP 32
 
 #define qi_table_length(table) ((table)->used)
 #define qi_table_empty(table) ((table)->used == 0)
@@ -340,12 +343,12 @@ void *qi_calloc(qi_size_t count, qi_size_t size);
 char *qi_strdup(const char *s);
 void qi_free(void *);
 qi_list_t *qi_list_make(void);
-qi_size_t qi_list_length(qi_list_t *list);
+qi_list_t *qi_list_resize(qi_list_t *list, qi_size_t size);
 void *qi_list_index(qi_list_t *list, qi_ssize_t index);
 qi_list_t *qi_list_push(qi_list_t *list, void *value);
-qi_list_t *qi_list_insert(qi_list_t **list, qi_ssize_t index, void *value);
-qi_list_t *qi_list_delete(qi_list_t **list, qi_ssize_t index);
-void *qi_list_set(qi_list_t *list, qi_ssize_t index, void *value);
+bool qi_list_insert(qi_list_t *list, qi_ssize_t index, void *value);
+bool qi_list_delete(qi_list_t *list, qi_ssize_t index);
+bool qi_list_set(qi_list_t *list, qi_ssize_t index, void *value);
 void *qi_list_pop(qi_list_t *list);
 bool qi_list_contains(qi_list_t *list, void *value);
 qi_list_t *qi_list_copy(qi_list_t *list);

Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff