delete NULL is safe but this code isn't is it? What if the caller didn't initialize the pointer they passed into this function? Should we be initializing it to NULL?