Do not insert a nil check before the call to a destructor method

The test for fn == NULL is really the function vs. primitive dichotomy, so could be pushed outside the big IF.  For future reference; no action required in this patch.