Obtains an object either from the free list, if available, or from new_object if the free list is empty.
new object
Out: The returned object cannot be null.
See Implementation
Obtains an object either from the free list, if available, or from new_object if the free list is empty.