src/cpu/x86/vm/c1_LIRGenerator_x86.cpp

changeset 1368
cdb8b7c37ac1
parent 1040
98cb887364d3
child 1383
89e0543e1737
child 1388
ff1a29907b6c
     1.1 --- a/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp	Mon Aug 24 11:13:46 2009 -0700
     1.2 +++ b/src/cpu/x86/vm/c1_LIRGenerator_x86.cpp	Mon Aug 24 22:26:15 2009 -0700
     1.3 @@ -1047,16 +1047,17 @@
     1.4      items->at_put(i, size);
     1.5    }
     1.6  
     1.7 -  // need to get the info before, as the items may become invalid through item_free
     1.8 +  // Evaluate state_for early since it may emit code.
     1.9    CodeEmitInfo* patching_info = NULL;
    1.10    if (!x->klass()->is_loaded() || PatchALot) {
    1.11      patching_info = state_for(x, x->state_before());
    1.12  
    1.13      // cannot re-use same xhandlers for multiple CodeEmitInfos, so
    1.14 -    // clone all handlers.
    1.15 +    // clone all handlers.  This is handled transparently in other
    1.16 +    // places by the CodeEmitInfo cloning logic but is handled
    1.17 +    // specially here because a stub isn't being used.
    1.18      x->set_exception_handlers(new XHandlers(x->exception_handlers()));
    1.19    }
    1.20 -
    1.21    CodeEmitInfo* info = state_for(x, x->state());
    1.22  
    1.23    i = dims->length();

mercurial