Print this page


Split Close
Expand all
Collapse all
          --- old/src/share/vm/opto/parse3.cpp
          +++ new/src/share/vm/opto/parse3.cpp
↓ open down ↓ 412 lines elided ↑ open up ↑
 413  413    // the m-dimensional array
 414  414    bool will_link;
 415  415    ciArrayKlass* array_klass = iter().get_klass(will_link)->as_array_klass();
 416  416    assert(will_link, "multianewarray: typeflow responsibility");
 417  417  
 418  418    // Note:  Array classes are always initialized; no is_initialized check.
 419  419  
 420  420    enum { MAX_DIMENSION = 5 };
 421  421    if (ndimensions > MAX_DIMENSION || ndimensions <= 0) {
 422  422      uncommon_trap(Deoptimization::Reason_unhandled,
 423      -                  Deoptimization::Action_none);
      423 +                  Deoptimization::Action_maybe_recompile);
 424  424      return;
 425  425    }
 426  426  
 427  427    kill_dead_locals();
 428  428  
 429  429    // get the lengths from the stack (first dimension is on top)
 430  430    Node* length[MAX_DIMENSION+1];
 431  431    length[ndimensions] = NULL;  // terminating null for make_runtime_call
 432  432    int j;
 433  433    for (j = ndimensions-1; j >= 0 ; j--) length[j] = pop();
↓ open down ↓ 74 lines elided ↑ open up ↑
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX