src/share/vm/ci/ciReplay.cpp

changeset 6655
653e11c86c5a
parent 6217
849eb7bfceac
child 6876
710a3c8b516e
child 9507
7e72702243a4
     1.1 --- a/src/share/vm/ci/ciReplay.cpp	Thu May 01 17:57:29 2014 -0700
     1.2 +++ b/src/share/vm/ci/ciReplay.cpp	Tue Apr 29 10:29:56 2014 -0700
     1.3 @@ -376,11 +376,15 @@
     1.4      int c = getc(_stream);
     1.5      while(c != EOF) {
     1.6        c = get_line(c);
     1.7 -      process_command(CHECK);
     1.8 +      process_command(THREAD);
     1.9        if (had_error()) {
    1.10          tty->print_cr("Error while parsing line %d: %s\n", line_no, _error_message);
    1.11 -        tty->print_cr("%s", _buffer);
    1.12 -        return;
    1.13 +        if (ReplayIgnoreInitErrors) {
    1.14 +          CLEAR_PENDING_EXCEPTION;
    1.15 +          _error_message = NULL;
    1.16 +        } else {
    1.17 +          return;
    1.18 +        }
    1.19        }
    1.20        line_no++;
    1.21      }
    1.22 @@ -565,10 +569,14 @@
    1.23    void process_ciMethodData(TRAPS) {
    1.24      Method* method = parse_method(CHECK);
    1.25      if (had_error()) return;
    1.26 -    /* jsut copied from Method, to build interpret data*/
    1.27 +    /* just copied from Method, to build interpret data*/
    1.28      if (InstanceRefKlass::owns_pending_list_lock((JavaThread*)THREAD)) {
    1.29        return;
    1.30      }
    1.31 +    // To be properly initialized, some profiling in the MDO needs the
    1.32 +    // method to be rewritten (number of arguments at a call for
    1.33 +    // instance)
    1.34 +    method->method_holder()->link_class(CHECK);
    1.35      // methodOopDesc::build_interpreter_method_data(method, CHECK);
    1.36      {
    1.37        // Grab a lock here to prevent multiple

mercurial