micro-optimize: removed excess check exist pointer before free()
@alanc, you can safely delete checks before free, this became possible after C89, code is cleaner.
C89: 4.10.3.2 The free function.
The free function causes the space pointed to by ptr to be deallocated, that is, made available for further allocation. If ptr is a null pointer, no action occurs.