# HG changeset patch # User lana # Date 1382044857 25200 # Node ID 1a93f2c5945a7bef53967aa491b27f805a7b6092 # Parent 8321dcc184382aa37f543893e970f186e0083e7c# Parent aeae561a6d0bd996620ba9901dde1d4947a40087 Merge diff -r aeae561a6d0b -r 1a93f2c5945a make/windows/makefiles/compile.make --- a/make/windows/makefiles/compile.make Thu Oct 17 09:40:51 2013 -0700 +++ b/make/windows/makefiles/compile.make Thu Oct 17 14:20:57 2013 -0700 @@ -181,6 +181,7 @@ PRODUCT_OPT_OPTION = /O2 /Oy- FASTDEBUG_OPT_OPTION = /O2 /Oy- DEBUG_OPT_OPTION = /Od +SAFESEH_FLAG = /SAFESEH !endif !if "$(COMPILER_NAME)" == "VS2005" @@ -199,6 +200,7 @@ !if "x$(MT)" == "x" MT=mt.exe !endif +SAFESEH_FLAG = /SAFESEH !endif !if "$(COMPILER_NAME)" == "VS2008" @@ -213,6 +215,7 @@ !if "x$(MT)" == "x" MT=mt.exe !endif +SAFESEH_FLAG = /SAFESEH !endif !if "$(COMPILER_NAME)" == "VS2010" @@ -244,9 +247,11 @@ !if "x$(MT)" == "x" MT=mt.exe !endif +SAFESEH_FLAG = /SAFESEH +!endif + !if "$(BUILDARCH)" == "i486" -LD_FLAGS = /SAFESEH $(LD_FLAGS) -!endif +LD_FLAGS = $(SAFESEH_FLAG) $(LD_FLAGS) !endif CXX_FLAGS = $(CXX_FLAGS) $(MP_FLAG) diff -r aeae561a6d0b -r 1a93f2c5945a make/windows/makefiles/sa.make --- a/make/windows/makefiles/sa.make Thu Oct 17 09:40:51 2013 -0700 +++ b/make/windows/makefiles/sa.make Thu Oct 17 14:20:57 2013 -0700 @@ -110,6 +110,9 @@ !if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1" SA_LFLAGS = $(SA_LFLAGS) -map -debug !endif +!if "$(BUILDARCH)" == "i486" +SA_LFLAGS = $(SAFESEH_FLAG) $(SA_LFLAGS) +!endif SA_CFLAGS = $(SA_CFLAGS) $(MP_FLAG) diff -r aeae561a6d0b -r 1a93f2c5945a src/share/vm/classfile/classFileParser.cpp --- a/src/share/vm/classfile/classFileParser.cpp Thu Oct 17 09:40:51 2013 -0700 +++ b/src/share/vm/classfile/classFileParser.cpp Thu Oct 17 14:20:57 2013 -0700 @@ -2197,8 +2197,8 @@ } if (lvt_cnt == max_lvt_cnt) { max_lvt_cnt <<= 1; - REALLOC_RESOURCE_ARRAY(u2, localvariable_table_length, lvt_cnt, max_lvt_cnt); - REALLOC_RESOURCE_ARRAY(u2*, localvariable_table_start, lvt_cnt, max_lvt_cnt); + localvariable_table_length = REALLOC_RESOURCE_ARRAY(u2, localvariable_table_length, lvt_cnt, max_lvt_cnt); + localvariable_table_start = REALLOC_RESOURCE_ARRAY(u2*, localvariable_table_start, lvt_cnt, max_lvt_cnt); } localvariable_table_start[lvt_cnt] = parse_localvariable_table(code_length, @@ -2226,8 +2226,8 @@ // Parse local variable type table if (lvtt_cnt == max_lvtt_cnt) { max_lvtt_cnt <<= 1; - REALLOC_RESOURCE_ARRAY(u2, localvariable_type_table_length, lvtt_cnt, max_lvtt_cnt); - REALLOC_RESOURCE_ARRAY(u2*, localvariable_type_table_start, lvtt_cnt, max_lvtt_cnt); + localvariable_type_table_length = REALLOC_RESOURCE_ARRAY(u2, localvariable_type_table_length, lvtt_cnt, max_lvtt_cnt); + localvariable_type_table_start = REALLOC_RESOURCE_ARRAY(u2*, localvariable_type_table_start, lvtt_cnt, max_lvtt_cnt); } localvariable_type_table_start[lvtt_cnt] = parse_localvariable_table(code_length, @@ -4483,9 +4483,8 @@ for (int index = 0; index < num_methods; index++) { Method* m = methods->at(index); - // skip private, static and methods - if ((!m->is_private()) && - (!m->is_static()) && + // skip static and methods + if ((!m->is_static()) && (m->name() != vmSymbols::object_initializer_name())) { Symbol* name = m->name(); diff -r aeae561a6d0b -r 1a93f2c5945a src/share/vm/services/diagnosticCommand.cpp --- a/src/share/vm/services/diagnosticCommand.cpp Thu Oct 17 09:40:51 2013 -0700 +++ b/src/share/vm/services/diagnosticCommand.cpp Thu Oct 17 14:20:57 2013 -0700 @@ -48,7 +48,7 @@ DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); #if INCLUDE_SERVICES // Heap dumping/inspection supported - DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); + DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(DCmd_Source_Internal | DCmd_Source_AttachAPI, true, false)); DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl(full_export, true, false)); #endif // INCLUDE_SERVICES