ソースを参照

exec_list: Add a function to give the length of a list.

v2 [mattst88]: Remove trailing whitespace. Rename get_size to length.
               Mark as const.

Reviewed-by: Ian Romanick <ian.d.romanick@intel.com> [v1]
Reviewed-by: Matt Turner <mattst88@gmail.com>
Signed-off-by: Connor Abbott <connor.abbott@intel.com>
tags/10.3-branchpoint
Connor Abbott 11年前
コミット
7b0f69225a
1個のファイルの変更20行の追加0行の削除
  1. 20
    0
      src/glsl/list.h

+ 20
- 0
src/glsl/list.h ファイルの表示

@@ -325,6 +325,8 @@ struct exec_list {
const exec_node *get_tail() const;
exec_node *get_tail();

unsigned length() const;

void push_head(exec_node *n);
void push_tail(exec_node *n);
void push_degenerate_list_at_head(exec_node *n);
@@ -405,6 +407,19 @@ exec_list_get_tail(struct exec_list *list)
return !exec_list_is_empty(list) ? list->tail_pred : NULL;
}

static inline unsigned
exec_list_length(const struct exec_list *list)
{
unsigned size = 0;

for (struct exec_node *node = list->head; node->next != NULL;
node = node->next) {
size++;
}

return size;
}

static inline void
exec_list_push_head(struct exec_list *list, struct exec_node *n)
{
@@ -537,6 +552,11 @@ inline exec_node *exec_list::get_tail()
return exec_list_get_tail(this);
}

inline unsigned exec_list::length() const
{
return exec_list_length(this);
}

inline void exec_list::push_head(exec_node *n)
{
exec_list_push_head(this, n);

読み込み中…
キャンセル
保存