comparison src/cpu/sparc/vm/c1_LIRGenerator_sparc.cpp @ 933:cdb8b7c37ac1

6875329: fix for 6795465 broke exception handler cloning Reviewed-by: kvn
author never
date Mon, 24 Aug 2009 22:26:15 -0700
parents d0acbc302e14
children 148e5441d916 a0107ba3bc53
comparison
equal deleted inserted replaced
932:82bd76d4d7f2 933:cdb8b7c37ac1
948 LIRItem* size = new LIRItem(dims->at(i), this); 948 LIRItem* size = new LIRItem(dims->at(i), this);
949 items->at_put(i, size); 949 items->at_put(i, size);
950 } 950 }
951 951
952 // Evaluate state_for early since it may emit code. 952 // Evaluate state_for early since it may emit code.
953 CodeEmitInfo* info = state_for(x, x->state());
954 CodeEmitInfo* patching_info = NULL; 953 CodeEmitInfo* patching_info = NULL;
955 if (!x->klass()->is_loaded() || PatchALot) { 954 if (!x->klass()->is_loaded() || PatchALot) {
956 patching_info = state_for(x, x->state_before()); 955 patching_info = state_for(x, x->state_before());
957 956
958 // cannot re-use same xhandlers for multiple CodeEmitInfos, so 957 // cannot re-use same xhandlers for multiple CodeEmitInfos, so
959 // clone all handlers. 958 // clone all handlers. This is handled transparently in other
959 // places by the CodeEmitInfo cloning logic but is handled
960 // specially here because a stub isn't being used.
960 x->set_exception_handlers(new XHandlers(x->exception_handlers())); 961 x->set_exception_handlers(new XHandlers(x->exception_handlers()));
961 } 962 }
963 CodeEmitInfo* info = state_for(x, x->state());
962 964
963 i = dims->length(); 965 i = dims->length();
964 while (i-- > 0) { 966 while (i-- > 0) {
965 LIRItem* size = items->at(i); 967 LIRItem* size = items->at(i);
966 size->load_item(); 968 size->load_item();