1203 public int entryPoint(State state, Type pushed) {
1204 int pc = curCP();
1205 alive = true;
1206 State newState = state.dup();
1207 setDefined(newState.defined);
1208 this.state = newState;
1209 Assert.check(state.stacksize <= max_stack);
1210 this.state.push(pushed);
1211 if (debugCode) System.err.println("entry point " + state);
1212 pendingStackMap = needStackMap;
1213 return pc;
1214 }
1215
1216 public int setLetExprStackPos(int pos) {
1217 int res = letExprStackPos;
1218 letExprStackPos = pos;
1219 return res;
1220 }
1221
1222 public boolean isStatementStart() {
1223 return state.stacksize == letExprStackPos;
1224 }
1225
1226 /**************************************************************************
1227 * Stack map generation
1228 *************************************************************************/
1229
1230 /** An entry in the stack map. */
1231 static class StackMapFrame {
1232 int pc;
1233 Type[] locals;
1234 Type[] stack;
1235 }
1236
1237 /** A buffer of cldc stack map entries. */
1238 StackMapFrame[] stackMapBuffer = null;
1239
1240 /** A buffer of compressed StackMapTable entries. */
1241 StackMapTableFrame[] stackMapTableBuffer = null;
1242 int stackMapBufferSize = 0;
1243
|
1203 public int entryPoint(State state, Type pushed) {
1204 int pc = curCP();
1205 alive = true;
1206 State newState = state.dup();
1207 setDefined(newState.defined);
1208 this.state = newState;
1209 Assert.check(state.stacksize <= max_stack);
1210 this.state.push(pushed);
1211 if (debugCode) System.err.println("entry point " + state);
1212 pendingStackMap = needStackMap;
1213 return pc;
1214 }
1215
1216 public int setLetExprStackPos(int pos) {
1217 int res = letExprStackPos;
1218 letExprStackPos = pos;
1219 return res;
1220 }
1221
1222 public boolean isStatementStart() {
1223 return !alive || state.stacksize == letExprStackPos;
1224 }
1225
1226 /**************************************************************************
1227 * Stack map generation
1228 *************************************************************************/
1229
1230 /** An entry in the stack map. */
1231 static class StackMapFrame {
1232 int pc;
1233 Type[] locals;
1234 Type[] stack;
1235 }
1236
1237 /** A buffer of cldc stack map entries. */
1238 StackMapFrame[] stackMapBuffer = null;
1239
1240 /** A buffer of compressed StackMapTable entries. */
1241 StackMapTableFrame[] stackMapTableBuffer = null;
1242 int stackMapBufferSize = 0;
1243
|