Messages in this thread | | | Date | Mon, 24 Aug 2009 13:29:46 -0700 (PDT) | From | David Rientjes <> | Subject | Re: [patch 2/4 -mm] flex_array: add flex_array_clear function |
| |
On Mon, 24 Aug 2009, Dave Hansen wrote:
> My only worry about this is that it's largely a copy-and-paste of > flex_array_put(). If we had a function that just returned a pointer to > 'dst', we could use that in both cases. > > Couldn't we implement the above with just: > > int flex_array_clear(struct flex_array *fa, unsigned int element_nr) > { > return flex_array_put(fa, element_nr, &empty_zero_page); > } >
Sure, if you never increase FLEX_ARRAY_PART_SIZE. Otherwise, doing
static char zero_part[FLEX_ARRAY_PART_SIZE] = { [0 ... FLEX_ARRAY_PART_SIZE - 1] = 0 };
and using flex_array_put(fa, element_nr, &zero_part) would work although you're trading off cleaner, yet not more efficient, code at the cost of FLEX_ARRAY_PART_SIZE wasted memory and memcpy() being slower than memset().
| |