/** * @attribute syn * @aspect GenericsSubtype * @declaredat * /Users/eric/Documents/workspaces/clara-soot/JastAddJ/Java1.5Frontend/GenericsSubtype.jrag:212 */ @SuppressWarnings({"unchecked", "cast"}) public boolean sameStructure(TypeDecl t) { Object _parameters = t; if (sameStructure_TypeDecl_values == null) sameStructure_TypeDecl_values = new java.util.HashMap(4); ASTNode$State.CircularValue _value; if (sameStructure_TypeDecl_values.containsKey(_parameters)) { Object _o = sameStructure_TypeDecl_values.get(_parameters); if (!(_o instanceof ASTNode$State.CircularValue)) { return ((Boolean) _o).booleanValue(); } else _value = (ASTNode$State.CircularValue) _o; } else { _value = new ASTNode$State.CircularValue(); sameStructure_TypeDecl_values.put(_parameters, _value); _value.value = Boolean.valueOf(true); } ASTNode$State state = state(); if (!state.IN_CIRCLE) { state.IN_CIRCLE = true; int num = state.boundariesCrossed; boolean isFinal = this.is$Final(); boolean new_sameStructure_TypeDecl_value; do { _value.visited = new Integer(state.CIRCLE_INDEX); state.CHANGE = false; new_sameStructure_TypeDecl_value = sameStructure_compute(t); if (new_sameStructure_TypeDecl_value != ((Boolean) _value.value).booleanValue()) { state.CHANGE = true; _value.value = Boolean.valueOf(new_sameStructure_TypeDecl_value); } state.CIRCLE_INDEX++; } while (state.CHANGE); if (isFinal && num == state().boundariesCrossed) { sameStructure_TypeDecl_values.put(_parameters, new_sameStructure_TypeDecl_value); } else { sameStructure_TypeDecl_values.remove(_parameters); state.RESET_CYCLE = true; sameStructure_compute(t); state.RESET_CYCLE = false; } state.IN_CIRCLE = false; return new_sameStructure_TypeDecl_value; } if (!new Integer(state.CIRCLE_INDEX).equals(_value.visited)) { _value.visited = new Integer(state.CIRCLE_INDEX); boolean new_sameStructure_TypeDecl_value = sameStructure_compute(t); if (state.RESET_CYCLE) { sameStructure_TypeDecl_values.remove(_parameters); } else if (new_sameStructure_TypeDecl_value != ((Boolean) _value.value).booleanValue()) { state.CHANGE = true; _value.value = new_sameStructure_TypeDecl_value; } return new_sameStructure_TypeDecl_value; } return ((Boolean) _value.value).booleanValue(); }
private void stor(int addr, int value) { if (addr == CO) { System.out.print((char) value); return; } if (addr == AU) { abuffer[apointer] = (byte) value; if (apointer < abuffer.length - 1) { apointer++; } } if (addr == XO) { if (xo.containsKey(m[XA])) { try { xo.get(m[XA]).write(value); } catch (IOException e) { e.printStackTrace(); } } } if (addr == XS) { try { if (value == X_CLOSE) { if (xi.containsKey(m[XA])) { xi.get(m[XA]).close(); } if (xo.containsKey(m[XA])) { xo.get(m[XA]).close(); } xi.remove(m[XA]); xo.remove(m[XA]); } if (value == X_OPEN_READ) { xi.put(xc, new PushbackInputStream(new FileInputStream(extractString(m[XA])))); m[XA] = xc++; } if (value == X_OPEN_WRITE) { xo.put(xc, new FileOutputStream(extractString(m[XA]))); m[XA] = xc++; } } catch (IOException e) { m[XA] = -1; } } m[addr] = value; }