/* allocates a list of PDAs, locking the free list only once when we * have to call calloc, we do it one component at a time to simplify * the process of freeing the list at program shutdown. This should * not be much of a performance hit, because it should be very * infrequently executed. */