I know that an initialization block runs after the call to 'super()' in a constructor. However, when looking through some code this morning, I found the following:
public class SimpleListLocalsAnalysis extends BackwardFlowAnalysis
FlowSet emptySet;
public SimpleLiveLocalsAnalysis(UnitGraph graph) {
super(graph);
{
Chain locals = g.getBody().getLocals();
FlowUniverse localUniverse = new FlowUniverse(locals.toArray());
emptySet = new ArrayPackedSet(localUniverse);
}
doAnalysis();
}
...
}
The above code shows some initialisation going on within an initialisation block just after 'super(graph)' invocation. What's the purpose of placing the code in an initialisation block within a constructor, as surely it runs anyway after the call to super. Am I missing something here?