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();