Fixed mixup between empty() and clear() so memory is realesed correctly

@BugFreeSoftware 

FYI: when doing "options = _options", the old data in options is destroyed (as part of the `operator=` implementation). This makes manual clearing unnecessary for the reason you stated.