aboutsummaryrefslogtreecommitdiff
path: root/src/share/vm
diff options
context:
space:
mode:
authorasaha <none@none>2014-03-14 22:57:00 -0700
committerasaha <none@none>2014-03-14 22:57:00 -0700
commitc8e1090910fb5bd0ea471474b048a5476bd321f4 (patch)
tree8f4d7c743be514867bbc91fce441aa27a9552f2d /src/share/vm
parent13b7a8057e5aeddba8ce52ea966c09222c72c996 (diff)
parent62de14741153d1912807dbaf9de35469546bf5a2 (diff)
Merge
Diffstat (limited to 'src/share/vm')
-rw-r--r--src/share/vm/ci/ciMethod.cpp5
-rw-r--r--src/share/vm/classfile/classFileParser.cpp5
-rw-r--r--src/share/vm/oops/objArrayKlass.cpp2
3 files changed, 11 insertions, 1 deletions
diff --git a/src/share/vm/ci/ciMethod.cpp b/src/share/vm/ci/ciMethod.cpp
index 923331ede..85fa757b4 100644
--- a/src/share/vm/ci/ciMethod.cpp
+++ b/src/share/vm/ci/ciMethod.cpp
@@ -724,6 +724,11 @@ ciMethod* ciMethod::find_monomorphic_target(ciInstanceKlass* caller,
VM_ENTRY_MARK;
+ // Disable CHA for default methods for now
+ if (root_m->get_Method()->is_default_method()) {
+ return NULL;
+ }
+
methodHandle target;
{
MutexLocker locker(Compile_lock);
diff --git a/src/share/vm/classfile/classFileParser.cpp b/src/share/vm/classfile/classFileParser.cpp
index 094f359b3..5f8264234 100644
--- a/src/share/vm/classfile/classFileParser.cpp
+++ b/src/share/vm/classfile/classFileParser.cpp
@@ -2777,6 +2777,11 @@ void ClassFileParser::parse_classfile_bootstrap_methods_attribute(u4 attribute_b
"Short length on BootstrapMethods in class file %s",
CHECK);
+ guarantee_property(attribute_byte_length > sizeof(u2),
+ "Invalid BootstrapMethods attribute length %u in class file %s",
+ attribute_byte_length,
+ CHECK);
+
// The attribute contains a counted array of counted tuples of shorts,
// represending bootstrap specifiers:
// length*{bootstrap_method_index, argument_count*{argument_index}}
diff --git a/src/share/vm/oops/objArrayKlass.cpp b/src/share/vm/oops/objArrayKlass.cpp
index 3316a8b27..514fdfbde 100644
--- a/src/share/vm/oops/objArrayKlass.cpp
+++ b/src/share/vm/oops/objArrayKlass.cpp
@@ -269,7 +269,7 @@ template <class T> void ObjArrayKlass::do_copy(arrayOop s, T* src,
if (element_is_null ||
(new_val->klass())->is_subtype_of(bound)) {
bs->write_ref_field_pre(p, new_val);
- *p = *from;
+ *p = element;
} else {
// We must do a barrier to cover the partial copy.
const size_t pd = pointer_delta(p, dst, (size_t)heapOopSize);