@Override public void visit(Node n) { if (n instanceof AllocNode) { AllocNode an = ((AllocNode) n); ofcgb.addInvokeArgDotField(receiver, pag.makeAllocDotField(an, ArrayElement.v())); assert an.getNewExpr() instanceof NewArrayExpr; NewArrayExpr nae = (NewArrayExpr) an.getNewExpr(); if (!(nae.getSize() instanceof IntConstant)) { ofcgb.setArgArrayNonDetSize(receiver, context); } else { IntConstant sizeConstant = (IntConstant) nae.getSize(); ofcgb.addPossibleArgArraySize(receiver, sizeConstant.value, context); } } } });
@Override public void visit(Node n) { assert n instanceof AllocNode; AllocNode an = (AllocNode) n; Object newExpr = an.getNewExpr(); ofcgb.addInvokeArgDotField(argArray, an.dot(ArrayElement.v())); if (newExpr instanceof NewArrayExpr) { NewArrayExpr nae = (NewArrayExpr) newExpr; Value size = nae.getSize(); if (size instanceof IntConstant) { IntConstant arrSize = (IntConstant) size; ofcgb.addPossibleArgArraySize(argArray, arrSize.value, momc.context()); } else { ofcgb.setArgArrayNonDetSize(argArray, momc.context()); } } } });