The pointed to allocator object must then remain valid either until PathEngine is explicitly shut down,
or until global or static object destruction time.
It is ok for the allocator object to be declared as a global (or static) scoped object,
since PathEngine does not allocate memory from any global (or static) objects internally.

Explicit shutdown with PathEngine_ShutDown()
is necessary if you want to ensure that each allocation is matched with a call to free(),
i.e. with leak checking allocators.