void define(MemberDefinition field,int slot,int from,int to){
  if (from >= to) {
    return;
  }
  for (int i=0; i < len; i++) {
    if ((locals[i].field == field) && (locals[i].slot == slot) && (from <= locals[i].to)&& (to >= locals[i].from)) {
      locals[i].from=Math.min(locals[i].from,from);
      locals[i].to=Math.max(locals[i].to,to);
      return;
    }
  }
  if (len == locals.length) {
    LocalVariable newlocals[]=new LocalVariable[len * 2];
    System.arraycopy(locals,0,newlocals,0,len);
    locals=newlocals;
  }
  locals[len++]=new LocalVariable(field,slot,from,to);
}

void define ( MemberDefinition field , int slot , int from , int to ) { if ( from >= to ) { return ; } for ( int i = 0 ; i < len ; i ++ ) { if ( ( locals [ i ] . field == field ) && ( locals [ i ] . slot == slot ) && ( from <= locals [ i ] . to ) && ( to >= locals [ i ] . from ) ) { locals [ i ] . from = Math . min ( locals [ i ] . from , from ) ; locals [ i ] . to = Math . max ( locals [ i ] . to , to ) ; return ; } } if ( len == locals . length ) { LocalVariable newlocals [ ] = new LocalVariable [ len * 2 ] ; System . arraycopy ( locals , 0 , newlocals , 0 , len ) ; locals = newlocals ; } locals [ len ++ ] = new LocalVariable ( field , slot , from , to ) ; }
define a new local variable . merge entries where possible .
