diff options
author | asaha <none@none> | 2014-03-14 22:57:00 -0700 |
---|---|---|
committer | asaha <none@none> | 2014-03-14 22:57:00 -0700 |
commit | c8e1090910fb5bd0ea471474b048a5476bd321f4 (patch) | |
tree | 8f4d7c743be514867bbc91fce441aa27a9552f2d /src/share/vm | |
parent | 13b7a8057e5aeddba8ce52ea966c09222c72c996 (diff) | |
parent | 62de14741153d1912807dbaf9de35469546bf5a2 (diff) |
Merge
Diffstat (limited to 'src/share/vm')
-rw-r--r-- | src/share/vm/ci/ciMethod.cpp | 5 | ||||
-rw-r--r-- | src/share/vm/classfile/classFileParser.cpp | 5 | ||||
-rw-r--r-- | src/share/vm/oops/objArrayKlass.cpp | 2 |
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); |