I want to break something: binary compatibility for the pool API.
This has been on my list for a long time, but I haven't yet had time to implement it.
What I'm thinking of is the following:
* Preface the apr_pool_t structure with a set of function pointers for the pool's "methods": alloc, free, destroy, create subpool, etc.
* Replace the current pool functions with macros that call the right method for a given pool: #define apr_palloc(p, size) (*(p->alloc_fn))(p, size) (The point of using macro for this is to avoid the performance impact of adding another function call per apr_palloc.)
This will let us introduce new pool variants, like reaps for example, without requiring changes to either the pool framework or anyone's application code.
--Brian
