Update documentation
This commit is contained in:
@ -21,9 +21,7 @@ A *make_a(RefcountContext *c, int n, const char *s) {
|
||||
|
||||
bool held_refs_callback(void *a_raw, RefcountList **out, void *ignored) {
|
||||
A *a = a_raw;
|
||||
if (a->next) {
|
||||
*out = refcount_list_push_full(*out, a->next, &COUNTING_ALLOCATOR);
|
||||
}
|
||||
*out = refcount_list_push_full(*out, a->next, &COUNTING_ALLOCATOR);
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -73,11 +71,47 @@ int main(int argc, const char **argv) {
|
||||
a->next = refcount_context_ref(c, a);
|
||||
assert(refcount_context_num_refs(c, a) == 1);
|
||||
|
||||
refcount_context_unref(c, a);
|
||||
|
||||
a = NULL;
|
||||
for (char i = 'a'; i <= 'z'; ++i) {
|
||||
A *na = make_a(c, i, "");
|
||||
na->next = refcount_context_ref(c, a);
|
||||
a = na;
|
||||
}
|
||||
assert(refcount_context_num_refs(c, a) == 0);
|
||||
|
||||
refcount_context_unref(c, a);
|
||||
|
||||
A *first = NULL;
|
||||
a = NULL;
|
||||
for (char i = 'a'; i <= 'z'; ++i) {
|
||||
A *na = make_a(c, i, "");
|
||||
if (!first) {
|
||||
first = na;
|
||||
}
|
||||
na->next = refcount_context_ref(c, a);
|
||||
a = na;
|
||||
}
|
||||
assert(refcount_context_num_refs(c, a) == 0);
|
||||
first->next = refcount_context_ref(c, a);
|
||||
a = first;
|
||||
assert(refcount_context_num_refs(c, a) == 1);
|
||||
|
||||
refcount_context_ref(c, a);
|
||||
refcount_context_unref(c, a);
|
||||
assert(refcount_context_num_refs(c, a) == 1);
|
||||
|
||||
refcount_context_garbage_collect(c);
|
||||
a = NULL;
|
||||
for (char i = 'a'; i <= 'z'; ++i) {
|
||||
A *na = make_a(c, i, "");
|
||||
na->next = refcount_context_ref(c, a);
|
||||
a = na;
|
||||
}
|
||||
assert(refcount_context_num_refs(c, a) == 0);
|
||||
refcount_context_unref(c, a);
|
||||
|
||||
assert(refcount_context_garbage_collect(c) == 26);
|
||||
|
||||
refcount_context_destroy(c);
|
||||
|
||||
|
Reference in New Issue
Block a user