diff --git a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramDB.java b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramDB.java index c627eb3799..bbdef27852 100644 --- a/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramDB.java +++ b/Ghidra/Framework/SoftwareModeling/src/main/java/ghidra/program/database/ProgramDB.java @@ -2051,6 +2051,7 @@ public class ProgramDB extends DomainObjectAdapterDB implements Program, ChangeM setEventsEnabled(false); try { boolean redisassemblyRequired = true; + LanguageID oldLanguageId = languageID; int oldLanguageVersion = languageVersion; int oldLanguageMinorVersion = languageMinorVersion; if (translator != null) { @@ -2079,8 +2080,11 @@ public class ProgramDB extends DomainObjectAdapterDB implements Program, ChangeM if (newCompilerSpecID != null) { compilerSpec = ProgramCompilerSpec.getProgramCompilerSpec(this, language.getCompilerSpecByID(newCompilerSpecID)); - if (compilerSpec instanceof ProgramCompilerSpec) { - ((ProgramCompilerSpec) compilerSpec).resetProgramOptions(monitor); + if (!oldLanguageId.equals(languageID) || + !compilerSpecID.equals(newCompilerSpecID)) { + if (compilerSpec instanceof ProgramCompilerSpec) { + ((ProgramCompilerSpec) compilerSpec).resetProgramOptions(monitor); + } } } compilerSpecID = compilerSpec.getCompilerSpecID();