Adding missing return statement at error condition
Without the inserted return statement, the code would continue to run and access and eventually return an already delete'd pointer to a Macro object.