--- a/hotspot/make/windows/makefiles/compile.make Thu Oct 10 10:08:55 2013 -0700
+++ b/hotspot/make/windows/makefiles/compile.make Sun Oct 13 21:14:04 2013 +0100
@@ -180,6 +180,7 @@
PRODUCT_OPT_OPTION = /O2 /Oy-
FASTDEBUG_OPT_OPTION = /O2 /Oy-
DEBUG_OPT_OPTION = /Od
+SAFESEH_FLAG = /SAFESEH
!endif
!if "$(COMPILER_NAME)" == "VS2005"
@@ -198,6 +199,7 @@
!if "x$(MT)" == "x"
MT=mt.exe
!endif
+SAFESEH_FLAG = /SAFESEH
!endif
!if "$(COMPILER_NAME)" == "VS2008"
@@ -211,6 +213,7 @@
!if "x$(MT)" == "x"
MT=mt.exe
!endif
+SAFESEH_FLAG = /SAFESEH
!endif
!if "$(COMPILER_NAME)" == "VS2010"
@@ -240,9 +243,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
# If NO_OPTIMIZATIONS is defined in the environment, turn everything off
--- a/hotspot/make/windows/makefiles/sa.make Thu Oct 10 10:08:55 2013 -0700
+++ b/hotspot/make/windows/makefiles/sa.make Sun Oct 13 21:14:04 2013 +0100
@@ -107,6 +107,9 @@
!if "$(ENABLE_FULL_DEBUG_SYMBOLS)" == "1"
SA_LFLAGS = $(SA_LFLAGS) -map -debug
!endif
+!if "$(BUILDARCH)" == "i486"
+SA_LFLAGS = $(SAFESEH_FLAG) $(SA_LFLAGS)
+!endif
# Note that we do not keep sawindbj.obj around as it would then
# get included in the dumpbin command in build_vm_def.sh
--- a/hotspot/src/share/vm/classfile/classFileParser.cpp Thu Oct 10 10:08:55 2013 -0700
+++ b/hotspot/src/share/vm/classfile/classFileParser.cpp Sun Oct 13 21:14:04 2013 +0100
@@ -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,
@@ -4484,9 +4484,8 @@
for (int index = 0; index < num_methods; index++) {
Method* m = methods->at(index);
- // skip private, static and <init> methods
- if ((!m->is_private()) &&
- (!m->is_static()) &&
+ // skip static and <init> methods
+ if ((!m->is_static()) &&
(m->name() != vmSymbols::object_initializer_name())) {
Symbol* name = m->name();
--- a/hotspot/src/share/vm/services/diagnosticCommand.cpp Thu Oct 10 10:08:55 2013 -0700
+++ b/hotspot/src/share/vm/services/diagnosticCommand.cpp Sun Oct 13 21:14:04 2013 +0100
@@ -48,7 +48,7 @@
DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<SystemGCDCmd>(full_export, true, false));
DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<RunFinalizationDCmd>(full_export, true, false));
#if INCLUDE_SERVICES // Heap dumping/inspection supported
- DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<HeapDumpDCmd>(full_export, true, false));
+ DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<HeapDumpDCmd>(DCmd_Source_Internal | DCmd_Source_AttachAPI, true, false));
DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassHistogramDCmd>(full_export, true, false));
DCmdFactory::register_DCmdFactory(new DCmdFactoryImpl<ClassStatsDCmd>(full_export, true, false));
#endif // INCLUDE_SERVICES