hotspot/src/share/vm/ci/ciReplay.cpp
changeset 24324 e18584aa83e2
parent 22243 91944eab7b92
child 24476 912595db2e75
equal deleted inserted replaced
24323:f84b15cd9e1a 24324:e18584aa83e2
   374   void process(TRAPS) {
   374   void process(TRAPS) {
   375     int line_no = 1;
   375     int line_no = 1;
   376     int c = getc(_stream);
   376     int c = getc(_stream);
   377     while(c != EOF) {
   377     while(c != EOF) {
   378       c = get_line(c);
   378       c = get_line(c);
   379       process_command(CHECK);
   379       process_command(THREAD);
   380       if (had_error()) {
   380       if (had_error()) {
   381         tty->print_cr("Error while parsing line %d: %s\n", line_no, _error_message);
   381         tty->print_cr("Error while parsing line %d: %s\n", line_no, _error_message);
   382         tty->print_cr("%s", _buffer);
   382         if (ReplayIgnoreInitErrors) {
   383         return;
   383           CLEAR_PENDING_EXCEPTION;
       
   384           _error_message = NULL;
       
   385         } else {
       
   386           return;
       
   387         }
   384       }
   388       }
   385       line_no++;
   389       line_no++;
   386     }
   390     }
   387   }
   391   }
   388 
   392 
   563 
   567 
   564   // ciMethodData <klass> <name> <signature> <state> <current mileage> orig <length> # # ... data <length> # # ... oops <length>
   568   // ciMethodData <klass> <name> <signature> <state> <current mileage> orig <length> # # ... data <length> # # ... oops <length>
   565   void process_ciMethodData(TRAPS) {
   569   void process_ciMethodData(TRAPS) {
   566     Method* method = parse_method(CHECK);
   570     Method* method = parse_method(CHECK);
   567     if (had_error()) return;
   571     if (had_error()) return;
   568     /* jsut copied from Method, to build interpret data*/
   572     /* just copied from Method, to build interpret data*/
   569     if (InstanceRefKlass::owns_pending_list_lock((JavaThread*)THREAD)) {
   573     if (InstanceRefKlass::owns_pending_list_lock((JavaThread*)THREAD)) {
   570       return;
   574       return;
   571     }
   575     }
       
   576     // To be properly initialized, some profiling in the MDO needs the
       
   577     // method to be rewritten (number of arguments at a call for
       
   578     // instance)
       
   579     method->method_holder()->link_class(CHECK);
   572     // methodOopDesc::build_interpreter_method_data(method, CHECK);
   580     // methodOopDesc::build_interpreter_method_data(method, CHECK);
   573     {
   581     {
   574       // Grab a lock here to prevent multiple
   582       // Grab a lock here to prevent multiple
   575       // MethodData*s from being created.
   583       // MethodData*s from being created.
   576       MutexLocker ml(MethodData_lock, THREAD);
   584       MutexLocker ml(MethodData_lock, THREAD);