Don't try to optimize read-only configuration sets
This commit is contained in:
parent
2410b97aab
commit
a90529720e
|
@ -470,6 +470,10 @@ public class ATNConfigSet implements Set<ATNConfig> {
|
|||
configLookup.clear();
|
||||
}
|
||||
|
||||
public boolean isReadonly() {
|
||||
return readonly;
|
||||
}
|
||||
|
||||
public void setReadonly(boolean readonly) {
|
||||
this.readonly = readonly;
|
||||
configLookup = null; // can't mod, no need for lookup cache
|
||||
|
|
|
@ -1572,8 +1572,10 @@ public class ParserATNSimulator extends ATNSimulator {
|
|||
if ( existing!=null ) return existing;
|
||||
|
||||
D.stateNumber = dfa.states.size();
|
||||
D.configs.optimizeConfigs(this);
|
||||
D.configs.setReadonly(true);
|
||||
if (!D.configs.isReadonly()) {
|
||||
D.configs.optimizeConfigs(this);
|
||||
D.configs.setReadonly(true);
|
||||
}
|
||||
dfa.states.put(D, D);
|
||||
if ( debug ) System.out.println("adding new DFA state: "+D);
|
||||
return D;
|
||||
|
|
Loading…
Reference in New Issue