Mercurial > hg > truffle
comparison src/share/vm/classfile/verifier.cpp @ 431:a45484ea312d
6653858: dynamic languages need to be able to load anonymous classes
Summary: low-level privileged sun.misc.Unsafe.defineAnonymousClass
Reviewed-by: kvn
author | jrose |
---|---|
date | Wed, 12 Nov 2008 22:33:26 -0800 |
parents | d1605aabd0a1 |
children | be93aad57795 |
comparison
equal
deleted
inserted
replaced
430:4d20a3aaf1ab | 431:a45484ea312d |
---|---|
1598 } else { | 1598 } else { |
1599 assert(opcode == Bytecodes::_ldc2_w, "must be ldc2_w"); | 1599 assert(opcode == Bytecodes::_ldc2_w, "must be ldc2_w"); |
1600 types = (1 << JVM_CONSTANT_Double) | (1 << JVM_CONSTANT_Long); | 1600 types = (1 << JVM_CONSTANT_Double) | (1 << JVM_CONSTANT_Long); |
1601 verify_cp_type(index, cp, types, CHECK_VERIFY(this)); | 1601 verify_cp_type(index, cp, types, CHECK_VERIFY(this)); |
1602 } | 1602 } |
1603 if (tag.is_string() || tag.is_unresolved_string()) { | 1603 if (tag.is_string() && cp->is_pseudo_string_at(index)) { |
1604 current_frame->push_stack( | |
1605 VerificationType::reference_type( | |
1606 vmSymbols::java_lang_Object()), CHECK_VERIFY(this)); | |
1607 } else if (tag.is_string() || tag.is_unresolved_string()) { | |
1604 current_frame->push_stack( | 1608 current_frame->push_stack( |
1605 VerificationType::reference_type( | 1609 VerificationType::reference_type( |
1606 vmSymbols::java_lang_String()), CHECK_VERIFY(this)); | 1610 vmSymbols::java_lang_String()), CHECK_VERIFY(this)); |
1607 } else if (tag.is_klass() || tag.is_unresolved_klass()) { | 1611 } else if (tag.is_klass() || tag.is_unresolved_klass()) { |
1608 current_frame->push_stack( | 1612 current_frame->push_stack( |