if (ih == null) return -1;  InstructionTargeter[] ts = ih.getTargeters(); if (ts != null) { for (int j = ts.length - 1; j >= 0; j--) { InstructionTargeter t = ts[j]; if (t instanceof LineNumberTag) { return ((LineNumberTag)t).getLineNumber(); } } } return getSourceLine(ih.getNext());
int lookahead=0;  while (lookahead++ < 100) { if (ih == null) return -1;  InstructionTargeter[] ts = ih.getTargeters(); if (ts != null) { for (int j = ts.length - 1; j >= 0; j--) { InstructionTargeter t = ts[j]; if (t instanceof LineNumberTag) { return ((LineNumberTag)t).getLineNumber(); } } } ih = ih.getNext(); }  return -1;
	public static int getSourceLine(InstructionHandle ih) {		if (ih == null) return -1;		        InstructionTargeter[] ts = ih.getTargeters();        if (ts != null) {             for (int j = ts.length - 1; j >= 0; j--) {                InstructionTargeter t = ts[j];                if (t instanceof LineNumberTag) {                	return ((LineNumberTag)t).getLineNumber();                }            }        }        return getSourceLine(ih.getNext());	}