will release memory if "s" is one byte long or already an empty string. Then the rest of the function SetCompileModeSwitch will crash?