Is this intentional? Is this a bug? The BSD free(3) function is fine with receiving a NULL pointer so I cannot understand why the change.
Furthermore it seems like this will cause a lot of crashes as a lot of C pointer types are imported as implicitly unwrapped optionals, passing those to free() when they are nil will now crash, when it didn't before.